bachelor-thesis/data/vj_alignment/vj_alignment_viz.html

810 lines
2.2 MiB

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
<meta name="author" content="M. S. Benítez-Cantos" />
<meta name="date" content="2021-01-03" />
<title>V and J segments alignment visualization</title>
<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMi40IHwgKGMpIGpRdWVyeSBGb3VuZGF0aW9uIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihhLGIpeyJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPWEuZG9jdW1lbnQ/YihhLCEwKTpmdW5jdGlvbihhKXtpZighYS5kb2N1bWVudCl0aHJvdyBuZXcgRXJyb3IoImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnQiKTtyZXR1cm4gYihhKX06YihhKX0oInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OnRoaXMsZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkPWEuZG9jdW1lbnQsZT1jLnNsaWNlLGY9Yy5jb25jYXQsZz1jLnB1c2gsaD1jLmluZGV4T2YsaT17fSxqPWkudG9TdHJpbmcsaz1pLmhhc093blByb3BlcnR5LGw9e30sbT0iMS4xMi40IixuPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBuLmZuLmluaXQoYSxiKX0sbz0vXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2cscD0vXi1tcy0vLHE9Ly0oW1xkYS16XSkvZ2kscj1mdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9O24uZm49bi5wcm90b3R5cGU9e2pxdWVyeTptLGNvbnN0cnVjdG9yOm4sc2VsZWN0b3I6IiIsbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YT8wPmE/dGhpc1thK3RoaXMubGVuZ3RoXTp0aGlzW2FdOmUuY2FsbCh0aGlzKX0scHVzaFN0YWNrOmZ1bmN0aW9uKGEpe3ZhciBiPW4ubWVyZ2UodGhpcy5jb25zdHJ1Y3RvcigpLGEpO3JldHVybiBiLnByZXZPYmplY3Q9dGhpcyxiLmNvbnRleHQ9dGhpcy5jb250ZXh0LGJ9LGVhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIG4uZWFjaCh0aGlzLGEpfSxtYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG4ubWFwKHRoaXMsZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5jYWxsKGIsYyxiKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aCxjPSthKygwPmE/YjowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYz49MCYmYj5jP1t0aGlzW2NdXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDpnLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbi5leHRlbmQ9bi5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG4uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihuLmlzUGxhaW5PYmplY3QoYyl8fChiPW4uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbi5pc0FycmF5KGEpP2E6W10pOmY9YSYmbi5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1uLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbi5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKG0rTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW4udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bi50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXt2YXIgYj1hJiZhLnRvU3RyaW5nKCk7cmV0dXJuIW4uaXNBcnJheShhKSYmYi1wYXJzZUZsb2F0KGIpKzE+PTB9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7Zm9yKGIgaW4gYSlyZXR1cm4hMTtyZXR1cm4hMH0saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtpZighYXx8Im9iamVjdCIhPT1uLnR5cGUoYSl8fGEubm9kZVR5cGV8fG4uaXNXaW5kb3coYSkpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFrLmNhbGwoYSwiY29uc3RydWN0b3IiKSYmIWsuY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfWlmKCFsLm93bkZpcnN0KWZvcihiIGluIGEpcmV0dXJuIGsuY2FsbChhLGIpO2ZvcihiIGluIGEpO3JldHVybiB2b2lkIDA9PT1ifHxrLmNhbGwoYSxiKX0sdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT9hKyIiOiJvYmplY3QiPT10eXBlb2YgYXx8ImZ1bmN0aW9uIj09dHlwZW9mIGE/aVtqLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihiKXtiJiZuLnRyaW0oYikmJihhLmV4ZWNTY3JpcHR8fGZ1bmN0aW9uKGIpe2EuZXZhbC5jYWxsKGEsYil9KShiKX0sY2FtZWxDYXNlOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UocCwibXMtIikucmVwbGFjZShxLHIpfSxub2RlTmFtZTpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTA7aWYocyhhKSl7Zm9yKGM9YS5sZW5ndGg7Yz5kO2QrKylpZihiLmNhbGwoYVtkXSxkLGFbZF0pPT09ITEpYnJlYWt9ZWxzZSBmb3IoZCBpbiBhKWlmKGIuY2FsbChhW2RdLGQsYVtkXSk9PT0hMSlicmVhaztyZXR1cm4gYX0sdHJpbTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT8iIjooYSsiIikucmVwbGFjZShvLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7dmFyIGM9Ynx8W107cmV0dXJuIG51bGwhPWEmJihzKE9iamVjdChhKSk/bi5tZXJnZShjLCJzdHJpbmciPT10eXBlb2YgYT9bYV06YSk6Zy5jYWxsKGMsYSkpLGN9LGluQXJyYXk6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2lmKGIpe2lmKGgpcmV0dXJuIGguY2FsbChiLGEsYyk7Zm9yKGQ9Yi5sZW5ndGgsYz1jPzA+Yz9NYXRoLm1heCgwLGQrYyk6YzowO2Q+YztjKyspaWYoYyBpbiBiJiZiW2NdPT09YSlyZXR1cm4gY31yZXR1cm4tMX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXt2YXIgYz0rYi5sZW5ndGgsZD0wLGU9YS5sZW5ndGg7d2hpbGUoYz5kKWFbZSsrXT1iW2QrK107aWYoYyE9PWMpd2hpbGUodm9pZCAwIT09YltkXSlhW2UrK109YltkKytdO3JldHVybiBhLmxlbmd0aD1lLGF9LGdyZXA6ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCxlPVtdLGY9MCxnPWEubGVuZ3RoLGg9IWM7Zz5mO2YrKylkPSFiKGFbZl0sZiksZCE9PWgmJmUucHVzaChhW2ZdKTtyZXR1cm4gZX0sbWFwOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGc9MCxoPVtdO2lmKHMoYSkpZm9yKGQ9YS5sZW5ndGg7ZD5nO2crKyllPWIoYVtnXSxnLGMpLG51bGwhPWUmJmgucHVzaChlKTtlbHNlIGZvcihnIGluIGEpZT1iKGFbZ10sZyxjKSxudWxsIT1lJiZoLnB1c2goZSk7cmV0dXJuIGYuYXBwbHkoW10saCl9LGd1aWQ6MSxwcm94eTpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZjtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGImJihmPWFbYl0sYj1hLGE9Ziksbi5pc0Z1bmN0aW9uKGEpPyhjPWUuY2FsbChhcmd1bWVudHMsMiksZD1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGJ8fHRoaXMsYy5jb25jYXQoZS5jYWxsKGFyZ3VtZW50cykpKX0sZC5ndWlkPWEuZ3VpZD1hLmd1aWR8fG4uZ3VpZCsrLGQpOnZvaWQgMH0sbm93OmZ1bmN0aW9uKCl7cmV0dXJuK25ldyBEYXRlfSxzdXBwb3J0Omx9KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYobi5mbltTeW1ib2wuaXRlcmF0b3JdPWNbU3ltYm9sLml0ZXJhdG9yXSksbi5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe2lbIltvYmplY3QgIitiKyJdIl09Yi50b0xvd2VyQ2FzZSgpfSk7ZnVuY3Rpb24gcyhhKXt2YXIgYj0hIWEmJiJsZW5ndGgiaW4gYSYmYS5sZW5ndGgsYz1uLnR5cGUoYSk7cmV0dXJuImZ1bmN0aW9uIj09PWN8fG4uaXNXaW5kb3coYSk/ITE6ImFycmF5Ij09PWN8fDA9PT1ifHwibnVtYmVyIj09dHlwZW9mIGImJmI+MCYmYi0xIGluIGF9dmFyIHQ9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdT0ic2l6emxlIisxKm5ldyBEYXRlLHY9YS5kb2N1bWVudCx3PTAseD0wLHk9Z2EoKSx6PWdhKCksQT1nYSgpLEI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWImJihsPSEwKSwwfSxDPTE8PDMxLEQ9e30uaGFzT3duUHJvcGVydHksRT1bXSxGPUUucG9wLEc9RS5wdXNoLEg9RS5wdXNoLEk9RS5zbGljZSxKPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTAsZD1hLmxlbmd0aDtkPmM7YysrKWlmKGFbY109PT1iKXJldHVybiBjO3JldHVybi0xfSxLPSJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCIsTD0iW1xceDIwXFx0XFxyXFxuXFxmXSIsTT0iKD86XFxcXC58W1xcdy1dfFteXFx4MDAtXFx4YTBdKSsiLE49IlxcWyIrTCsiKigiK00rIikoPzoiK0wrIiooWypeJHwhfl0/PSkiK0wrIiooPzonKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoIitNKyIpKXwpIitMKyIqXFxdIixPPSI6KCIrTSsiKSg/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfCIrTisiKSopfC4qKVxcKXwpIixQPW5ldyBSZWdFeHAoTCsiKyIsImciKSxRPW5ldyBSZWdFeHAoIl4iK0wrIit8KCg/Ol58W15cXFxcXSkoPzpcXFxcLikqKSIrTCsiKyQiLCJnIiksUj1uZXcgUmVnRXhwKCJeIitMKyIqLCIrTCsiKiIpLFM9bmV3IFJlZ0V4cCgiXiIrTCsiKihbPit+XXwiK0wrIikiK0wrIioiKSxUPW5ldyBSZWdFeHAoIj0iK0wrIiooW15cXF0nXCJdKj8pIitMKyIqXFxdIiwiZyIpLFU9bmV3IFJlZ0V4cChPKSxWPW5ldyBSZWdFeHAoIl4iK00rIiQiKSxXPXtJRDpuZXcgUmVnRXhwKCJeIygiK00rIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrTSsiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrTSsifFsqXSkiKSxBVFRSOm5ldyBSZWdFeHAoIl4iK04pLFBTRVVETzpuZXcgUmVnRXhwKCJeIitPKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK0wrIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiK0wrIiooPzooWystXXwpIitMKyIqKFxcZCspfCkpIitMKyIqXFwpfCkiLCJpIiksYm9vbDpuZXcgUmVnRXhwKCJeKD86IitLKyIpJCIsImkiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrTCsiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitMKyIqKCg/Oi1cXGQpP1xcZCopIitMKyIqXFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxYPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksWT0vXmhcZCQvaSxaPS9eW157XStce1xzKlxbbmF0aXZlIFx3LywkPS9eKD86IyhbXHctXSspfChcdyspfFwuKFtcdy1dKykpJC8sXz0vWyt+XS8sYWE9Lyd8XFwvZyxiYT1uZXcgUmVnRXhwKCJcXFxcKFtcXGRhLWZdezEsNn0iK0wrIj98KCIrTCsiKXwuKSIsImlnIiksY2E9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSIweCIrYi02NTUzNjtyZXR1cm4gZCE9PWR8fGM/YjowPmQ/U3RyaW5nLmZyb21DaGFyQ29kZShkKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKGQ+PjEwfDU1Mjk2LDEwMjMmZHw1NjMyMCl9LGRhPWZ1bmN0aW9uKCl7bSgpfTt0cnl7SC5hcHBseShFPUkuY2FsbCh2LmNoaWxkTm9kZXMpLHYuY2hpbGROb2RlcyksRVt2LmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaChlYSl7SD17YXBwbHk6RS5sZW5ndGg/ZnVuY3Rpb24oYSxiKXtHLmFwcGx5KGEsSS5jYWxsKGIpKX06ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmxlbmd0aCxkPTA7d2hpbGUoYVtjKytdPWJbZCsrXSk7YS5sZW5ndGg9Yy0xfX19ZnVuY3Rpb24gZmEoYSxiLGQsZSl7dmFyIGYsaCxqLGssbCxvLHIscyx3PWImJmIub3duZXJEb2N1bWVudCx4PWI/Yi5ub2RlVHlwZTo5O2lmKGQ9ZHx8W10sInN0cmluZyIhPXR5cGVvZiBhfHwhYXx8MSE9PXgmJjkhPT14JiYxMSE9PXgpcmV0dXJuIGQ7aWYoIWUmJigoYj9iLm93bmVyRG9jdW1lbnR8fGI6dikhPT1uJiZtKGIpLGI9Ynx8bixwKSl7aWYoMTEhPT14JiYobz0kLmV4ZWMoYSkpKWlmKGY9b1sxXSl7aWYoOT09PXgpe2lmKCEoaj1iLmdldEVsZW1lbnRCeUlkKGYpKSlyZXR1cm4gZDtpZihqLmlkPT09ZilyZXR1cm4gZC5wdXNoKGopLGR9ZWxzZSBpZih3JiYoaj13LmdldEVsZW1lbnRCeUlkKGYpKSYmdChiLGopJiZqLmlkPT09ZilyZXR1cm4gZC5wdXNoKGopLGR9ZWxzZXtpZihvWzJdKXJldHVybiBILmFwcGx5KGQsYi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKSksZDtpZigoZj1vWzNdKSYmYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIEguYXBwbHkoZCxiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZikpLGR9aWYoYy5xc2EmJiFBW2ErIiAiXSYmKCFxfHwhcS50ZXN0KGEpKSl7aWYoMSE9PXgpdz1iLHM9YTtlbHNlIGlmKCJvYmplY3QiIT09Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXsoaz1iLmdldEF0dHJpYnV0ZSgiaWQiKSk/az1rLnJlcGxhY2UoYWEsIlxcJCYiKTpiLnNldEF0dHJpYnV0ZSgiaWQiLGs9dSkscj1nKGEpLGg9ci5sZW5ndGgsbD1WLnRlc3Qoayk/IiMiK2s6IltpZD0nIitrKyInXSI7d2hpbGUoaC0tKXJbaF09bCsiICIrcWEocltoXSk7cz1yLmpvaW4oIiwiKSx3PV8udGVzdChhKSYmb2EoYi5wYXJlbnROb2RlKXx8Yn1pZihzKXRyeXtyZXR1cm4gSC5hcHBseShkLHcucXVlcnlTZWxlY3RvckFsbChzKSksZH1jYXRjaCh5KXt9ZmluYWxseXtrPT09dSYmYi5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gaShhLnJlcGxhY2UoUSwiJDEiKSxiLGQsZSl9ZnVuY3Rpb24gZ2EoKXt2YXIgYT1bXTtmdW5jdGlvbiBiKGMsZSl7cmV0dXJuIGEucHVzaChjKyIgIik+ZC5jYWNoZUxlbmd0aCYmZGVsZXRlIGJbYS5zaGlmdCgpXSxiW2MrIiAiXT1lfXJldHVybiBifWZ1bmN0aW9uIGhhKGEpe3JldHVybiBhW3VdPSEwLGF9ZnVuY3Rpb24gaWEoYSl7dmFyIGI9bi5jcmVhdGVFbGVtZW50KCJkaXYiKTt0cnl7cmV0dXJuISFhKGIpfWNhdGNoKGMpe3JldHVybiExfWZpbmFsbHl7Yi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYiksYj1udWxsfX1mdW5jdGlvbiBqYShhLGIpe3ZhciBjPWEuc3BsaXQoInwiKSxlPWMubGVuZ3RoO3doaWxlKGUtLSlkLmF0dHJIYW5kbGVbY1tlXV09Yn1mdW5jdGlvbiBrYShhLGIpe3ZhciBjPWImJmEsZD1jJiYxPT09YS5ub2RlVHlwZSYmMT09PWIubm9kZVR5cGUmJih+Yi5zb3VyY2VJbmRleHx8QyktKH5hLnNvdXJjZUluZGV4fHxDKTtpZihkKXJldHVybiBkO2lmKGMpd2hpbGUoYz1jLm5leHRTaWJsaW5nKWlmKGM9PT1iKXJldHVybi0xO3JldHVybiBhPzE6LTF9ZnVuY3Rpb24gbGEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YyYmYi50eXBlPT09YX19ZnVuY3Rpb24gbWEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4oImlucHV0Ij09PWN8fCJidXR0b24iPT09YykmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG5hKGEpe3JldHVybiBoYShmdW5jdGlvbihiKXtyZXR1cm4gYj0rYixoYShmdW5jdGlvbihjLGQpe3ZhciBlLGY9YShbXSxjLmxlbmd0aCxiKSxnPWYubGVuZ3RoO3doaWxlKGctLSljW2U9ZltnXV0mJihjW2VdPSEoZFtlXT1jW2VdKSl9KX0pfWZ1bmN0aW9uIG9hKGEpe3JldHVybiBhJiYidW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJmF9Yz1mYS5zdXBwb3J0PXt9LGY9ZmEuaXNYTUw9ZnVuY3Rpb24oYSl7dmFyIGI9YSYmKGEub3duZXJEb2N1bWVudHx8YSkuZG9jdW1lbnRFbGVtZW50O3JldHVybiBiPyJIVE1MIiE9PWIubm9kZU5hbWU6ITF9LG09ZmEuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZSxnPWE/YS5vd25lckRvY3VtZW50fHxhOnY7cmV0dXJuIGchPT1uJiY5PT09Zy5ub2RlVHlwZSYmZy5kb2N1bWVudEVsZW1lbnQ/KG49ZyxvPW4uZG9jdW1lbnRFbGVtZW50LHA9IWYobiksKGU9bi5kZWZhdWx0VmlldykmJmUudG9wIT09ZSYmKGUuYWRkRXZlbnRMaXN0ZW5lcj9lLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZGEsITEpOmUuYXR0YWNoRXZlbnQmJmUuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixkYSkpLGMuYXR0cmlidXRlcz1pYShmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGFzc05hbWU9ImkiLCFhLmdldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIil9KSxjLmdldEVsZW1lbnRzQnlUYWdOYW1lPWlhKGZ1bmN0aW9uKGEpe3JldHVybiBhLmFwcGVuZENoaWxkKG4uY3JlYXRlQ29tbWVudCgiIikpLCFhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikubGVuZ3RofSksYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPVoudGVzdChuLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpLGMuZ2V0QnlJZD1pYShmdW5jdGlvbihhKXtyZXR1cm4gby5hcHBlbmRDaGlsZChhKS5pZD11LCFuLmdldEVsZW1lbnRzQnlOYW1lfHwhbi5nZXRFbGVtZW50c0J5TmFtZSh1KS5sZW5ndGh9KSxjLmdldEJ5SWQ/KGQuZmluZC5JRD1mdW5jdGlvbihhLGIpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50QnlJZCYmcCl7dmFyIGM9Yi5nZXRFbGVtZW50QnlJZChhKTtyZXR1cm4gYz9bY106W119fSxkLmZpbHRlci5JRD1mdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoYmEsY2EpO3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gYS5nZXRBdHRyaWJ1dGUoImlkIik9PT1ifX0pOihkZWxldGUgZC5maW5kLklELGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShiYSxjYSk7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRBdHRyaWJ1dGVOb2RlJiZhLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIGMmJmMudmFsdWU9PT1ifX0pLGQuZmluZC5UQUc9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihhLGIpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50c0J5VGFnTmFtZT9iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpOmMucXNhP2IucXVlcnlTZWxlY3RvckFsbChhKTp2b2lkIDB9OmZ1bmN0aW9uKGEsYil7dmFyIGMsZD1bXSxlPTAsZj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO2lmKCIqIj09PWEpe3doaWxlKGM9ZltlKytdKTE9PT1jLm5vZGVUeXBlJiZkLnB1c2goYyk7cmV0dXJuIGR9cmV0dXJuIGZ9LGQuZmluZC5DTEFTUz1jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGEsYil7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJnA/Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpOnZvaWQgMH0scj1bXSxxPVtdLChjLnFzYT1aLnRlc3Qobi5xdWVyeVNlbGVjdG9yQWxsKSkmJihpYShmdW5jdGlvbihhKXtvLmFwcGVuZENoaWxkKGEpLmlubmVySFRNTD0iPGEgaWQ9JyIrdSsiJz48L2E+PHNlbGVjdCBpZD0nIit1KyItXHJcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLGEucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5sZW5ndGgmJnEucHVzaCgiWypeJF09IitMKyIqKD86Jyd8XCJcIikiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fHEucHVzaCgiXFxbIitMKyIqKD86dmFsdWV8IitLKyIpIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrdSsiLV0iKS5sZW5ndGh8fHEucHVzaCgifj0iKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxxLnB1c2goIjpjaGVja2VkIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJhIyIrdSsiKyoiKS5sZW5ndGh8fHEucHVzaCgiLiMuK1srfl0iKX0pLGlhKGZ1bmN0aW9uKGEpe3ZhciBiPW4uY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtiLnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLGEuYXBwZW5kQ2hpbGQoYikuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpLGEucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9ZF0iKS5sZW5ndGgmJnEucHVzaCgibmFtZSIrTCsiKlsqXiR8IX5dPz0iKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjplbmFibGVkIikubGVuZ3RofHxxLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksYS5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4IikscS5wdXNoKCIsLio6Iil9KSksKGMubWF0Y2hlc1NlbGVjdG9yPVoudGVzdChzPW8ubWF0Y2hlc3x8by53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fG8ubW96TWF0Y2hlc1NlbGVjdG9yfHxvLm9NYXRjaGVzU2VsZWN0b3J8fG8ubXNNYXRjaGVzU2VsZWN0b3IpKSYmaWEoZnVuY3Rpb24oYSl7Yy5kaXNjb25uZWN0ZWRNYXRjaD1zLmNhbGwoYSwiZGl2Iikscy5jYWxsKGEsIltzIT0nJ106eCIpLHIucHVzaCgiIT0iLE8pfSkscT1xLmxlbmd0aCYmbmV3IFJlZ0V4cChxLmpvaW4oInwiKSkscj1yLmxlbmd0aCYmbmV3IFJlZ0V4cChyLmpvaW4oInwiKSksYj1aLnRlc3Qoby5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiksdD1ifHxaLnRlc3Qoby5jb250YWlucyk/ZnVuY3Rpb24oYSxiKXt2YXIgYz05PT09YS5ub2RlVHlwZT9hLmRvY3VtZW50RWxlbWVudDphLGQ9YiYmYi5wYXJlbnROb2RlO3JldHVybiBhPT09ZHx8ISghZHx8MSE9PWQubm9kZVR5cGV8fCEoYy5jb250YWlucz9jLmNvbnRhaW5zKGQpOmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJjE2JmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZCkpKX06ZnVuY3Rpb24oYSxiKXtpZihiKXdoaWxlKGI9Yi5wYXJlbnROb2RlKWlmKGI9PT1hKXJldHVybiEwO3JldHVybiExfSxCPWI/ZnVuY3Rpb24oYSxiKXtpZihhPT09YilyZXR1cm4gbD0hMCwwO3ZhciBkPSFhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uLSFiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uO3JldHVybiBkP2Q6KGQ9KGEub3duZXJEb2N1bWVudHx8YSk9PT0oYi5vd25lckRvY3VtZW50fHxiKT9hLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpOjEsMSZkfHwhYy5zb3J0RGV0YWNoZWQmJmIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSk9PT1kP2E9PT1ufHxhLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYSk/LTE6Yj09PW58fGIub3duZXJEb2N1bWVudD09PXYmJnQodixiKT8xOms/SihrLGEpLUooayxiKTowOjQmZD8tMToxKX06ZnVuY3Rpb24oYSxiKXtpZihhPT09YilyZXR1cm4gbD0hMCwwO3ZhciBjLGQ9MCxlPWEucGFyZW50Tm9kZSxmPWIucGFyZW50Tm9kZSxnPVthXSxoPVtiXTtpZighZXx8IWYpcmV0dXJuIGE9PT1uPy0xOmI9PT1uPzE6ZT8tMTpmPzE6az9KKGssYSktSihrLGIpOjA7aWYoZT09PWYpcmV0dXJuIGthKGEsYik7Yz1hO3doaWxlKGM9Yy5wYXJlbnROb2RlKWcudW5zaGlmdChjKTtjPWI7d2hpbGUoYz1jLnBhcmVudE5vZGUpaC51bnNoaWZ0KGMpO3doaWxlKGdbZF09PT1oW2RdKWQrKztyZXR1cm4gZD9rYShnW2RdLGhbZF0pOmdbZF09PT12Py0xOmhbZF09PT12PzE6MH0sbik6bn0sZmEubWF0Y2hlcz1mdW5jdGlvbihhLGIpe3JldHVybiBmYShhLG51bGwsbnVsbCxiKX0sZmEubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGEsYil7aWYoKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLGI9Yi5yZXBsYWNlKFQsIj0nJDEnXSIpLGMubWF0Y2hlc1NlbGVjdG9yJiZwJiYhQVtiKyIgIl0mJighcnx8IXIudGVzdChiKSkmJighcXx8IXEudGVzdChiKSkpdHJ5e3ZhciBkPXMuY2FsbChhLGIpO2lmKGR8fGMuZGlzY29ubmVjdGVkTWF0Y2h8fGEuZG9jdW1lbnQmJjExIT09YS5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gZH1jYXRjaChlKXt9cmV0dXJuIGZhKGIsbixudWxsLFthXSkubGVuZ3RoPjB9LGZhLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7cmV0dXJuKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLHQoYSxiKX0sZmEuYXR0cj1mdW5jdGlvbihhLGIpeyhhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKTt2YXIgZT1kLmF0dHJIYW5kbGVbYi50b0xvd2VyQ2FzZSgpXSxmPWUmJkQuY2FsbChkLmF0dHJIYW5kbGUsYi50b0xvd2VyQ2FzZSgpKT9lKGEsYiwhcCk6dm9pZCAwO3JldHVybiB2b2lkIDAhPT1mP2Y6Yy5hdHRyaWJ1dGVzfHwhcD9hLmdldEF0dHJpYnV0ZShiKTooZj1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZmLnNwZWNpZmllZD9mLnZhbHVlOm51bGx9LGZhLmVycm9yPWZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIithKX0sZmEudW5pcXVlU29ydD1mdW5jdGlvbihhKXt2YXIgYixkPVtdLGU9MCxmPTA7aWYobD0hYy5kZXRlY3REdXBsaWNhdGVzLGs9IWMuc29ydFN0YWJsZSYmYS5zbGljZSgwKSxhLnNvcnQoQiksbCl7d2hpbGUoYj1hW2YrK10pYj09PWFbZl0mJihlPWQucHVzaChmKSk7d2hpbGUoZS0tKWEuc3BsaWNlKGRbZV0sMSl9cmV0dXJuIGs9bnVsbCxhfSxlPWZhLmdldFRleHQ9ZnVuY3Rpb24oYSl7dmFyIGIsYz0iIixkPTAsZj1hLm5vZGVUeXBlO2lmKGYpe2lmKDE9PT1mfHw5PT09Znx8MTE9PT1mKXtpZigic3RyaW5nIj09dHlwZW9mIGEudGV4dENvbnRlbnQpcmV0dXJuIGEudGV4dENvbnRlbnQ7Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWMrPWUoYSl9ZWxzZSBpZigzPT09Znx8ND09PWYpcmV0dXJuIGEubm9kZVZhbHVlfWVsc2Ugd2hpbGUoYj1hW2QrK10pYys9ZShiKTtyZXR1cm4gY30sZD1mYS5zZWxlY3RvcnM9e2NhY2hlTGVuZ3RoOjUwLGNyZWF0ZVBzZXVkbzpoYSxtYXRjaDpXLGF0dHJIYW5kbGU6e30sZmluZDp7fSxyZWxhdGl2ZTp7Ij4iOntkaXI6InBhcmVudE5vZGUiLGZpcnN0OiEwfSwiICI6e2RpcjoicGFyZW50Tm9kZSJ9LCIrIjp7ZGlyOiJwcmV2aW91c1NpYmxpbmciLGZpcnN0OiEwfSwifiI6e2RpcjoicHJldmlvdXNTaWJsaW5nIn19LHByZUZpbHRlcjp7QVRUUjpmdW5jdGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnJlcGxhY2UoYmEsY2EpLGFbM109KGFbM118fGFbNF18fGFbNV18fCIiKS5yZXBsYWNlKGJhLGNhKSwifj0iPT09YVsyXSYmKGFbM109IiAiK2FbM10rIiAiKSxhLnNsaWNlKDAsNCl9LENISUxEOmZ1bmN0aW9uKGEpe3JldHVybiBhWzFdPWFbMV0udG9Mb3dlckNhc2UoKSwibnRoIj09PWFbMV0uc2xpY2UoMCwzKT8oYVszXXx8ZmEuZXJyb3IoYVswXSksYVs0XT0rKGFbNF0/YVs1XSsoYVs2XXx8MSk6MiooImV2ZW4iPT09YVszXXx8Im9kZCI9PT1hWzNdKSksYVs1XT0rKGFbN10rYVs4XXx8Im9kZCI9PT1hWzNdKSk6YVszXSYmZmEuZXJyb3IoYVswXSksYX0sUFNFVURPOmZ1bmN0aW9uKGEpe3ZhciBiLGM9IWFbNl0mJmFbMl07cmV0dXJuIFcuQ0hJTEQudGVzdChhWzBdKT9udWxsOihhWzNdP2FbMl09YVs0XXx8YVs1XXx8IiI6YyYmVS50ZXN0KGMpJiYoYj1nKGMsITApKSYmKGI9Yy5pbmRleE9mKCIpIixjLmxlbmd0aC1iKS1jLmxlbmd0aCkmJihhWzBdPWFbMF0uc2xpY2UoMCxiKSxhWzJdPWMuc2xpY2UoMCxiKSksYS5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShiYSxjYSkudG9Mb3dlckNhc2UoKTtyZXR1cm4iKiI9PT1hP2Z1bmN0aW9uKCl7cmV0dXJuITB9OmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1ifX0sQ0xBU1M6ZnVuY3Rpb24oYSl7dmFyIGI9eVthKyIgIl07cmV0dXJuIGJ8fChiPW5ldyBSZWdFeHAoIihefCIrTCsiKSIrYSsiKCIrTCsifCQpIikpJiZ5KGEsZnVuY3Rpb24oYSl7cmV0dXJuIGIudGVzdCgic3RyaW5nIj09dHlwZW9mIGEuY2xhc3NOYW1lJiZhLmNsYXNzTmFtZXx8InVuZGVmaW5lZCIhPXR5cGVvZiBhLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pfSxBVFRSOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCl7dmFyIGU9ZmEuYXR0cihkLGEpO3JldHVybiBudWxsPT1lPyIhPSI9PT1iOmI/KGUrPSIiLCI9Ij09PWI/ZT09PWM6IiE9Ij09PWI/ZSE9PWM6Il49Ij09PWI/YyYmMD09PWUuaW5kZXhPZihjKToiKj0iPT09Yj9jJiZlLmluZGV4T2YoYyk+LTE6IiQ9Ij09PWI/YyYmZS5zbGljZSgtYy5sZW5ndGgpPT09Yzoifj0iPT09Yj8oIiAiK2UucmVwbGFjZShQLCIgIikrIiAiKS5pbmRleE9mKGMpPi0xOiJ8PSI9PT1iP2U9PT1jfHxlLnNsaWNlKDAsYy5sZW5ndGgrMSk9PT1jKyItIjohMSk6ITB9fSxDSElMRDpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSJudGgiIT09YS5zbGljZSgwLDMpLGc9Imxhc3QiIT09YS5zbGljZSgtNCksaD0ib2YtdHlwZSI9PT1iO3JldHVybiAxPT09ZCYmMD09PWU/ZnVuY3Rpb24oYSl7cmV0dXJuISFhLnBhcmVudE5vZGV9OmZ1bmN0aW9uKGIsYyxpKXt2YXIgaixrLGwsbSxuLG8scD1mIT09Zz8ibmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciLHE9Yi5wYXJlbnROb2RlLHI9aCYmYi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLHM9IWkmJiFoLHQ9ITE7aWYocSl7aWYoZil7d2hpbGUocCl7bT1iO3doaWxlKG09bVtwXSlpZihoP20ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXI6MT09PW0ubm9kZVR5cGUpcmV0dXJuITE7bz1wPSJvbmx5Ij09PWEmJiFvJiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKG89W2c/cS5maXJzdENoaWxkOnEubGFzdENoaWxkXSxnJiZzKXttPXEsbD1tW3VdfHwobVt1XT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17fSksaj1rW2FdfHxbXSxuPWpbMF09PT13JiZqWzFdLHQ9biYmalsyXSxtPW4mJnEuY2hpbGROb2Rlc1tuXTt3aGlsZShtPSsrbiYmbSYmbVtwXXx8KHQ9bj0wKXx8by5wb3AoKSlpZigxPT09bS5ub2RlVHlwZSYmKyt0JiZtPT09Yil7a1thXT1bdyxuLHRdO2JyZWFrfX1lbHNlIGlmKHMmJihtPWIsbD1tW3VdfHwobVt1XT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17fSksaj1rW2FdfHxbXSxuPWpbMF09PT13JiZqWzFdLHQ9biksdD09PSExKXdoaWxlKG09KytuJiZtJiZtW3BdfHwodD1uPTApfHxvLnBvcCgpKWlmKChoP20ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXI6MT09PW0ubm9kZVR5cGUpJiYrK3QmJihzJiYobD1tW3VdfHwobVt1XT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17fSksa1thXT1bdyx0XSksbT09PWIpKWJyZWFrO3JldHVybiB0LT1lLHQ9PT1kfHx0JWQ9PT0wJiZ0L2Q+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKGEsYil7dmFyIGMsZT1kLnBzZXVkb3NbYV18fGQuc2V0RmlsdGVyc1thLnRvTG93ZXJDYXNlKCldfHxmYS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2EpO3JldHVybiBlW3VdP2UoYik6ZS5sZW5ndGg+MT8oYz1bYSxhLCIiLGJdLGQuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShhLnRvTG93ZXJDYXNlKCkpP2hhKGZ1bmN0aW9uKGEsYyl7dmFyIGQsZj1lKGEsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pZD1KKGEsZltnXSksYVtkXT0hKGNbZF09ZltnXSl9KTpmdW5jdGlvbihhKXtyZXR1cm4gZShhLDAsYyl9KTplfX0scHNldWRvczp7bm90OmhhKGZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9W10sZD1oKGEucmVwbGFjZShRLCIkMSIpKTtyZXR1cm4gZFt1XT9oYShmdW5jdGlvbihhLGIsYyxlKXt2YXIgZixnPWQoYSxudWxsLGUsW10pLGg9YS5sZW5ndGg7d2hpbGUoaC0tKShmPWdbaF0pJiYoYVtoXT0hKGJbaF09ZikpfSk6ZnVuY3Rpb24oYSxlLGYpe3JldHVybiBiWzBdPWEsZChiLG51bGwsZixjKSxiWzBdPW51bGwsIWMucG9wKCl9fSksaGFzOmhhKGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gZmEoYSxiKS5sZW5ndGg+MH19KSxjb250YWluczpoYShmdW5jdGlvbihhKXtyZXR1cm4gYT1hLnJlcGxhY2UoYmEsY2EpLGZ1bmN0aW9uKGIpe3JldHVybihiLnRleHRDb250ZW50fHxiLmlubmVyVGV4dHx8ZShiKSkuaW5kZXhPZihhKT4tMX19KSxsYW5nOmhhKGZ1bmN0aW9uKGEpe3JldHVybiBWLnRlc3QoYXx8IiIpfHxmYS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIithKSxhPWEucmVwbGFjZShiYSxjYSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihiKXt2YXIgYztkbyBpZihjPXA/Yi5sYW5nOmIuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxiLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybiBjPWMudG9Mb3dlckNhc2UoKSxjPT09YXx8MD09PWMuaW5kZXhPZihhKyItIik7d2hpbGUoKGI9Yi5wYXJlbnROb2RlKSYmMT09PWIubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbihiKXt2YXIgYz1hLmxvY2F0aW9uJiZhLmxvY2F0aW9uLmhhc2g7cmV0dXJuIGMmJmMuc2xpY2UoMSk9PT1iLmlkfSxyb290OmZ1bmN0aW9uKGEpe3JldHVybiBhPT09b30sZm9jdXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1uLmFjdGl2ZUVsZW1lbnQmJighbi5oYXNGb2N1c3x8bi5oYXNGb2N1cygpKSYmISEoYS50eXBlfHxhLmhyZWZ8fH5hLnRhYkluZGV4KX0sZW5hYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSExfSxkaXNhYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSEwfSxjaGVja2VkOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmISFhLmNoZWNrZWR8fCJvcHRpb24iPT09YiYmISFhLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxhLnNlbGVjdGVkPT09ITB9LGVtcHR5OmZ1bmN0aW9uKGEpe2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZylpZihhLm5vZGVUeXBlPDYpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4hZC5wc2V1ZG9zLmVtcHR5KGEpfSxoZWFkZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIFkudGVzdChhLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFgudGVzdChhLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmImJ1dHRvbiI9PT1hLnR5cGV8fCJidXR0b24iPT09Yn0sdGV4dDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4iaW5wdXQiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYidGV4dCI9PT1hLnR5cGUmJihudWxsPT0oYj1hLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09Yi50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6bmEoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0Om5hKGZ1bmN0aW9uKGEsYil7cmV0dXJuW2ItMV19KSxlcTpuYShmdW5jdGlvbihhLGIsYyl7cmV0dXJuWzA+Yz9jK2I6Y119KSxldmVuOm5hKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7Yj5jO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksb2RkOm5hKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTE7Yj5jO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksbHQ6bmEoZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wPmM/YytiOmM7LS1kPj0wOylhLnB1c2goZCk7cmV0dXJuIGF9KSxndDpuYShmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA+Yz9jK2I6YzsrK2Q8YjspYS5wdXNoKGQpO3JldHVybiBhfSl9fSxkLnBzZXVkb3MubnRoPWQucHNldWRvcy5lcTtmb3IoYiBpbntyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSlkLnBzZXVkb3NbYl09bGEoYik7Zm9yKGIgaW57c3VibWl0OiEwLHJlc2V0OiEwfSlkLnBzZXVkb3NbYl09bWEoYik7ZnVuY3Rpb24gcGEoKXt9cGEucHJvdG90eXBlPWQuZmlsdGVycz1kLnBzZXVkb3MsZC5zZXRGaWx0ZXJzPW5ldyBwYSxnPWZhLnRva2VuaXplPWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGcsaCxpLGosaz16W2ErIiAiXTtpZihrKXJldHVybiBiPzA6ay5zbGljZSgwKTtoPWEsaT1bXSxqPWQucHJlRmlsdGVyO3doaWxlKGgpe2MmJiEoZT1SLmV4ZWMoaCkpfHwoZSYmKGg9aC5zbGljZShlWzBdLmxlbmd0aCl8fGgpLGkucHVzaChmPVtdKSksYz0hMSwoZT1TLmV4ZWMoaCkpJiYoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZVswXS5yZXBsYWNlKFEsIiAiKX0pLGg9aC5zbGljZShjLmxlbmd0aCkpO2ZvcihnIGluIGQuZmlsdGVyKSEoZT1XW2ddLmV4ZWMoaCkpfHxqW2ddJiYhKGU9altnXShlKSl8fChjPWUuc2hpZnQoKSxmLnB1c2goe3ZhbHVlOmMsdHlwZTpnLG1hdGNoZXM6ZX0pLGg9aC5zbGljZShjLmxlbmd0aCkpO2lmKCFjKWJyZWFrfXJldHVybiBiP2gubGVuZ3RoOmg/ZmEuZXJyb3IoYSk6eihhLGkpLnNsaWNlKDApfTtmdW5jdGlvbiBxYShhKXtmb3IodmFyIGI9MCxjPWEubGVuZ3RoLGQ9IiI7Yz5iO2IrKylkKz1hW2JdLnZhbHVlO3JldHVybiBkfWZ1bmN0aW9uIHJhKGEsYixjKXt2YXIgZD1iLmRpcixlPWMmJiJwYXJlbnROb2RlIj09PWQsZj14Kys7cmV0dXJuIGIuZmlyc3Q/ZnVuY3Rpb24oYixjLGYpe3doaWxlKGI9YltkXSlpZigxPT09Yi5ub2RlVHlwZXx8ZSlyZXR1cm4gYShiLGMsZil9OmZ1bmN0aW9uKGIsYyxnKXt2YXIgaCxpLGosaz1bdyxmXTtpZihnKXt3aGlsZShiPWJbZF0paWYoKDE9PT1iLm5vZGVUeXBlfHxlKSYmYShiLGMsZykpcmV0dXJuITB9ZWxzZSB3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpe2lmKGo9Ylt1XXx8KGJbdV09e30pLGk9altiLnVuaXF1ZUlEXXx8KGpbYi51bmlxdWVJRF09e30pLChoPWlbZF0pJiZoWzBdPT09dyYmaFsxXT09PWYpcmV0dXJuIGtbMl09aFsyXTtpZihpW2RdPWssa1syXT1hKGIsYyxnKSlyZXR1cm4hMH19fWZ1bmN0aW9uIHNhKGEpe3JldHVybiBhLmxlbmd0aD4xP2Z1bmN0aW9uKGIsYyxkKXt2YXIgZT1hLmxlbmd0aDt3aGlsZShlLS0paWYoIWFbZV0oYixjLGQpKXJldHVybiExO3JldHVybiEwfTphWzBdfWZ1bmN0aW9uIHRhKGEsYixjKXtmb3IodmFyIGQ9MCxlPWIubGVuZ3RoO2U+ZDtkKyspZmEoYSxiW2RdLGMpO3JldHVybiBjfWZ1bmN0aW9uIHVhKGEsYixjLGQsZSl7Zm9yKHZhciBmLGc9W10saD0wLGk9YS5sZW5ndGgsaj1udWxsIT1iO2k+aDtoKyspKGY9YVtoXSkmJihjJiYhYyhmLGQsZSl8fChnLnB1c2goZiksaiYmYi5wdXNoKGgpKSk7cmV0dXJuIGd9ZnVuY3Rpb24gdmEoYSxiLGMsZCxlLGYpe3JldHVybiBkJiYhZFt1XSYmKGQ9dmEoZCkpLGUmJiFlW3VdJiYoZT12YShlLGYpKSxoYShmdW5jdGlvbihmLGcsaCxpKXt2YXIgaixrLGwsbT1bXSxuPVtdLG89Zy5sZW5ndGgscD1mfHx0YShifHwiKiIsaC5ub2RlVHlwZT9baF06aCxbXSkscT0hYXx8IWYmJmI/cDp1YShwLG0sYSxoLGkpLHI9Yz9lfHwoZj9hOm98fGQpP1tdOmc6cTtpZihjJiZjKHEscixoLGkpLGQpe2o9dWEocixuKSxkKGosW10saCxpKSxrPWoubGVuZ3RoO3doaWxlKGstLSkobD1qW2tdKSYmKHJbbltrXV09IShxW25ba11dPWwpKX1pZihmKXtpZihlfHxhKXtpZihlKXtqPVtdLGs9ci5sZW5ndGg7d2hpbGUoay0tKShsPXJba10pJiZqLnB1c2gocVtrXT1sKTtlKG51bGwscj1bXSxqLGkpfWs9ci5sZW5ndGg7d2hpbGUoay0tKShsPXJba10pJiYoaj1lP0ooZixsKTptW2tdKT4tMSYmKGZbal09IShnW2pdPWwpKX19ZWxzZSByPXVhKHI9PT1nP3Iuc3BsaWNlKG8sci5sZW5ndGgpOnIpLGU/ZShudWxsLGcscixpKTpILmFwcGx5KGcscil9KX1mdW5jdGlvbiB3YShhKXtmb3IodmFyIGIsYyxlLGY9YS5sZW5ndGgsZz1kLnJlbGF0aXZlW2FbMF0udHlwZV0saD1nfHxkLnJlbGF0aXZlWyIgIl0saT1nPzE6MCxrPXJhKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09Yn0saCwhMCksbD1yYShmdW5jdGlvbihhKXtyZXR1cm4gSihiLGEpPi0xfSxoLCEwKSxtPVtmdW5jdGlvbihhLGMsZCl7dmFyIGU9IWcmJihkfHxjIT09ail8fCgoYj1jKS5ub2RlVHlwZT9rKGEsYyxkKTpsKGEsYyxkKSk7cmV0dXJuIGI9bnVsbCxlfV07Zj5pO2krKylpZihjPWQucmVsYXRpdmVbYVtpXS50eXBlXSltPVtyYShzYShtKSxjKV07ZWxzZXtpZihjPWQuZmlsdGVyW2FbaV0udHlwZV0uYXBwbHkobnVsbCxhW2ldLm1hdGNoZXMpLGNbdV0pe2ZvcihlPSsraTtmPmU7ZSsrKWlmKGQucmVsYXRpdmVbYVtlXS50eXBlXSlicmVhaztyZXR1cm4gdmEoaT4xJiZzYShtKSxpPjEmJnFhKGEuc2xpY2UoMCxpLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09YVtpLTJdLnR5cGU/IioiOiIifSkpLnJlcGxhY2UoUSwiJDEiKSxjLGU+aSYmd2EoYS5zbGljZShpLGUpKSxmPmUmJndhKGE9YS5zbGljZShlKSksZj5lJiZxYShhKSl9bS5wdXNoKGMpfXJldHVybiBzYShtKX1mdW5jdGlvbiB4YShhLGIpe3ZhciBjPWIubGVuZ3RoPjAsZT1hLmxlbmd0aD4wLGY9ZnVuY3Rpb24oZixnLGgsaSxrKXt2YXIgbCxvLHEscj0wLHM9IjAiLHQ9ZiYmW10sdT1bXSx2PWoseD1mfHxlJiZkLmZpbmQuVEFHKCIqIixrKSx5PXcrPW51bGw9PXY/MTpNYXRoLnJhbmRvbSgpfHwuMSx6PXgubGVuZ3RoO2ZvcihrJiYoaj1nPT09bnx8Z3x8ayk7cyE9PXomJm51bGwhPShsPXhbc10pO3MrKyl7aWYoZSYmbCl7bz0wLGd8fGwub3duZXJEb2N1bWVudD09PW58fChtKGwpLGg9IXApO3doaWxlKHE9YVtvKytdKWlmKHEobCxnfHxuLGgpKXtpLnB1c2gobCk7YnJlYWt9ayYmKHc9eSl9YyYmKChsPSFxJiZsKSYmci0tLGYmJnQucHVzaChsKSl9aWYocis9cyxjJiZzIT09cil7bz0wO3doaWxlKHE9YltvKytdKXEodCx1LGcsaCk7aWYoZil7aWYocj4wKXdoaWxlKHMtLSl0W3NdfHx1W3NdfHwodVtzXT1GLmNhbGwoaSkpO3U9dWEodSl9SC5hcHBseShpLHUpLGsmJiFmJiZ1Lmxlbmd0aD4wJiZyK2IubGVuZ3RoPjEmJmZhLnVuaXF1ZVNvcnQoaSl9cmV0dXJuIGsmJih3PXksaj12KSx0fTtyZXR1cm4gYz9oYShmKTpmfXJldHVybiBoPWZhLmNvbXBpbGU9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9W10sZj1BW2ErIiAiXTtpZighZil7Ynx8KGI9ZyhhKSksYz1iLmxlbmd0aDt3aGlsZShjLS0pZj13YShiW2NdKSxmW3VdP2QucHVzaChmKTplLnB1c2goZik7Zj1BKGEseGEoZSxkKSksZi5zZWxlY3Rvcj1hfXJldHVybiBmfSxpPWZhLnNlbGVjdD1mdW5jdGlvbihhLGIsZSxmKXt2YXIgaSxqLGssbCxtLG49ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEsbz0hZiYmZyhhPW4uc2VsZWN0b3J8fGEpO2lmKGU9ZXx8W10sMT09PW8ubGVuZ3RoKXtpZihqPW9bMF09b1swXS5zbGljZSgwKSxqLmxlbmd0aD4yJiYiSUQiPT09KGs9alswXSkudHlwZSYmYy5nZXRCeUlkJiY5PT09Yi5ub2RlVHlwZSYmcCYmZC5yZWxhdGl2ZVtqWzFdLnR5cGVdKXtpZihiPShkLmZpbmQuSUQoay5tYXRjaGVzWzBdLnJlcGxhY2UoYmEsY2EpLGIpfHxbXSlbMF0sIWIpcmV0dXJuIGU7biYmKGI9Yi5wYXJlbnROb2RlKSxhPWEuc2xpY2Uoai5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9aT1XLm5lZWRzQ29udGV4dC50ZXN0KGEpPzA6ai5sZW5ndGg7d2hpbGUoaS0tKXtpZihrPWpbaV0sZC5yZWxhdGl2ZVtsPWsudHlwZV0pYnJlYWs7aWYoKG09ZC5maW5kW2xdKSYmKGY9bShrLm1hdGNoZXNbMF0ucmVwbGFjZShiYSxjYSksXy50ZXN0KGpbMF0udHlwZSkmJm9hKGIucGFyZW50Tm9kZSl8fGIpKSl7aWYoai5zcGxpY2UoaSwxKSxhPWYubGVuZ3RoJiZxYShqKSwhYSlyZXR1cm4gSC5hcHBseShlLGYpLGU7YnJlYWt9fX1yZXR1cm4obnx8aChhLG8pKShmLGIsIXAsZSwhYnx8Xy50ZXN0KGEpJiZvYShiLnBhcmVudE5vZGUpfHxiKSxlfSxjLnNvcnRTdGFibGU9dS5zcGxpdCgiIikuc29ydChCKS5qb2luKCIiKT09PXUsYy5kZXRlY3REdXBsaWNhdGVzPSEhbCxtKCksYy5zb3J0RGV0YWNoZWQ9aWEoZnVuY3Rpb24oYSl7cmV0dXJuIDEmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuLmNyZWF0ZUVsZW1lbnQoImRpdiIpKX0pLGlhKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGphKCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmEuZ2V0QXR0cmlidXRlKGIsInR5cGUiPT09Yi50b0xvd2VyQ2FzZSgpPzE6Mil9KSxjLmF0dHJpYnV0ZXMmJmlhKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGlucHV0Lz4iLGEuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT1hLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGphKCJ2YWx1ZSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjfHwiaW5wdXQiIT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP3ZvaWQgMDphLmRlZmF1bHRWYWx1ZX0pLGlhKGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxqYShLLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4gYz92b2lkIDA6YVtiXT09PSEwP2IudG9Mb3dlckNhc2UoKTooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZkLnNwZWNpZmllZD9kLnZhbHVlOm51bGx9KSxmYX0oYSk7bi5maW5kPXQsbi5leHByPXQuc2VsZWN0b3JzLG4uZXhwclsiOiJdPW4uZXhwci5wc2V1ZG9zLG4udW5pcXVlU29ydD1uLnVuaXF1ZT10LnVuaXF1ZVNvcnQsbi50ZXh0PXQuZ2V0VGV4dCxuLmlzWE1MRG9jPXQuaXNYTUwsbi5jb250YWlucz10LmNvbnRhaW5zO3ZhciB1PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPXZvaWQgMCE9PWM7d2hpbGUoKGE9YVtiXSkmJjkhPT1hLm5vZGVUeXBlKWlmKDE9PT1hLm5vZGVUeXBlKXtpZihlJiZuKGEpLmlzKGMpKWJyZWFrO2QucHVzaChhKX1yZXR1cm4gZH0sdj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXTthO2E9YS5uZXh0U2libGluZykxPT09YS5ub2RlVHlwZSYmYSE9PWImJmMucHVzaChhKTtyZXR1cm4gY30sdz1uLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LHg9L148KFtcdy1dKylccypcLz8+KD86PFwvXDE+fCkkLyx5PS9eLlteOiNcW1wuLF0qJC87ZnVuY3Rpb24geihhLGIsYyl7aWYobi5pc0Z1bmN0aW9uKGIpKXJldHVybiBuLmdyZXAoYSxmdW5jdGlvbihhLGQpe3JldHVybiEhYi5jYWxsKGEsZCxhKSE9PWN9KTtpZihiLm5vZGVUeXBlKXJldHVybiBuLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gYT09PWIhPT1jfSk7aWYoInN0cmluZyI9PXR5cGVvZiBiKXtpZih5LnRlc3QoYikpcmV0dXJuIG4uZmlsdGVyKGIsYSxjKTtiPW4uZmlsdGVyKGIsYSl9cmV0dXJuIG4uZ3JlcChhLGZ1bmN0aW9uKGEpe3JldHVybiBuLmluQXJyYXkoYSxiKT4tMSE9PWN9KX1uLmZpbHRlcj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YlswXTtyZXR1cm4gYyYmKGE9Ijpub3QoIithKyIpIiksMT09PWIubGVuZ3RoJiYxPT09ZC5ub2RlVHlwZT9uLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGQsYSk/W2RdOltdOm4uZmluZC5tYXRjaGVzKGEsbi5ncmVwKGIsZnVuY3Rpb24oYSl7cmV0dXJuIDE9PT1hLm5vZGVUeXBlfSkpfSxuLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXt2YXIgYixjPVtdLGQ9dGhpcyxlPWQubGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm4gdGhpcy5wdXNoU3RhY2sobihhKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2U+YjtiKyspaWYobi5jb250YWlucyhkW2JdLHRoaXMpKXJldHVybiEwfSkpO2ZvcihiPTA7ZT5iO2IrKyluLmZpbmQoYSxkW2JdLGMpO3JldHVybiBjPXRoaXMucHVzaFN0YWNrKGU+MT9uLnVuaXF1ZShjKTpjKSxjLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3I/dGhpcy5zZWxlY3RvcisiICIrYTphLGN9LGZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soeih0aGlzLGF8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soeih0aGlzLGF8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEheih0aGlzLCJzdHJpbmciPT10eXBlb2YgYSYmdy50ZXN0KGEpP24oYSk6YXx8W10sITEpLmxlbmd0aH19KTt2YXIgQSxCPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKikpJC8sQz1uLmZuLmluaXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGY7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYz1jfHxBLCJzdHJpbmciPT10eXBlb2YgYSl7aWYoZT0iPCI9PT1hLmNoYXJBdCgwKSYmIj4iPT09YS5jaGFyQXQoYS5sZW5ndGgtMSkmJmEubGVuZ3RoPj0zP1tudWxsLGEsbnVsbF06Qi5leGVjKGEpLCFlfHwhZVsxXSYmYilyZXR1cm4hYnx8Yi5qcXVlcnk/KGJ8fGMpLmZpbmQoYSk6dGhpcy5jb25zdHJ1Y3RvcihiKS5maW5kKGEpO2lmKGVbMV0pe2lmKGI9YiBpbnN0YW5jZW9mIG4/YlswXTpiLG4ubWVyZ2UodGhpcyxuLnBhcnNlSFRNTChlWzFdLGImJmIubm9kZVR5cGU/Yi5vd25lckRvY3VtZW50fHxiOmQsITApKSx4LnRlc3QoZVsxXSkmJm4uaXNQbGFpbk9iamVjdChiKSlmb3IoZSBpbiBiKW4uaXNGdW5jdGlvbih0aGlzW2VdKT90aGlzW2VdKGJbZV0pOnRoaXMuYXR0cihlLGJbZV0pO3JldHVybiB0aGlzfWlmKGY9ZC5nZXRFbGVtZW50QnlJZChlWzJdKSxmJiZmLnBhcmVudE5vZGUpe2lmKGYuaWQhPT1lWzJdKXJldHVybiBBLmZpbmQoYSk7dGhpcy5sZW5ndGg9MSx0aGlzWzBdPWZ9cmV0dXJuIHRoaXMuY29udGV4dD1kLHRoaXMuc2VsZWN0b3I9YSx0aGlzfXJldHVybiBhLm5vZGVUeXBlPyh0aGlzLmNvbnRleHQ9dGhpc1swXT1hLHRoaXMubGVuZ3RoPTEsdGhpcyk6bi5pc0Z1bmN0aW9uKGEpPyJ1bmRlZmluZWQiIT10eXBlb2YgYy5yZWFkeT9jLnJlYWR5KGEpOmEobik6KHZvaWQgMCE9PWEuc2VsZWN0b3ImJih0aGlzLnNlbGVjdG9yPWEuc2VsZWN0b3IsdGhpcy5jb250ZXh0PWEuY29udGV4dCksbi5tYWtlQXJyYXkoYSx0aGlzKSl9O0MucHJvdG90eXBlPW4uZm4sQT1uKGQpO3ZhciBEPS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLEU9e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07bi5mbi5leHRlbmQoe2hhczpmdW5jdGlvbihhKXt2YXIgYixjPW4oYSx0aGlzKSxkPWMubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2ZvcihiPTA7ZD5iO2IrKylpZihuLmNvbnRhaW5zKHRoaXMsY1tiXSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkPTAsZT10aGlzLmxlbmd0aCxmPVtdLGc9dy50ZXN0KGEpfHwic3RyaW5nIiE9dHlwZW9mIGE/bihhLGJ8fHRoaXMuY29udGV4dCk6MDtlPmQ7ZCsrKWZvcihjPXRoaXNbZF07YyYmYyE9PWI7Yz1jLnBhcmVudE5vZGUpaWYoYy5ub2RlVHlwZTwxMSYmKGc/Zy5pbmRleChjKT4tMToxPT09Yy5ub2RlVHlwZSYmbi5maW5kLm1hdGNoZXNTZWxlY3RvcihjLGEpKSl7Zi5wdXNoKGMpO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjayhmLmxlbmd0aD4xP24udW5pcXVlU29ydChmKTpmKX0saW5kZXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/InN0cmluZyI9PXR5cGVvZiBhP24uaW5BcnJheSh0aGlzWzBdLG4oYSkpOm4uaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobi51bmlxdWVTb3J0KG4ubWVyZ2UodGhpcy5nZXQoKSxuKGEsYikpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWE/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoYSkpfX0pO2Z1bmN0aW9uIEYoYSxiKXtkbyBhPWFbYl07d2hpbGUoYSYmMSE9PWEubm9kZVR5cGUpO3JldHVybiBhfW4uZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtyZXR1cm4gYiYmMTEhPT1iLm5vZGVUeXBlP2I6bnVsbH0scGFyZW50czpmdW5jdGlvbihhKXtyZXR1cm4gdShhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHUoYSwicGFyZW50Tm9kZSIsYyl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEYoYSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihhKXtyZXR1cm4gRihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gdShhLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGEpe3JldHVybiB1KGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB1KGEsIm5leHRTaWJsaW5nIixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdShhLCJwcmV2aW91c1NpYmxpbmciLGMpfSxzaWJsaW5nczpmdW5jdGlvbihhKXtyZXR1cm4gdigoYS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIHYoYS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIG4ubm9kZU5hbWUoYSwiaWZyYW1lIik/YS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDpuLm1lcmdlKFtdLGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihhLGIpe24uZm5bYV09ZnVuY3Rpb24oYyxkKXt2YXIgZT1uLm1hcCh0aGlzLGIsYyk7cmV0dXJuIlVudGlsIiE9PWEuc2xpY2UoLTUpJiYoZD1jKSxkJiYic3RyaW5nIj09dHlwZW9mIGQmJihlPW4uZmlsdGVyKGQsZSkpLHRoaXMubGVuZ3RoPjEmJihFW2FdfHwoZT1uLnVuaXF1ZVNvcnQoZSkpLEQudGVzdChhKSYmKGU9ZS5yZXZlcnNlKCkpKSx0aGlzLnB1c2hTdGFjayhlKX19KTt2YXIgRz0vXFMrL2c7ZnVuY3Rpb24gSChhKXt2YXIgYj17fTtyZXR1cm4gbi5lYWNoKGEubWF0Y2goRyl8fFtdLGZ1bmN0aW9uKGEsYyl7YltjXT0hMH0pLGJ9bi5DYWxsYmFja3M9ZnVuY3Rpb24oYSl7YT0ic3RyaW5nIj09dHlwZW9mIGE/SChhKTpuLmV4dGVuZCh7fSxhKTt2YXIgYixjLGQsZSxmPVtdLGc9W10saD0tMSxpPWZ1bmN0aW9uKCl7Zm9yKGU9YS5vbmNlLGQ9Yj0hMDtnLmxlbmd0aDtoPS0xKXtjPWcuc2hpZnQoKTt3aGlsZSgrK2g8Zi5sZW5ndGgpZltoXS5hcHBseShjWzBdLGNbMV0pPT09ITEmJmEuc3RvcE9uRmFsc2UmJihoPWYubGVuZ3RoLGM9ITEpfWEubWVtb3J5fHwoYz0hMSksYj0hMSxlJiYoZj1jP1tdOiIiKX0saj17YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIGYmJihjJiYhYiYmKGg9Zi5sZW5ndGgtMSxnLnB1c2goYykpLGZ1bmN0aW9uIGQoYil7bi5lYWNoKGIsZnVuY3Rpb24oYixjKXtuLmlzRnVuY3Rpb24oYyk/YS51bmlxdWUmJmouaGFzKGMpfHxmLnB1c2goYyk6YyYmYy5sZW5ndGgmJiJzdHJpbmciIT09bi50eXBlKGMpJiZkKGMpfSl9KGFyZ3VtZW50cyksYyYmIWImJmkoKSksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIG4uZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oYSxiKXt2YXIgYzt3aGlsZSgoYz1uLmluQXJyYXkoYixmLGMpKT4tMSlmLnNwbGljZShjLDEpLGg+PWMmJmgtLX0pLHRoaXN9LGhhczpmdW5jdGlvbihhKXtyZXR1cm4gYT9uLmluQXJyYXkoYSxmKT4tMTpmLmxlbmd0aD4wfSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBmJiYoZj1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBlPWc9W10sZj1jPSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIWZ9LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZT0hMCxjfHxqLmRpc2FibGUoKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWV9LGZpcmVXaXRoOmZ1bmN0aW9uKGEsYyl7cmV0dXJuIGV8fChjPWN8fFtdLGM9W2EsYy5zbGljZT9jLnNsaWNlKCk6Y10sZy5wdXNoKGMpLGJ8fGkoKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBqLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZH19O3JldHVybiBqfSxuLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9W1sicmVzb2x2ZSIsImRvbmUiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlamVjdGVkIl0sWyJub3RpZnkiLCJwcm9ncmVzcyIsbi5DYWxsYmFja3MoIm1lbW9yeSIpXV0sYz0icGVuZGluZyIsZD17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSx0aGVuOmZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzO3JldHVybiBuLkRlZmVycmVkKGZ1bmN0aW9uKGMpe24uZWFjaChiLGZ1bmN0aW9uKGIsZil7dmFyIGc9bi5pc0Z1bmN0aW9uKGFbYl0pJiZhW2JdO2VbZlsxXV0oZnVuY3Rpb24oKXt2YXIgYT1nJiZnLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthJiZuLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9hLnByb21pc2UoKS5wcm9ncmVzcyhjLm5vdGlmeSkuZG9uZShjLnJlc29sdmUpLmZhaWwoYy5yZWplY3QpOmNbZlswXSsiV2l0aCJdKHRoaXM9PT1kP2MucHJvbWlzZSgpOnRoaXMsZz9bYV06YXJndW1lbnRzKX0pfSksYT1udWxsfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hP24uZXh0ZW5kKGEsZCk6ZH19LGU9e307cmV0dXJuIGQucGlwZT1kLnRoZW4sbi5lYWNoKGIsZnVuY3Rpb24oYSxmKXt2YXIgZz1mWzJdLGg9ZlszXTtkW2ZbMV1dPWcuYWRkLGgmJmcuYWRkKGZ1bmN0aW9uKCl7Yz1ofSxiWzFeYV1bMl0uZGlzYWJsZSxiWzJdWzJdLmxvY2spLGVbZlswXV09ZnVuY3Rpb24oKXtyZXR1cm4gZVtmWzBdKyJXaXRoIl0odGhpcz09PWU/ZDp0aGlzLGFyZ3VtZW50cyksdGhpc30sZVtmWzBdKyJXaXRoIl09Zy5maXJlV2l0aH0pLGQucHJvbWlzZShlKSxhJiZhLmNhbGwoZSxlKSxlfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPTAsYz1lLmNhbGwoYXJndW1lbnRzKSxkPWMubGVuZ3RoLGY9MSE9PWR8fGEmJm4uaXNGdW5jdGlvbihhLnByb21pc2UpP2Q6MCxnPTE9PT1mP2E6bi5EZWZlcnJlZCgpLGg9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbihkKXtiW2FdPXRoaXMsY1thXT1hcmd1bWVudHMubGVuZ3RoPjE/ZS5jYWxsKGFyZ3VtZW50cyk6ZCxjPT09aT9nLm5vdGlmeVdpdGgoYixjKTotLWZ8fGcucmVzb2x2ZVdpdGgoYixjKX19LGksaixrO2lmKGQ+MSlmb3IoaT1uZXcgQXJyYXkoZCksaj1uZXcgQXJyYXkoZCksaz1uZXcgQXJyYXkoZCk7ZD5iO2IrKyljW2JdJiZuLmlzRnVuY3Rpb24oY1tiXS5wcm9taXNlKT9jW2JdLnByb21pc2UoKS5wcm9ncmVzcyhoKGIsaixpKSkuZG9uZShoKGIsayxjKSkuZmFpbChnLnJlamVjdCk6LS1mO3JldHVybiBmfHxnLnJlc29sdmVXaXRoKGssYyksZy5wcm9taXNlKCl9fSk7dmFyIEk7bi5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gbi5yZWFkeS5wcm9taXNlKCkuZG9uZShhKSx0aGlzfSxuLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxob2xkUmVhZHk6ZnVuY3Rpb24oYSl7YT9uLnJlYWR5V2FpdCsrOm4ucmVhZHkoITApfSxyZWFkeTpmdW5jdGlvbihhKXsoYT09PSEwPy0tbi5yZWFkeVdhaXQ6bi5pc1JlYWR5KXx8KG4uaXNSZWFkeT0hMCxhIT09ITAmJi0tbi5yZWFkeVdhaXQ+MHx8KEkucmVzb2x2ZVdpdGgoZCxbbl0pLG4uZm4udHJpZ2dlckhhbmRsZXImJihuKGQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpLG4oZCkub2ZmKCJyZWFkeSIpKSkpfX0pO2Z1bmN0aW9uIEooKXtkLmFkZEV2ZW50TGlzdGVuZXI/KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsSyksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixLKSk6KGQuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsSyksYS5kZXRhY2hFdmVudCgib25sb2FkIixLKSl9ZnVuY3Rpb24gSygpeyhkLmFkZEV2ZW50TGlzdGVuZXJ8fCJsb2FkIj09PWEuZXZlbnQudHlwZXx8ImNvbXBsZXRlIj09PWQucmVhZHlTdGF0ZSkmJihKKCksbi5yZWFkeSgpKX1uLnJlYWR5LnByb21pc2U9ZnVuY3Rpb24oYil7aWYoIUkpaWYoST1uLkRlZmVycmVkKCksImNvbXBsZXRlIj09PWQucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09ZC5yZWFkeVN0YXRlJiYhZC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwpYS5zZXRUaW1lb3V0KG4ucmVhZHkpO2Vsc2UgaWYoZC5hZGRFdmVudExpc3RlbmVyKWQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsSyksYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixLKTtlbHNle2QuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsSyksYS5hdHRhY2hFdmVudCgib25sb2FkIixLKTt2YXIgYz0hMTt0cnl7Yz1udWxsPT1hLmZyYW1lRWxlbWVudCYmZC5kb2N1bWVudEVsZW1lbnR9Y2F0Y2goZSl7fWMmJmMuZG9TY3JvbGwmJiFmdW5jdGlvbiBmKCl7aWYoIW4uaXNSZWFkeSl7dHJ5e2MuZG9TY3JvbGwoImxlZnQiKX1jYXRjaChiKXtyZXR1cm4gYS5zZXRUaW1lb3V0KGYsNTApfUooKSxuLnJlYWR5KCl9fSgpfXJldHVybiBJLnByb21pc2UoYil9LG4ucmVhZHkucHJvbWlzZSgpO3ZhciBMO2ZvcihMIGluIG4obCkpYnJlYWs7bC5vd25GaXJzdD0iMCI9PT1MLGwuaW5saW5lQmxvY2tOZWVkc0xheW91dD0hMSxuKGZ1bmN0aW9uKCl7dmFyIGEsYixjLGU7Yz1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0sYyYmYy5zdHlsZSYmKGI9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCIsYy5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZChiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGIuc3R5bGUuem9vbSYmKGIuc3R5bGUuY3NzVGV4dD0iZGlzcGxheTppbmxpbmU7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzoxcHg7d2lkdGg6MXB4O3pvb206MSIsbC5pbmxpbmVCbG9ja05lZWRzTGF5b3V0PWE9Mz09PWIub2Zmc2V0V2lkdGgsYSYmKGMuc3R5bGUuem9vbT0xKSksYy5yZW1vdmVDaGlsZChlKSl9KSxmdW5jdGlvbigpe3ZhciBhPWQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5kZWxldGVFeHBhbmRvPSEwO3RyeXtkZWxldGUgYS50ZXN0fWNhdGNoKGIpe2wuZGVsZXRlRXhwYW5kbz0hMX1hPW51bGx9KCk7dmFyIE09ZnVuY3Rpb24oYSl7dmFyIGI9bi5ub0RhdGFbKGEubm9kZU5hbWUrIiAiKS50b0xvd2VyQ2FzZSgpXSxjPSthLm5vZGVUeXBlfHwxO3JldHVybiAxIT09YyYmOSE9PWM/ITE6IWJ8fGIhPT0hMCYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzaWQiKT09PWJ9LE49L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxPPS8oW0EtWl0pL2c7ZnVuY3Rpb24gUChhLGIsYyl7aWYodm9pZCAwPT09YyYmMT09PWEubm9kZVR5cGUpe3ZhciBkPSJkYXRhLSIrYi5yZXBsYWNlKE8sIi0kMSIpLnRvTG93ZXJDYXNlKCk7aWYoYz1hLmdldEF0dHJpYnV0ZShkKSwic3RyaW5nIj09dHlwZW9mIGMpe3RyeXtjPSJ0cnVlIj09PWM/ITA6ImZhbHNlIj09PWM/ITE6Im51bGwiPT09Yz9udWxsOitjKyIiPT09Yz8rYzpOLnRlc3QoYyk/bi5wYXJzZUpTT04oYyk6Y31jYXRjaChlKXt9bi5kYXRhKGEsYixjKX1lbHNlIGM9dm9pZCAwOwp9cmV0dXJuIGN9ZnVuY3Rpb24gUShhKXt2YXIgYjtmb3IoYiBpbiBhKWlmKCgiZGF0YSIhPT1ifHwhbi5pc0VtcHR5T2JqZWN0KGFbYl0pKSYmInRvSlNPTiIhPT1iKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIFIoYSxiLGQsZSl7aWYoTShhKSl7dmFyIGYsZyxoPW4uZXhwYW5kbyxpPWEubm9kZVR5cGUsaj1pP24uY2FjaGU6YSxrPWk/YVtoXTphW2hdJiZoO2lmKGsmJmpba10mJihlfHxqW2tdLmRhdGEpfHx2b2lkIDAhPT1kfHwic3RyaW5nIiE9dHlwZW9mIGIpcmV0dXJuIGt8fChrPWk/YVtoXT1jLnBvcCgpfHxuLmd1aWQrKzpoKSxqW2tdfHwoaltrXT1pP3t9Ont0b0pTT046bi5ub29wfSksIm9iamVjdCIhPXR5cGVvZiBiJiYiZnVuY3Rpb24iIT10eXBlb2YgYnx8KGU/altrXT1uLmV4dGVuZChqW2tdLGIpOmpba10uZGF0YT1uLmV4dGVuZChqW2tdLmRhdGEsYikpLGc9altrXSxlfHwoZy5kYXRhfHwoZy5kYXRhPXt9KSxnPWcuZGF0YSksdm9pZCAwIT09ZCYmKGdbbi5jYW1lbENhc2UoYildPWQpLCJzdHJpbmciPT10eXBlb2YgYj8oZj1nW2JdLG51bGw9PWYmJihmPWdbbi5jYW1lbENhc2UoYildKSk6Zj1nLGZ9fWZ1bmN0aW9uIFMoYSxiLGMpe2lmKE0oYSkpe3ZhciBkLGUsZj1hLm5vZGVUeXBlLGc9Zj9uLmNhY2hlOmEsaD1mP2Fbbi5leHBhbmRvXTpuLmV4cGFuZG87aWYoZ1toXSl7aWYoYiYmKGQ9Yz9nW2hdOmdbaF0uZGF0YSkpe24uaXNBcnJheShiKT9iPWIuY29uY2F0KG4ubWFwKGIsbi5jYW1lbENhc2UpKTpiIGluIGQ/Yj1bYl06KGI9bi5jYW1lbENhc2UoYiksYj1iIGluIGQ/W2JdOmIuc3BsaXQoIiAiKSksZT1iLmxlbmd0aDt3aGlsZShlLS0pZGVsZXRlIGRbYltlXV07aWYoYz8hUShkKTohbi5pc0VtcHR5T2JqZWN0KGQpKXJldHVybn0oY3x8KGRlbGV0ZSBnW2hdLmRhdGEsUShnW2hdKSkpJiYoZj9uLmNsZWFuRGF0YShbYV0sITApOmwuZGVsZXRlRXhwYW5kb3x8ZyE9Zy53aW5kb3c/ZGVsZXRlIGdbaF06Z1toXT12b2lkIDApfX19bi5leHRlbmQoe2NhY2hlOnt9LG5vRGF0YTp7ImFwcGxldCAiOiEwLCJlbWJlZCAiOiEwLCJvYmplY3QgIjoiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIn0saGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gYT1hLm5vZGVUeXBlP24uY2FjaGVbYVtuLmV4cGFuZG9dXTphW24uZXhwYW5kb10sISFhJiYhUShhKX0sZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFIoYSxiLGMpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFMoYSxiKX0sX2RhdGE6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBSKGEsYixjLCEwKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUyhhLGIsITApfX0pLG4uZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9dGhpc1swXSxnPWYmJmYuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGU9bi5kYXRhKGYpLDE9PT1mLm5vZGVUeXBlJiYhbi5fZGF0YShmLCJwYXJzZWRBdHRycyIpKSl7Yz1nLmxlbmd0aDt3aGlsZShjLS0pZ1tjXSYmKGQ9Z1tjXS5uYW1lLDA9PT1kLmluZGV4T2YoImRhdGEtIikmJihkPW4uY2FtZWxDYXNlKGQuc2xpY2UoNSkpLFAoZixkLGVbZF0pKSk7bi5fZGF0YShmLCJwYXJzZWRBdHRycyIsITApfXJldHVybiBlfXJldHVybiJvYmplY3QiPT10eXBlb2YgYT90aGlzLmVhY2goZnVuY3Rpb24oKXtuLmRhdGEodGhpcyxhKX0pOmFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goZnVuY3Rpb24oKXtuLmRhdGEodGhpcyxhLGIpfSk6Zj9QKGYsYSxuLmRhdGEoZixhKSk6dm9pZCAwfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuLnJlbW92ZURhdGEodGhpcyxhKX0pfX0pLG4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGE/KGI9KGJ8fCJmeCIpKyJxdWV1ZSIsZD1uLl9kYXRhKGEsYiksYyYmKCFkfHxuLmlzQXJyYXkoYyk/ZD1uLl9kYXRhKGEsYixuLm1ha2VBcnJheShjKSk6ZC5wdXNoKGMpKSxkfHxbXSk6dm9pZCAwfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPW4ucXVldWUoYSxiKSxkPWMubGVuZ3RoLGU9Yy5zaGlmdCgpLGY9bi5fcXVldWVIb29rcyhhLGIpLGc9ZnVuY3Rpb24oKXtuLmRlcXVldWUoYSxiKX07ImlucHJvZ3Jlc3MiPT09ZSYmKGU9Yy5zaGlmdCgpLGQtLSksZSYmKCJmeCI9PT1iJiZjLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgZi5zdG9wLGUuY2FsbChhLGcsZikpLCFkJiZmJiZmLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gbi5fZGF0YShhLGMpfHxuLl9kYXRhKGEsYyx7ZW1wdHk6bi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7bi5fcmVtb3ZlRGF0YShhLGIrInF1ZXVlIiksbi5fcmVtb3ZlRGF0YShhLGMpfSl9KX19KSxuLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM/bi5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1uLnF1ZXVlKHRoaXMsYSxiKTtuLl9xdWV1ZUhvb2tzKHRoaXMsYSksImZ4Ij09PWEmJiJpbnByb2dyZXNzIiE9PWNbMF0mJm4uZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe24uZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTEsZT1uLkRlZmVycmVkKCksZj10aGlzLGc9dGhpcy5sZW5ndGgsaD1mdW5jdGlvbigpey0tZHx8ZS5yZXNvbHZlV2l0aChmLFtmXSl9OyJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCksYT1hfHwiZngiO3doaWxlKGctLSljPW4uX2RhdGEoZltnXSxhKyJxdWV1ZUhvb2tzIiksYyYmYy5lbXB0eSYmKGQrKyxjLmVtcHR5LmFkZChoKSk7cmV0dXJuIGgoKSxlLnByb21pc2UoYil9fSksZnVuY3Rpb24oKXt2YXIgYTtsLnNocmlua1dyYXBCbG9ja3M9ZnVuY3Rpb24oKXtpZihudWxsIT1hKXJldHVybiBhO2E9ITE7dmFyIGIsYyxlO3JldHVybiBjPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjJiZjLnN0eWxlPyhiPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZSkuYXBwZW5kQ2hpbGQoYiksInVuZGVmaW5lZCIhPXR5cGVvZiBiLnN0eWxlLnpvb20mJihiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGIuYXBwZW5kQ2hpbGQoZC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc3R5bGUud2lkdGg9IjVweCIsYT0zIT09Yi5vZmZzZXRXaWR0aCksYy5yZW1vdmVDaGlsZChlKSxhKTp2b2lkIDB9fSgpO3ZhciBUPS9bKy1dPyg/OlxkKlwufClcZCsoPzpbZUVdWystXT9cZCt8KS8uc291cmNlLFU9bmV3IFJlZ0V4cCgiXig/OihbKy1dKT18KSgiK1QrIikoW2EteiVdKikkIiwiaSIpLFY9WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxXPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9Ynx8YSwibm9uZSI9PT1uLmNzcyhhLCJkaXNwbGF5Iil8fCFuLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKX07ZnVuY3Rpb24gWChhLGIsYyxkKXt2YXIgZSxmPTEsZz0yMCxoPWQ/ZnVuY3Rpb24oKXtyZXR1cm4gZC5jdXIoKX06ZnVuY3Rpb24oKXtyZXR1cm4gbi5jc3MoYSxiLCIiKX0saT1oKCksaj1jJiZjWzNdfHwobi5jc3NOdW1iZXJbYl0/IiI6InB4Iiksaz0obi5jc3NOdW1iZXJbYl18fCJweCIhPT1qJiYraSkmJlUuZXhlYyhuLmNzcyhhLGIpKTtpZihrJiZrWzNdIT09ail7aj1qfHxrWzNdLGM9Y3x8W10saz0raXx8MTtkbyBmPWZ8fCIuNSIsay89ZixuLnN0eWxlKGEsYixrK2opO3doaWxlKGYhPT0oZj1oKCkvaSkmJjEhPT1mJiYtLWcpfXJldHVybiBjJiYoaz0ra3x8K2l8fDAsZT1jWzFdP2srKGNbMV0rMSkqY1syXTorY1syXSxkJiYoZC51bml0PWosZC5zdGFydD1rLGQuZW5kPWUpKSxlfXZhciBZPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3ZhciBoPTAsaT1hLmxlbmd0aCxqPW51bGw9PWM7aWYoIm9iamVjdCI9PT1uLnR5cGUoYykpe2U9ITA7Zm9yKGggaW4gYylZKGEsYixoLGNbaF0sITAsZixnKX1lbHNlIGlmKHZvaWQgMCE9PWQmJihlPSEwLG4uaXNGdW5jdGlvbihkKXx8KGc9ITApLGomJihnPyhiLmNhbGwoYSxkKSxiPW51bGwpOihqPWIsYj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGouY2FsbChuKGEpLGMpfSkpLGIpKWZvcig7aT5oO2grKyliKGFbaF0sYyxnP2Q6ZC5jYWxsKGFbaF0saCxiKGFbaF0sYykpKTtyZXR1cm4gZT9hOmo/Yi5jYWxsKGEpOmk/YihhWzBdLGMpOmZ9LFo9L14oPzpjaGVja2JveHxyYWRpbykkL2ksJD0vPChbXHc6LV0rKS8sXz0vXiR8XC8oPzpqYXZhfGVjbWEpc2NyaXB0L2ksYWE9L15ccysvLGJhPSJhYmJyfGFydGljbGV8YXNpZGV8YXVkaW98YmRpfGNhbnZhc3xkYXRhfGRhdGFsaXN0fGRldGFpbHN8ZGlhbG9nfGZpZ2NhcHRpb258ZmlndXJlfGZvb3RlcnxoZWFkZXJ8aGdyb3VwfG1haW58bWFya3xtZXRlcnxuYXZ8b3V0cHV0fHBpY3R1cmV8cHJvZ3Jlc3N8c2VjdGlvbnxzdW1tYXJ5fHRlbXBsYXRlfHRpbWV8dmlkZW8iO2Z1bmN0aW9uIGNhKGEpe3ZhciBiPWJhLnNwbGl0KCJ8IiksYz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihjLmNyZWF0ZUVsZW1lbnQpd2hpbGUoYi5sZW5ndGgpYy5jcmVhdGVFbGVtZW50KGIucG9wKCkpO3JldHVybiBjfSFmdW5jdGlvbigpe3ZhciBhPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksYj1kLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxjPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTthLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixsLmxlYWRpbmdXaGl0ZXNwYWNlPTM9PT1hLmZpcnN0Q2hpbGQubm9kZVR5cGUsbC50Ym9keT0hYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsbC5odG1sU2VyaWFsaXplPSEhYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxsLmh0bWw1Q2xvbmU9Ijw6bmF2PjwvOm5hdj4iIT09ZC5jcmVhdGVFbGVtZW50KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCxjLnR5cGU9ImNoZWNrYm94IixjLmNoZWNrZWQ9ITAsYi5hcHBlbmRDaGlsZChjKSxsLmFwcGVuZENoZWNrZWQ9Yy5jaGVja2VkLGEuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IixsLm5vQ2xvbmVDaGVja2VkPSEhYS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWUsYi5hcHBlbmRDaGlsZChhKSxjPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxjLnNldEF0dHJpYnV0ZSgidHlwZSIsInJhZGlvIiksYy5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCJjaGVja2VkIiksYy5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0IiksYS5hcHBlbmRDaGlsZChjKSxsLmNoZWNrQ2xvbmU9YS5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsbC5ub0Nsb25lRXZlbnQ9ISFhLmFkZEV2ZW50TGlzdGVuZXIsYVtuLmV4cGFuZG9dPTEsbC5hdHRyaWJ1dGVzPSFhLmdldEF0dHJpYnV0ZShuLmV4cGFuZG8pfSgpO3ZhciBkYT17b3B0aW9uOlsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0sbGVnZW5kOlsxLCI8ZmllbGRzZXQ+IiwiPC9maWVsZHNldD4iXSxhcmVhOlsxLCI8bWFwPiIsIjwvbWFwPiJdLHBhcmFtOlsxLCI8b2JqZWN0PiIsIjwvb2JqZWN0PiJdLHRoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSx0cjpbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6bC5odG1sU2VyaWFsaXplP1swLCIiLCIiXTpbMSwiWDxkaXY+IiwiPC9kaXY+Il19O2RhLm9wdGdyb3VwPWRhLm9wdGlvbixkYS50Ym9keT1kYS50Zm9vdD1kYS5jb2xncm91cD1kYS5jYXB0aW9uPWRhLnRoZWFkLGRhLnRoPWRhLnRkO2Z1bmN0aW9uIGVhKGEsYil7dmFyIGMsZCxlPTAsZj0idW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWU/YS5nZXRFbGVtZW50c0J5VGFnTmFtZShifHwiKiIpOiJ1bmRlZmluZWQiIT10eXBlb2YgYS5xdWVyeVNlbGVjdG9yQWxsP2EucXVlcnlTZWxlY3RvckFsbChifHwiKiIpOnZvaWQgMDtpZighZilmb3IoZj1bXSxjPWEuY2hpbGROb2Rlc3x8YTtudWxsIT0oZD1jW2VdKTtlKyspIWJ8fG4ubm9kZU5hbWUoZCxiKT9mLnB1c2goZCk6bi5tZXJnZShmLGVhKGQsYikpO3JldHVybiB2b2lkIDA9PT1ifHxiJiZuLm5vZGVOYW1lKGEsYik/bi5tZXJnZShbYV0sZik6Zn1mdW5jdGlvbiBmYShhLGIpe2Zvcih2YXIgYyxkPTA7bnVsbCE9KGM9YVtkXSk7ZCsrKW4uX2RhdGEoYywiZ2xvYmFsRXZhbCIsIWJ8fG4uX2RhdGEoYltkXSwiZ2xvYmFsRXZhbCIpKX12YXIgZ2E9Lzx8JiM/XHcrOy8saGE9Lzx0Ym9keS9pO2Z1bmN0aW9uIGlhKGEpe1oudGVzdChhLnR5cGUpJiYoYS5kZWZhdWx0Q2hlY2tlZD1hLmNoZWNrZWQpfWZ1bmN0aW9uIGphKGEsYixjLGQsZSl7Zm9yKHZhciBmLGcsaCxpLGosayxtLG89YS5sZW5ndGgscD1jYShiKSxxPVtdLHI9MDtvPnI7cisrKWlmKGc9YVtyXSxnfHwwPT09ZylpZigib2JqZWN0Ij09PW4udHlwZShnKSluLm1lcmdlKHEsZy5ub2RlVHlwZT9bZ106Zyk7ZWxzZSBpZihnYS50ZXN0KGcpKXtpPWl8fHAuYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KCJkaXYiKSksaj0oJC5leGVjKGcpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpLG09ZGFbal18fGRhLl9kZWZhdWx0LGkuaW5uZXJIVE1MPW1bMV0rbi5odG1sUHJlZmlsdGVyKGcpK21bMl0sZj1tWzBdO3doaWxlKGYtLSlpPWkubGFzdENoaWxkO2lmKCFsLmxlYWRpbmdXaGl0ZXNwYWNlJiZhYS50ZXN0KGcpJiZxLnB1c2goYi5jcmVhdGVUZXh0Tm9kZShhYS5leGVjKGcpWzBdKSksIWwudGJvZHkpe2c9InRhYmxlIiE9PWp8fGhhLnRlc3QoZyk/Ijx0YWJsZT4iIT09bVsxXXx8aGEudGVzdChnKT8wOmk6aS5maXJzdENoaWxkLGY9ZyYmZy5jaGlsZE5vZGVzLmxlbmd0aDt3aGlsZShmLS0pbi5ub2RlTmFtZShrPWcuY2hpbGROb2Rlc1tmXSwidGJvZHkiKSYmIWsuY2hpbGROb2Rlcy5sZW5ndGgmJmcucmVtb3ZlQ2hpbGQoayl9bi5tZXJnZShxLGkuY2hpbGROb2RlcyksaS50ZXh0Q29udGVudD0iIjt3aGlsZShpLmZpcnN0Q2hpbGQpaS5yZW1vdmVDaGlsZChpLmZpcnN0Q2hpbGQpO2k9cC5sYXN0Q2hpbGR9ZWxzZSBxLnB1c2goYi5jcmVhdGVUZXh0Tm9kZShnKSk7aSYmcC5yZW1vdmVDaGlsZChpKSxsLmFwcGVuZENoZWNrZWR8fG4uZ3JlcChlYShxLCJpbnB1dCIpLGlhKSxyPTA7d2hpbGUoZz1xW3IrK10paWYoZCYmbi5pbkFycmF5KGcsZCk+LTEpZSYmZS5wdXNoKGcpO2Vsc2UgaWYoaD1uLmNvbnRhaW5zKGcub3duZXJEb2N1bWVudCxnKSxpPWVhKHAuYXBwZW5kQ2hpbGQoZyksInNjcmlwdCIpLGgmJmZhKGkpLGMpe2Y9MDt3aGlsZShnPWlbZisrXSlfLnRlc3QoZy50eXBlfHwiIikmJmMucHVzaChnKX1yZXR1cm4gaT1udWxsLHB9IWZ1bmN0aW9uKCl7dmFyIGIsYyxlPWQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zm9yKGIgaW57c3VibWl0OiEwLGNoYW5nZTohMCxmb2N1c2luOiEwfSljPSJvbiIrYiwobFtiXT1jIGluIGEpfHwoZS5zZXRBdHRyaWJ1dGUoYywidCIpLGxbYl09ZS5hdHRyaWJ1dGVzW2NdLmV4cGFuZG89PT0hMSk7ZT1udWxsfSgpO3ZhciBrYT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksbGE9L15rZXkvLG1hPS9eKD86bW91c2V8cG9pbnRlcnxjb250ZXh0bWVudXxkcmFnfGRyb3ApfGNsaWNrLyxuYT0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sb2E9L14oW14uXSopKD86XC4oLispfCkvO2Z1bmN0aW9uIHBhKCl7cmV0dXJuITB9ZnVuY3Rpb24gcWEoKXtyZXR1cm4hMX1mdW5jdGlvbiByYSgpe3RyeXtyZXR1cm4gZC5hY3RpdmVFbGVtZW50fWNhdGNoKGEpe319ZnVuY3Rpb24gc2EoYSxiLGMsZCxlLGYpe3ZhciBnLGg7aWYoIm9iamVjdCI9PXR5cGVvZiBiKXsic3RyaW5nIiE9dHlwZW9mIGMmJihkPWR8fGMsYz12b2lkIDApO2ZvcihoIGluIGIpc2EoYSxoLGMsZCxiW2hdLGYpO3JldHVybiBhfWlmKG51bGw9PWQmJm51bGw9PWU/KGU9YyxkPWM9dm9pZCAwKTpudWxsPT1lJiYoInN0cmluZyI9PXR5cGVvZiBjPyhlPWQsZD12b2lkIDApOihlPWQsZD1jLGM9dm9pZCAwKSksZT09PSExKWU9cWE7ZWxzZSBpZighZSlyZXR1cm4gYTtyZXR1cm4gMT09PWYmJihnPWUsZT1mdW5jdGlvbihhKXtyZXR1cm4gbigpLm9mZihhKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZS5ndWlkPWcuZ3VpZHx8KGcuZ3VpZD1uLmd1aWQrKykpLGEuZWFjaChmdW5jdGlvbigpe24uZXZlbnQuYWRkKHRoaXMsYixlLGQsYyl9KX1uLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbSxvLHAscSxyPW4uX2RhdGEoYSk7aWYocil7Yy5oYW5kbGVyJiYoaT1jLGM9aS5oYW5kbGVyLGU9aS5zZWxlY3RvciksYy5ndWlkfHwoYy5ndWlkPW4uZ3VpZCsrKSwoZz1yLmV2ZW50cyl8fChnPXIuZXZlbnRzPXt9KSwoaz1yLmhhbmRsZSl8fChrPXIuaGFuZGxlPWZ1bmN0aW9uKGEpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2Ygbnx8YSYmbi5ldmVudC50cmlnZ2VyZWQ9PT1hLnR5cGU/dm9pZCAwOm4uZXZlbnQuZGlzcGF0Y2guYXBwbHkoay5lbGVtLGFyZ3VtZW50cyl9LGsuZWxlbT1hKSxiPShifHwiIikubWF0Y2goRyl8fFsiIl0saD1iLmxlbmd0aDt3aGlsZShoLS0pZj1vYS5leGVjKGJbaF0pfHxbXSxvPXE9ZlsxXSxwPShmWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyYmKGo9bi5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShlP2ouZGVsZWdhdGVUeXBlOmouYmluZFR5cGUpfHxvLGo9bi5ldmVudC5zcGVjaWFsW29dfHx7fSxsPW4uZXh0ZW5kKHt0eXBlOm8sb3JpZ1R5cGU6cSxkYXRhOmQsaGFuZGxlcjpjLGd1aWQ6Yy5ndWlkLHNlbGVjdG9yOmUsbmVlZHNDb250ZXh0OmUmJm4uZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChlKSxuYW1lc3BhY2U6cC5qb2luKCIuIil9LGkpLChtPWdbb10pfHwobT1nW29dPVtdLG0uZGVsZWdhdGVDb3VudD0wLGouc2V0dXAmJmouc2V0dXAuY2FsbChhLGQscCxrKSE9PSExfHwoYS5hZGRFdmVudExpc3RlbmVyP2EuYWRkRXZlbnRMaXN0ZW5lcihvLGssITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9uIitvLGspKSksai5hZGQmJihqLmFkZC5jYWxsKGEsbCksbC5oYW5kbGVyLmd1aWR8fChsLmhhbmRsZXIuZ3VpZD1jLmd1aWQpKSxlP20uc3BsaWNlKG0uZGVsZWdhdGVDb3VudCsrLDAsbCk6bS5wdXNoKGwpLG4uZXZlbnQuZ2xvYmFsW29dPSEwKTthPW51bGx9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxtLG8scCxxLHI9bi5oYXNEYXRhKGEpJiZuLl9kYXRhKGEpO2lmKHImJihrPXIuZXZlbnRzKSl7Yj0oYnx8IiIpLm1hdGNoKEcpfHxbIiJdLGo9Yi5sZW5ndGg7d2hpbGUoai0tKWlmKGg9b2EuZXhlYyhiW2pdKXx8W10sbz1xPWhbMV0scD0oaFsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLG8pe2w9bi5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShkP2wuZGVsZWdhdGVUeXBlOmwuYmluZFR5cGUpfHxvLG09a1tvXXx8W10saD1oWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIitwLmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpLGk9Zj1tLmxlbmd0aDt3aGlsZShmLS0pZz1tW2ZdLCFlJiZxIT09Zy5vcmlnVHlwZXx8YyYmYy5ndWlkIT09Zy5ndWlkfHxoJiYhaC50ZXN0KGcubmFtZXNwYWNlKXx8ZCYmZCE9PWcuc2VsZWN0b3ImJigiKioiIT09ZHx8IWcuc2VsZWN0b3IpfHwobS5zcGxpY2UoZiwxKSxnLnNlbGVjdG9yJiZtLmRlbGVnYXRlQ291bnQtLSxsLnJlbW92ZSYmbC5yZW1vdmUuY2FsbChhLGcpKTtpJiYhbS5sZW5ndGgmJihsLnRlYXJkb3duJiZsLnRlYXJkb3duLmNhbGwoYSxwLHIuaGFuZGxlKSE9PSExfHxuLnJlbW92ZUV2ZW50KGEsbyxyLmhhbmRsZSksZGVsZXRlIGtbb10pfWVsc2UgZm9yKG8gaW4gayluLmV2ZW50LnJlbW92ZShhLG8rYltqXSxjLGQsITApO24uaXNFbXB0eU9iamVjdChrKSYmKGRlbGV0ZSByLmhhbmRsZSxuLl9yZW1vdmVEYXRhKGEsImV2ZW50cyIpKX19LHRyaWdnZXI6ZnVuY3Rpb24oYixjLGUsZil7dmFyIGcsaCxpLGosbCxtLG8scD1bZXx8ZF0scT1rLmNhbGwoYiwidHlwZSIpP2IudHlwZTpiLHI9ay5jYWxsKGIsIm5hbWVzcGFjZSIpP2IubmFtZXNwYWNlLnNwbGl0KCIuIik6W107aWYoaT1tPWU9ZXx8ZCwzIT09ZS5ub2RlVHlwZSYmOCE9PWUubm9kZVR5cGUmJiFuYS50ZXN0KHErbi5ldmVudC50cmlnZ2VyZWQpJiYocS5pbmRleE9mKCIuIik+LTEmJihyPXEuc3BsaXQoIi4iKSxxPXIuc2hpZnQoKSxyLnNvcnQoKSksaD1xLmluZGV4T2YoIjoiKTwwJiYib24iK3EsYj1iW24uZXhwYW5kb10/YjpuZXcgbi5FdmVudChxLCJvYmplY3QiPT10eXBlb2YgYiYmYiksYi5pc1RyaWdnZXI9Zj8yOjMsYi5uYW1lc3BhY2U9ci5qb2luKCIuIiksYi5ybmFtZXNwYWNlPWIubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3Iuam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxiLnJlc3VsdD12b2lkIDAsYi50YXJnZXR8fChiLnRhcmdldD1lKSxjPW51bGw9PWM/W2JdOm4ubWFrZUFycmF5KGMsW2JdKSxsPW4uZXZlbnQuc3BlY2lhbFtxXXx8e30sZnx8IWwudHJpZ2dlcnx8bC50cmlnZ2VyLmFwcGx5KGUsYykhPT0hMSkpe2lmKCFmJiYhbC5ub0J1YmJsZSYmIW4uaXNXaW5kb3coZSkpe2ZvcihqPWwuZGVsZWdhdGVUeXBlfHxxLG5hLnRlc3QoaitxKXx8KGk9aS5wYXJlbnROb2RlKTtpO2k9aS5wYXJlbnROb2RlKXAucHVzaChpKSxtPWk7bT09PShlLm93bmVyRG9jdW1lbnR8fGQpJiZwLnB1c2gobS5kZWZhdWx0Vmlld3x8bS5wYXJlbnRXaW5kb3d8fGEpfW89MDt3aGlsZSgoaT1wW28rK10pJiYhYi5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWIudHlwZT1vPjE/ajpsLmJpbmRUeXBlfHxxLGc9KG4uX2RhdGEoaSwiZXZlbnRzIil8fHt9KVtiLnR5cGVdJiZuLl9kYXRhKGksImhhbmRsZSIpLGcmJmcuYXBwbHkoaSxjKSxnPWgmJmlbaF0sZyYmZy5hcHBseSYmTShpKSYmKGIucmVzdWx0PWcuYXBwbHkoaSxjKSxiLnJlc3VsdD09PSExJiZiLnByZXZlbnREZWZhdWx0KCkpO2lmKGIudHlwZT1xLCFmJiYhYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmKCFsLl9kZWZhdWx0fHxsLl9kZWZhdWx0LmFwcGx5KHAucG9wKCksYyk9PT0hMSkmJk0oZSkmJmgmJmVbcV0mJiFuLmlzV2luZG93KGUpKXttPWVbaF0sbSYmKGVbaF09bnVsbCksbi5ldmVudC50cmlnZ2VyZWQ9cTt0cnl7ZVtxXSgpfWNhdGNoKHMpe31uLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsbSYmKGVbaF09bSl9cmV0dXJuIGIucmVzdWx0fX0sZGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YT1uLmV2ZW50LmZpeChhKTt2YXIgYixjLGQsZixnLGg9W10saT1lLmNhbGwoYXJndW1lbnRzKSxqPShuLl9kYXRhKHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saz1uLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307aWYoaVswXT1hLGEuZGVsZWdhdGVUYXJnZXQ9dGhpcywhay5wcmVEaXNwYXRjaHx8ay5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkhPT0hMSl7aD1uLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxhLGopLGI9MDt3aGlsZSgoZj1oW2IrK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXthLmN1cnJlbnRUYXJnZXQ9Zi5lbGVtLGM9MDt3aGlsZSgoZz1mLmhhbmRsZXJzW2MrK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKWEucm5hbWVzcGFjZSYmIWEucm5hbWVzcGFjZS50ZXN0KGcubmFtZXNwYWNlKXx8KGEuaGFuZGxlT2JqPWcsYS5kYXRhPWcuZGF0YSxkPSgobi5ldmVudC5zcGVjaWFsW2cub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxnLmhhbmRsZXIpLmFwcGx5KGYuZWxlbSxpKSx2b2lkIDAhPT1kJiYoYS5yZXN1bHQ9ZCk9PT0hMSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpKSl9cmV0dXJuIGsucG9zdERpc3BhdGNoJiZrLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsYSksYS5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsaT1hLnRhcmdldDtpZihoJiZpLm5vZGVUeXBlJiYoImNsaWNrIiE9PWEudHlwZXx8aXNOYU4oYS5idXR0b24pfHxhLmJ1dHRvbjwxKSlmb3IoO2khPXRoaXM7aT1pLnBhcmVudE5vZGV8fHRoaXMpaWYoMT09PWkubm9kZVR5cGUmJihpLmRpc2FibGVkIT09ITB8fCJjbGljayIhPT1hLnR5cGUpKXtmb3IoZD1bXSxjPTA7aD5jO2MrKylmPWJbY10sZT1mLnNlbGVjdG9yKyIgIix2b2lkIDA9PT1kW2VdJiYoZFtlXT1mLm5lZWRzQ29udGV4dD9uKGUsdGhpcykuaW5kZXgoaSk+LTE6bi5maW5kKGUsdGhpcyxudWxsLFtpXSkubGVuZ3RoKSxkW2VdJiZkLnB1c2goZik7ZC5sZW5ndGgmJmcucHVzaCh7ZWxlbTppLGhhbmRsZXJzOmR9KX1yZXR1cm4gaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOnRoaXMsaGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGZpeDpmdW5jdGlvbihhKXtpZihhW24uZXhwYW5kb10pcmV0dXJuIGE7dmFyIGIsYyxlLGY9YS50eXBlLGc9YSxoPXRoaXMuZml4SG9va3NbZl07aHx8KHRoaXMuZml4SG9va3NbZl09aD1tYS50ZXN0KGYpP3RoaXMubW91c2VIb29rczpsYS50ZXN0KGYpP3RoaXMua2V5SG9va3M6e30pLGU9aC5wcm9wcz90aGlzLnByb3BzLmNvbmNhdChoLnByb3BzKTp0aGlzLnByb3BzLGE9bmV3IG4uRXZlbnQoZyksYj1lLmxlbmd0aDt3aGlsZShiLS0pYz1lW2JdLGFbY109Z1tjXTtyZXR1cm4gYS50YXJnZXR8fChhLnRhcmdldD1nLnNyY0VsZW1lbnR8fGQpLDM9PT1hLnRhcmdldC5ub2RlVHlwZSYmKGEudGFyZ2V0PWEudGFyZ2V0LnBhcmVudE5vZGUpLGEubWV0YUtleT0hIWEubWV0YUtleSxoLmZpbHRlcj9oLmZpbHRlcihhLGcpOmF9LHByb3BzOiJhbHRLZXkgYnViYmxlcyBjYW5jZWxhYmxlIGN0cmxLZXkgY3VycmVudFRhcmdldCBkZXRhaWwgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntwcm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbnVsbD09YS53aGljaCYmKGEud2hpY2g9bnVsbCE9Yi5jaGFyQ29kZT9iLmNoYXJDb2RlOmIua2V5Q29kZSksYX19LG1vdXNlSG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGc9Yi5idXR0b24saD1iLmZyb21FbGVtZW50O3JldHVybiBudWxsPT1hLnBhZ2VYJiZudWxsIT1iLmNsaWVudFgmJihlPWEudGFyZ2V0Lm93bmVyRG9jdW1lbnR8fGQsZj1lLmRvY3VtZW50RWxlbWVudCxjPWUuYm9keSxhLnBhZ2VYPWIuY2xpZW50WCsoZiYmZi5zY3JvbGxMZWZ0fHxjJiZjLnNjcm9sbExlZnR8fDApLShmJiZmLmNsaWVudExlZnR8fGMmJmMuY2xpZW50TGVmdHx8MCksYS5wYWdlWT1iLmNsaWVudFkrKGYmJmYuc2Nyb2xsVG9wfHxjJiZjLnNjcm9sbFRvcHx8MCktKGYmJmYuY2xpZW50VG9wfHxjJiZjLmNsaWVudFRvcHx8MCkpLCFhLnJlbGF0ZWRUYXJnZXQmJmgmJihhLnJlbGF0ZWRUYXJnZXQ9aD09PWEudGFyZ2V0P2IudG9FbGVtZW50OmgpLGEud2hpY2h8fHZvaWQgMD09PWd8fChhLndoaWNoPTEmZz8xOjImZz8zOjQmZz8yOjApLGF9fSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09cmEoKSYmdGhpcy5mb2N1cyl0cnl7cmV0dXJuIHRoaXMuZm9jdXMoKSwhMX1jYXRjaChhKXt9fSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM9PT1yYSgpJiZ0aGlzLmJsdXI/KHRoaXMuYmx1cigpLCExKTp2b2lkIDB9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiBuLm5vZGVOYW1lKHRoaXMsImlucHV0IikmJiJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2s/KHRoaXMuY2xpY2soKSwhMSk6dm9pZCAwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXtyZXR1cm4gbi5ub2RlTmFtZShhLnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW4uZXh0ZW5kKG5ldyBuLkV2ZW50LGMse3R5cGU6YSxpc1NpbXVsYXRlZDohMH0pO24uZXZlbnQudHJpZ2dlcihkLG51bGwsYiksZC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmYy5wcmV2ZW50RGVmYXVsdCgpfX0sbi5yZW1vdmVFdmVudD1kLnJlbW92ZUV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYyl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD0ib24iK2I7YS5kZXRhY2hFdmVudCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgYVtkXSYmKGFbZF09bnVsbCksYS5kZXRhY2hFdmVudChkLGMpKX0sbi5FdmVudD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzIGluc3RhbmNlb2Ygbi5FdmVudD8oYSYmYS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiZhLnJldHVyblZhbHVlPT09ITE/cGE6cWEpOnRoaXMudHlwZT1hLGImJm4uZXh0ZW5kKHRoaXMsYiksdGhpcy50aW1lU3RhbXA9YSYmYS50aW1lU3RhbXB8fG4ubm93KCksdm9pZCh0aGlzW24uZXhwYW5kb109ITApKTpuZXcgbi5FdmVudChhLGIpfSxuLkV2ZW50LnByb3RvdHlwZT17Y29uc3RydWN0b3I6bi5FdmVudCxpc0RlZmF1bHRQcmV2ZW50ZWQ6cWEsaXNQcm9wYWdhdGlvblN0b3BwZWQ6cWEsaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6cWEscHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9cGEsYSYmKGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmEucmV0dXJuVmFsdWU9ITEpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1wYSxhJiYhdGhpcy5pc1NpbXVsYXRlZCYmKGEuc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpLGEuY2FuY2VsQnViYmxlPSEwKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9cGEsYSYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24mJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LG4uZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXtuLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBjLGQ9dGhpcyxlPWEucmVsYXRlZFRhcmdldCxmPWEuaGFuZGxlT2JqO3JldHVybiBlJiYoZT09PWR8fG4uY29udGFpbnMoZCxlKSl8fChhLnR5cGU9Zi5vcmlnVHlwZSxjPWYuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksYS50eXBlPWIpLGN9fX0pLGwuc3VibWl0fHwobi5ldmVudC5zcGVjaWFsLnN1Ym1pdD17c2V0dXA6ZnVuY3Rpb24oKXtyZXR1cm4gbi5ub2RlTmFtZSh0aGlzLCJmb3JtIik/ITE6dm9pZCBuLmV2ZW50LmFkZCh0aGlzLCJjbGljay5fc3VibWl0IGtleXByZXNzLl9zdWJtaXQiLGZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0LGM9bi5ub2RlTmFtZShiLCJpbnB1dCIpfHxuLm5vZGVOYW1lKGIsImJ1dHRvbiIpP24ucHJvcChiLCJmb3JtIik6dm9pZCAwO2MmJiFuLl9kYXRhKGMsInN1Ym1pdCIpJiYobi5ldmVudC5hZGQoYywic3VibWl0Ll9zdWJtaXQiLGZ1bmN0aW9uKGEpe2EuX3N1Ym1pdEJ1YmJsZT0hMH0pLG4uX2RhdGEoYywic3VibWl0IiwhMCkpfSl9LHBvc3REaXNwYXRjaDpmdW5jdGlvbihhKXthLl9zdWJtaXRCdWJibGUmJihkZWxldGUgYS5fc3VibWl0QnViYmxlLHRoaXMucGFyZW50Tm9kZSYmIWEuaXNUcmlnZ2VyJiZuLmV2ZW50LnNpbXVsYXRlKCJzdWJtaXQiLHRoaXMucGFyZW50Tm9kZSxhKSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIG4ubm9kZU5hbWUodGhpcywiZm9ybSIpPyExOnZvaWQgbi5ldmVudC5yZW1vdmUodGhpcywiLl9zdWJtaXQiKX19KSxsLmNoYW5nZXx8KG4uZXZlbnQuc3BlY2lhbC5jaGFuZ2U9e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIGthLnRlc3QodGhpcy5ub2RlTmFtZSk/KCJjaGVja2JveCIhPT10aGlzLnR5cGUmJiJyYWRpbyIhPT10aGlzLnR5cGV8fChuLmV2ZW50LmFkZCh0aGlzLCJwcm9wZXJ0eWNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXsiY2hlY2tlZCI9PT1hLm9yaWdpbmFsRXZlbnQucHJvcGVydHlOYW1lJiYodGhpcy5fanVzdENoYW5nZWQ9ITApfSksbi5ldmVudC5hZGQodGhpcywiY2xpY2suX2NoYW5nZSIsZnVuY3Rpb24oYSl7dGhpcy5fanVzdENoYW5nZWQmJiFhLmlzVHJpZ2dlciYmKHRoaXMuX2p1c3RDaGFuZ2VkPSExKSxuLmV2ZW50LnNpbXVsYXRlKCJjaGFuZ2UiLHRoaXMsYSl9KSksITEpOnZvaWQgbi5ldmVudC5hZGQodGhpcywiYmVmb3JlYWN0aXZhdGUuX2NoYW5nZSIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQ7a2EudGVzdChiLm5vZGVOYW1lKSYmIW4uX2RhdGEoYiwiY2hhbmdlIikmJihuLmV2ZW50LmFkZChiLCJjaGFuZ2UuX2NoYW5nZSIsZnVuY3Rpb24oYSl7IXRoaXMucGFyZW50Tm9kZXx8YS5pc1NpbXVsYXRlZHx8YS5pc1RyaWdnZXJ8fG4uZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcy5wYXJlbnROb2RlLGEpfSksbi5fZGF0YShiLCJjaGFuZ2UiLCEwKSl9KX0saGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiB0aGlzIT09Ynx8YS5pc1NpbXVsYXRlZHx8YS5pc1RyaWdnZXJ8fCJyYWRpbyIhPT1iLnR5cGUmJiJjaGVja2JveCIhPT1iLnR5cGU/YS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfSx0ZWFyZG93bjpmdW5jdGlvbigpe3JldHVybiBuLmV2ZW50LnJlbW92ZSh0aGlzLCIuX2NoYW5nZSIpLCFrYS50ZXN0KHRoaXMubm9kZU5hbWUpfX0pLGwuZm9jdXNpbnx8bi5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGEpe24uZXZlbnQuc2ltdWxhdGUoYixhLnRhcmdldCxuLmV2ZW50LmZpeChhKSl9O24uZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMsZT1uLl9kYXRhKGQsYik7ZXx8ZC5hZGRFdmVudExpc3RlbmVyKGEsYywhMCksbi5fZGF0YShkLGIsKGV8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPW4uX2RhdGEoZCxiKS0xO2U/bi5fZGF0YShkLGIsZSk6KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLG4uX3JlbW92ZURhdGEoZCxiKSl9fX0pLG4uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gc2EodGhpcyxhLGIsYyxkKX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBzYSh0aGlzLGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZTtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZD1hLmhhbmRsZU9iaixuKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihkLm5hbWVzcGFjZT9kLm9yaWdUeXBlKyIuIitkLm5hbWVzcGFjZTpkLm9yaWdUeXBlLGQuc2VsZWN0b3IsZC5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGUgaW4gYSl0aGlzLm9mZihlLGIsYVtlXSk7cmV0dXJuIHRoaXN9cmV0dXJuIGIhPT0hMSYmImZ1bmN0aW9uIiE9dHlwZW9mIGJ8fChjPWIsYj12b2lkIDApLGM9PT0hMSYmKGM9cWEpLHRoaXMuZWFjaChmdW5jdGlvbigpe24uZXZlbnQucmVtb3ZlKHRoaXMsYSxjLGIpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bi5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXNbMF07cmV0dXJuIGM/bi5ldmVudC50cmlnZ2VyKGEsYixjLCEwKTp2b2lkIDB9fSk7dmFyIHRhPS8galF1ZXJ5XGQrPSIoPzpudWxsfFxkKykiL2csdWE9bmV3IFJlZ0V4cCgiPCg/OiIrYmErIilbXFxzLz5dIiwiaSIpLHZhPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcdzotXSspW14+XSopXC8+L2dpLHdhPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLHhhPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLHlhPS9edHJ1ZVwvKC4qKS8semE9L15ccyo8ISg/OlxbQ0RBVEFcW3wtLSl8KD86XF1cXXwtLSk+XHMqJC9nLEFhPWNhKGQpLEJhPUFhLmFwcGVuZENoaWxkKGQuY3JlYXRlRWxlbWVudCgiZGl2IikpO2Z1bmN0aW9uIENhKGEsYil7cmV0dXJuIG4ubm9kZU5hbWUoYSwidGFibGUiKSYmbi5ub2RlTmFtZSgxMSE9PWIubm9kZVR5cGU/YjpiLmZpcnN0Q2hpbGQsInRyIik/YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8YS5hcHBlbmRDaGlsZChhLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6YX1mdW5jdGlvbiBEYShhKXtyZXR1cm4gYS50eXBlPShudWxsIT09bi5maW5kLmF0dHIoYSwidHlwZSIpKSsiLyIrYS50eXBlLGF9ZnVuY3Rpb24gRWEoYSl7dmFyIGI9eWEuZXhlYyhhLnR5cGUpO3JldHVybiBiP2EudHlwZT1iWzFdOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksYX1mdW5jdGlvbiBGYShhLGIpe2lmKDE9PT1iLm5vZGVUeXBlJiZuLmhhc0RhdGEoYSkpe3ZhciBjLGQsZSxmPW4uX2RhdGEoYSksZz1uLl9kYXRhKGIsZiksaD1mLmV2ZW50cztpZihoKXtkZWxldGUgZy5oYW5kbGUsZy5ldmVudHM9e307Zm9yKGMgaW4gaClmb3IoZD0wLGU9aFtjXS5sZW5ndGg7ZT5kO2QrKyluLmV2ZW50LmFkZChiLGMsaFtjXVtkXSl9Zy5kYXRhJiYoZy5kYXRhPW4uZXh0ZW5kKHt9LGcuZGF0YSkpfX1mdW5jdGlvbiBHYShhLGIpe3ZhciBjLGQsZTtpZigxPT09Yi5ub2RlVHlwZSl7aWYoYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIWwubm9DbG9uZUV2ZW50JiZiW24uZXhwYW5kb10pe2U9bi5fZGF0YShiKTtmb3IoZCBpbiBlLmV2ZW50cyluLnJlbW92ZUV2ZW50KGIsZCxlLmhhbmRsZSk7Yi5yZW1vdmVBdHRyaWJ1dGUobi5leHBhbmRvKX0ic2NyaXB0Ij09PWMmJmIudGV4dCE9PWEudGV4dD8oRGEoYikudGV4dD1hLnRleHQsRWEoYikpOiJvYmplY3QiPT09Yz8oYi5wYXJlbnROb2RlJiYoYi5vdXRlckhUTUw9YS5vdXRlckhUTUwpLGwuaHRtbDVDbG9uZSYmYS5pbm5lckhUTUwmJiFuLnRyaW0oYi5pbm5lckhUTUwpJiYoYi5pbm5lckhUTUw9YS5pbm5lckhUTUwpKToiaW5wdXQiPT09YyYmWi50ZXN0KGEudHlwZSk/KGIuZGVmYXVsdENoZWNrZWQ9Yi5jaGVja2VkPWEuY2hlY2tlZCxiLnZhbHVlIT09YS52YWx1ZSYmKGIudmFsdWU9YS52YWx1ZSkpOiJvcHRpb24iPT09Yz9iLmRlZmF1bHRTZWxlY3RlZD1iLnNlbGVjdGVkPWEuZGVmYXVsdFNlbGVjdGVkOiJpbnB1dCIhPT1jJiYidGV4dGFyZWEiIT09Y3x8KGIuZGVmYXVsdFZhbHVlPWEuZGVmYXVsdFZhbHVlKX19ZnVuY3Rpb24gSGEoYSxiLGMsZCl7Yj1mLmFwcGx5KFtdLGIpO3ZhciBlLGcsaCxpLGosayxtPTAsbz1hLmxlbmd0aCxwPW8tMSxxPWJbMF0scj1uLmlzRnVuY3Rpb24ocSk7aWYocnx8bz4xJiYic3RyaW5nIj09dHlwZW9mIHEmJiFsLmNoZWNrQ2xvbmUmJnhhLnRlc3QocSkpcmV0dXJuIGEuZWFjaChmdW5jdGlvbihlKXt2YXIgZj1hLmVxKGUpO3ImJihiWzBdPXEuY2FsbCh0aGlzLGUsZi5odG1sKCkpKSxIYShmLGIsYyxkKX0pO2lmKG8mJihrPWphKGIsYVswXS5vd25lckRvY3VtZW50LCExLGEsZCksZT1rLmZpcnN0Q2hpbGQsMT09PWsuY2hpbGROb2Rlcy5sZW5ndGgmJihrPWUpLGV8fGQpKXtmb3IoaT1uLm1hcChlYShrLCJzY3JpcHQiKSxEYSksaD1pLmxlbmd0aDtvPm07bSsrKWc9ayxtIT09cCYmKGc9bi5jbG9uZShnLCEwLCEwKSxoJiZuLm1lcmdlKGksZWEoZywic2NyaXB0IikpKSxjLmNhbGwoYVttXSxnLG0pO2lmKGgpZm9yKGo9aVtpLmxlbmd0aC0xXS5vd25lckRvY3VtZW50LG4ubWFwKGksRWEpLG09MDtoPm07bSsrKWc9aVttXSxfLnRlc3QoZy50eXBlfHwiIikmJiFuLl9kYXRhKGcsImdsb2JhbEV2YWwiKSYmbi5jb250YWlucyhqLGcpJiYoZy5zcmM/bi5fZXZhbFVybCYmbi5fZXZhbFVybChnLnNyYyk6bi5nbG9iYWxFdmFsKChnLnRleHR8fGcudGV4dENvbnRlbnR8fGcuaW5uZXJIVE1MfHwiIikucmVwbGFjZSh6YSwiIikpKTtrPWU9bnVsbH1yZXR1cm4gYX1mdW5jdGlvbiBJYShhLGIsYyl7Zm9yKHZhciBkLGU9Yj9uLmZpbHRlcihiLGEpOmEsZj0wO251bGwhPShkPWVbZl0pO2YrKyljfHwxIT09ZC5ub2RlVHlwZXx8bi5jbGVhbkRhdGEoZWEoZCkpLGQucGFyZW50Tm9kZSYmKGMmJm4uY29udGFpbnMoZC5vd25lckRvY3VtZW50LGQpJiZmYShlYShkLCJzY3JpcHQiKSksZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGQpKTtyZXR1cm4gYX1uLmV4dGVuZCh7aHRtbFByZWZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKHZhLCI8JDE+PC8kMj4iKX0sY2xvbmU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaT1uLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKTtpZihsLmh0bWw1Q2xvbmV8fG4uaXNYTUxEb2MoYSl8fCF1YS50ZXN0KCI8IithLm5vZGVOYW1lKyI+Iik/Zj1hLmNsb25lTm9kZSghMCk6KEJhLmlubmVySFRNTD1hLm91dGVySFRNTCxCYS5yZW1vdmVDaGlsZChmPUJhLmZpcnN0Q2hpbGQpKSwhKGwubm9DbG9uZUV2ZW50JiZsLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxuLmlzWE1MRG9jKGEpKSlmb3IoZD1lYShmKSxoPWVhKGEpLGc9MDtudWxsIT0oZT1oW2ddKTsrK2cpZFtnXSYmR2EoZSxkW2ddKTtpZihiKWlmKGMpZm9yKGg9aHx8ZWEoYSksZD1kfHxlYShmKSxnPTA7bnVsbCE9KGU9aFtnXSk7ZysrKUZhKGUsZFtnXSk7ZWxzZSBGYShhLGYpO3JldHVybiBkPWVhKGYsInNjcmlwdCIpLGQubGVuZ3RoPjAmJmZhKGQsIWkmJmVhKGEsInNjcmlwdCIpKSxkPWg9ZT1udWxsLGZ9LGNsZWFuRGF0YTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgZCxlLGYsZyxoPTAsaT1uLmV4cGFuZG8saj1uLmNhY2hlLGs9bC5hdHRyaWJ1dGVzLG09bi5ldmVudC5zcGVjaWFsO251bGwhPShkPWFbaF0pO2grKylpZigoYnx8TShkKSkmJihmPWRbaV0sZz1mJiZqW2ZdKSl7aWYoZy5ldmVudHMpZm9yKGUgaW4gZy5ldmVudHMpbVtlXT9uLmV2ZW50LnJlbW92ZShkLGUpOm4ucmVtb3ZlRXZlbnQoZCxlLGcuaGFuZGxlKTtqW2ZdJiYoZGVsZXRlIGpbZl0sa3x8InVuZGVmaW5lZCI9PXR5cGVvZiBkLnJlbW92ZUF0dHJpYnV0ZT9kW2ldPXZvaWQgMDpkLnJlbW92ZUF0dHJpYnV0ZShpKSxjLnB1c2goZikpfX19KSxuLmZuLmV4dGVuZCh7ZG9tTWFuaXA6SGEsZGV0YWNoOmZ1bmN0aW9uKGEpe3JldHVybiBJYSh0aGlzLGEsITApfSxyZW1vdmU6ZnVuY3Rpb24oYSl7cmV0dXJuIElhKHRoaXMsYSl9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YT9uLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxkKS5jcmVhdGVUZXh0Tm9kZShhKSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIEhhKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj1DYSh0aGlzLGEpO2IuYXBwZW5kQ2hpbGQoYSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPUNhKHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcy5uZXh0U2libGluZyl9KX0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO251bGwhPShhPXRoaXNbYl0pO2IrKyl7MT09PWEubm9kZVR5cGUmJm4uY2xlYW5EYXRhKGVhKGEsITEpKTt3aGlsZShhLmZpcnN0Q2hpbGQpYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Eub3B0aW9ucyYmbi5ub2RlTmFtZShhLCJzZWxlY3QiKSYmKGEub3B0aW9ucy5sZW5ndGg9MCl9cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbD09YT8hMTphLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbi5jbG9uZSh0aGlzLGEsYil9KX0saHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF18fHt9LGM9MCxkPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWEpcmV0dXJuIDE9PT1iLm5vZGVUeXBlP2IuaW5uZXJIVE1MLnJlcGxhY2UodGEsIiIpOnZvaWQgMDtpZigic3RyaW5nIj09dHlwZW9mIGEmJiF3YS50ZXN0KGEpJiYobC5odG1sU2VyaWFsaXplfHwhdWEudGVzdChhKSkmJihsLmxlYWRpbmdXaGl0ZXNwYWNlfHwhYWEudGVzdChhKSkmJiFkYVsoJC5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7YT1uLmh0bWxQcmVmaWx0ZXIoYSk7dHJ5e2Zvcig7ZD5jO2MrKyliPXRoaXNbY118fHt9LDE9PT1iLm5vZGVUeXBlJiYobi5jbGVhbkRhdGEoZWEoYiwhMSkpLGIuaW5uZXJIVE1MPWEpO2I9MH1jYXRjaChlKXt9fWImJnRoaXMuZW1wdHkoKS5hcHBlbmQoYSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oKXt2YXIgYT1bXTtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYil7dmFyIGM9dGhpcy5wYXJlbnROb2RlO24uaW5BcnJheSh0aGlzLGEpPDAmJihuLmNsZWFuRGF0YShlYSh0aGlzKSksYyYmYy5yZXBsYWNlQ2hpbGQoYix0aGlzKSl9LGEpfX0pLG4uZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGEsYil7bi5mblthXT1mdW5jdGlvbihhKXtmb3IodmFyIGMsZD0wLGU9W10sZj1uKGEpLGg9Zi5sZW5ndGgtMTtoPj1kO2QrKyljPWQ9PT1oP3RoaXM6dGhpcy5jbG9uZSghMCksbihmW2RdKVtiXShjKSxnLmFwcGx5KGUsYy5nZXQoKSk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGUpfX0pO3ZhciBKYSxLYT17SFRNTDoiYmxvY2siLEJPRFk6ImJsb2NrIn07ZnVuY3Rpb24gTGEoYSxiKXt2YXIgYz1uKGIuY3JlYXRlRWxlbWVudChhKSkuYXBwZW5kVG8oYi5ib2R5KSxkPW4uY3NzKGNbMF0sImRpc3BsYXkiKTtyZXR1cm4gYy5kZXRhY2goKSxkfWZ1bmN0aW9uIE1hKGEpe3ZhciBiPWQsYz1LYVthXTtyZXR1cm4gY3x8KGM9TGEoYSxiKSwibm9uZSIhPT1jJiZjfHwoSmE9KEphfHxuKCI8aWZyYW1lIGZyYW1lYm9yZGVyPScwJyB3aWR0aD0nMCcgaGVpZ2h0PScwJy8+IikpLmFwcGVuZFRvKGIuZG9jdW1lbnRFbGVtZW50KSxiPShKYVswXS5jb250ZW50V2luZG93fHxKYVswXS5jb250ZW50RG9jdW1lbnQpLmRvY3VtZW50LGIud3JpdGUoKSxiLmNsb3NlKCksYz1MYShhLGIpLEphLmRldGFjaCgpKSxLYVthXT1jKSxjfXZhciBOYT0vXm1hcmdpbi8sT2E9bmV3IFJlZ0V4cCgiXigiK1QrIikoPyFweClbYS16JV0rJCIsImkiKSxQYT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc9e307Zm9yKGYgaW4gYilnW2ZdPWEuc3R5bGVbZl0sYS5zdHlsZVtmXT1iW2ZdO2U9Yy5hcHBseShhLGR8fFtdKTtmb3IoZiBpbiBiKWEuc3R5bGVbZl09Z1tmXTtyZXR1cm4gZX0sUWE9ZC5kb2N1bWVudEVsZW1lbnQ7IWZ1bmN0aW9uKCl7dmFyIGIsYyxlLGYsZyxoLGk9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxqPWQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYoai5zdHlsZSl7ai5zdHlsZS5jc3NUZXh0PSJmbG9hdDpsZWZ0O29wYWNpdHk6LjUiLGwub3BhY2l0eT0iMC41Ij09PWouc3R5bGUub3BhY2l0eSxsLmNzc0Zsb2F0PSEhai5zdHlsZS5jc3NGbG9hdCxqLnN0eWxlLmJhY2tncm91bmRDbGlwPSJjb250ZW50LWJveCIsai5jbG9uZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPSIiLGwuY2xlYXJDbG9uZVN0eWxlPSJjb250ZW50LWJveCI9PT1qLnN0eWxlLmJhY2tncm91bmRDbGlwLGk9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxpLnN0eWxlLmNzc1RleHQ9ImJvcmRlcjowO3dpZHRoOjhweDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHg7cGFkZGluZzowO21hcmdpbi10b3A6MXB4O3Bvc2l0aW9uOmFic29sdXRlIixqLmlubmVySFRNTD0iIixpLmFwcGVuZENoaWxkKGopLGwuYm94U2l6aW5nPSIiPT09ai5zdHlsZS5ib3hTaXppbmd8fCIiPT09ai5zdHlsZS5Nb3pCb3hTaXppbmd8fCIiPT09ai5zdHlsZS5XZWJraXRCb3hTaXppbmcsbi5leHRlbmQobCx7cmVsaWFibGVIaWRkZW5PZmZzZXRzOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxmfSxib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBudWxsPT1iJiZrKCksZX0scGl4ZWxNYXJnaW5SaWdodDpmdW5jdGlvbigpe3JldHVybiBudWxsPT1iJiZrKCksY30scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBudWxsPT1iJiZrKCksYn0scmVsaWFibGVNYXJnaW5SaWdodDpmdW5jdGlvbigpe3JldHVybiBudWxsPT1iJiZrKCksZ30scmVsaWFibGVNYXJnaW5MZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxofX0pO2Z1bmN0aW9uIGsoKXt2YXIgayxsLG09ZC5kb2N1bWVudEVsZW1lbnQ7bS5hcHBlbmRDaGlsZChpKSxqLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7dG9wOjElO3dpZHRoOjUwJSIsYj1lPWg9ITEsYz1nPSEwLGEuZ2V0Q29tcHV0ZWRTdHlsZSYmKGw9YS5nZXRDb21wdXRlZFN0eWxlKGopLGI9IjElIiE9PShsfHx7fSkudG9wLGg9IjJweCI9PT0obHx8e30pLm1hcmdpbkxlZnQsZT0iNHB4Ij09PShsfHx7d2lkdGg6IjRweCJ9KS53aWR0aCxqLnN0eWxlLm1hcmdpblJpZ2h0PSI1MCUiLGM9IjRweCI9PT0obHx8e21hcmdpblJpZ2h0OiI0cHgifSkubWFyZ2luUmlnaHQsaz1qLmFwcGVuZENoaWxkKGQuY3JlYXRlRWxlbWVudCgiZGl2IikpLGsuc3R5bGUuY3NzVGV4dD1qLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MCIsay5zdHlsZS5tYXJnaW5SaWdodD1rLnN0eWxlLndpZHRoPSIwIixqLnN0eWxlLndpZHRoPSIxcHgiLGc9IXBhcnNlRmxvYXQoKGEuZ2V0Q29tcHV0ZWRTdHlsZShrKXx8e30pLm1hcmdpblJpZ2h0KSxqLnJlbW92ZUNoaWxkKGspKSxqLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGY9MD09PWouZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgsZiYmKGouc3R5bGUuZGlzcGxheT0iIixqLmlubmVySFRNTD0iPHRhYmxlPjx0cj48dGQ+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiIsai5jaGlsZE5vZGVzWzBdLnN0eWxlLmJvcmRlckNvbGxhcHNlPSJzZXBhcmF0ZSIsaz1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZCIpLGtbMF0uc3R5bGUuY3NzVGV4dD0ibWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowO2Rpc3BsYXk6bm9uZSIsZj0wPT09a1swXS5vZmZzZXRIZWlnaHQsZiYmKGtbMF0uc3R5bGUuZGlzcGxheT0iIixrWzFdLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGY9MD09PWtbMF0ub2Zmc2V0SGVpZ2h0KSksbS5yZW1vdmVDaGlsZChpKX19fSgpO3ZhciBSYSxTYSxUYT0vXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQpJC87YS5nZXRDb21wdXRlZFN0eWxlPyhSYT1mdW5jdGlvbihiKXt2YXIgYz1iLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7cmV0dXJuIGMmJmMub3BlbmVyfHwoYz1hKSxjLmdldENvbXB1dGVkU3R5bGUoYil9LFNhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoPWEuc3R5bGU7cmV0dXJuIGM9Y3x8UmEoYSksZz1jP2MuZ2V0UHJvcGVydHlWYWx1ZShiKXx8Y1tiXTp2b2lkIDAsIiIhPT1nJiZ2b2lkIDAhPT1nfHxuLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKXx8KGc9bi5zdHlsZShhLGIpKSxjJiYhbC5waXhlbE1hcmdpblJpZ2h0KCkmJk9hLnRlc3QoZykmJk5hLnRlc3QoYikmJihkPWgud2lkdGgsZT1oLm1pbldpZHRoLGY9aC5tYXhXaWR0aCxoLm1pbldpZHRoPWgubWF4V2lkdGg9aC53aWR0aD1nLGc9Yy53aWR0aCxoLndpZHRoPWQsaC5taW5XaWR0aD1lLGgubWF4V2lkdGg9Ziksdm9pZCAwPT09Zz9nOmcrIiJ9KTpRYS5jdXJyZW50U3R5bGUmJihSYT1mdW5jdGlvbihhKXtyZXR1cm4gYS5jdXJyZW50U3R5bGV9LFNhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoPWEuc3R5bGU7cmV0dXJuIGM9Y3x8UmEoYSksZz1jP2NbYl06dm9pZCAwLG51bGw9PWcmJmgmJmhbYl0mJihnPWhbYl0pLE9hLnRlc3QoZykmJiFUYS50ZXN0KGIpJiYoZD1oLmxlZnQsZT1hLnJ1bnRpbWVTdHlsZSxmPWUmJmUubGVmdCxmJiYoZS5sZWZ0PWEuY3VycmVudFN0eWxlLmxlZnQpLGgubGVmdD0iZm9udFNpemUiPT09Yj8iMWVtIjpnLGc9aC5waXhlbExlZnQrInB4IixoLmxlZnQ9ZCxmJiYoZS5sZWZ0PWYpKSx2b2lkIDA9PT1nP2c6ZysiInx8ImF1dG8ifSk7ZnVuY3Rpb24gVWEoYSxiKXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEoKT92b2lkIGRlbGV0ZSB0aGlzLmdldDoodGhpcy5nZXQ9YikuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19dmFyIFZhPS9hbHBoYVwoW14pXSpcKS9pLFdhPS9vcGFjaXR5XHMqPVxzKihbXildKikvaSxYYT0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8sWWE9bmV3IFJlZ0V4cCgiXigiK1QrIikoLiopJCIsImkiKSxaYT17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sJGE9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9LF9hPVsiV2Via2l0IiwiTyIsIk1veiIsIm1zIl0sYWI9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZTtmdW5jdGlvbiBiYihhKXtpZihhIGluIGFiKXJldHVybiBhO3ZhciBiPWEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYS5zbGljZSgxKSxjPV9hLmxlbmd0aDt3aGlsZShjLS0paWYoYT1fYVtjXStiLGEgaW4gYWIpcmV0dXJuIGF9ZnVuY3Rpb24gY2IoYSxiKXtmb3IodmFyIGMsZCxlLGY9W10sZz0wLGg9YS5sZW5ndGg7aD5nO2crKylkPWFbZ10sZC5zdHlsZSYmKGZbZ109bi5fZGF0YShkLCJvbGRkaXNwbGF5IiksYz1kLnN0eWxlLmRpc3BsYXksYj8oZltnXXx8Im5vbmUiIT09Y3x8KGQuc3R5bGUuZGlzcGxheT0iIiksIiI9PT1kLnN0eWxlLmRpc3BsYXkmJlcoZCkmJihmW2ddPW4uX2RhdGEoZCwib2xkZGlzcGxheSIsTWEoZC5ub2RlTmFtZSkpKSk6KGU9VyhkKSwoYyYmIm5vbmUiIT09Y3x8IWUpJiZuLl9kYXRhKGQsIm9sZGRpc3BsYXkiLGU/YzpuLmNzcyhkLCJkaXNwbGF5IikpKSk7Zm9yKGc9MDtoPmc7ZysrKWQ9YVtnXSxkLnN0eWxlJiYoYiYmIm5vbmUiIT09ZC5zdHlsZS5kaXNwbGF5JiYiIiE9PWQuc3R5bGUuZGlzcGxheXx8KGQuc3R5bGUuZGlzcGxheT1iP2ZbZ118fCIiOiJub25lIikpO3JldHVybiBhfWZ1bmN0aW9uIGRiKGEsYixjKXt2YXIgZD1ZYS5leGVjKGIpO3JldHVybiBkP01hdGgubWF4KDAsZFsxXS0oY3x8MCkpKyhkWzJdfHwicHgiKTpifWZ1bmN0aW9uIGViKGEsYixjLGQsZSl7Zm9yKHZhciBmPWM9PT0oZD8iYm9yZGVyIjoiY29udGVudCIpPzQ6IndpZHRoIj09PWI/MTowLGc9MDs0PmY7Zis9MikibWFyZ2luIj09PWMmJihnKz1uLmNzcyhhLGMrVltmXSwhMCxlKSksZD8oImNvbnRlbnQiPT09YyYmKGctPW4uY3NzKGEsInBhZGRpbmciK1ZbZl0sITAsZSkpLCJtYXJnaW4iIT09YyYmKGctPW4uY3NzKGEsImJvcmRlciIrVltmXSsiV2lkdGgiLCEwLGUpKSk6KGcrPW4uY3NzKGEsInBhZGRpbmciK1ZbZl0sITAsZSksInBhZGRpbmciIT09YyYmKGcrPW4uY3NzKGEsImJvcmRlciIrVltmXSsiV2lkdGgiLCEwLGUpKSk7cmV0dXJuIGd9ZnVuY3Rpb24gZmIoYSxiLGMpe3ZhciBkPSEwLGU9IndpZHRoIj09PWI/YS5vZmZzZXRXaWR0aDphLm9mZnNldEhlaWdodCxmPVJhKGEpLGc9bC5ib3hTaXppbmcmJiJib3JkZXItYm94Ij09PW4uY3NzKGEsImJveFNpemluZyIsITEsZik7aWYoMD49ZXx8bnVsbD09ZSl7aWYoZT1TYShhLGIsZiksKDA+ZXx8bnVsbD09ZSkmJihlPWEuc3R5bGVbYl0pLE9hLnRlc3QoZSkpcmV0dXJuIGU7ZD1nJiYobC5ib3hTaXppbmdSZWxpYWJsZSgpfHxlPT09YS5zdHlsZVtiXSksZT1wYXJzZUZsb2F0KGUpfHwwfXJldHVybiBlK2ViKGEsYixjfHwoZz8iYm9yZGVyIjoiY29udGVudCIpLGQsZikrInB4In1uLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihhLGIpe2lmKGIpe3ZhciBjPVNhKGEsIm9wYWNpdHkiKTtyZXR1cm4iIj09PWM/IjEiOmN9fX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMH0sY3NzUHJvcHM6eyJmbG9hdCI6bC5jc3NGbG9hdD8iY3NzRmxvYXQiOiJzdHlsZUZsb2F0In0sc3R5bGU6ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSYmMyE9PWEubm9kZVR5cGUmJjghPT1hLm5vZGVUeXBlJiZhLnN0eWxlKXt2YXIgZSxmLGcsaD1uLmNhbWVsQ2FzZShiKSxpPWEuc3R5bGU7aWYoYj1uLmNzc1Byb3BzW2hdfHwobi5jc3NQcm9wc1toXT1iYihoKXx8aCksZz1uLmNzc0hvb2tzW2JdfHxuLmNzc0hvb2tzW2hdLHZvaWQgMD09PWMpcmV0dXJuIGcmJiJnZXQiaW4gZyYmdm9pZCAwIT09KGU9Zy5nZXQoYSwhMSxkKSk/ZTppW2JdO2lmKGY9dHlwZW9mIGMsInN0cmluZyI9PT1mJiYoZT1VLmV4ZWMoYykpJiZlWzFdJiYoYz1YKGEsYixlKSxmPSJudW1iZXIiKSxudWxsIT1jJiZjPT09YyYmKCJudW1iZXIiPT09ZiYmKGMrPWUmJmVbM118fChuLmNzc051bWJlcltoXT8iIjoicHgiKSksbC5jbGVhckNsb25lU3R5bGV8fCIiIT09Y3x8MCE9PWIuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwoaVtiXT0iaW5oZXJpdCIpLCEoZyYmInNldCJpbiBnJiZ2b2lkIDA9PT0oYz1nLnNldChhLGMsZCkpKSkpdHJ5e2lbYl09Y31jYXRjaChqKXt9fX0sY3NzOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZyxoPW4uY2FtZWxDYXNlKGIpO3JldHVybiBiPW4uY3NzUHJvcHNbaF18fChuLmNzc1Byb3BzW2hdPWJiKGgpfHxoKSxnPW4uY3NzSG9va3NbYl18fG4uY3NzSG9va3NbaF0sZyYmImdldCJpbiBnJiYoZj1nLmdldChhLCEwLGMpKSx2b2lkIDA9PT1mJiYoZj1TYShhLGIsZCkpLCJub3JtYWwiPT09ZiYmYiBpbiAkYSYmKGY9JGFbYl0pLCIiPT09Y3x8Yz8oZT1wYXJzZUZsb2F0KGYpLGM9PT0hMHx8aXNGaW5pdGUoZSk/ZXx8MDpmKTpmfX0pLG4uZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oYSxiKXtuLmNzc0hvb2tzW2JdPXtnZXQ6ZnVuY3Rpb24oYSxjLGQpe3JldHVybiBjP1hhLnRlc3Qobi5jc3MoYSwiZGlzcGxheSIpKSYmMD09PWEub2Zmc2V0V2lkdGg/UGEoYSxaYSxmdW5jdGlvbigpe3JldHVybiBmYihhLGIsZCl9KTpmYihhLGIsZCk6dm9pZCAwfSxzZXQ6ZnVuY3Rpb24oYSxjLGQpe3ZhciBlPWQmJlJhKGEpO3JldHVybiBkYihhLGMsZD9lYihhLGIsZCxsLmJveFNpemluZyYmImJvcmRlci1ib3giPT09bi5jc3MoYSwiYm94U2l6aW5nIiwhMSxlKSxlKTowKX19fSksbC5vcGFjaXR5fHwobi5jc3NIb29rcy5vcGFjaXR5PXtnZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gV2EudGVzdCgoYiYmYS5jdXJyZW50U3R5bGU/YS5jdXJyZW50U3R5bGUuZmlsdGVyOmEuc3R5bGUuZmlsdGVyKXx8IiIpPy4wMSpwYXJzZUZsb2F0KFJlZ0V4cC4kMSkrIiI6Yj8iMSI6IiJ9LHNldDpmdW5jdGlvbihhLGIpe3ZhciBjPWEuc3R5bGUsZD1hLmN1cnJlbnRTdHlsZSxlPW4uaXNOdW1lcmljKGIpPyJhbHBoYShvcGFjaXR5PSIrMTAwKmIrIikiOiIiLGY9ZCYmZC5maWx0ZXJ8fGMuZmlsdGVyfHwiIjtjLnpvb209MSwoYj49MXx8IiI9PT1iKSYmIiI9PT1uLnRyaW0oZi5yZXBsYWNlKFZhLCIiKSkmJmMucmVtb3ZlQXR0cmlidXRlJiYoYy5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIpLCIiPT09Ynx8ZCYmIWQuZmlsdGVyKXx8KGMuZmlsdGVyPVZhLnRlc3QoZik/Zi5yZXBsYWNlKFZhLGUpOmYrIiAiK2UpfX0pLG4uY3NzSG9va3MubWFyZ2luUmlnaHQ9VWEobC5yZWxpYWJsZU1hcmdpblJpZ2h0LGZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/UGEoYSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sU2EsW2EsIm1hcmdpblJpZ2h0Il0pOnZvaWQgMH0pLG4uY3NzSG9va3MubWFyZ2luTGVmdD1VYShsLnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihhLGIpe3JldHVybiBiPyhwYXJzZUZsb2F0KFNhKGEsIm1hcmdpbkxlZnQiKSl8fChuLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKT9hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtUGEoYSx7Cm1hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSk6MCkpKyJweCI6dm9pZCAwfSksbi5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxiKXtuLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXtmb3IodmFyIGQ9MCxlPXt9LGY9InN0cmluZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAiKTpbY107ND5kO2QrKyllW2ErVltkXStiXT1mW2RdfHxmW2QtMl18fGZbMF07cmV0dXJuIGV9fSxOYS50ZXN0KGEpfHwobi5jc3NIb29rc1thK2JdLnNldD1kYil9KSxuLmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPXt9LGc9MDtpZihuLmlzQXJyYXkoYikpe2ZvcihkPVJhKGEpLGU9Yi5sZW5ndGg7ZT5nO2crKylmW2JbZ11dPW4uY3NzKGEsYltnXSwhMSxkKTtyZXR1cm4gZn1yZXR1cm4gdm9pZCAwIT09Yz9uLnN0eWxlKGEsYixjKTpuLmNzcyhhLGIpfSxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0sc2hvdzpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGEpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGE/YT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtXKHRoaXMpP24odGhpcykuc2hvdygpOm4odGhpcykuaGlkZSgpfSl9fSk7ZnVuY3Rpb24gZ2IoYSxiLGMsZCxlKXtyZXR1cm4gbmV3IGdiLnByb3RvdHlwZS5pbml0KGEsYixjLGQsZSl9bi5Ud2Vlbj1nYixnYi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmdiLGluaXQ6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3RoaXMuZWxlbT1hLHRoaXMucHJvcD1jLHRoaXMuZWFzaW5nPWV8fG4uZWFzaW5nLl9kZWZhdWx0LHRoaXMub3B0aW9ucz1iLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1kLHRoaXMudW5pdD1mfHwobi5jc3NOdW1iZXJbY10/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciBhPWdiLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiBhJiZhLmdldD9hLmdldCh0aGlzKTpnYi5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24oYSl7dmFyIGIsYz1nYi5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPWI9bi5lYXNpbmdbdGhpcy5lYXNpbmddKGEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmEsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9Yj1hLHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSpiK3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLGMmJmMuc2V0P2Muc2V0KHRoaXMpOmdiLnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319LGdiLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZT1nYi5wcm90b3R5cGUsZ2IucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiAxIT09YS5lbGVtLm5vZGVUeXBlfHxudWxsIT1hLmVsZW1bYS5wcm9wXSYmbnVsbD09YS5lbGVtLnN0eWxlW2EucHJvcF0/YS5lbGVtW2EucHJvcF06KGI9bi5jc3MoYS5lbGVtLGEucHJvcCwiIiksYiYmImF1dG8iIT09Yj9iOjApfSxzZXQ6ZnVuY3Rpb24oYSl7bi5meC5zdGVwW2EucHJvcF0/bi5meC5zdGVwW2EucHJvcF0oYSk6MSE9PWEuZWxlbS5ub2RlVHlwZXx8bnVsbD09YS5lbGVtLnN0eWxlW24uY3NzUHJvcHNbYS5wcm9wXV0mJiFuLmNzc0hvb2tzW2EucHJvcF0/YS5lbGVtW2EucHJvcF09YS5ub3c6bi5zdHlsZShhLmVsZW0sYS5wcm9wLGEubm93K2EudW5pdCl9fX0sZ2IucHJvcEhvb2tzLnNjcm9sbFRvcD1nYi5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlwZSYmYS5lbGVtLnBhcmVudE5vZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fSxuLmVhc2luZz17bGluZWFyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxzd2luZzpmdW5jdGlvbihhKXtyZXR1cm4uNS1NYXRoLmNvcyhhKk1hdGguUEkpLzJ9LF9kZWZhdWx0OiJzd2luZyJ9LG4uZng9Z2IucHJvdG90eXBlLmluaXQsbi5meC5zdGVwPXt9O3ZhciBoYixpYixqYj0vXig/OnRvZ2dsZXxzaG93fGhpZGUpJC8sa2I9L3F1ZXVlSG9va3MkLztmdW5jdGlvbiBsYigpe3JldHVybiBhLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtoYj12b2lkIDB9KSxoYj1uLm5vdygpfWZ1bmN0aW9uIG1iKGEsYil7dmFyIGMsZD17aGVpZ2h0OmF9LGU9MDtmb3IoYj1iPzE6MDs0PmU7ZSs9Mi1iKWM9VltlXSxkWyJtYXJnaW4iK2NdPWRbInBhZGRpbmciK2NdPWE7cmV0dXJuIGImJihkLm9wYWNpdHk9ZC53aWR0aD1hKSxkfWZ1bmN0aW9uIG5iKGEsYixjKXtmb3IodmFyIGQsZT0ocWIudHdlZW5lcnNbYl18fFtdKS5jb25jYXQocWIudHdlZW5lcnNbIioiXSksZj0wLGc9ZS5sZW5ndGg7Zz5mO2YrKylpZihkPWVbZl0uY2FsbChjLGIsYSkpcmV0dXJuIGR9ZnVuY3Rpb24gb2IoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbT10aGlzLG89e30scD1hLnN0eWxlLHE9YS5ub2RlVHlwZSYmVyhhKSxyPW4uX2RhdGEoYSwiZnhzaG93Iik7Yy5xdWV1ZXx8KGg9bi5fcXVldWVIb29rcyhhLCJmeCIpLG51bGw9PWgudW5xdWV1ZWQmJihoLnVucXVldWVkPTAsaT1oLmVtcHR5LmZpcmUsaC5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7aC51bnF1ZXVlZHx8aSgpfSksaC51bnF1ZXVlZCsrLG0uYWx3YXlzKGZ1bmN0aW9uKCl7bS5hbHdheXMoZnVuY3Rpb24oKXtoLnVucXVldWVkLS0sbi5xdWV1ZShhLCJmeCIpLmxlbmd0aHx8aC5lbXB0eS5maXJlKCl9KX0pKSwxPT09YS5ub2RlVHlwZSYmKCJoZWlnaHQiaW4gYnx8IndpZHRoImluIGIpJiYoYy5vdmVyZmxvdz1bcC5vdmVyZmxvdyxwLm92ZXJmbG93WCxwLm92ZXJmbG93WV0saj1uLmNzcyhhLCJkaXNwbGF5Iiksaz0ibm9uZSI9PT1qP24uX2RhdGEoYSwib2xkZGlzcGxheSIpfHxNYShhLm5vZGVOYW1lKTpqLCJpbmxpbmUiPT09ayYmIm5vbmUiPT09bi5jc3MoYSwiZmxvYXQiKSYmKGwuaW5saW5lQmxvY2tOZWVkc0xheW91dCYmImlubGluZSIhPT1NYShhLm5vZGVOYW1lKT9wLnpvb209MTpwLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxjLm92ZXJmbG93JiYocC5vdmVyZmxvdz0iaGlkZGVuIixsLnNocmlua1dyYXBCbG9ja3MoKXx8bS5hbHdheXMoZnVuY3Rpb24oKXtwLm92ZXJmbG93PWMub3ZlcmZsb3dbMF0scC5vdmVyZmxvd1g9Yy5vdmVyZmxvd1sxXSxwLm92ZXJmbG93WT1jLm92ZXJmbG93WzJdfSkpO2ZvcihkIGluIGIpaWYoZT1iW2RdLGpiLmV4ZWMoZSkpe2lmKGRlbGV0ZSBiW2RdLGY9Znx8InRvZ2dsZSI9PT1lLGU9PT0ocT8iaGlkZSI6InNob3ciKSl7aWYoInNob3ciIT09ZXx8IXJ8fHZvaWQgMD09PXJbZF0pY29udGludWU7cT0hMH1vW2RdPXImJnJbZF18fG4uc3R5bGUoYSxkKX1lbHNlIGo9dm9pZCAwO2lmKG4uaXNFbXB0eU9iamVjdChvKSkiaW5saW5lIj09PSgibm9uZSI9PT1qP01hKGEubm9kZU5hbWUpOmopJiYocC5kaXNwbGF5PWopO2Vsc2V7cj8iaGlkZGVuImluIHImJihxPXIuaGlkZGVuKTpyPW4uX2RhdGEoYSwiZnhzaG93Iix7fSksZiYmKHIuaGlkZGVuPSFxKSxxP24oYSkuc2hvdygpOm0uZG9uZShmdW5jdGlvbigpe24oYSkuaGlkZSgpfSksbS5kb25lKGZ1bmN0aW9uKCl7dmFyIGI7bi5fcmVtb3ZlRGF0YShhLCJmeHNob3ciKTtmb3IoYiBpbiBvKW4uc3R5bGUoYSxiLG9bYl0pfSk7Zm9yKGQgaW4gbylnPW5iKHE/cltkXTowLGQsbSksZCBpbiByfHwocltkXT1nLnN0YXJ0LHEmJihnLmVuZD1nLnN0YXJ0LGcuc3RhcnQ9IndpZHRoIj09PWR8fCJoZWlnaHQiPT09ZD8xOjApKX19ZnVuY3Rpb24gcGIoYSxiKXt2YXIgYyxkLGUsZixnO2ZvcihjIGluIGEpaWYoZD1uLmNhbWVsQ2FzZShjKSxlPWJbZF0sZj1hW2NdLG4uaXNBcnJheShmKSYmKGU9ZlsxXSxmPWFbY109ZlswXSksYyE9PWQmJihhW2RdPWYsZGVsZXRlIGFbY10pLGc9bi5jc3NIb29rc1tkXSxnJiYiZXhwYW5kImluIGcpe2Y9Zy5leHBhbmQoZiksZGVsZXRlIGFbZF07Zm9yKGMgaW4gZiljIGluIGF8fChhW2NdPWZbY10sYltjXT1lKX1lbHNlIGJbZF09ZX1mdW5jdGlvbiBxYihhLGIsYyl7dmFyIGQsZSxmPTAsZz1xYi5wcmVmaWx0ZXJzLmxlbmd0aCxoPW4uRGVmZXJyZWQoKS5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgaS5lbGVtfSksaT1mdW5jdGlvbigpe2lmKGUpcmV0dXJuITE7Zm9yKHZhciBiPWhifHxsYigpLGM9TWF0aC5tYXgoMCxqLnN0YXJ0VGltZStqLmR1cmF0aW9uLWIpLGQ9Yy9qLmR1cmF0aW9ufHwwLGY9MS1kLGc9MCxpPWoudHdlZW5zLmxlbmd0aDtpPmc7ZysrKWoudHdlZW5zW2ddLnJ1bihmKTtyZXR1cm4gaC5ub3RpZnlXaXRoKGEsW2osZixjXSksMT5mJiZpP2M6KGgucmVzb2x2ZVdpdGgoYSxbal0pLCExKX0saj1oLnByb21pc2Uoe2VsZW06YSxwcm9wczpuLmV4dGVuZCh7fSxiKSxvcHRzOm4uZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpuLmVhc2luZy5fZGVmYXVsdH0sYyksb3JpZ2luYWxQcm9wZXJ0aWVzOmIsb3JpZ2luYWxPcHRpb25zOmMsc3RhcnRUaW1lOmhifHxsYigpLGR1cmF0aW9uOmMuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9bi5Ud2VlbihhLGoub3B0cyxiLGMsai5vcHRzLnNwZWNpYWxFYXNpbmdbYl18fGoub3B0cy5lYXNpbmcpO3JldHVybiBqLnR3ZWVucy5wdXNoKGQpLGR9LHN0b3A6ZnVuY3Rpb24oYil7dmFyIGM9MCxkPWI/ai50d2VlbnMubGVuZ3RoOjA7aWYoZSlyZXR1cm4gdGhpcztmb3IoZT0hMDtkPmM7YysrKWoudHdlZW5zW2NdLnJ1bigxKTtyZXR1cm4gYj8oaC5ub3RpZnlXaXRoKGEsW2osMSwwXSksaC5yZXNvbHZlV2l0aChhLFtqLGJdKSk6aC5yZWplY3RXaXRoKGEsW2osYl0pLHRoaXN9fSksaz1qLnByb3BzO2ZvcihwYihrLGoub3B0cy5zcGVjaWFsRWFzaW5nKTtnPmY7ZisrKWlmKGQ9cWIucHJlZmlsdGVyc1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIG4uaXNGdW5jdGlvbihkLnN0b3ApJiYobi5fcXVldWVIb29rcyhqLmVsZW0sai5vcHRzLnF1ZXVlKS5zdG9wPW4ucHJveHkoZC5zdG9wLGQpKSxkO3JldHVybiBuLm1hcChrLG5iLGopLG4uaXNGdW5jdGlvbihqLm9wdHMuc3RhcnQpJiZqLm9wdHMuc3RhcnQuY2FsbChhLGopLG4uZngudGltZXIobi5leHRlbmQoaSx7ZWxlbTphLGFuaW06aixxdWV1ZTpqLm9wdHMucXVldWV9KSksai5wcm9ncmVzcyhqLm9wdHMucHJvZ3Jlc3MpLmRvbmUoai5vcHRzLmRvbmUsai5vcHRzLmNvbXBsZXRlKS5mYWlsKGoub3B0cy5mYWlsKS5hbHdheXMoai5vcHRzLmFsd2F5cyl9bi5BbmltYXRpb249bi5leHRlbmQocWIse3R3ZWVuZXJzOnsiKiI6W2Z1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jcmVhdGVUd2VlbihhLGIpO3JldHVybiBYKGMuZWxlbSxhLFUuZXhlYyhiKSxjKSxjfV19LHR3ZWVuZXI6ZnVuY3Rpb24oYSxiKXtuLmlzRnVuY3Rpb24oYSk/KGI9YSxhPVsiKiJdKTphPWEubWF0Y2goRyk7Zm9yKHZhciBjLGQ9MCxlPWEubGVuZ3RoO2U+ZDtkKyspYz1hW2RdLHFiLnR3ZWVuZXJzW2NdPXFiLnR3ZWVuZXJzW2NdfHxbXSxxYi50d2VlbmVyc1tjXS51bnNoaWZ0KGIpfSxwcmVmaWx0ZXJzOltvYl0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj9xYi5wcmVmaWx0ZXJzLnVuc2hpZnQoYSk6cWIucHJlZmlsdGVycy5wdXNoKGEpfX0pLG4uc3BlZWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEmJiJvYmplY3QiPT10eXBlb2YgYT9uLmV4dGVuZCh7fSxhKTp7Y29tcGxldGU6Y3x8IWMmJmJ8fG4uaXNGdW5jdGlvbihhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpjJiZifHxiJiYhbi5pc0Z1bmN0aW9uKGIpJiZifTtyZXR1cm4gZC5kdXJhdGlvbj1uLmZ4Lm9mZj8wOiJudW1iZXIiPT10eXBlb2YgZC5kdXJhdGlvbj9kLmR1cmF0aW9uOmQuZHVyYXRpb24gaW4gbi5meC5zcGVlZHM/bi5meC5zcGVlZHNbZC5kdXJhdGlvbl06bi5meC5zcGVlZHMuX2RlZmF1bHQsbnVsbCE9ZC5xdWV1ZSYmZC5xdWV1ZSE9PSEwfHwoZC5xdWV1ZT0iZngiKSxkLm9sZD1kLmNvbXBsZXRlLGQuY29tcGxldGU9ZnVuY3Rpb24oKXtuLmlzRnVuY3Rpb24oZC5vbGQpJiZkLm9sZC5jYWxsKHRoaXMpLGQucXVldWUmJm4uZGVxdWV1ZSh0aGlzLGQucXVldWUpfSxkfSxuLmZuLmV4dGVuZCh7ZmFkZVRvOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLmZpbHRlcihXKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OmJ9LGEsYyxkKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1uLmlzRW1wdHlPYmplY3QoYSksZj1uLnNwZWVkKGIsYyxkKSxnPWZ1bmN0aW9uKCl7dmFyIGI9cWIodGhpcyxuLmV4dGVuZCh7fSxhKSxmKTsoZXx8bi5fZGF0YSh0aGlzLCJmaW5pc2giKSkmJmIuc3RvcCghMCl9O3JldHVybiBnLmZpbmlzaD1nLGV8fGYucXVldWU9PT0hMT90aGlzLmVhY2goZyk6dGhpcy5xdWV1ZShmLnF1ZXVlLGcpfSxzdG9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1mdW5jdGlvbihhKXt2YXIgYj1hLnN0b3A7ZGVsZXRlIGEuc3RvcCxiKGMpfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGEmJihjPWIsYj1hLGE9dm9pZCAwKSxiJiZhIT09ITEmJnRoaXMucXVldWUoYXx8ImZ4IixbXSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9ITAsZT1udWxsIT1hJiZhKyJxdWV1ZUhvb2tzIixmPW4udGltZXJzLGc9bi5fZGF0YSh0aGlzKTtpZihlKWdbZV0mJmdbZV0uc3RvcCYmZChnW2VdKTtlbHNlIGZvcihlIGluIGcpZ1tlXSYmZ1tlXS5zdG9wJiZrYi50ZXN0KGUpJiZkKGdbZV0pO2ZvcihlPWYubGVuZ3RoO2UtLTspZltlXS5lbGVtIT09dGhpc3x8bnVsbCE9YSYmZltlXS5xdWV1ZSE9PWF8fChmW2VdLmFuaW0uc3RvcChjKSxiPSExLGYuc3BsaWNlKGUsMSkpOyFiJiZjfHxuLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsYz1uLl9kYXRhKHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJxdWV1ZUhvb2tzIl0sZj1uLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsbi5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxuLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9bi5mbltiXTtuLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUobWIoYiwhMCksYSxkLGUpfX0pLG4uZWFjaCh7c2xpZGVEb3duOm1iKCJzaG93Iiksc2xpZGVVcDptYigiaGlkZSIpLHNsaWRlVG9nZ2xlOm1iKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7bi5mblthXT1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxuLnRpbWVycz1bXSxuLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPW4udGltZXJzLGM9MDtmb3IoaGI9bi5ub3coKTtjPGIubGVuZ3RoO2MrKylhPWJbY10sYSgpfHxiW2NdIT09YXx8Yi5zcGxpY2UoYy0tLDEpO2IubGVuZ3RofHxuLmZ4LnN0b3AoKSxoYj12b2lkIDB9LG4uZngudGltZXI9ZnVuY3Rpb24oYSl7bi50aW1lcnMucHVzaChhKSxhKCk/bi5meC5zdGFydCgpOm4udGltZXJzLnBvcCgpfSxuLmZ4LmludGVydmFsPTEzLG4uZnguc3RhcnQ9ZnVuY3Rpb24oKXtpYnx8KGliPWEuc2V0SW50ZXJ2YWwobi5meC50aWNrLG4uZnguaW50ZXJ2YWwpKX0sbi5meC5zdG9wPWZ1bmN0aW9uKCl7YS5jbGVhckludGVydmFsKGliKSxpYj1udWxsfSxuLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSxuLmZuLmRlbGF5PWZ1bmN0aW9uKGIsYyl7cmV0dXJuIGI9bi5meD9uLmZ4LnNwZWVkc1tiXXx8YjpiLGM9Y3x8ImZ4Iix0aGlzLnF1ZXVlKGMsZnVuY3Rpb24oYyxkKXt2YXIgZT1hLnNldFRpbWVvdXQoYyxiKTtkLnN0b3A9ZnVuY3Rpb24oKXthLmNsZWFyVGltZW91dChlKX19KX0sZnVuY3Rpb24oKXt2YXIgYSxiPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxjPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLGY9ZS5hcHBlbmRDaGlsZChkLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTtjPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksYy5zZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIsInQiKSxjLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixhPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxiLnNldEF0dHJpYnV0ZSgidHlwZSIsImNoZWNrYm94IiksYy5hcHBlbmRDaGlsZChiKSxhPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxhLnN0eWxlLmNzc1RleHQ9InRvcDoxcHgiLGwuZ2V0U2V0QXR0cmlidXRlPSJ0IiE9PWMuY2xhc3NOYW1lLGwuc3R5bGU9L3RvcC8udGVzdChhLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksbC5ocmVmTm9ybWFsaXplZD0iL2EiPT09YS5nZXRBdHRyaWJ1dGUoImhyZWYiKSxsLmNoZWNrT249ISFiLnZhbHVlLGwub3B0U2VsZWN0ZWQ9Zi5zZWxlY3RlZCxsLmVuY3R5cGU9ISFkLmNyZWF0ZUVsZW1lbnQoImZvcm0iKS5lbmN0eXBlLGUuZGlzYWJsZWQ9ITAsbC5vcHREaXNhYmxlZD0hZi5kaXNhYmxlZCxiPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxiLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSxsLmlucHV0PSIiPT09Yi5nZXRBdHRyaWJ1dGUoInZhbHVlIiksYi52YWx1ZT0idCIsYi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGwucmFkaW9WYWx1ZT0idCI9PT1iLnZhbHVlfSgpO3ZhciByYj0vXHIvZyxzYj0vW1x4MjBcdFxyXG5cZl0rL2c7bi5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT10aGlzWzBdO3tpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBkPW4uaXNGdW5jdGlvbihhKSx0aGlzLmVhY2goZnVuY3Rpb24oYyl7dmFyIGU7MT09PXRoaXMubm9kZVR5cGUmJihlPWQ/YS5jYWxsKHRoaXMsYyxuKHRoaXMpLnZhbCgpKTphLG51bGw9PWU/ZT0iIjoibnVtYmVyIj09dHlwZW9mIGU/ZSs9IiI6bi5pc0FycmF5KGUpJiYoZT1uLm1hcChlLGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hPyIiOmErIiJ9KSksYj1uLnZhbEhvb2tzW3RoaXMudHlwZV18fG4udmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYic2V0ImluIGImJnZvaWQgMCE9PWIuc2V0KHRoaXMsZSwidmFsdWUiKXx8KHRoaXMudmFsdWU9ZSkpfSk7aWYoZSlyZXR1cm4gYj1uLnZhbEhvb2tzW2UudHlwZV18fG4udmFsSG9va3NbZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYiZ2V0ImluIGImJnZvaWQgMCE9PShjPWIuZ2V0KGUsInZhbHVlIikpP2M6KGM9ZS52YWx1ZSwic3RyaW5nIj09dHlwZW9mIGM/Yy5yZXBsYWNlKHJiLCIiKTpudWxsPT1jPyIiOmMpfX19KSxuLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPW4uZmluZC5hdHRyKGEsInZhbHVlIik7cmV0dXJuIG51bGwhPWI/YjpuLnRyaW0obi50ZXh0KGEpKS5yZXBsYWNlKHNiLCIgIil9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihhKXtmb3IodmFyIGIsYyxkPWEub3B0aW9ucyxlPWEuc2VsZWN0ZWRJbmRleCxmPSJzZWxlY3Qtb25lIj09PWEudHlwZXx8MD5lLGc9Zj9udWxsOltdLGg9Zj9lKzE6ZC5sZW5ndGgsaT0wPmU/aDpmP2U6MDtoPmk7aSsrKWlmKGM9ZFtpXSwoYy5zZWxlY3RlZHx8aT09PWUpJiYobC5vcHREaXNhYmxlZD8hYy5kaXNhYmxlZDpudWxsPT09Yy5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIikpJiYoIWMucGFyZW50Tm9kZS5kaXNhYmxlZHx8IW4ubm9kZU5hbWUoYy5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7aWYoYj1uKGMpLnZhbCgpLGYpcmV0dXJuIGI7Zy5wdXNoKGIpfXJldHVybiBnfSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9YS5vcHRpb25zLGY9bi5tYWtlQXJyYXkoYiksZz1lLmxlbmd0aDt3aGlsZShnLS0paWYoZD1lW2ddLG4uaW5BcnJheShuLnZhbEhvb2tzLm9wdGlvbi5nZXQoZCksZik+LTEpdHJ5e2Quc2VsZWN0ZWQ9Yz0hMH1jYXRjaChoKXtkLnNjcm9sbEhlaWdodH1lbHNlIGQuc2VsZWN0ZWQ9ITE7cmV0dXJuIGN8fChhLnNlbGVjdGVkSW5kZXg9LTEpLGV9fX19KSxuLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24oKXtuLnZhbEhvb2tzW3RoaXNdPXtzZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbi5pc0FycmF5KGIpP2EuY2hlY2tlZD1uLmluQXJyYXkobihhKS52YWwoKSxiKT4tMTp2b2lkIDB9fSxsLmNoZWNrT258fChuLnZhbEhvb2tzW3RoaXNdLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWEuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPyJvbiI6YS52YWx1ZX0pfSk7dmFyIHRiLHViLHZiPW4uZXhwci5hdHRySGFuZGxlLHdiPS9eKD86Y2hlY2tlZHxzZWxlY3RlZCkkL2kseGI9bC5nZXRTZXRBdHRyaWJ1dGUseWI9bC5pbnB1dDtuLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBZKHRoaXMsbi5hdHRyLGEsYixhcmd1bWVudHMubGVuZ3RoPjEpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuLnJlbW92ZUF0dHIodGhpcyxhKX0pfX0pLG4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGY9YS5ub2RlVHlwZTtpZigzIT09ZiYmOCE9PWYmJjIhPT1mKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYS5nZXRBdHRyaWJ1dGU/bi5wcm9wKGEsYixjKTooMT09PWYmJm4uaXNYTUxEb2MoYSl8fChiPWIudG9Mb3dlckNhc2UoKSxlPW4uYXR0ckhvb2tzW2JdfHwobi5leHByLm1hdGNoLmJvb2wudGVzdChiKT91Yjp0YikpLHZvaWQgMCE9PWM/bnVsbD09PWM/dm9pZCBuLnJlbW92ZUF0dHIoYSxiKTplJiYic2V0ImluIGUmJnZvaWQgMCE9PShkPWUuc2V0KGEsYyxiKSk/ZDooYS5zZXRBdHRyaWJ1dGUoYixjKyIiKSxjKTplJiYiZ2V0ImluIGUmJm51bGwhPT0oZD1lLmdldChhLGIpKT9kOihkPW4uZmluZC5hdHRyKGEsYiksbnVsbD09ZD92b2lkIDA6ZCkpfSxhdHRySG9va3M6e3R5cGU6e3NldDpmdW5jdGlvbihhLGIpe2lmKCFsLnJhZGlvVmFsdWUmJiJyYWRpbyI9PT1iJiZuLm5vZGVOYW1lKGEsImlucHV0Iikpe3ZhciBjPWEudmFsdWU7cmV0dXJuIGEuc2V0QXR0cmlidXRlKCJ0eXBlIixiKSxjJiYoYS52YWx1ZT1jKSxifX19fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPTAsZj1iJiZiLm1hdGNoKEcpO2lmKGYmJjE9PT1hLm5vZGVUeXBlKXdoaWxlKGM9ZltlKytdKWQ9bi5wcm9wRml4W2NdfHxjLG4uZXhwci5tYXRjaC5ib29sLnRlc3QoYyk/eWImJnhifHwhd2IudGVzdChjKT9hW2RdPSExOmFbbi5jYW1lbENhc2UoImRlZmF1bHQtIitjKV09YVtkXT0hMTpuLmF0dHIoYSxjLCIiKSxhLnJlbW92ZUF0dHJpYnV0ZSh4Yj9jOmQpfX0pLHViPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBiPT09ITE/bi5yZW1vdmVBdHRyKGEsYyk6eWImJnhifHwhd2IudGVzdChjKT9hLnNldEF0dHJpYnV0ZSgheGImJm4ucHJvcEZpeFtjXXx8YyxjKTphW24uY2FtZWxDYXNlKCJkZWZhdWx0LSIrYyldPWFbY109ITAsY319LG4uZWFjaChuLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihhLGIpe3ZhciBjPXZiW2JdfHxuLmZpbmQuYXR0cjt5YiYmeGJ8fCF3Yi50ZXN0KGIpP3ZiW2JdPWZ1bmN0aW9uKGEsYixkKXt2YXIgZSxmO3JldHVybiBkfHwoZj12YltiXSx2YltiXT1lLGU9bnVsbCE9YyhhLGIsZCk/Yi50b0xvd2VyQ2FzZSgpOm51bGwsdmJbYl09ZiksZX06dmJbYl09ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjP3ZvaWQgMDphW24uY2FtZWxDYXNlKCJkZWZhdWx0LSIrYildP2IudG9Mb3dlckNhc2UoKTpudWxsfX0pLHliJiZ4Ynx8KG4uYXR0ckhvb2tzLnZhbHVlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuLm5vZGVOYW1lKGEsImlucHV0Iik/dm9pZChhLmRlZmF1bHRWYWx1ZT1iKTp0YiYmdGIuc2V0KGEsYixjKX19KSx4Ynx8KHRiPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZ2V0QXR0cmlidXRlTm9kZShjKTtyZXR1cm4gZHx8YS5zZXRBdHRyaWJ1dGVOb2RlKGQ9YS5vd25lckRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZShjKSksZC52YWx1ZT1iKz0iIiwidmFsdWUiPT09Y3x8Yj09PWEuZ2V0QXR0cmlidXRlKGMpP2I6dm9pZCAwfX0sdmIuaWQ9dmIubmFtZT12Yi5jb29yZHM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybiBjP3ZvaWQgMDooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiYiIiE9PWQudmFsdWU/ZC52YWx1ZTpudWxsfSxuLnZhbEhvb2tzLmJ1dHRvbj17Z2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpO3JldHVybiBjJiZjLnNwZWNpZmllZD9jLnZhbHVlOnZvaWQgMH0sc2V0OnRiLnNldH0sbi5hdHRySG9va3MuY29udGVudGVkaXRhYmxlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3RiLnNldChhLCIiPT09Yj8hMTpiLGMpfX0sbi5lYWNoKFsid2lkdGgiLCJoZWlnaHQiXSxmdW5jdGlvbihhLGIpe24uYXR0ckhvb2tzW2JdPXtzZXQ6ZnVuY3Rpb24oYSxjKXtyZXR1cm4iIj09PWM/KGEuc2V0QXR0cmlidXRlKGIsImF1dG8iKSxjKTp2b2lkIDB9fX0pKSxsLnN0eWxlfHwobi5hdHRySG9va3Muc3R5bGU9e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gYS5zdHlsZS5jc3NUZXh0fHx2b2lkIDB9LHNldDpmdW5jdGlvbihhLGIpe3JldHVybiBhLnN0eWxlLmNzc1RleHQ9YisiIn19KTt2YXIgemI9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9ufG9iamVjdCkkL2ksQWI9L14oPzphfGFyZWEpJC9pO24uZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFkodGhpcyxuLnByb3AsYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9bi5wcm9wRml4W2FdfHxhLHRoaXMuZWFjaChmdW5jdGlvbigpe3RyeXt0aGlzW2FdPXZvaWQgMCxkZWxldGUgdGhpc1thXX1jYXRjaChiKXt9fSl9fSksbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj1hLm5vZGVUeXBlO2lmKDMhPT1mJiY4IT09ZiYmMiE9PWYpcmV0dXJuIDE9PT1mJiZuLmlzWE1MRG9jKGEpfHwoYj1uLnByb3BGaXhbYl18fGIsZT1uLnByb3BIb29rc1tiXSksdm9pZCAwIT09Yz9lJiYic2V0ImluIGUmJnZvaWQgMCE9PShkPWUuc2V0KGEsYyxiKSk/ZDphW2JdPWM6ZSYmImdldCJpbiBlJiZudWxsIT09KGQ9ZS5nZXQoYSxiKSk/ZDphW2JdfSxwcm9wSG9va3M6e3RhYkluZGV4OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9bi5maW5kLmF0dHIoYSwidGFiaW5kZXgiKTtyZXR1cm4gYj9wYXJzZUludChiLDEwKTp6Yi50ZXN0KGEubm9kZU5hbWUpfHxBYi50ZXN0KGEubm9kZU5hbWUpJiZhLmhyZWY/MDotMX19fSxwcm9wRml4OnsiZm9yIjoiaHRtbEZvciIsImNsYXNzIjoiY2xhc3NOYW1lIn19KSxsLmhyZWZOb3JtYWxpemVkfHxuLmVhY2goWyJocmVmIiwic3JjIl0sZnVuY3Rpb24oYSxiKXtuLnByb3BIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZShiLDQpfX19KSxsLm9wdFNlbGVjdGVkfHwobi5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH0sc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtiJiYoYi5zZWxlY3RlZEluZGV4LGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgpfX0pLG4uZWFjaChbInRhYkluZGV4IiwicmVhZE9ubHkiLCJtYXhMZW5ndGgiLCJjZWxsU3BhY2luZyIsImNlbGxQYWRkaW5nIiwicm93U3BhbiIsImNvbFNwYW4iLCJ1c2VNYXAiLCJmcmFtZUJvcmRlciIsImNvbnRlbnRFZGl0YWJsZSJdLGZ1bmN0aW9uKCl7bi5wcm9wRml4W3RoaXMudG9Mb3dlckNhc2UoKV09dGhpc30pLGwuZW5jdHlwZXx8KG4ucHJvcEZpeC5lbmN0eXBlPSJlbmNvZGluZyIpO3ZhciBCYj0vW1x0XHJcblxmXS9nO2Z1bmN0aW9uIENiKGEpe3JldHVybiBuLmF0dHIoYSwiY2xhc3MiKXx8IiJ9bi5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk9MDtpZihuLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtuKHRoaXMpLmFkZENsYXNzKGEuY2FsbCh0aGlzLGIsQ2IodGhpcykpKX0pO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmYSl7Yj1hLm1hdGNoKEcpfHxbXTt3aGlsZShjPXRoaXNbaSsrXSlpZihlPUNiKGMpLGQ9MT09PWMubm9kZVR5cGUmJigiICIrZSsiICIpLnJlcGxhY2UoQmIsIiAiKSl7Zz0wO3doaWxlKGY9YltnKytdKWQuaW5kZXhPZigiICIrZisiICIpPDAmJihkKz1mKyIgIik7aD1uLnRyaW0oZCksZSE9PWgmJm4uYXR0cihjLCJjbGFzcyIsaCl9fXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGcsaCxpPTA7aWYobi5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7bih0aGlzKS5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxiLENiKHRoaXMpKSl9KTtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5hdHRyKCJjbGFzcyIsIiIpO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmYSl7Yj1hLm1hdGNoKEcpfHxbXTt3aGlsZShjPXRoaXNbaSsrXSlpZihlPUNiKGMpLGQ9MT09PWMubm9kZVR5cGUmJigiICIrZSsiICIpLnJlcGxhY2UoQmIsIiAiKSl7Zz0wO3doaWxlKGY9YltnKytdKXdoaWxlKGQuaW5kZXhPZigiICIrZisiICIpPi0xKWQ9ZC5yZXBsYWNlKCIgIitmKyIgIiwiICIpO2g9bi50cmltKGQpLGUhPT1oJiZuLmF0dHIoYywiY2xhc3MiLGgpfX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBiJiYic3RyaW5nIj09PWM/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6bi5pc0Z1bmN0aW9uKGEpP3RoaXMuZWFjaChmdW5jdGlvbihjKXtuKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGMsQ2IodGhpcyksYiksYil9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYixkLGUsZjtpZigic3RyaW5nIj09PWMpe2Q9MCxlPW4odGhpcyksZj1hLm1hdGNoKEcpfHxbXTt3aGlsZShiPWZbZCsrXSllLmhhc0NsYXNzKGIpP2UucmVtb3ZlQ2xhc3MoYik6ZS5hZGRDbGFzcyhiKX1lbHNlIHZvaWQgMCE9PWEmJiJib29sZWFuIiE9PWN8fChiPUNiKHRoaXMpLGImJm4uX2RhdGEodGhpcywiX19jbGFzc05hbWVfXyIsYiksbi5hdHRyKHRoaXMsImNsYXNzIixifHxhPT09ITE/IiI6bi5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPTA7Yj0iICIrYSsiICI7d2hpbGUoYz10aGlzW2QrK10paWYoMT09PWMubm9kZVR5cGUmJigiICIrQ2IoYykrIiAiKS5yZXBsYWNlKEJiLCIgIikuaW5kZXhPZihiKT4tMSlyZXR1cm4hMDtyZXR1cm4hMX19KSxuLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtuLmZuW2JdPWZ1bmN0aW9uKGEsYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MD90aGlzLm9uKGIsbnVsbCxhLGMpOnRoaXMudHJpZ2dlcihiKX19KSxuLmZuLmV4dGVuZCh7aG92ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGEpLm1vdXNlbGVhdmUoYnx8YSl9fSk7dmFyIERiPWEubG9jYXRpb24sRWI9bi5ub3coKSxGYj0vXD8vLEdiPS8oLCl8KFxbfHspfCh9fF0pfCIoPzpbXiJcXFxyXG5dfFxcWyJcXFwvYmZucnRdfFxcdVtcZGEtZkEtRl17NH0pKiJccyo6P3x0cnVlfGZhbHNlfG51bGx8LT8oPyEwXGQpXGQrKD86XC5cZCt8KSg/OltlRV1bKy1dP1xkK3wpL2c7bi5wYXJzZUpTT049ZnVuY3Rpb24oYil7aWYoYS5KU09OJiZhLkpTT04ucGFyc2UpcmV0dXJuIGEuSlNPTi5wYXJzZShiKyIiKTt2YXIgYyxkPW51bGwsZT1uLnRyaW0oYisiIik7cmV0dXJuIGUmJiFuLnRyaW0oZS5yZXBsYWNlKEdiLGZ1bmN0aW9uKGEsYixlLGYpe3JldHVybiBjJiZiJiYoZD0wKSwwPT09ZD9hOihjPWV8fGIsZCs9IWYtIWUsIiIpfSkpP0Z1bmN0aW9uKCJyZXR1cm4gIitlKSgpOm4uZXJyb3IoIkludmFsaWQgSlNPTjogIitiKX0sbi5wYXJzZVhNTD1mdW5jdGlvbihiKXt2YXIgYyxkO2lmKCFifHwic3RyaW5nIiE9dHlwZW9mIGIpcmV0dXJuIG51bGw7dHJ5e2EuRE9NUGFyc2VyPyhkPW5ldyBhLkRPTVBhcnNlcixjPWQucGFyc2VGcm9tU3RyaW5nKGIsInRleHQveG1sIikpOihjPW5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxjLmFzeW5jPSJmYWxzZSIsYy5sb2FkWE1MKGIpKX1jYXRjaChlKXtjPXZvaWQgMH1yZXR1cm4gYyYmYy5kb2N1bWVudEVsZW1lbnQmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8bi5lcnJvcigiSW52YWxpZCBYTUw6ICIrYiksY307dmFyIEhiPS8jLiokLyxJYj0vKFs/Jl0pXz1bXiZdKi8sSmI9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9nbSxLYj0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxMYj0vXig/OkdFVHxIRUFEKSQvLE1iPS9eXC9cLy8sTmI9L14oW1x3ListXSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sT2I9e30sUGI9e30sUWI9IiovIi5jb25jYXQoIioiKSxSYj1EYi5ocmVmLFNiPU5iLmV4ZWMoUmIudG9Mb3dlckNhc2UoKSl8fFtdO2Z1bmN0aW9uIFRiKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9YixiPSIqIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKEcpfHxbXTtpZihuLmlzRnVuY3Rpb24oYykpd2hpbGUoZD1mW2UrK10pIisiPT09ZC5jaGFyQXQoMCk/KGQ9ZC5zbGljZSgxKXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gVWIoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09UGI7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxuLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGp8fGZ8fGVbal0/Zj8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KGopLGcoaiksITEpfSksaX1yZXR1cm4gZyhiLmRhdGFUeXBlc1swXSl8fCFlWyIqIl0mJmcoIioiKX1mdW5jdGlvbiBWYihhLGIpe3ZhciBjLGQsZT1uLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGQgaW4gYil2b2lkIDAhPT1iW2RdJiYoKGVbZF0/YTpjfHwoYz17fSkpW2RdPWJbZF0pO3JldHVybiBjJiZuLmV4dGVuZCghMCxhLGMpLGF9ZnVuY3Rpb24gV2IoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKCIqIj09PWlbMF0paS5zaGlmdCgpLHZvaWQgMD09PWUmJihlPWEubWltZVR5cGV8fGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihlKWZvcihnIGluIGgpaWYoaFtnXSYmaFtnXS50ZXN0KGUpKXtpLnVuc2hpZnQoZyk7YnJlYWt9aWYoaVswXWluIGMpZj1pWzBdO2Vsc2V7Zm9yKGcgaW4gYyl7aWYoIWlbMF18fGEuY29udmVydGVyc1tnKyIgIitpWzBdXSl7Zj1nO2JyZWFrfWR8fChkPWcpfWY9Znx8ZH1yZXR1cm4gZj8oZiE9PWlbMF0mJmkudW5zaGlmdChmKSxjW2ZdKTp2b2lkIDB9ZnVuY3Rpb24gWGIoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1uLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6UmIsdHlwZToiR0VUIixpc0xvY2FsOktiLnRlc3QoU2JbMV0pLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6UWIsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L1xieG1sXGIvLGh0bWw6L1xiaHRtbC8sanNvbjovXGJqc29uXGIvfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0Iixqc29uOiJyZXNwb25zZUpTT04ifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjpTdHJpbmcsInRleHQgaHRtbCI6ITAsInRleHQganNvbiI6bi5wYXJzZUpTT04sInRleHQgeG1sIjpuLnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9WYihWYihhLG4uYWpheFNldHRpbmdzKSxiKTpWYihuLmFqYXhTZXR0aW5ncyxhKX0sYWpheFByZWZpbHRlcjpUYihPYiksYWpheFRyYW5zcG9ydDpUYihQYiksYWpheDpmdW5jdGlvbihiLGMpeyJvYmplY3QiPT10eXBlb2YgYiYmKGM9YixiPXZvaWQgMCksYz1jfHx7fTt2YXIgZCxlLGYsZyxoLGksaixrLGw9bi5hamF4U2V0dXAoe30sYyksbT1sLmNvbnRleHR8fGwsbz1sLmNvbnRleHQmJihtLm5vZGVUeXBlfHxtLmpxdWVyeSk/bihtKTpuLmV2ZW50LHA9bi5EZWZlcnJlZCgpLHE9bi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iikscj1sLnN0YXR1c0NvZGV8fHt9LHM9e30sdD17fSx1PTAsdj0iY2FuY2VsZWQiLHc9e3JlYWR5U3RhdGU6MCxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihhKXt2YXIgYjtpZigyPT09dSl7aWYoIWspe2s9e307d2hpbGUoYj1KYi5leGVjKGcpKWtbYlsxXS50b0xvd2VyQ2FzZSgpXT1iWzJdfWI9a1thLnRvTG93ZXJDYXNlKCldfXJldHVybiBudWxsPT1iP251bGw6Yn0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIDI9PT11P2c6bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbihhLGIpe3ZhciBjPWEudG9Mb3dlckNhc2UoKTtyZXR1cm4gdXx8KGE9dFtjXT10W2NdfHxhLHNbYV09YiksdGhpc30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gdXx8KGwubWltZVR5cGU9YSksdGhpc30sc3RhdHVzQ29kZTpmdW5jdGlvbihhKXt2YXIgYjtpZihhKWlmKDI+dSlmb3IoYiBpbiBhKXJbYl09W3JbYl0sYVtiXV07ZWxzZSB3LmFsd2F5cyhhW3cuc3RhdHVzXSk7cmV0dXJuIHRoaXN9LGFib3J0OmZ1bmN0aW9uKGEpe3ZhciBiPWF8fHY7cmV0dXJuIGomJmouYWJvcnQoYikseSgwLGIpLHRoaXN9fTtpZihwLnByb21pc2UodykuY29tcGxldGU9cS5hZGQsdy5zdWNjZXNzPXcuZG9uZSx3LmVycm9yPXcuZmFpbCxsLnVybD0oKGJ8fGwudXJsfHxSYikrIiIpLnJlcGxhY2UoSGIsIiIpLnJlcGxhY2UoTWIsU2JbMV0rIi8vIiksbC50eXBlPWMubWV0aG9kfHxjLnR5cGV8fGwubWV0aG9kfHxsLnR5cGUsbC5kYXRhVHlwZXM9bi50cmltKGwuZGF0YVR5cGV8fCIqIikudG9Mb3dlckNhc2UoKS5tYXRjaChHKXx8WyIiXSxudWxsPT1sLmNyb3NzRG9tYWluJiYoZD1OYi5leGVjKGwudXJsLnRvTG93ZXJDYXNlKCkpLGwuY3Jvc3NEb21haW49ISghZHx8ZFsxXT09PVNiWzFdJiZkWzJdPT09U2JbMl0mJihkWzNdfHwoImh0dHA6Ij09PWRbMV0/IjgwIjoiNDQzIikpPT09KFNiWzNdfHwoImh0dHA6Ij09PVNiWzFdPyI4MCI6IjQ0MyIpKSkpLGwuZGF0YSYmbC5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiBsLmRhdGEmJihsLmRhdGE9bi5wYXJhbShsLmRhdGEsbC50cmFkaXRpb25hbCkpLFViKE9iLGwsYyx3KSwyPT09dSlyZXR1cm4gdztpPW4uZXZlbnQmJmwuZ2xvYmFsLGkmJjA9PT1uLmFjdGl2ZSsrJiZuLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLGwudHlwZT1sLnR5cGUudG9VcHBlckNhc2UoKSxsLmhhc0NvbnRlbnQ9IUxiLnRlc3QobC50eXBlKSxmPWwudXJsLGwuaGFzQ29udGVudHx8KGwuZGF0YSYmKGY9bC51cmwrPShGYi50ZXN0KGYpPyImIjoiPyIpK2wuZGF0YSxkZWxldGUgbC5kYXRhKSxsLmNhY2hlPT09ITEmJihsLnVybD1JYi50ZXN0KGYpP2YucmVwbGFjZShJYiwiJDFfPSIrRWIrKyk6ZisoRmIudGVzdChmKT8iJiI6Ij8iKSsiXz0iK0ViKyspKSxsLmlmTW9kaWZpZWQmJihuLmxhc3RNb2RpZmllZFtmXSYmdy5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsbi5sYXN0TW9kaWZpZWRbZl0pLG4uZXRhZ1tmXSYmdy5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixuLmV0YWdbZl0pKSwobC5kYXRhJiZsLmhhc0NvbnRlbnQmJmwuY29udGVudFR5cGUhPT0hMXx8Yy5jb250ZW50VHlwZSkmJncuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixsLmNvbnRlbnRUeXBlKSx3LnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsbC5kYXRhVHlwZXNbMF0mJmwuYWNjZXB0c1tsLmRhdGFUeXBlc1swXV0/bC5hY2NlcHRzW2wuZGF0YVR5cGVzWzBdXSsoIioiIT09bC5kYXRhVHlwZXNbMF0/IiwgIitRYisiOyBxPTAuMDEiOiIiKTpsLmFjY2VwdHNbIioiXSk7Zm9yKGUgaW4gbC5oZWFkZXJzKXcuc2V0UmVxdWVzdEhlYWRlcihlLGwuaGVhZGVyc1tlXSk7aWYobC5iZWZvcmVTZW5kJiYobC5iZWZvcmVTZW5kLmNhbGwobSx3LGwpPT09ITF8fDI9PT11KSlyZXR1cm4gdy5hYm9ydCgpO3Y9ImFib3J0Ijtmb3IoZSBpbntzdWNjZXNzOjEsZXJyb3I6MSxjb21wbGV0ZToxfSl3W2VdKGxbZV0pO2lmKGo9VWIoUGIsbCxjLHcpKXtpZih3LnJlYWR5U3RhdGU9MSxpJiZvLnRyaWdnZXIoImFqYXhTZW5kIixbdyxsXSksMj09PXUpcmV0dXJuIHc7bC5hc3luYyYmbC50aW1lb3V0PjAmJihoPWEuc2V0VGltZW91dChmdW5jdGlvbigpe3cuYWJvcnQoInRpbWVvdXQiKX0sbC50aW1lb3V0KSk7dHJ5e3U9MSxqLnNlbmQocyx5KX1jYXRjaCh4KXtpZighKDI+dSkpdGhyb3cgeDt5KC0xLHgpfX1lbHNlIHkoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIHkoYixjLGQsZSl7dmFyIGsscyx0LHYseCx5PWM7MiE9PXUmJih1PTIsaCYmYS5jbGVhclRpbWVvdXQoaCksaj12b2lkIDAsZz1lfHwiIix3LnJlYWR5U3RhdGU9Yj4wPzQ6MCxrPWI+PTIwMCYmMzAwPmJ8fDMwND09PWIsZCYmKHY9V2IobCx3LGQpKSx2PVhiKGwsdix3LGspLGs/KGwuaWZNb2RpZmllZCYmKHg9dy5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpLHgmJihuLmxhc3RNb2RpZmllZFtmXT14KSx4PXcuZ2V0UmVzcG9uc2VIZWFkZXIoImV0YWciKSx4JiYobi5ldGFnW2ZdPXgpKSwyMDQ9PT1ifHwiSEVBRCI9PT1sLnR5cGU/eT0ibm9jb250ZW50IjozMDQ9PT1iP3k9Im5vdG1vZGlmaWVkIjooeT12LnN0YXRlLHM9di5kYXRhLHQ9di5lcnJvcixrPSF0KSk6KHQ9eSwhYiYmeXx8KHk9ImVycm9yIiwwPmImJihiPTApKSksdy5zdGF0dXM9Yix3LnN0YXR1c1RleHQ9KGN8fHkpKyIiLGs/cC5yZXNvbHZlV2l0aChtLFtzLHksd10pOnAucmVqZWN0V2l0aChtLFt3LHksdF0pLHcuc3RhdHVzQ29kZShyKSxyPXZvaWQgMCxpJiZvLnRyaWdnZXIoaz8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFt3LGwsaz9zOnRdKSxxLmZpcmVXaXRoKG0sW3cseV0pLGkmJihvLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3csbF0pLC0tbi5hY3RpdmV8fG4uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiB3fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbi5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG4uZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLG4uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGIpe25bYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIG4uaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLG4uYWpheChuLmV4dGVuZCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0sbi5pc1BsYWluT2JqZWN0KGEpJiZhKSl9fSksbi5fZXZhbFVybD1mdW5jdGlvbihhKXtyZXR1cm4gbi5hamF4KHt1cmw6YSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGNhY2hlOiEwLGFzeW5jOiExLGdsb2JhbDohMSwidGhyb3dzIjohMH0pfSxuLmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihhKXtpZihuLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtuKHRoaXMpLndyYXBBbGwoYS5jYWxsKHRoaXMsYikpfSk7aWYodGhpc1swXSl7dmFyIGI9bihhLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApO3RoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZvcmUodGhpc1swXSksYi5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzO3doaWxlKGEuZmlyc3RDaGlsZCYmMT09PWEuZmlyc3RDaGlsZC5ub2RlVHlwZSlhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX0pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGEpe3JldHVybiBuLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe24odGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPW4odGhpcyksYz1iLmNvbnRlbnRzKCk7Yy5sZW5ndGg/Yy53cmFwQWxsKGEpOmIuYXBwZW5kKGEpfSl9LHdyYXA6ZnVuY3Rpb24oYSl7dmFyIGI9bi5pc0Z1bmN0aW9uKGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7bih0aGlzKS53cmFwQWxsKGI/YS5jYWxsKHRoaXMsYyk6YSl9KX0sdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50KCkuZWFjaChmdW5jdGlvbigpe24ubm9kZU5hbWUodGhpcywiYm9keSIpfHxuKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KS5lbmQoKX19KTtmdW5jdGlvbiBZYihhKXtyZXR1cm4gYS5zdHlsZSYmYS5zdHlsZS5kaXNwbGF5fHxuLmNzcyhhLCJkaXNwbGF5Iil9ZnVuY3Rpb24gWmIoYSl7aWYoIW4uY29udGFpbnMoYS5vd25lckRvY3VtZW50fHxkLGEpKXJldHVybiEwO3doaWxlKGEmJjE9PT1hLm5vZGVUeXBlKXtpZigibm9uZSI9PT1ZYihhKXx8ImhpZGRlbiI9PT1hLnR5cGUpcmV0dXJuITA7YT1hLnBhcmVudE5vZGV9cmV0dXJuITF9bi5leHByLmZpbHRlcnMuaGlkZGVuPWZ1bmN0aW9uKGEpe3JldHVybiBsLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cygpP2Eub2Zmc2V0V2lkdGg8PTAmJmEub2Zmc2V0SGVpZ2h0PD0wJiYhYS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aDpaYihhKX0sbi5leHByLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hbi5leHByLmZpbHRlcnMuaGlkZGVuKGEpfTt2YXIgJGI9LyUyMC9nLF9iPS9cW1xdJC8sYWM9L1xyP1xuL2csYmM9L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLGNjPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtmdW5jdGlvbiBkYyhhLGIsYyxkKXt2YXIgZTtpZihuLmlzQXJyYXkoYikpbi5lYWNoKGIsZnVuY3Rpb24oYixlKXtjfHxfYi50ZXN0KGEpP2QoYSxlKTpkYyhhKyJbIisoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT1lP2I6IiIpKyJdIixlLGMsZCl9KTtlbHNlIGlmKGN8fCJvYmplY3QiIT09bi50eXBlKGIpKWQoYSxiKTtlbHNlIGZvcihlIGluIGIpZGMoYSsiWyIrZSsiXSIsYltlXSxjLGQpfW4ucGFyYW09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9ZnVuY3Rpb24oYSxiKXtiPW4uaXNGdW5jdGlvbihiKT9iKCk6bnVsbD09Yj8iIjpiLGRbZC5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChhKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpfTtpZih2b2lkIDA9PT1iJiYoYj1uLmFqYXhTZXR0aW5ncyYmbi5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwpLG4uaXNBcnJheShhKXx8YS5qcXVlcnkmJiFuLmlzUGxhaW5PYmplY3QoYSkpbi5lYWNoKGEsZnVuY3Rpb24oKXtlKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKGMgaW4gYSlkYyhjLGFbY10sYixlKTtyZXR1cm4gZC5qb2luKCImIikucmVwbGFjZSgkYiwiKyIpfSxuLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG4ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT1uLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gYT9uLm1ha2VBcnJheShhKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFuKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmY2MudGVzdCh0aGlzLm5vZGVOYW1lKSYmIWJjLnRlc3QoYSkmJih0aGlzLmNoZWNrZWR8fCFaLnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9uKGEsYil7dmFyIGM9bih0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09Yz9udWxsOm4uaXNBcnJheShjKT9uLm1hcChjLGZ1bmN0aW9uKGEpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTphLnJlcGxhY2UoYWMsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNlKGFjLCJcclxuIil9fSkuZ2V0KCl9fSksbi5hamF4U2V0dGluZ3MueGhyPXZvaWQgMCE9PWEuQWN0aXZlWE9iamVjdD9mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzTG9jYWw/aWMoKTpkLmRvY3VtZW50TW9kZT44P2hjKCk6L14oZ2V0fHBvc3R8aGVhZHxwdXR8ZGVsZXRlfG9wdGlvbnMpJC9pLnRlc3QodGhpcy50eXBlKSYmaGMoKXx8aWMoKX06aGM7dmFyIGVjPTAsZmM9e30sZ2M9bi5hamF4U2V0dGluZ3MueGhyKCk7YS5hdHRhY2hFdmVudCYmYS5hdHRhY2hFdmVudCgib251bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIGZjKWZjW2FdKHZvaWQgMCwhMCl9KSxsLmNvcnM9ISFnYyYmIndpdGhDcmVkZW50aWFscyJpbiBnYyxnYz1sLmFqYXg9ISFnYyxnYyYmbi5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGIpe2lmKCFiLmNyb3NzRG9tYWlufHxsLmNvcnMpe3ZhciBjO3JldHVybntzZW5kOmZ1bmN0aW9uKGQsZSl7dmFyIGYsZz1iLnhocigpLGg9KytlYztpZihnLm9wZW4oYi50eXBlLGIudXJsLGIuYXN5bmMsYi51c2VybmFtZSxiLnBhc3N3b3JkKSxiLnhockZpZWxkcylmb3IoZiBpbiBiLnhockZpZWxkcylnW2ZdPWIueGhyRmllbGRzW2ZdO2IubWltZVR5cGUmJmcub3ZlcnJpZGVNaW1lVHlwZSYmZy5vdmVycmlkZU1pbWVUeXBlKGIubWltZVR5cGUpLGIuY3Jvc3NEb21haW58fGRbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGRbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtmb3IoZiBpbiBkKXZvaWQgMCE9PWRbZl0mJmcuc2V0UmVxdWVzdEhlYWRlcihmLGRbZl0rIiIpO2cuc2VuZChiLmhhc0NvbnRlbnQmJmIuZGF0YXx8bnVsbCksYz1mdW5jdGlvbihhLGQpe3ZhciBmLGksajtpZihjJiYoZHx8ND09PWcucmVhZHlTdGF0ZSkpaWYoZGVsZXRlIGZjW2hdLGM9dm9pZCAwLGcub25yZWFkeXN0YXRlY2hhbmdlPW4ubm9vcCxkKTQhPT1nLnJlYWR5U3RhdGUmJmcuYWJvcnQoKTtlbHNle2o9e30sZj1nLnN0YXR1cywic3RyaW5nIj09dHlwZW9mIGcucmVzcG9uc2VUZXh0JiYoai50ZXh0PWcucmVzcG9uc2VUZXh0KTt0cnl7aT1nLnN0YXR1c1RleHR9Y2F0Y2goayl7aT0iIn1mfHwhYi5pc0xvY2FsfHxiLmNyb3NzRG9tYWluPzEyMjM9PT1mJiYoZj0yMDQpOmY9ai50ZXh0PzIwMDo0MDR9aiYmZShmLGksaixnLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKX0sYi5hc3luYz80PT09Zy5yZWFkeVN0YXRlP2Euc2V0VGltZW91dChjKTpnLm9ucmVhZHlzdGF0ZWNoYW5nZT1mY1toXT1jOmMoKX0sYWJvcnQ6ZnVuY3Rpb24oKXtjJiZjKHZvaWQgMCwhMCl9fX19KTtmdW5jdGlvbiBoYygpe3RyeXtyZXR1cm4gbmV3IGEuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYil7fX1mdW5jdGlvbiBpYygpe3RyeXtyZXR1cm4gbmV3IGEuQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKX1jYXRjaChiKXt9fW4uYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0In0sY29udGVudHM6e3NjcmlwdDovXGIoPzpqYXZhfGVjbWEpc2NyaXB0XGIvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe3JldHVybiBuLmdsb2JhbEV2YWwoYSksYX19fSksbi5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZvaWQgMD09PWEuY2FjaGUmJihhLmNhY2hlPSExKSxhLmNyb3NzRG9tYWluJiYoYS50eXBlPSJHRVQiLGEuZ2xvYmFsPSExKX0pLG4uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihhKXtpZihhLmNyb3NzRG9tYWluKXt2YXIgYixjPWQuaGVhZHx8bigiaGVhZCIpWzBdfHxkLmRvY3VtZW50RWxlbWVudDtyZXR1cm57c2VuZDpmdW5jdGlvbihlLGYpe2I9ZC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiLmFzeW5jPSEwLGEuc2NyaXB0Q2hhcnNldCYmKGIuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGIuc3JjPWEudXJsLGIub25sb2FkPWIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7KGN8fCFiLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYi5yZWFkeVN0YXRlKSkmJihiLm9ubG9hZD1iLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbCxjfHxmKDIwMCwic3VjY2VzcyIpKX0sYy5pbnNlcnRCZWZvcmUoYixjLmZpcnN0Q2hpbGQpfSxhYm9ydDpmdW5jdGlvbigpe2ImJmIub25sb2FkKHZvaWQgMCwhMCl9fX19KTt2YXIgamM9W10sa2M9Lyg9KVw/KD89JnwkKXxcP1w/LztuLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9amMucG9wKCl8fG4uZXhwYW5kbysiXyIrRWIrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLG4uYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKGtjLnRlc3QoYi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYwPT09KGIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYma2MudGVzdChiLmRhdGEpJiYiZGF0YSIpO3JldHVybiBofHwianNvbnAiPT09Yi5kYXRhVHlwZXNbMF0/KGU9Yi5qc29ucENhbGxiYWNrPW4uaXNGdW5jdGlvbihiLmpzb25wQ2FsbGJhY2spP2IuanNvbnBDYWxsYmFjaygpOmIuanNvbnBDYWxsYmFjayxoP2JbaF09YltoXS5yZXBsYWNlKGtjLCIkMSIrZSk6Yi5qc29ucCE9PSExJiYoYi51cmwrPShGYi50ZXN0KGIudXJsKT8iJiI6Ij8iKStiLmpzb25wKyI9IitlKSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8bi5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiIsZj1hW2VdLGFbZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sZC5hbHdheXMoZnVuY3Rpb24oKXt2b2lkIDA9PT1mP24oYSkucmVtb3ZlUHJvcChlKTphW2VdPWYsYltlXSYmKGIuanNvbnBDYWxsYmFjaz1jLmpzb25wQ2FsbGJhY2ssamMucHVzaChlKSksZyYmbi5pc0Z1bmN0aW9uKGYpJiZmKGdbMF0pLGc9Zj12b2lkIDB9KSwic2NyaXB0Iik6dm9pZCAwfSksbi5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2YgYiYmKGM9YixiPSExKSxiPWJ8fGQ7dmFyIGU9eC5leGVjKGEpLGY9IWMmJltdO3JldHVybiBlP1tiLmNyZWF0ZUVsZW1lbnQoZVsxXSldOihlPWphKFthXSxiLGYpLGYmJmYubGVuZ3RoJiZuKGYpLnJlbW92ZSgpLG4ubWVyZ2UoW10sZS5jaGlsZE5vZGVzKSl9O3ZhciBsYz1uLmZuLmxvYWQ7bi5mbi5sb2FkPWZ1bmN0aW9uKGEsYixjKXtpZigic3RyaW5nIiE9dHlwZW9mIGEmJmxjKXJldHVybiBsYy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGQsZSxmLGc9dGhpcyxoPWEuaW5kZXhPZigiICIpO3JldHVybiBoPi0xJiYoZD1uLnRyaW0oYS5zbGljZShoLGEubGVuZ3RoKSksYT1hLnNsaWNlKDAsaCkpLG4uaXNGdW5jdGlvbihiKT8oYz1iLGI9dm9pZCAwKTpiJiYib2JqZWN0Ij09dHlwZW9mIGImJihlPSJQT1NUIiksZy5sZW5ndGg+MCYmbi5hamF4KHt1cmw6YSx0eXBlOmV8fCJHRVQiLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2Y9YXJndW1lbnRzLGcuaHRtbChkP24oIjxkaXY+IikuYXBwZW5kKG4ucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuYWx3YXlzKGMmJmZ1bmN0aW9uKGEsYil7Zy5lYWNoKGZ1bmN0aW9uKCl7Yy5hcHBseSh0aGlzLGZ8fFthLnJlc3BvbnNlVGV4dCxiLGFdKX0pfSksdGhpc30sbi5lYWNoKFsiYWpheFN0YXJ0IiwiYWpheFN0b3AiLCJhamF4Q29tcGxldGUiLCJhamF4RXJyb3IiLCJhamF4U3VjY2VzcyIsImFqYXhTZW5kIl0sZnVuY3Rpb24oYSxiKXtuLmZuW2JdPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm9uKGIsYSl9fSksbi5leHByLmZpbHRlcnMuYW5pbWF0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG4uZ3JlcChuLnRpbWVycyxmdW5jdGlvbihiKXtyZXR1cm4gYT09PWIuZWxlbX0pLmxlbmd0aH07ZnVuY3Rpb24gbWMoYSl7cmV0dXJuIG4uaXNXaW5kb3coYSk/YTo5PT09YS5ub2RlVHlwZT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzohMX1uLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrPW4uY3NzKGEsInBvc2l0aW9uIiksbD1uKGEpLG09e307InN0YXRpYyI9PT1rJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxoPWwub2Zmc2V0KCksZj1uLmNzcyhhLCJ0b3AiKSxpPW4uY3NzKGEsImxlZnQiKSxqPSgiYWJzb2x1dGUiPT09a3x8ImZpeGVkIj09PWspJiZuLmluQXJyYXkoImF1dG8iLFtmLGldKT4tMSxqPyhkPWwucG9zaXRpb24oKSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VGbG9hdChpKXx8MCksbi5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLG4uZXh0ZW5kKHt9LGgpKSksbnVsbCE9Yi50b3AmJihtLnRvcD1iLnRvcC1oLnRvcCtnKSxudWxsIT1iLmxlZnQmJihtLmxlZnQ9Yi5sZWZ0LWgubGVmdCtlKSwidXNpbmciaW4gYj9iLnVzaW5nLmNhbGwoYSxtKTpsLmNzcyhtKX19LG4uZm4uZXh0ZW5kKHtvZmZzZXQ6ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09YT90aGlzOnRoaXMuZWFjaChmdW5jdGlvbihiKXtuLm9mZnNldC5zZXRPZmZzZXQodGhpcyxhLGIpfSk7dmFyIGIsYyxkPXt0b3A6MCxsZWZ0OjB9LGU9dGhpc1swXSxmPWUmJmUub3duZXJEb2N1bWVudDtpZihmKXJldHVybiBiPWYuZG9jdW1lbnRFbGVtZW50LG4uY29udGFpbnMoYixlKT8oInVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCYmKGQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksYz1tYyhmKSx7dG9wOmQudG9wKyhjLnBhZ2VZT2Zmc2V0fHxiLnNjcm9sbFRvcCktKGIuY2xpZW50VG9wfHwwKSxsZWZ0OmQubGVmdCsoYy5wYWdlWE9mZnNldHx8Yi5zY3JvbGxMZWZ0KS0oYi5jbGllbnRMZWZ0fHwwKX0pOmR9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsYixjPXt0b3A6MCxsZWZ0OjB9LGQ9dGhpc1swXTtyZXR1cm4iZml4ZWQiPT09bi5jc3MoZCwicG9zaXRpb24iKT9iPWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6KGE9dGhpcy5vZmZzZXRQYXJlbnQoKSxiPXRoaXMub2Zmc2V0KCksbi5ub2RlTmFtZShhWzBdLCJodG1sIil8fChjPWEub2Zmc2V0KCkpLGMudG9wKz1uLmNzcyhhWzBdLCJib3JkZXJUb3BXaWR0aCIsITApLGMubGVmdCs9bi5jc3MoYVswXSwiYm9yZGVyTGVmdFdpZHRoIiwhMCkpLHt0b3A6Yi50b3AtYy50b3Atbi5jc3MoZCwibWFyZ2luVG9wIiwhMCksbGVmdDpiLmxlZnQtYy5sZWZ0LW4uY3NzKGQsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9mZnNldFBhcmVudDt3aGlsZShhJiYhbi5ub2RlTmFtZShhLCJodG1sIikmJiJzdGF0aWMiPT09bi5jc3MoYSwicG9zaXRpb24iKSlhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxRYX0pfX0pLG4uZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPS9ZLy50ZXN0KGIpO24uZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhLGQsZSl7dmFyIGY9bWMoYSk7cmV0dXJuIHZvaWQgMD09PWU/Zj9iIGluIGY/ZltiXTpmLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/bihmKS5zY3JvbGxMZWZ0KCk6ZSxjP2U6bihmKS5zY3JvbGxUb3AoKSk6YVtkXT1lKX0sYSxkLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksbi5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7bi5jc3NIb29rc1tiXT1VYShsLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oYSxjKXtyZXR1cm4gYz8oYz1TYShhLGIpLE9hLnRlc3QoYyk/bihhKS5wb3NpdGlvbigpW2JdKyJweCI6Yyk6dm9pZCAwfSl9KSxuLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe24uZWFjaCh7CnBhZGRpbmc6ImlubmVyIithLGNvbnRlbnQ6YiwiIjoib3V0ZXIiK2F9LGZ1bmN0aW9uKGMsZCl7bi5mbltkXT1mdW5jdGlvbihkLGUpe3ZhciBmPWFyZ3VtZW50cy5sZW5ndGgmJihjfHwiYm9vbGVhbiIhPXR5cGVvZiBkKSxnPWN8fChkPT09ITB8fGU9PT0hMD8ibWFyZ2luIjoiYm9yZGVyIik7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihiLGMsZCl7dmFyIGU7cmV0dXJuIG4uaXNXaW5kb3coYik/Yi5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYV06OT09PWIubm9kZVR5cGU/KGU9Yi5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgoYi5ib2R5WyJzY3JvbGwiK2FdLGVbInNjcm9sbCIrYV0sYi5ib2R5WyJvZmZzZXQiK2FdLGVbIm9mZnNldCIrYV0sZVsiY2xpZW50IithXSkpOnZvaWQgMD09PWQ/bi5jc3MoYixjLGcpOm4uc3R5bGUoYixjLGQsZyl9LGIsZj9kOnZvaWQgMCxmLG51bGwpfX0pfSksbi5mbi5leHRlbmQoe2JpbmQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLm9uKGEsbnVsbCxiLGMpfSx1bmJpbmQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5vZmYoYSxudWxsLGIpfSxkZWxlZ2F0ZTpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5vbihiLGEsYyxkKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMub2ZmKGEsIioqIik6dGhpcy5vZmYoYixhfHwiKioiLGMpfX0pLG4uZm4uc2l6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0sbi5mbi5hbmRTZWxmPW4uZm4uYWRkQmFjaywiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoImpxdWVyeSIsW10sZnVuY3Rpb24oKXtyZXR1cm4gbn0pO3ZhciBuYz1hLmpRdWVyeSxvYz1hLiQ7cmV0dXJuIG4ubm9Db25mbGljdD1mdW5jdGlvbihiKXtyZXR1cm4gYS4kPT09biYmKGEuJD1vYyksYiYmYS5qUXVlcnk9PT1uJiYoYS5qUXVlcnk9bmMpLG59LGJ8fChhLmpRdWVyeT1hLiQ9biksbn0pOwo="></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="data:text/css;charset=utf-8,%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Source%20Sans%20Pro%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20300%3B%0Asrc%3A%20url%28data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAARAQAABAAQR0RFRgNEA3IAAG%2BkAAAAQEdQT1PXveeXAABv5AAAGWRHU1VC8WfWVwAAiUgAAADgT1MvMlpQkwsAAGZkAAAAYGNtYXDzMPm1AABmxAAAAeZjdnQgDXMAuAAAamwAAAAoZnBnbQZZnDcAAGisAAABc2dhc3D%2F%2FwADAABvnAAAAAhnbHlm4G%2FpBAAAARwAAF8kaGVhZP4Fs%2FYAAGJEAAAANmhoZWEHlAOiAABmQAAAACRobXR4l6Yq6AAAYnwAAAPEbG9jYV5idvoAAGBgAAAB5G1heHADCwJJAABgQAAAACBuYW1lIvc8kwAAapQAAAHKcG9zdGxQSG8AAGxgAAADOXByZXAtaIB5AABqIAAAAEsABQBeAAACGgKUAAMABgAJAA8AFQBnALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAIvG7kAAgAEPlm6AAUAAgAAERI5ugAGAAIAABESOboABwACAAAREjm6AAgAAgAAERI5uQAKAAH0ugANAAIAABESObgAABC5ABIAAfQwMRMhESETAxEhEQMTLwEjDwETPwEhHwFeAbz%2BRMCTAWCRfF07BD1foDVW%2FuRXNgKU%2FWwBVAEE%2FfwCBP78%2FtOkaWmkAU1cm5tcAAIACAAAAgYCkwAJABEAVAC4AABFWLgADi8buQAOABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4ABEvG7kAEQAEPlm6AAUADAAOERI5ugALAAwADhESObgACy%2B5AAkAAfQwMQEnLgEnIw4BDwEXIQcjEzMTIwF8KhQkEQQRJBQq9%2F77Ti7oLugwAQl7O2w9PWw7eyfiApP9bQAAAAMAYQAAAhUCkwARABoAIwBbALgAAEVYuAAALxu5AAAAED5ZuAAARVi4ABEvG7kAEQAEPlm6ACEAAAARERI5uAAhL7oACAAhABIREjm4AAAQuQAZAAH0uAAhELkAGgAB9LgAERC5ACMAAfQwMRMzMhYVFAYHFR4BFRQOAisBEzI2NTQmKwEVEzI2NTQmKwERYbJkdjs6SVQjQFo4v6BmWF5bd4VjcW5mhQKTTVM0TQ8EC09FMEgwGAFxQUJAOfz%2BtUpQR0X%2B2gAAAQA3%2F%2FQCDwKfACEAOQC4AABFWLgABS8buQAFABA%2BWbgAAEVYuAAdLxu5AB0ABD5ZuAAFELkADAAB9LgAHRC5ABYAAfQwMRM0PgIzMhYXBy4BIyIOAhUUHgIzMjY3Fw4BIyIuAjcpSmg%2FOVgaHBpILTZXPSAgPFU1M08kHCZeQD1mSSgBS05%2BWS8wHx4eJSpNbkVFb04rKCkdLDIwWX8AAAIAYQAAAiUCkwAMABkANQC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuQANAAH0uAAAELkAFwAB9DAxEzMyHgIVFA4CKwE3Mj4CNTQuAisBEWGZTHFKJCRKcEyalENhPh4ePmFDZgKTLlZ4S0t7Vy8nK05rQUBqTCr9uwAAAAABAGEAAAHUApMACwBNALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAsvG7kACwAEPlm4AAAQuQADAAH0ugAHAAAACxESObgABy%2B5AAUAAfS4AAsQuQAIAAH0MDETIRUhFSEVIREhFSFhAWn%2BxQEI%2FvgBRf6NApMo%2BSj%2B3igAAQBhAAAByAKTAAkAQwC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAJLxu5AAkABD5ZuAAAELkAAwAB9LoABwAAAAkREjm4AAcvuQAFAAH0MDETIRUhESEVIREjYQFn%2FscBCf73LgKTKP76KP7DAAAAAAEAN%2F%2F0AhUCnwAnAE0AuAAARVi4AAUvG7kABQAQPlm4AABFWLgAIy8buQAjAAQ%2BWbgABRC5AA4AAfS4ACMQuQAYAAH0ugAfAAUAIxESObgAHy%2B5AB0AAfQwMRM0PgIzMh4CFwcuASMiDgIVFB4CMzI2NzUjNTMRDgEjIi4CNypNa0IhNiwjDRsaSDY5Wj8iID1ZOC1PGJ7KH2NCP2hKKQFLTn5ZLw4XHA4eHCcqTW5FRW9OKxoYzSf%2B%2ByEqMFl%2FAAEAYQAAAh4CkwALAEkAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACy8buQALAAQ%2BWboACQAAAAsREjm4AAkvuQADAAH0uAAAELgABNC4AAsQuAAH0DAxEzMRIREzESMRIREjYS4BYS4u%2Fp8uApP%2B3wEh%2FW0BSv62AAEAYQAAAI8CkwADACUAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgAAy8buQADAAQ%2BWTAxEzMRI2EuLgKT%2FW0AAAABACn%2F9AFvApMAEQArALgAAEVYuAAHLxu5AAcAED5ZuAAARVi4AA4vG7kADgAEPlm5AAMAAfQwMTceATMyNjURMxEUDgIjIiYnTBg9Kjw6LhInPi03UhlsKiRJUQHb%2FiAoRTQeMi8AAAEAYQAAAiQCkwAMAFsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgABC8buQAEABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4AAgvG7kACAAEPlm6AAIAAAAMERI5ugAJAAQACBESOTAxEzMRMwEzBxMjAwcVI2EuAgE%2FN9LvNdqGLgKT%2FpIBbvT%2BYQF8meMAAAEAYQAAAb8CkwAFACsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgABS8buQAFAAQ%2BWbkAAgAB9DAxEzMRIRUhYS4BMP6iApP9lSgAAAABAGEAAAJhApMAGQBvALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAYvG7kABgAQPlm4AABFWLgAGS8buQAZAAQ%2BWbgAAEVYuAAJLxu5AAkABD5ZugADAAYACRESOboADgAGAAkREjm6ABEAGQAGERI5ugAUAAAAGRESOTAxEzMTFzM3EzMRIxE0NjcjBwMjAycjHgEVESNhQYo0BDKKQS0EAgQ0jSmONAQCBCsCk%2F59kpIBg%2F1tAbEpXyqR%2FnYBipEqXyn%2BTwAAAAEAYQAAAhsCkwATAFsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACC8buQAIABA%2BWbgAAEVYuAATLxu5ABMABD5ZuAAARVi4AAsvG7kACwAEPlm6AAQACwAIERI5ugAOAAAAExESOTAxEzMBFzMuATURMxEjAScjHgEVESNhMAEWSgQCBCww%2FupKBAIELAKT%2Fi%2BDMGAwAZT9bQHRgzBbMP5nAAAAAgA3%2F%2FQCVgKfABMAJwA1ALgAAEVYuAAKLxu5AAoAED5ZuAAARVi4AAAvG7kAAAAEPlm5ABQAAfS4AAoQuQAeAAH0MDEFIi4CNTQ%2BAjMyHgIVFA4CJzI%2BAjU0LgIjIg4CFRQeAgFGO2RIKChIZDs8ZEgoKEhkPDJSOyAgO1IyMlM6ICA6UwwxWn9OTn1ZLy9ZfU5Of1oxKitPb0VEbk0qKk1uREVvTysAAgBhAAACAAKTAAwAFwBDALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAwvG7kADAAEPlm6AAoAAAAMERI5uAAKL7kADQAB9LgAABC5ABYAAfQwMRMzMh4CFRQGKwERIxMyNjU0LgIrARFhtDdXPSB8b4YuqWViGTFLMnsCkxMsRjNhX%2F7lAUJIUSo3Ig7%2B1gAAAgA3%2F2UCWAKfABMANABLALgAAEVYuAAkLxu5ACQAED5ZuAAARVi4ABovG7kAGgAEPlm7ADEAAQAXAAQruAAaELkABQAB9LgAJBC5AA8AAfS4ABoQuAAu0DAxExQeAjMyPgI1NC4CIyIOAgEOASMiJicuAzU0PgIzMh4CFRQOAgceATMyNjdnIDpTMjJSOyAgO1IyMlM6IAHxDSsZU28ZNlpBJChIZDs8ZEgoJEFbNxdXPhcfDQFMRXFPLCxPcUVEbk0qKk1u%2FeAEB1I%2BBTVZekpOfVkvL1l9Tkp6WTUFMjQFBAAAAgBhAAACAwKTAAgAGABUALgAAEVYuAAOLxu5AA4AED5ZuAAARVi4AAwvG7kADAAEPlm4AABFWLgACS8buQAJAAQ%2BWbsAAAABAAoABCu4AA4QuQAGAAH0ugAXAAAAChESOTAxATI2NTQmKwERAQMjESMRMzIeAhUUBgcTARJYXV5XgwE%2Fs4wuvTFQOB9bTrYBVUdJSj3%2B6f6rAS%2F%2B0QKTEypCL09aCv7OAAAAAAEALv%2F0AeACnwAzAEkAuAAARVi4ABYvG7kAFgAQPlm4AABFWLgAMC8buQAwAAQ%2BWbkAAwAB9LoACwAWADAREjm4ABYQuQAdAAH0ugAlADAAFhESOTAxNx4BMzI2NTQuAi8BLgM1ND4CMzIWFwcuASMiBhUUHgIfAR4DFRQOAiMiJidMJGQ5TFgTICsYZBYvJxodM0cpPF0eGh1OMkJQFiIoEmQcMiYXHjdOMEhwJ3cpMEk7HyofFwstCRonNSUkOysYLyAfHyVANh0oHRUILAweKDcmJkEvGzcsAAABAB0AAAHvApMABwAzALgAAEVYuAACLxu5AAIAED5ZuAAARVi4AAcvG7kABwAEPlm4AAIQuQAAAAH0uAAF0DAxEyM1IRUjESPv0gHS0i4Caygo%2FZUAAAAAAQBf%2F%2FQCGwKTABkAPAC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAANLxu5AA0AED5ZuAAARVi4ABQvG7kAFAAEPlm5AAcAAfQwMRMzERQeAjMyPgI1ETMRFA4CIyIuAjVfLh0wPyMkQTEeKyY%2BUCsqUD4lApP%2Bb0JXNRYWNVdCAZH%2Bak1mPRkZPWZNAAABAAQAAAHnApMADwBAALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAwvG7kADAAQPlm4AABFWLgADy8buQAPAAQ%2BWboABQAAAA8REjkwMRMzEx4BFzM%2BAzcTMwMjBDF6Ex8UBAoREBEJei%2FYMQKT%2Fn88ZTweNjU2HgGB%2FW0AAQAcAAAC5AKTACEAdgC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAKLxu5AAoAED5ZuAAARVi4ABQvG7kAFAAQPlm4AABFWLgAIS8buQAhAAQ%2BWbgAAEVYuAAXLxu5ABcABD5ZugAFAAAAIRESOboADwAUABcREjm6ABwAIQAKERI5MDETMxMeARczPgE3EzMTHgEXMz4BNxMzAyMDLgEnIw4BBwMjHDBTCxcLBAwZDmcvZw4ZDgQLFQtTLZMzeAkSCAQIFAl2MgKT%2Fnw2azY2azYBhP58Nms2Nms2AYT9bQHEJ0cnJ0cn%2FjwAAAABABEAAAHRApMAGQBbALgAAEVYuAABLxu5AAEAED5ZuAAARVi4AAsvG7kACwAQPlm4AABFWLgAGS8buQAZAAQ%2BWbgAAEVYuAAPLxu5AA8ABD5ZugAGAAEAGRESOboAEwAPAAsREjkwMRMDMxceARczPgE%2FATMDEyMnLgEnIw4BDwEj17gybA4XEQQOFQ5sL7jGMnMOHRIEEBoOcy8BVQE%2BwhcoGxsoF8L%2BwP6tyhkyHh4yGcoAAAAAAQADAAABvAKTAA8AQAC4AABFWLgAAS8buQABABA%2BWbgAAEVYuAALLxu5AAsAED5ZuAAARVi4AA8vG7kADwAEPlm6AAYAAQAPERI5MDETAzMXHgEXMz4BPwEzAxEjyMUxZBEhFAQTJBBkL8YuAQsBiM4kRiQkRiTO%2Fnj%2B9QAAAAABADIAAAHqApMACQA9ALgAAEVYuAADLxu5AAMAED5ZuAAARVi4AAgvG7kACAAEPlm5AAYAAfS4AADQuAADELkAAQAB9LgABdAwMTcBITUhFQEhFSEyAXv%2BpgGU%2FoQBf%2F5IGwJQKBv9sCgAAAACAEH%2F9AGjAewAIQAtAHYAuAAARVi4ABEvG7kAEQAIPlm4AABFWLgAHS8buQAdAAQ%2BWbgAAEVYuAAYLxu5ABgABD5ZugADABEAHRESObgAAy%2B4ABEQuQAIAAH0ugAZABgAERESObgAHRC5ACUAAfS4ABkQuQAoAAH0uAADELkAKQAB9DAxNzQ2NzYuAiMiBgcnPgMzMh4CFREjJyMOASMiLgI3FBYzMjY3NQ4DQZagAQkZLSMxUBgUDSUtNh0rOiQPJQUCJVUwHTInFi48KSpMLUplPht4T1QSGzcrGyYSIQkWEg0dMkMn%2Fs0%2BHS0QIDIkNCwoJqMJGiQuAAACAFz%2F9AHsAs8AFAAlAIMAuAAARVi4AAAvG7kAAAASPlm4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAOLxu5AA4ABD5ZuAAARVi4ABQvG7kAFAAEPlm6AAMABgAOERI5ugARAA4ABhESObgAERC5ABUAAfS4AA4QuQAYAAH0uAAGELkAIgAB9LgAAxC5ACUAAfQwMRMzFQc%2BATMyFhUUDgIjIiYnIwcjNx4BMzI%2BAjU0LgIjIgYHXCwCJVQtYGAiO00qI0siAgUlLChKHCQ%2BLBkRJDopJE4rAs%2FQXh8shXA9YEMjHxotWSIcIDpRMSxMNx8pJgAAAQA0%2F%2FQBpwHsACEAOQC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAAdLxu5AB0ABD5ZuAAFELkADAAB9LgAHRC5ABYAAfQwMTc0PgIzMhYXBy4BIyIOAhUUHgIzMjY3Fw4BIyIuAjQkPE8sMkMYGhc4IyU%2FLxsZLUEnJkEZFx9MLi9POyHvPF9AIiQXHxYdHzlOMC9OOB8gFx4cJCJAXQAAAAIANP%2F0AcQCzwAUACUAgwC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAAKLxu5AAoAEj5ZuAAARVi4ABIvG7kAEgAEPlm4AABFWLgADS8buQANAAQ%2BWboACAASAAUREjm6AA4ABQASERI5uAASELkAGgAB9LgADhC5AB0AAfS4AAgQuQAeAAH0uAAFELkAIQAB9DAxNzQ%2BAjMyFhcnNTMRIycjDgEjIiY3FB4CMzI2NxEuASMiDgI0IjtNKyxBJAIsJgQDHU8wW2wvFSg7JihJJiZDIyQ%2BLRrvOl5CIx8cWMb9MT4dLYF6ME43HykmAR0iHCE5TwACADT%2F9AG9AewAHAAlAFEAuAAARVi4AAUvG7kABQAIPlm4AABFWLgAGC8buQAYAAQ%2BWboACwAFABgREjm4AAsvuAAYELkAEQAB9LgABRC5ACAAAfS4AAsQuQAlAAH0MDE3ND4CMzIWFRwBByEeAzMyNjcXDgEjIi4CJTQmIyIOAgc0IztLKFZiAv6mARovQiknPxsSHUU1LlE8IwFfTEEfOC0dBO87XkEjdGoJEgktTTcfFxQiER4iQV1YXV0aMEUrAAAAAQAhAAABIALbABYAVgC4AABFWLgABy8buQAHAAg%2BWbgAAEVYuAAULxu5ABQAEj5ZuAAARVi4AAsvG7kACwAEPlm4ABQQuQADAAH0uAAHELkACgAB9LgADdC4AAcQuAAQ0DAxAS4BIyIGHQEzFSMRIxEjNTc1NDYzMhcBFA8dDiYlb28sQkI%2BOSMjAqcIBjk0aCb%2BRgG6IgRrSEgQAAAAAAMANP8ZAdwB7AARAEcAWwBtALgAAEVYuAAlLxu5ACUACD5ZuAAARVi4AEUvG7kARQAGPlm5AAMAAfS6ADwAJQBFERI5uAA8L7kACwAB9LgAJRC4ACnQuAApL7kAKgAB9LgAPBC4ADPQuAAzL7kASAAB9LgAJRC5AFIAAfQwMRcUFjMyPgI1NCYrASImJw4BBzQ2NzUuATU0Njc1LgE1ND4CMzIWFzMVIx4BFRQOAiMiJicOARUUFjsBMhYVFA4CIyImEzI%2BAjU0LgIjIg4CFRQeAl5TTShCLhk5NmcIIRMhHiomIRIYJBAXJRouPiMUIAujcBceGi09IxQrERAXJjZnUU0gO1Q0W2q%2BGS0iFBQhLhkaLSIUFCMtXi04FSIrFyghAwUXNB4gPBgECyYcIC0LBBRELCU%2BLRkHBSUUPyYlPi0ZCgoNIBgaJTU5HzstG0gBWxMkMh4eMiITEyIxHx4yJBMAAQBcAAABvwLPABQAWAC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAALxu5AAAAEj5ZuAAARVi4ABQvG7kAFAAEPlm6AAMABgAUERI5uAAL0LgABhC5AA8AAfS4AAMQuQASAAH0MDETMx0BPgEzMhYVESMRNCYjIgYHESNcLCZOMktGLDM7K0YsLALP0GomMVpe%2FswBLk1JLS3%2BlgAAAgBLAAAAmwKjAAsADwAtALgAAEVYuAAMLxu5AAwACD5ZuAAARVi4AA4vG7kADgAEPlm6AAYAAAADKzAxEyImNTQ2MzIWFRQGBzMRI3MRFxcRERcXKCwsAlQWERMVFRMRFnT%2BIAAAAAAC%2F9%2F%2FGwCcAqMADwAbADcAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgABS8buQAFAAY%2BWboAFgAQAAMruAAFELkADAAB9DAxEzMRFAYjIiYnNx4BMzI2NRMiJjU0NjMyFhUUBlwtNDgRIgsLCRsOKBgXEBgYEBEYGAHg%2FcdHRQcFJAMHOy4CqhYRExUVExEWAAABAFwAAAHEAs8ADABbALgAAEVYuAAELxu5AAQACD5ZuAAARVi4AAAvG7kAAAASPlm4AABFWLgADC8buQAMAAQ%2BWbgAAEVYuAAILxu5AAgABD5ZugACAAAADBESOboACQAAAAgREjkwMRMzETMTMwcTIwMHFSNcLALtM5y2MZ9sLALP%2Fe4BI77%2B3gEBfoMAAAABAFz%2F9AC3As8ADgArALgAAEVYuAAALxu5AAAAEj5ZuAAARVi4AAwvG7kADAAEPlm5AAUAAfQwMRMzERQWMzoBNxcOASMiNVwsDAkDBwgIBw4LOwLP%2FWsQDwIkAgNMAAABAFwAAALYAewAIACYALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4AAAvG7kAAAAIPlm4AABFWLgAIC8buQAgAAQ%2BWbgAAEVYuAAYLxu5ABgABD5ZuAAARVi4ABAvG7kAEAAEPlm6AAIAAAAgERI5ugAJAAAAIBESObgABhC4AAzQuQAUAAH0uAAJELkAFgAB9LgABhC5ABwAAfS4AAIQuQAeAAH0MDETMxczPgEzMhYXPgEzMhURIxE0JiMiBxEjETQmIyIHESNcJgQDIE8oOj4NKk8qkC00N0FPLDQ4QU8sAeBKJTE1LS01uP7MAS5NSVr%2BlgEuTUla%2FpYAAAABAFwAAAG%2FAewAFABlALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4AAAvG7kAAAAIPlm4AABFWLgAFC8buQAUAAQ%2BWbgAAEVYuAALLxu5AAsABD5ZugACAAAAFBESObgABhC5AA8AAfS4AAIQuQASAAH0MDETMxczPgEzMhYVESMRNCYjIgYHESNcJgQDJU4yS0YsMzsrRiwsAeBKJTFaXv7MAS5NSS0t%2FpYAAAAAAgA0%2F%2FQB4wHsABMAJwA1ALgAAEVYuAAFLxu5AAUACD5ZuAAARVi4AA8vG7kADwAEPlm5ABkAAfS4AAUQuQAjAAH0MDE3ND4CMzIeAhUUDgIjIi4CNxQeAjMyPgI1NC4CIyIOAjQjO04rK087IyM7TysrTjsjLhotPiQkPy0aGi0%2FJCQ%2BLRrvPF9AIiJAXzw8XUAiIkBdPC9OOB8fOE4vME45Hx85TgAAAgBc%2FycB7AHsABQAJQCDALgAAEVYuAAJLxu5AAkACD5ZuAAARVi4AAMvG7kAAwAIPlm4AABFWLgAAi8buQACAAY%2BWbgAAEVYuAARLxu5ABEABD5ZugAFAAkAERESOboAFAARAAkREjm4ABQQuQAVAAH0uAARELkAGAAB9LgACRC5ACIAAfS4AAUQuQAlAAH0MDEXFSMRMxczPgEzMhYVFA4CIyImJzUeATMyPgI1NC4CIyIGB4gsJgQDI1MtYGAiO00qIkgmKkgcJD4sGREkOikkTSwqrwK5PBwshXA9YEMjHxwqIhwgOlExLEw3HykmAAAAAAIANP8nAcQB7AAUACUAfwC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAALLxu5AAsACD5ZuAAARVi4AA0vG7kADQAGPlm4AABFWLgAEi8buQASAAQ%2BWboACAAFABIREjm6AA8AEgAFERI5uQAaAAH0uAAPELkAHQAB9LgACBC5AB4AAfS4AAUQuQAhAAH0MDE3ND4CMzIWFzM3MxEjNTcOASMiJjcUHgIzMjY3ES4BIyIOAjQiO00rLEEiAgUlLAIgTzBbbC8VKDsmKEkmJkMjJD4tGu86XkIjHhos%2FUe5XR0sgXowTjcfKSYBHSIcITlPAAEAXAAAAUEB7AASAFIAuAAARVi4AAYvG7kABgAIPlm4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAASLxu5ABIABD5ZugACAAAAEhESObgABhC4AA3cuAACELkAEAAB9DAxEzMXMz4BMzIWFwcuASMiBgcRI1wmBAMYRSsOFgwKDBIOIEccLAHgWS04BAYoBQM3RP65AAABACD%2F9AFyAewAMwBJALgAAEVYuAAVLxu5ABUACD5ZuAAARVi4ADAvG7kAMAAEPlm5AAMAAfS6AAsAMAAVERI5uAAVELkAHAAB9LoAJgAVADAREjkwMTceATMyNjU0LgInLgM1ND4CMzIWFwcuASMiDgIVFB4CFx4DFRQOAiMiJic6H0Y0OTkVIikVGzcsGxQoOSYmSRoYGDYlHCgbDRMgKRUcOC0cFSo8JzZaIFcaIzkmFiIYEggKFh8rHxovIxQcFh8SGQ8YIBAVHRYRCAsWIC8jGzElFicbAAAAAQAc%2F%2FQBLQJrABsARQC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAWLxu5ABYABD5ZuAAGELkACQAB9LgAANC4AAYQuAAD0LgAFhC5AA8AAfQwMRMjNT8BMxUzFSMRFB4CMzI2NxcOASMiLgI1Z0tMBiaLiwcSHxkOIQ0MFSoPIy4cCwG6IgSLiyb%2BxxclGw8JBiQIChUmNiAAAAAAAQBV%2F%2FQBtQHgABQAZQC4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAAJLxu5AAkACD5ZuAAARVi4ABEvG7kAEQAEPlm4AABFWLgADC8buQAMAAQ%2BWbgAERC5AAUAAfS6AA0ACQAMERI5uAANELkACAAB9DAxEzMRFBYzMjY3ETMRIycjDgEjIiY1VSwzOitGKiwlBQIjTjJLRgHg%2FtJNSS8zAWL%2BIFAqMlpeAAAAAAEADAAAAaYB4AANAEAAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgACi8buQAKAAg%2BWbgAAEVYuAANLxu5AA0ABD5ZugAFAAAADRESOTAxEzMTHgEXMz4BNxMzAyMMMGwLGgsEDBkMbC2yNAHg%2FtMjRiEhRiMBLf4gAAEAGAAAApUB4AAhAHYAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgACi8buQAKAAg%2BWbgAAEVYuAAULxu5ABQACD5ZuAAARVi4ACEvG7kAIQAEPlm4AABFWLgAFy8buQAXAAQ%2BWboABQAhAAAREjm6AA8AFwAUERI5ugAcAAAAIBESOTAxEzMTHgEXMz4BNxMzEx4BFzM%2BATcTMwMjAy4BJyMOAQcDIxgwVgkQCAQIEglXNVcJEgkECBIIVS2KOlQLDwsECBMLUzUB4P7JIT8gID8hATf%2BySE%2FICA%2FIQE3%2FiABKiNDIyNFI%2F7YAAAAAQAOAAABiQHgABkAWwC4AABFWLgAAS8buQABAAg%2BWbgAAEVYuAALLxu5AAsACD5ZuAAARVi4ABkvG7kAGQAEPlm4AABFWLgADy8buQAPAAQ%2BWboABgALAA8REjm6ABQAAQAZERI5MDE3JzMXHgEXMz4BPwEzBxcjJy4BJyMOAQ8BI7GWMU4MGQ4EDRcNSy6VozFVDhwPBA4bDlIv%2B%2BV6FCcUFCcUeun3gxcsFRUsF4MAAAAAAQAM%2FyUBqAHgABwARgC4AABFWLgACC8buQAIAAg%2BWbgAAEVYuAASLxu5ABIACD5ZuAAARVi4ABkvG7kAGQAGPlm5AAMAAfS6AA0ACAAZERI5MDEXHgEzMjY%2FAQMzEx4BFzM%2BATcTMwMOAyMiJzciCBQLLTwSDcUwdAsbDgQLFwpnLb4KHSczIBsWCqoDBUg3KgHp%2FtIeSCAgSB4BLv3kHjktGwonAAAAAQAbAAABegHgAAkAPQC4AABFWLgAAy8buQADAAg%2BWbgAAEVYuAAILxu5AAgABD5ZuQAGAAH0uAAA0LgAAxC5AAEAAfS4AAXQMDE3ASM1IRUBIRUhGwEc%2FQE2%2FuUBJf6hGAGiJhf%2BXicAAAD%2F%2FwAIAAACBgMvAiYABAAAAAcA4QEHAAD%2F%2FwAIAAACBgMvAiYABAAAAAcA4wEHAAD%2F%2FwAIAAACBgMvAiYABAAAAAcA5QEHAAD%2F%2FwAIAAACBgMoAiYABAAAAAcA5wEHAAD%2F%2FwAIAAACBgMeAiYABAAAAAcA6gEHAAD%2F%2FwAIAAACBgNgAiYABAAAAAcA7AEHAAAAAgAVAAAC%2BgKTAAYAFgB8ALgAAEVYuAAOLxu5AA4AED5ZuAAARVi4AA0vG7kADQAEPlm4AABFWLgACS8buQAJAAQ%2BWboAAgAOAA0REjm6AAoADgANERI5uAAKL7kABgAB9LgACRC5AAcAAfS4AA4QuQAQAAH0ugAVAA4ACRESObgAFS%2B5ABMAAfQwMSURIw4BDwEFFSE1IwcjASEVIRUzFSMRAZsEHz0gSQIo%2FqHedzEBbQFu%2Ftn19f8BbDhzPIXXKNnZApMo%2BSj%2B3gD%2F%2FwA3%2FzACDwKfAiYABgAAAAcA7gFTAAD%2F%2FwBhAAAB1AMvAiYACAAAAAcA4QEaAAD%2F%2FwBhAAAB1AMvAiYACAAAAAcA4wEaAAD%2F%2FwBhAAAB1AMvAiYACAAAAAcA5QEaAAD%2F%2FwBhAAAB1AMeAiYACAAAAAcA6gEaAAD%2F%2FwAHAAAAnQMvAiYADAAAAAYA4XgAAAD%2F%2FwBTAAAA6QMvAiYADAAAAAYA43gAAAD%2F%2FwADAAAA7QMvAiYADAAAAAYA5XgAAAD%2F%2FwAFAAAA6wMeAiYADAAAAAYA6ngAAAD%2F%2FwBhAAACGwMoAiYAEQAAAAcA5wFDAAD%2F%2FwA3%2F%2FQCVgMvAiYAEgAAAAcA4QFGAAD%2F%2FwA3%2F%2FQCVgMvAiYAEgAAAAcA4wFGAAD%2F%2FwA3%2F%2FQCVgMvAiYAEgAAAAcA5QFGAAD%2F%2FwA3%2F%2FQCVgMoAiYAEgAAAAcA5wFGAAD%2F%2FwA3%2F%2FQCVgMeAiYAEgAAAAcA6gFGAAAAAwA4%2F%2BkCWQKqAAsAFwAzAIUAuAAARVi4AC4vG7kALgAQPlm4AABFWLgAIC8buQAgAAQ%2BWboAAAAgAC4REjm5AAMAAfS6AAsALgAgERI5ugAMAC4AIBESObgALhC5AA8AAfS6ABcAIAAuERI5ugAYAC4AIBESOboAIwAgAC4REjm6ACYAIAAuERI5ugAxAC4AIBESOTAxNx4BMzI%2BAjU0Ji8BLgEjIg4CFRQWFwEeARUUDgIjIiYnByc3LgE1ND4CMzIWFzcXsR1NLzJSOyAbGRcdSi0yUzogGRcBdyIlKEhkOzZcI0EcRiAkKEhkPDRYIz0dZSIlK09vRT9mJh4fISpNbkQ9ZSYBuSx6S05%2FWjEnJVcWXi14Sk59WS8kIlEWAAAAAAIANwAAAxICkwAUACEAVQC4AABFWLgABS8buQAFABA%2BWbgAAEVYuAAQLxu5ABAABD5ZuAAFELkAHAAB9LgAB9C6AAwABQAQERI5uAAML7kACgAB9LgAEBC5ABsAAfS4AA7QMDETND4CMyEVIRUzFSMRIRUhIi4CNxQeAjsBESMiDgI3J091TgGY%2Ftn19QEx%2Fl1OdU4nMCBDZUU%2FP0VlQyABTEt4Vi4o%2BSj%2B3igvV3tLQWtOKwJFKktrAAD%2F%2FwBf%2F%2FQCGwMvAiYAGAAAAAcA4QE9AAD%2F%2FwBf%2F%2FQCGwMvAiYAGAAAAAcA4wE9AAD%2F%2FwBf%2F%2FQCGwMvAiYAGAAAAAcA5QE9AAD%2F%2FwBf%2F%2FQCGwMeAiYAGAAAAAcA6gE9AAD%2F%2FwADAAABvAMvAiYAHAAAAAcA4wDfAAAAAgAlAAACOgKTABAAIQBZALgAAEVYuAAhLxu5ACEAED5ZuAAARVi4ABwvG7kAHAAEPlm5AAAAAfS4ACEQuQAKAAH0ugAOACEAHBESObgADi%2B5AA0AAfS4AA4QuAAe0LgADRC4AB%2FQMDElMj4CNTQuAisBFTMVIxETMh4CFRQOAisBESM1NxEBCkNgPx4eP2BDZqOjakxxSyQkSnFMmVFRJytOa0FAakwq%2FyH%2B2wJsLlZ4S0t7Vy8BTB8CASYAAAAAAgBhAAACAAKTAA4AFwA5ALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AA4vG7kADgAEPlm7ABcAAQAMAAQruwACAAEAFgAEKzAxEzMVMzIeAhUUBisBFSM3MjY1NCYrARFhLoY3Vz0gfG%2BGLqllYmNkewKTdRQrRjNhX6bNSFFSP%2F7WAAD%2F%2FwBB%2F%2FQBowLEAiYAHgAAAAcA4AEGAAD%2F%2FwBB%2F%2FQBowLEAiYAHgAAAAcA4gEGAAD%2F%2FwBB%2F%2FQBowLEAiYAHgAAAAcA5AEGAAD%2F%2FwBB%2F%2FQBowKeAiYAHgAAAAcA5gEGAAD%2F%2FwBB%2F%2FQBowKfAiYAHgAAAAcA6QEGAAD%2F%2FwBB%2F%2FQBowLIAiYAHgAAAAcA6wEGAAAAAwBB%2F%2FQC6gHsABAASQBSAJsAuAAARVi4ABYvG7kAFgAIPlm4AABFWLgAHC8buQAcAAg%2BWbgAAEVYuAA5Lxu5ADkABD5ZuAAARVi4ADEvG7kAMQAEPlm4ADkQuQADAAH0ugBBADkAFhESObgAQS%2B5AAwAAfS6ACIAHAAxERI5uAAiL7gAMRC5ACgAAfS4ABYQuQBGAAH0uAAcELkATQAB9LgAIhC5AFIAAfQwMTcUFjMyPgI3LgE1Jw4DAz4DMzIWFz4BMzIWFRwBByEUHgIzMjY3Fw4DIyIuAicOASMiLgI1NDY3NC4CIyIGBwU0JiMiDgIHbzwpEy4vLhULCgFGYj4cFg0kLTMbO0UMGlc2VV0C%2FrQaLj8kJzsbEw4eJCoaIDQqIQ0wbS0dMicWlpsIGS0jLU8YAlRJQR41KRsEejQsDBgjFhZBIhsJGiQuARgJFhINQTc3QXRqCRIJLUw3HxcUIwkQDggRHCMTLjUQIDEiUFQSGzcrGyYSgV1dGzFFKQAA%2F%2F8ANP8wAacB7AImACAAAAAHAO0BCQAA%2F%2F8ANP%2F0Ab0CxAImACIAAAAHAOABBQAA%2F%2F8ANP%2F0Ab0CxAImACIAAAAHAOIBBQAA%2F%2F8ANP%2F0Ab0CxAImACIAAAAHAOQBBQAA%2F%2F8ANP%2F0Ab0CnwImACIAAAAHAOkBBQAA%2F%2F8AGgAAAKoCxAImAGcAAAAGAOByAAAA%2F%2F8AOgAAAMoCxAImAGcAAAAGAOJyAAAA%2F%2F8AAAAAAOQCxAImAGcAAAAGAORyAAAA%2F%2F%2F%2F%2FwAAAOUCnwImAGcAAAAGAOlyAAAAAAEAXAAAAIgB4AADACUAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgAAi8buQACAAQ%2BWTAxEzMRI1wsLAHg%2FiAAAP%2F%2FAFwAAAG%2FAp4CJgArAAAABwDmARsAAP%2F%2FADT%2F9AHjAsQCJgAsAAAABwDgAQsAAP%2F%2FADT%2F9AHjAsQCJgAsAAAABwDiAQsAAP%2F%2FADT%2F9AHjAsQCJgAsAAAABwDkAQsAAP%2F%2FADT%2F9AHjAp4CJgAsAAAABwDmAQsAAP%2F%2FADT%2F9AHjAp8CJgAsAAAABwDpAQsAAAADAC7%2F6gHpAfUACQATAC4ASQC4AABFWLgAKS8buQApAAg%2BWbgAAEVYuAAcLxu5ABwABD5ZugAAABwAKRESObkAAgAB9LoACgApABwREjm4ACkQuQAMAAH0MDE3FjMyPgI1NC8BJiMiDgIVFBcBHgEVFA4CIyInByc3LgE1ND4CMzIWFzcXmS9DJD8uGiQULkUkPy0aJAEqGBwjO08rUjs2GjoYHCM7TisoSR02GkwyHzhOL1I4GzMfOU8vUTgBNCBWNjxdQCI4QhVGIFQ2PF9AIhwcQRUAAAADADT%2F9AMrAewAEwA7AEQAcQC4AABFWLgAGS8buQAZAAg%2BWbgAAEVYuAA3Lxu5ADcABD5ZuQAFAAH0uAAZELkADwAB9LgAGRC4AB%2FQuAA3ELgAMdC6ACQAHwAxERI5uAAkL7gAMRC5ACoAAfS4AB8QuQA%2FAAH0uAAkELkARAAB9DAxNxQeAjMyPgI1NC4CIyIOAgc0PgIzMhYXPgEzMhYVFAchFB4CMzI2NxcOASMiJicOASMiLgIlNCYjIg4CB2IZLD0jJD0rGRkrPSQjPSwZLiI7TCo6ZhoaXzpVYgP%2BrxsuQCQnPhsTHUU2P2QaHGA%2FKkw7IgLNTUAeNiobBO8vTjgfHzhOLzBOOR8fOU4wPF9AIkdHQkx0ahISLUw3HxcUIxEeTEFGRyJAXVldXRsxRSkAAAEAXP%2F0AgEC2QA5AGQAuAAARVi4AAMvG7kAAwASPlm4AABFWLgAOS8buQA5AAQ%2BWbgAAEVYuAAZLxu5ABkABD5ZugANABkAAxESObkAIAAB9LoAJQAZAAMREjm6ADEAGQADERI5uAADELkANAAB9DAxEzQ2MzIeAhUUDgIVFB4EFRQOAiMiJic3HgEzMj4CNTQuBDU0PgI1NCYjIgYVESNcXU4hMyQTHyUfHy82Lx8WJzUgJ0QdFh01IBkmGQ0fLjcuHx8kHy8wOUUsAhRdaBUkMRwnNy8vHh0kGxokNioeMiYVHBchFxcRGyQTIywfGSAtJCQ0LzEiLDhUWv37AP%2F%2FAFX%2F9AG1AsQCJgAyAAAABwDgAQgAAP%2F%2FAFX%2F9AG1AsQCJgAyAAAABwDiAQgAAP%2F%2FAFX%2F9AG1AsQCJgAyAAAABwDkAQgAAP%2F%2FAFX%2F9AG1Ap8CJgAyAAAABwDpAQgAAP%2F%2FAAz%2FJQGoAsQCJgA2AAAABwDiAOUAAP%2F%2FAAz%2FJQGoAp8CJgA2AAAABwDpAOUAAAACADz%2F9AHWAtQAFQA8AFkAuAAARVi4ADcvG7kANwASPlm4AABFWLgAIC8buQAgAAQ%2BWbsAKgABAAwABCu6ADMAMAADK7gAIBC5AAAAAfS4ADAQuAAW0LgAMxC4ADfcuAAzELgAOtAwMSUyPgI1NCcuAyMiDgIVFB4CEx4DFRQOAiMiLgI1ND4CMzIWFy4BJwcnNy4BJzceARc3FwELKTsnEwMTJyYmEyk9KhUaLDxlHjEkFB41Sy0oSzkjHjdMLitMHQ48Ko4PhBw%2BIRYlRSCODxsjPFIvIB4cJBQHHjNDJSpHMxwCRB5JV2g9PGJFJSA7VjYxUzohJiZKaipKHEQYKRMeFC4dShsAAAAAAgBc%2FycB7ALPABYAJwBXALgAAEVYuAAILxu5AAgACD5ZuAAARVi4AAIvG7kAAgASPlm4AABFWLgAAS8buQABAAY%2BWbgAAEVYuAASLxu5ABIABD5ZuQAaAAH0uAAIELkAJAAB9DAxFyMRMx0BPgEzMh4CFRQOAiMiJicVNR4BMzI%2BAjU0LgIjIgYHiCwsJFItMEkwGCI7TSojRyYqSBwkPiwZESQ6KSRNLNkDqM9bHCsjQFo4PWBDIx4cWIMiHCA6UTEsTDcfKSYAAAAAAQAiAAACKgLbACoAfAC4AABFWLgAFC8buQAUAAg%2BWbgAAEVYuAAoLxu5ACgAEj5ZuAAARVi4ABAvG7kAEAAEPlm4ACgQuQADAAH0uAAUELgAJNC4AAjQuAAUELkAEQAB9LgADdC4AAnQuAAQELgADNC4ABQQuAAT0LgAKBC4ABjQuQAfAAH0MDEBLgEjIgYdATMVIxEjESMRIxEjNTc1NDYzMhYXBy4BIyIGHQEzNTQ2MzIXAh4PHQ4mJW9vLN4sQUFEPhQpFAwSIhErK94%2BOSMjAqcIBjk0aCb%2BRgG6%2FkYBuiIEWUtNCQkkCQc9OFZrSEgQAAEAIf%2F0AhAC2wAuAIkAuAAARVi4ABAvG7kAEAAIPlm4AABFWLgAFC8buQAUABI%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4AAMvG7kAAwAEPlm4ABAQuQANAAH0uAAJ0LgAEBC4AA%2FQuAAPL7gAFBC5ABoAAfS4ABAQuAAf0LgAI9C4AAkQuAAk0LgAAxC5ACsAAfQwMSUOASMiLgI1ESMRIxEjNTc1NDYzMhcHLgEjIgYdATM3MxUzFSMRFB4CMzI2NwIQFSsPIy0cC7ssQkI%2BOSMjDA8dDiYlvAYljIwHEiAZDiENBggKFSY2IAE1%2FkYBuiIEa0hIECQIBjk0aIuLJv7HFyUbDwkGAAADACT%2F9AIyAp8ADwAfAEwAjAC4AABFWLgANy8buQA3ABA%2BWbgAAEVYuAAlLxu5ACUABD5ZuAAARVi4ACAvG7kAIAAEPlm6AEIAIgADK7gAJRC5AAMAAfS6AAYAIgBCERI5ugALACUANxESObgACy%2B4ABPcuAA3ELkAHQAB9LoALwALABMREjm6AD8ACwATERI5ugBJACIAQhESOTAxNzI2Ny4BJw4DFRQeAgMUFhc%2BAzU0LgIjIgYBJicOASMiLgI1ND4CNy4BNTQ%2BAjMyFhUUDgIHHgEXPgE3Mw4BBx4BF%2BYpSh81YyMWJx4RGCg3IBQRGS4kFQgRGxQsMQF7QUwkWDgnRjMeFyUxGhQYFCQyHjY4Gis3HCNhMyM0ESsUOSgjQB0aJyAweEARJCcrGCE1JRUB9CFHJBIkKCsaEB8YD0D9uRc8JS4ZL0IpITYvKRMqUyYgNicWRDQgNi8rFT92LS1tP0R7MxwlCwAAAgAw%2F%2FQBrgKLAAsAFwA1ALgAAEVYuAAGLxu5AAYADj5ZuAAARVi4AAAvG7kAAAAEPlm5AAwAAfS4AAYQuQASAAH0MDEXIiY1NDYzMhYVFAYnMjY1NCYjIgYVFBbvXGNjXFxjY1xDT09DQlBQDK2hoKmpoKGtJpWTk5CQk5OVAAABAFQAAAGiAn8ADABDALgAAEVYuAAHLxu5AAcADj5ZuAAARVi4AAwvG7kADAAEPlm5AAEAAfS4AAcQuQAEAAH0uQACAAH0uAABELgACdAwMTczESM1PgE3MxEzFSFUlnInPRcki%2F6yJwISHgcUDf2oJwAAAAEAJwAAAbECiwAdAD0AuAAARVi4AA8vG7kADwAOPlm4AABFWLgAHC8buQAcAAQ%2BWbkAGgAB9LgAF9C4AADQuAAPELkACAAB9DAxNz4DNTQmIyIGByc%2BATMyFhUUDgIHPgE7ARUhKU92TydDSCxMHR0kVztWXipMbUIaNxra%2FngcUH9pWSo8UjAkHCg2YlEwX2l3RgIDKAAAAQAd%2F%2FQBqwKLADcAUwC4AABFWLgAHy8buQAfAA4%2BWbgAAEVYuAAyLxu5ADIABD5ZuQAFAAH0ugAPAB8AMhESObgADy%2B5ABAAAfS4AB8QuQAYAAH0ugAoABAADxESOTAxNx4DMzI%2BAjU0LgIjNTI%2BAjU0JiMiBgcnPgEzMh4CFRQGBxUeAxUUDgIjIi4CJzcOIis1ISA3KBYZNlQ8N00vFUY7LUocGiFUOCVALxtFNR40KBceNUcpJj4xJw9tEB0XDhQlNCAhNicWJxYlMx02QSkdHiAuFSc5JT9NEgQGHSo3IipDLxkQGiAQAAACABAAAAHAAn8ACQAUAFcAuAAARVi4ABIvG7kAEgAOPlm4AABFWLgADS8buQANAAQ%2BWbsADgABAAAABCu4ABIQuAAE3LgAABC4AAnQuAAOELgAC9C4AAkQuAAQ0LgAABC4ABPQMDElNTQ2NyMOAQcDBSMVIzUhNQEzETMBNgICBAwaDrwBel8r%2FtoBKShf5eoWQhYUJhb%2B%2BCa%2FvxoBpv5mAAAAAAEAGv%2F0Aa8CfwAoAEcAuAAARVi4ABIvG7kAEgAOPlm4AABFWLgAIy8buQAjAAQ%2BWbkABQAB9LoAGQASACMREjm4ABkvuAAN3LgAEhC5ABQAAfQwMTceAzMyPgI1NCYjIgYHJxMhFSMHPgEzMh4CFRQOAiMiLgInMw4iKjQhIDorGlRIJTUdHxcBJ%2F8UGTYjKEg0HyM5SScmPTEmD2kPHBYNGS0%2FJ05XFxQTASsn5w8TGDFNNDNPNxwPGR8PAAAAAAIANP%2F0AbQCiwARADAAQwC4AABFWLgALS8buQAtAA4%2BWbgAAEVYuAAlLxu5ACUABD5ZuwAdAAEACgAEK7gAJRC5AAAAAfS4AC0QuQAVAAH0MDElMj4CNTQuAiMiBgceAxMuASMiDgIHPgEzMhYVFA4CIyImNTQ%2BAjMyFhcBBhwvIhQQITUkIlInAxcoO6wVOB8mRDQfASFTLVVdHDA%2FJGFwJ0FVLi1BGRoZLDsiIjsrGCs1M1M7IQIVGhsgSnlYKTBlYSxJNR6ckmSKViUiHAABACwAAAG1An8ADwAzALgAAEVYuAAHLxu5AAcADj5ZuAAARVi4AAAvG7kAAAAEPlm4AAcQuQAFAAH0uAAJ0DAxMz4DNyE1IRUOAwcjvAQZLkYw%2Fq8BiTlLLRQEMGGhj4NEJxpMjJGeXgAAAAADACj%2F9AG1AosAEQAjAE0AVwC4AABFWLgANC8buQA0AA4%2BWbgAAEVYuABJLxu5AEkABD5ZuQAFAAH0ugAPAEkANBESObgADy%2B4ABLQuAA0ELkAGgAB9LgADxC4ACncuAASELgAPtwwMTcUHgIzMj4CNTQuAicOATc%2BATU0LgIjIg4CFRQeAgc0PgI3NS4DNTQ%2BAjMyHgIVFA4CBxUeAxUUDgIjIi4CVBgqOiMiNycVITdGJTFAzikrEiExHxstIRIdMD3aFyUtFxIhGRAaLT0jKUAtFxIbIA4VKB8UHDNIKyxKNh%2BmHjMmFhQkMBslMycdDx1PdCFJKhsvJBUSHywaIjElHLcgOC0jDAQMHSUrGiI6KRcZLT0kGjEqIgsEDR4mMiAjPS0aGy9AAAACACv%2F9AGqAosAEQAwAEMAuAAARVi4ACUvG7kAJQAOPlm4AABFWLgALS8buQAtAAQ%2BWbsAAAABAB0ABCu4ACUQuQAIAAH0uAAtELkAFQAB9DAxEzI2Ny4DIyIOAhUUHgIHHgEzMj4CNw4BIyImNTQ%2BAjMyFhUUDgIjIiYn4iJSJwMXKTsnGzAiFBAiNGoVOCAmRDQfASFULVRdHDA%2FJGBwJ0BWLi1CGAEjLTQzUzsgGSs7IiM7KxjTGhsgSnlYKDBlYStKNB6bkmWKVSYiHAAAAQBD%2F%2FQAmABPAAsAGAC4AABFWLgACS8buQAJAAQ%2BWbgAA9wwMTc0NjMyFhUUBiMiJkMaEREZGRERGiEWGBgWFRgYAAABADD%2FZQClAE8AEQAYALgAAEVYuAAFLxu5AAUABD5ZuAAL3DAxFz4BNwYjIiY1NDYzMhYVFAYHMCIqAQQIERkaERccOi19Ej0qARYUFBYmITdUGP%2F%2FAEP%2F9ACYAc0CJwCGAAABfgAGAIYAAP%2F%2FADD%2FZQClAc0CJwCGAAABfgAGAIcAAAACAFf%2F9ACsAp4ABQARACkAuAAARVi4AAEvG7kAAQAQPlm4AABFWLgADy8buQAPAAQ%2BWbgACdwwMRM1MwcDIwc0NjMyFhUUBiMiJmsuAQYhGhoRERkZEREaAldHR%2F5ckhYYGBYVGBgAAAIAV%2F9CAKwB7AAFABEAGAC4AABFWLgADy8buQAPAAg%2BWbgACdwwMR8BIzUTMzcUBiMiJjU0NjMyFpgBLgYhGhkRERoaEREZd0dHAaSTFxgYFxQYGAAAAAACACX%2F9AFgAqoAHwArACYAuAAARVi4ACkvG7kAKQAEPlm7ABMAAQAMAAQruAApELgAI9wwMTcmPgQ1NC4CIyIGByc%2BATMyHgIVFA4EFwc0NjMyFhUUBiMiJqMGESAoJBgNHCsdJUMZGx1ONCU6KBUZJCkhEwU7GRERGhoRERmzKUM5MjE0HxcrIBMhHxkhLRcpOCEiOTQzNz8mkhYYGBYVGBgAAAIAM%2F82AW4B7AAfACsAJgC4AABFWLgAKS8buQApAAg%2BWbsADAABABMABCu4ACkQuAAj3DAxExYOBBUUHgIzMjY3Fw4BIyIuAjU0PgQnNxQGIyImNTQ2MzIW8AURICgkGA0cKx4kQxkcHU8zJTooFRkkKSESBTsZEREZGRERGQEtKUM5MjE0HxcqIRMiHhkgLhcpOCEiOTUyNz8mkxcYGBcUGBgAAQBTAd0AhgK1AAUACwC6AAIABAADKzAxEyczFQcjVAEzCSECcEVFkwAAAP%2F%2FAFMB3QETArUAJgCOAAAABwCOAI0AAAABADoB4AChAr8AEQANALsABQABAAsABCswMRMOARU2MzIWFRQGIyImNTQ2N6EhIgIGDxkXERQYLSgCqBs2KwESExMVIyA2TBoAAAAAAQA6Ad0AogK8ABEADQC7AAsAAQAFAAQrMDETPgE1BiMiJjU0NjMyFhUUBgc6ISICBg4ZFhEUGS0pAfQbNisBEhMTFSMgNkwaAAAA%2F%2F8AOgHgAS4CvwAmAJAAAAAHAJAAjQAA%2F%2F8AOgHdAS8CvAAmAJEAAAAHAJEAjQAA%2F%2F8AOv9%2BAKIAXQIHAJEAAP2hAAD%2F%2FwA6%2F34BLwBdACcAkQAA%2FaEABwCRAI39oQAAAAEAKwBIAM0BsAAGAAsAugACAAYAAyswMTc1NxcHFwcriRl7exnpJqEVn6ETAAAAAAEANgBIANgBsAAGAAsAugACAAUAAyswMTcnNxcVByewehiKihj8nxWhJqETAAAA%2F%2F8AKwBIAVoBsAAmAJYAAAAHAJYAjQAA%2F%2F8ANgBIAWUBsAAmAJcAAAAHAJcAjQAAAAEAKADmAQQBDQADAA0AuwABAAEAAgAEKzAxEzMVIyjc3AENJwAAAP%2F%2FACgA5gEEAQ0CBgCaAAAAAQAoAOgBuAEMAAMADQC7AAEAAQACAAQrMDETIRUhKAGQ%2FnABDCQAAAEAKADoAvgBDAADAA0AuwABAAEAAgAEKzAxEyEVISgC0P0wAQwkAP%2F%2FAEMBFQCYAXACBwCGAAABIQAAAAEAKACaAPEBdgATAAsAugAKAAAAAyswMTciLgI1ND4CMzIeAhUUDgKMEyQcEREcJBMTJRwRERwlmg8dKBoZKRwQEBwpGRooHQ8AAAABAAz%2FiwHo%2F7EAAwANALsAAAABAAEABCswMQUVITUB6P4kTyYmAAAAAQBY%2F1EA9wLbAA4ACwC6AAYAAAADKzAxFy4BNTQ2NxcOARUUFhcH3D5GRj4bPDw8PBuvZN2EhN1kEF%2Ffd3ffXxAAAAABACD%2FUQC%2FAtsADgALALoABwANAAMrMDEXPgE1NCYnNx4BFRQGBycgPDw8PBs9R0c9G59f33d3318QZN2EhN1kEAAAAAEAYv9oAQICxAAHABcAuwAFAAEABgAEK7sAAQABAAIABCswMRMzFSMRMxUjYqB9faACxB383h0AAQAV%2F2gAtQLEAAcAFwC7AAAAAQAFAAQruwAEAAEAAQAEKzAxFxEjNTMRIzWSfaCgewMiHfykHQABACP%2FaAECAsQAMwArALsAAAABAAEABCu7AB4AAQAfAAQruwAQAAEADwAEK7oAKgAPABAREjkwMQUVIyIuAjU0NjU0LgIjNTI%2BAjU0JjU0PgI7ARUjIgYVFBYVFAYHFR4BFRQGFRQWMwECIhwpHA4IBxMiGhoiEwcIDhwpHCIfLh8GFR4eFQYfLnsdDB0xJjhhNA8eFg4gDhYcDzZhOCYxHQwdMjUxWTYtMgkECTQrNlkxNTIAAAAAAQAV%2F2gA9ALEADMAKwC7AAAAAQAxAAQruwAWAAEAEwAEK7sAIwABACQABCu6AAoAJAAjERI5MDEXMjY1NCY1NDY3NS4BNTQ2NTQmKwE1MzIeAhUUBhUUHgIzFSIOAhUUFhUUDgIrATU0Lh8GFh0dFgYfLh8iHCkcDggHEyIaGiITBwgOHCkcInsyNTFZNis0CQQJMi02WTE1Mh0MHTEmOGE2DxwWDiAOFh4PNGE4JjEdDB0AAQAJ%2F2ABYALGAAMAGAC4AABFWLgAAC8buQAAABI%2BWbgAAtwwMQEzASMBOib%2BzyYCxvyaAAEAX%2F8GAIMC7gADAAsAugABAAIAAyswMRMzESNfJCQC7vwYAAEABf9gAV0CxgADABgAuAAARVi4AAAvG7kAAAASPlm4AALcMDETMwEjBSYBMiYCxvyaAAACAF%2F%2FBgCDAu4AAwAHAAsAugABAAUAAyswMRMzESMXESMRXyQkJCQC7v4pO%2F4qAdYAAAAAAQBGAc4BRQLIAA4AFAC4AABFWLgABS8buQAFABI%2BWTAxEzcnNxc3Mxc3FwcXBycHaTdaCV8HIAdfClo2G0BCAeJYJB4aZmUZHiRYFFNTAAACADL%2FzAGtAqkADwBJABcAuwAxAAEAKgAEK7sARgABABMABCswMSU%2BATU0LgInDgEVFB4CEy4BIyIOAhUUHgQVFAYHHgEVFA4CIyImJzceATMyNjU0LgQ1NDY3LgE1ND4CMzIWFwE4JCctQ0wfIiotQ0xNGDUmGSQWCyo%2BST4qMSYQEhcnNB00UB0eGjsuLjYqP0k%2FKjMmDxIQIjIjKkYctREqKSgzJB8UFC4mJzEjHgGLFBoNFRwOISkhHSk8LjI5FRApGxsuIRIjHBwYHjIjIisgHSg6LjA%2FFA8oGhUqIRUeFwACACr%2FsAGjApMAAwAQACUAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgADi8buQAOABA%2BWTAxATMRIwMiLgI1ND4COwERAXUuLlI3XEIkIj5WMywCk%2F0dAUQXMU84OE8yF%2F5hAAAAAwAz%2F%2FQCsgKMABMAJwBFADMAuwA6AAEAQQAEK7sALQABADQABCu4AC0QuAAj3LkABQAB9LgAQRC4ABncuQAPAAH0MDETND4CMzIeAhUUDgIjIi4CNxQeAjMyPgI1NC4CIyIOAhc0PgIzMhYXBy4BIyIGFRQWMzI2NxcOASMiLgIzM1h0QUB0WDMzWHRAQXRYMyMuTmc6OWdOLi5OZzk6Z04ucx4xQSQoOBgXFy0ePExJPSQ4FxQbPjAkPzAcAUJLelYvL1Z6S0x7VzAwV3tMRHBPLCxPcERDb08rK09vQytGMBofGBoWFlJES1YdFRwYIxszSQAAAAAEABIBRAF%2BAsgAEwAnADcAQABXALgANi%2B4ACkvuAA2ELgAFNy5AAAAAfS4ACkQuAAe3LkACgAB9LoANAA2ACkREjm4ADQvuQA4AAH0ugAxADgANBESObgANhC4ADPQuAApELkAPgAB9DAxEyIuAjU0PgIzMh4CFRQOAicyPgI1NC4CIyIOAhUUHgIDMzIeAhUUBgcXIycjFSM3MjY1NCYrARXIJUIyHR0yQiUlQzEdHTFDJR84KBgYKDgfIDcoGBgoNyRFDxsWDRcRMSUnLyA9FxwVGyABRBwyRywsSDMcHDNILCxHMhwdGSs8JCQ9LRkZLT0kJDwrGQEPBg8YExMgBVZMTGcRFBEVSwAAAgA0%2F24C%2BwJ5AEYAVAA%2FALsAPAABAEIABCu7ACgAAQAPAAQruwBKAAEAFgAEK7sAIAABAFAABCu7AAUAAQAyAAQrugAjAFAAIBESOTAxNzQ%2BAjMyHgIVFA4CIyImJyMOASMiLgI1ND4CMzIXMzczBwYzMj4CNTQuAiMiDgIVFB4CMzI2NxcGIyIuAjcUFjMyPwEuASMiDgI0QW2QT0h1USwiNkEfKDUEAho9IxcqHxIZMEUsNR4CCSIkIl4YMykbJ0hnQUWAYzwsT29DMlIkEFZlSHtaM%2BguIjI6HxIhFyI2JRTKYp9xPS5TdUdAYUIhJScdKREiMyIkUEIrMCi9hx45UjVAakopOGeRWUl1USwaFh42L1mBUjkuQ60cFSM2QgAAAAIAJAAAAcECigAbAB8AmwC4AABFWLgACC8buQAIAA4%2BWbgAAEVYuAAMLxu5AAwADj5ZuAAARVi4ABYvG7kAFgAEPlm4AABFWLgAGi8buQAaAAQ%2BWbsAAwABAAAABCu7AAcAAQAEAAQruAAHELgACtC4AAcQuAAO0LgABBC4ABDQuAADELgAEtC4AAAQuAAU0LgAABC4ABjQuAADELgAHNC4AAQQuAAd0DAxNyM1MzcjNTM3MwczNzMHMxUjBzMVIwcjNyMHIz8BIwd3U1cVWFwZIxmVGiIZUlUVVlsZIxmVGiPXFZYV1iSqJMLCwsIkqiTW1tb6qqr%2F%2FwBeAbgA1gM%2BAgcAtwAAAbgAAP%2F%2FAC8BuAE3A0oCBwC4AAABuAAA%2F%2F8AKAGsATQDSgIHALkAAAG4AAD%2F%2FwAuAbgBPQM%2BAgcAugAAAbgAAAACACj%2F9AFCAZIACwAXACgAuAAGL7gAAEVYuAAALxu5AAAABD5ZuQAMAAH0uAAGELkAEgAB9DAxFyImNTQ2MzIWFRQGJzI2NTQmIyIGFRQWtUJLS0JCS0tCLzc3Ly83NwxrZWRqamRlayFbVFRZWVRUWwAAAAEAXgAAANYBhgAIACIAuAAGL7gAAEVYuAAILxu5AAgABD5ZuAAGELkAAAAB9DAxEyM1PgE3MxEjsFIdKREhJgFEGwYTDv56AAEALwAAATcBkgAaACwAuAAPL7gAAEVYuAAZLxu5ABkABD5ZuQAXAAH0uAAA0LgADxC5AAgAAfQwMTc%2BAzU0JiMiBgcnPgEzMhYVFA4CBzMVIzgySS8XLycbLxEZEkElNkMZLD8lwP8ZLkg6MRkrMiQaFx4rPT4fODo%2FJSIAAAAAAQAo%2F%2FQBNAGSACoAPgC4ABcvuAAARVi4ACcvG7kAJwAEPlm6AAoACQADK7gAJxC5AAMAAfS4ABcQuQAQAAH0ugAdAAkAChESOTAxNx4BMzI2NTQmIzUyNjU0JiMiBgcnPgEzMhYVFAYHHgMVFA4CIyImJ0USOSIlNkpAOz8tJhcvExkVOyYxRSsgEiAaDxQkMBsuRxRVHSMrKCYqHDIiICkdFxYbJDYxJTENAxAYIRUbKx0QLR4AAAIALgAAAT0BhgAFABAATAC4AA4vuAAARVi4AAkvG7kACQAEPlm7AAAAAQAKAAQruAAOELkAAgAB9LgAABC4AAXQuAAKELgAB9C4AAUQuAAM0LgAABC4AA%2FQMDE3NTcjDwEXIxUjNSM1NzMVM98EBDhJ3zoksbEkOpJXaFNsIHJyFf%2F0%2F%2F8AKgEFAR0CUwIGAL0AAP%2F%2FACEBBQFFAlMCBgC%2BAAAAAgAqAQUBHQJTABsAJAA7ALgAAC%2B4ABIvuwAGAAEAHwAEK7gAEhC5AAsAAfS4AAAQuAAX0LgAABC5ABwAAfS6ABkAAAAcERI5MDETIiY1NDY3NC4CIyIGByc%2BATMyFh0BIycjDgEnMjc1DgEVFBaLKzZibAcQGhUePBEPFEMnOi0eBgQVNRcvNV1KJAEFMCs1NwoTIhkOGQwbDh1FOcgnEh0gMWYKLSIgHgAAAAIAIQEFAUUCUwATAB8AGwC4AAovuAAAL7kAFAAB9LgAChC5ABoAAfQwMRMiLgI1ND4CMzIeAhUUDgInMjY1NCYjIgYVFBazHjYnFxcnNh4eNicXFyc2HjA7OzAwOzsBBRcrPicoPisWFis%2BKCc%2BKxchSjw8Sko8PEoAAAACACoBvwEOAqwAEwAfABcAuwAUAAEAAAAEK7sACgABABoABCswMRMiLgI1ND4CMzIeAhUUDgInMjY1NCYjIgYVFBacFikgExMgKRYWKSATEyApFiMtLSMjLS0BvxAeLBwcLB8QEB8sHBwsHhAgMSUmMjImJTEAAAACAB4AcgHAAiIAIgA2AEoAuAAARVi4AAgvG7kACAAKPlm4AABFWLgADS8buQANAAo%2BWbgAAEVYuAASLxu5ABIACj5ZuwAoAAEAHwAEK7gADRC5ADIAAfQwMT8BLgE1NDY3JzcXPgEzMhYXNxcHHgEVFAYHFwcnDgEjIicHNxQeAjMyPgI1NC4CIyIOAh5CEhQUEkIbQhc9ICA9F0MaQhIUFBFBGkMXPSBCMkItFiUyHBwyJRYWJTIcHDIlFo5DGDwjJD4YRBxFFRcXFUUcRBg%2BJCM8GEMcRBYXLUTWIjkoFxcoOSIiOikXFyk6AAEAO%2F%2BSAaMC7QAxAF0AuAAARVi4ACsvG7kAKwAOPlm4AABFWLgAFS8buQAVAAQ%2BWbgAKxC5AAUAAfS6AAgAFQArERI5uAAVELgAEtC4ABUQuQAcAAH0ugAfACsAFRESObgAKxC4AC7QMDEBLgMjIgYVFB4EFRQGBxUjNS4BJzceATMyNjU0LgQ1ND4CNzUzFR4BFwF4DhseJBc0QCtAS0ArV0MnNFYdGB1QND9DK0BLQCsVJTQfJzE%2BGgIoDhYQCEEyLDUnIS9HOUhWBmNjBC0cHxosRDcxPSsiLD8zHzYpGgNjYwMoGwABADYAAAGsAosALABZALgAAEVYuAATLxu5ABMADj5ZuAAARVi4AAIvG7kAAgAEPlm5AAAAAfS6ACQAEwACERI5uAAkL7gACtC4ACQQuQAjAAH0uAAL0LgACy%2B4ABMQuQAaAAH0MDElFSE1PgE1NCYnIzU3My4BNTQ2MzIWFwcuASMiDgIVFBYXMxUjHgEVFAYHFQGs%2Fo04MgUEZEIYCxVbTzRFFx0VNigfLx8QFQulnQQEJiIoKBsgaDoTJBEhAyZLJ09bKh0bGSIUJDAbKEknJBEjFD5SIQQAAAAAAQAeAAABwQJ%2FAB0AhAC4AABFWLgAHS8buQAdAA4%2BWbgAAEVYuAAJLxu5AAkADj5ZuAAARVi4ABQvG7kAFAAEPlm6AAQAHQAUERI5ugAZAB0AFBESObgAGS%2B5AAwAAfS4ABkQuAAN0LgAGRC4ABjQuAAYL7gAENC4ABgQuQAVAAH0uAAR0LgAGRC5ABsAAfQwMRMXHgEXMz4BPwEzAzMVIxUzFSMVIzUjNTM1IzUzA05eECASBBMfEV4urpqoqKgtpqammKwCf8EhQyUlQyHB%2FrAhRyKlpSJHIQFQAAEAGP%2F0AdoCiwA1AG0AuAAARVi4ABkvG7kAGQAOPlm4AABFWLgAAy8buQADAAQ%2BWbsALQABAC4ABCu4AC4QuAAJ0LgALRC4AArQuAAtELgAJdy4ABLQuAAlELkAJAAB9LgAE9C4ABkQuQAgAAH0uAADELkAMgAB9DAxJQ4BIyIuAicjNTcmNDU8ATcjNTc%2BAzMyFhcHLgEjIgYHIRUhBhQVHAEXMxUjHgEzMjY3AdogTjgsSjgmB0E%2BAQE%2BQQcmPFEwLUoWHRY3I1BgCwEW%2FucBAfHuDVpIKj8dUiwyJENfPB0ECxQLCRIIHQQ9YUQkLiAbHiV3aSEIEQkLFQshZnYoKQAAAgA%2B%2F%2BQBswKMAAgAJwA3ALsAJAABAAwABCu7ABwAAQAjAAQruAAjELgAANC4ACQQuAAI0LgADBC4AA%2FQuAAcELgAGdAwMRMOAxUUFhc3DgEHFSM1LgM1ND4CNzUzFR4BFwcuAScRPgE3%2FyA3JxZPRbQdSSwiKkczHR41RigiMEAXGBc2IiU%2BGAH2BSAxQidOZgoXGyMCbG0EIjtSMzRROyIEb20CIxccFBsC%2Fn8CHhYAAAAAAf9b%2F%2FQA8QKfAAMAGAC4AABFWLgAAC8buQAAAAQ%2BWbgAAdwwMQcBMwGlAXAm%2FpEMAqv9VQAAAP%2F%2F%2F1v%2F9ADxAp8CBgDGAAD%2F%2FwAo%2F%2FQC%2FQKfACcAtgAAAQ0AJwDGAWsAAAAHALYBuwAAAAD%2F%2FwBK%2F%2FQCzwKfACcAt%2F%2FsAQ0AJwDGAVYAAAAHALoBkgAAAAD%2F%2FwBK%2F%2FQC3wKfACcAt%2F%2FsAQ0AJwDGAT8AAAAHALgBqAAAAAD%2F%2FwAo%2F%2FQC4gKfACcAuQAAAQ0AJwDGAYUAAAAHALoBpQAAAAAAAQAiAG4BvQImAAsAHQC7AAMAAQAAAAQruAADELgABtC4AAAQuAAI0DAxEyM1MzUzFTMVIxUj27m5Kbm5KQE3JsnJJskAAAAAAQAiATcBvQFdAAMADQC7AAEAAQACAAQrMDETIRUhIgGb%2FmUBXSYAAAEAMwCHAasCDQALACUAuAAARVi4AAMvG7kAAwAKPlm4AABFWLgABS8buQAFAAo%2BWTAxPwEnNxc3FwcXBycHM6KiG6GiGqGhGqKho6enHKmpHKenHKioAAADACIAbQG9AiUACwAXABsAIQC7AA8AAQAVAAQruwAGAAEAAAAEK7sAGQABABoABCswMRMiJjU0NjMyFhUUBgM0NjMyFhUUBiMiJichFSHvEBYWEBEVFTcWEBEVFREQFqcBm%2F5lAdUWExEWFhETFv7BERYWERMWFtomAAD%2F%2FwAiANIBvQHDAiYAzQBmAAYAzQCbAAAAAQAiAJIBvQIGAAkAFAC4AABFWLgAAS8buQABAAo%2BWTAxEyUVDwEVHwEVJSIBm%2BiFhej%2BZQFipCtaMwQzWiukAAEAIgCSAb0CBgAJABQAuAAARVi4AAgvG7kACAAKPlkwMQEFNT8BNS8BNQUBvf5l6IWF6AGbATakK1ozBDNaK6QAAAAAAgAiAAABvQImAAsADwA4ALgAAEVYuAAOLxu5AA4ABD5ZuwADAAEAAAAEK7gAAxC4AAbQuAAAELgACNC4AA4QuQAMAAH0MDETIzUzNTMVMxUjFSMHIRUh27m5Kbm5KbkBm%2F5lATYly8slyUglAAAAAAEAQgEiAZ0CngAJABoAuAAARVi4AAAvG7kAAAAQPlm5AAUAAfQwMRMzEyMvASMPASPYLpcrTTQEM00rAp7%2BhMuFhcsAAQAoAQoBtgGKABcAJwC7AAgAAQAPAAQruAAPELgAFNy5AAMAAfS4AAvQuAAPELgAF9AwMRM%2BATMyHgIzMjY3Fw4BIyIuAiMiBgcoFjsdHS8rKBYXJhIcFTsdHS8rKBYXJhIBNyopHCIcHCMUKSgcIhwcIwABACIAbgG9AV0ABQANALsAAQABAAQABCswMRMhFSM1ISIBmyn%2BjgFd78kAAAEAXP84Ab0B4AAXABoAuAAARVi4ABEvG7kAEQAEPlm5AAUAAfQwMRMzERQWMzI2NxEzESMnIw4BIyImJxcVI1wsNDorRSssJgQDIkswJTQUAiwB4P7STUkvMwFi%2FiBQKjEWIVqaAAD%2F%2FwCzAjwBQwLEAAcA4AELAAAAAP%2F%2FANMCPAFjAsQABwDiAQsAAAAA%2F%2F8AmQI8AX0CxAAHAOQBCwAAAAD%2F%2FwCPAkUBhwKeAAcA5gELAAAAAP%2F%2FAJgCVgF%2BAp8ABwDpAQsAAAAA%2F%2F8AmgJeAXwCggAHAOgBCwAAAAD%2F%2FwC5AhsBXQLIAAcA6wELAAAAAP%2F%2FAMr%2FMAFOAAIABwDtARQAAAAAAAH%2FqAI8ADgCxAADABgAuAAARVi4AAMvG7kAAwAMPlm4AAHcMDEDMxcjWDRcJgLEiAAAAAAB%2F48CxQAlAy8AAwALALoAAQADAAMrMDEDMxcjcTpcKAMvagAB%2F8gCPABYAsQAAwAYALgAAEVYuAAALxu5AAAADD5ZuAAC3DAxAyM3MxImXDQCPIgAAAAAAf%2FbAsUAcQMvAAMACwC6AAIAAAADKzAxEyM3MwMoXDoCxWoAAf%2BOAjwAcgLEAAcANwC4AABFWLgABi8buQAGAAw%2BWbgAAEVYuAADLxu5AAMADD5ZuAAGELgAANy6AAUAAAAGERI5MDEDMxcjJyMHIxMmXyVLBEslAsSIY2MAAAAB%2F4sCxQB1Ay8ABwAXALoABgABAAMruAAGELgAB9y4AAPQMDEDNzMXIycjB3VgKmAoSwRLAsVqakhIAAAB%2F4QCRQB8Ap4AGwBBALgAAEVYuAAALxu5AAAADD5ZuAAARVi4ABMvG7kAEwAMPlm7ABgAAQAFAAQruAATELkACgAB9LgABRC4AA7QMDEDPgMzMh4CMzI2NzMOAyMiLgIjIgcjfAEIERkSEh4aGA0QEgQeAQgRGRISHhkZDR4IHgJFECAZEBEVER0aECAZEBEVETcAAf9%2BAswAggMoABsAIwC6AAAAEwADK7oABQAOAAMruAAAELgACNC4AA4QuAAW0DAxEyIuAiMiBgcjPgMzMh4CMzI2NzMOAzsUHxsaDxAWAx0BChIZERQeGxsPEBYDHQEKEhkCzBIVEh8aESEaEBIVER4aESAbEAAAAf%2BPAl4AcQKCAAMACwC4AAMvuAAB3DAxAzMVI3Hi4gKCJAAAAv%2BNAlYAcwKfAAsAFwAoALgAAEVYuAAALxu5AAAADD5ZuAAG3LgAABC4AAzQuAAGELgAEtAwMQMiJjU0NjMyFhUUBjMiJjU0NjMyFhUUBk8QFBQQEBUVjhAVFRAQFBQCVhUQDxUVDxAVFRAPFRUPEBUAAAAC%2F40C1QBzAx4ACwAXABsAugAGAAAAAyu4AAAQuAAM0LgABhC4ABLQMDEDIiY1NDYzMhYVFAYzIiY1NDYzMhYVFAZPEBQUEBAVFY4QFRUQEBQUAtUTEREUFBERExMRERQUERETAAAAAAL%2FrgIbAFICyAALABcAEwC6AAwAAAADK7oABgASAAMrMDERIiY1NDYzMhYVFAYnMjY1NCYjIgYVFBYjLy8jIy8vIxYeHhYWHh4CGzAmJzAwJyYwGiEbHCEhHBshAAAAAAL%2FrgK8AFIDYAALABcAEwC6AAwAAAADK7oABgASAAMrMDERIiY1NDYzMhYVFAYnMjY1NCYjIgYVFBYjLy8jIjAwIhQfHxQWHh4CvCwmJS0tJSYsGhwcGh4eGhwcAAAAAAH%2Ftv8wADoAAgARABMAugACABEAAyu6AAsACgADKzAxJzMHHgEVFA4CByc%2BATU0JicIIx0YJBUjLRgHKjMmHQI4CB8eFB0UDQMeBhgVFxYIAAAAAAH%2Ftv8wADoAAgARABMAugARAAIAAyu6AAoACwADKzAxJzMHHgEVFA4CByc%2BATU0JicIIx0YJBUjLRgHKjMmHQI4CB8eFB0UDQMeBhgVFxYIAAAA%2F%2F8ASwAAAJsCowIGACYAAAABAAAA8QBcAAcAeAAFAAEAAAAAAAoAAAIAAXMAAwABAAAAYgBiAGIAYgCwARQBZAGoAeYCHgJ%2BAroC2gMOA1YDfAPgBDIEhgTOBUAFlgYEBjAGdga0ByoHhgfGB%2FwIegj0CUQJvgogCnALIgtwC6QL7Aw0DGQM4g04DYwOBg5%2BDsgPNg%2BED9oQFhCMEOYROhFwEXwRiBGUEaARrBG4Eh4SKhI2EkISThJaEmYSchJ%2BEooSlhKiEq4SuhLGEtITZBPCE84T2hPmE%2FIT%2FhReFKAUrBS4FMQU0BTcFOgVqhW2FcIVzhXaFeYV8hX%2BFgoWFhY2FkIWThZaFmYWchZ%2BFuoXhBgEGBAYHBgoGDQYQBhMGNIZOBmyGjga7hsuG2gbtBwqHHwc3B1EHXoeEB54HpoexB7QHtwfEB88H44f4B%2F2IAIgKCBOIFogZiBwIH4gliCuILogxiDaIOIg9iEKIRQhOiFOIXAhkiGuIcoiJiKAIpoirCLGIuAjCCN6I6wkKCSuJUAlvCXGJdAl2iXkJh4mQiaCJt4nICcoJzAnhifEKAAodijqKVgpxipIKqIqvirGKtgq6ir8Kw4rMitGK3IrsCu8K9wr%2Fiw2LFgskiyoLNws5izwLPotBC0OLRgtIi0sLUYtWC1yLYQtsi3QLhouVi5oLqIu1i8GLzYvYC%2BKL4ovkgABAAAAAQzMmt50Tl8PPPUACQPoAAAAAM2XgKMAAAAAzZfjFP9X%2FuIEYgOrAAAACQACAAAAAAAAAngAXgAAAAAAxwAAAMcAAAIOAAgCQgBhAjQANwJcAGECAwBhAd0AYQJdADcCfwBhAPAAYQHOACkCLgBhAdMAYQLCAGECfABhAowANwIvAGECjAA3AjAAYQIJAC4CDAAdAnoAXwHrAAQDAgAcAeIAEQG%2FAAMCGgAyAfMAQQIgAFwBwQA0AiAANAHjADQBBwAhAecANAIQAFwA5QBLAOX%2F3wHQAFwA7QBcAywAXAIUAFwCFwA0AiAAXAIZADQBPQBcAZUAIAE4ABwCEQBVAbIADAKtABgBlwAOAbQADAGUABsCDgAIAg4ACAIOAAgCDgAIAg4ACAIOAAgDKQAVAjQANwIDAGECAwBhAgMAYQIDAGEA8AAHAPAAUwDwAAMA8AAFAnwAYQKMADcCjAA3AowANwKMADcCjAA3AowAOANBADcCegBfAnoAXwJ6AF8CegBfAb8AAwJxACUCMwBhAfMAQQHzAEEB8wBBAfMAQQHzAEEB8wBBAxAAQQHBADQB4wA0AeMANAHjADQB4wA0AOUAGgDlADoA5QAAAOX%2F%2FwDlAFwCFABcAhcANAIXADQCFwA0AhcANAIXADQCFwAuA1AANAIeAFwCEQBVAhEAVQIRAFUCEQBVAbQADAG0AAwCFwA8AiAAXAIOACICGwAhAj8AJAHfADAB3wBUAd8AJwHfAB0B3wAQAd8AGgHfADQB3wAsAd8AKAHfACsA2wBDANsAMADbAEMA2wAwAQMAVwEDAFcBkgAlAZIAMwDbAFMBaABTANsAOgDbADoBaAA6AWgAOgDbADoBaAA6AQMAKwEDADYBkAArAZAANgErACgBKwAoAeAAKAMgACgA2wBDARkAKAH0AAwBFwBYARcAIAEXAGIBFwAVARcAIwEXABUBZQAJAOIAXwFlAAUA4gBfAYsARgHfADICAwAqAuUAMwGRABIDLgA0Ad8AJAFqAF4BagAvAWoAKAFqAC4BagAoAWoAXgFqAC8BagAoAWoALgFRACoBaAAhAVEAKgFoACEBNwAqAd8AHgHfADsB3wA2Ad8AHgHfABgB3wA%2BAFD%2FWwBQ%2F1sDJQAoAvwASgMSAEoDDwAoAd8AIgHfACIB3wAzAd8AIgHfACIB3wAiAd8AIgHfACIB3wBCAd8AKAHfACICGQBcAhcAswIXANMCFwCZAhcAjwIXAJgCFwCaAhcAuQIXAMoAAP%2BoAAD%2FjwAA%2F8gAAP%2FbAAD%2FjgAA%2F4sAAP%2BEAAD%2FfgAA%2F48AAP%2BNAAD%2FjQAA%2F64AAP%2BuAAD%2FtgAA%2F7YAxwAAAOUASwABAAAD2P7vAAAEiv9X%2FzcEYgABAAAAAAAAAAAAAAAAAAAA8QADAbcBLAAFAAACigJYAAAASwKKAlgAAAFeADIBIAAAAgsEAwMEAwICBCAAAAcAAAABAAAAAAAAAABBREJFAAAAAP7%2FAu7%2FBgAAA9gBESAAAZMAAAAAAeAClAAAACAAAwAAAAIAAAADAAAAFAADAAEAAAAUAAQB0gAAADwAIAAEABwAAAANAC8AOQBAAFoAYAB6AH4AvwDPAN8A7wD%2FATEBUwLGAtoC3CAUIBogHiAiIDogRCB0IKwiEiIV%2F%2F8AAAAAAA0AIAAwADoAQQBbAGEAewCgAMAA0ADgAPABMQFSAsYC2gLcIBMgGCAcICIgOSBEIHQgrCISIhX%2F%2FwAB%2F%2FUAAABMAAD%2FwwAA%2F70AAAAA%2F3gAAP93AAD%2FNgAA%2FhT%2BBP3%2F4IkAAAAA4H3gXeCC4EHgGN673rIAAQAAAAAAOAAAAFQAAABeAAAAZgBsAAAAqAAAAMQAAADgAAAAAAAAAAAA2gDeAAAAAAAAAAAAAAAAAAAAAAADAIoAjwCxAMEAyAB7AI4AoQCiAKsAzACHAJoAhgCnAIgAiQDRANAA0gCMALAAowCpAKQA1ACgANgApQCoAKYA1QDvAIsAxQDCAMAAwwCqAKwA3ACuALsAmADWAJsArwDdAL8A0wCzALQA2QDXAK0AngDfALIAvACZAMkAygDLAI0AVQBIAEkASgBLAEwATQDOAE4AUABRAFIAUwBUAFYAcAB3AGgAaQBqAGsAbABtAM8AbgBxAHIAcwB0AHUAeAB2AE8AbwCQAJEAlACSAJMAlQAAuAAALEu4AAlQWLEBAY5ZuAH%2FhbgARB25AAkAA19eLbgAASwgIEVpRLABYC24AAIsuAABKiEtuAADLCBGsAMlRlJYI1kgiiCKSWSKIEYgaGFksAQlRiBoYWRSWCNlilkvILAAU1hpILAAVFghsEBZG2kgsABUWCGwQGVZWTotuAAELCBGsAQlRlJYI4pZIEYgamFksAQlRiBqYWRSWCOKWS%2F9LbgABSxLILADJlBYUViwgEQbsEBEWRshISBFsMBQWLDARBshWVktuAAGLCAgRWlEsAFgICBFfWkYRLABYC24AAcsuAAGKi24AAgsSyCwAyZTWLBAG7AAWYqKILADJlNYIyGwgIqKG4ojWSCwAyZTWCMhuADAioobiiNZILADJlNYIyG4AQCKihuKI1kgsAMmU1gjIbgBQIqKG4ojWSC4AAMmU1iwAyVFuAGAUFgjIbgBgCMhG7ADJUUjISMhWRshWUQtuAAJLEtTWEVEGyEhWS0AsAArALIBAQIrAbICAgIrAbcCfWNROiMACCu3A3NjUTojAAgrALcBinFROiYACCsAsgQIByuwACBFfWkYREuwYFJYsAEbsABZsAGOAAAUACgALAAwAAAADP8zAAwB5gAMAgYADAI%2BAAwCfgAMApAADALIAAwAAAAHAFoAAwABBAkAAQAqAAAAAwABBAkAAgAOACoAAwABBAkAAwBIADgAAwABBAkABAAqAAAAAwABBAkABQCCAIAAAwABBAkABgAmAQIAAwABBAkADgBIASgAUwBvAHUAcgBjAGUAIABTAGEAbgBzACAAUAByAG8AIABMAGkAZwBoAHQAUgBlAGcAdQBsAGEAcgAxAC4AMAA1ADAAOwBBAEQAQgBFADsAUwBvAHUAcgBjAGUAUwBhAG4AcwBQAHIAbwAtAEwAaQBnAGgAdAA7AEEARABPAEIARQBWAGUAcgBzAGkAbwBuACAAMQAuADAANQAwADsAUABTACAAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAMAA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOQAwADAAUwBvAHUAcgBjAGUAUwBhAG4AcwBQAHIAbwAtAEwAaQBnAGgAdABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBkAG8AYgBlAC4AYwBvAG0ALwB0AHkAcABlAC8AbABlAGcAYQBsAC4AaAB0AG0AbAAAAAIAAAAAAAD%2FtQAyAAAAAAAAAAAAAAAAAAAAAAAAAAAA8QAAAQIBAwADACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0ArQDJAMcArgBiAGMAkABkAMsAZQDIAMoAzwDMAM0AzgBmANMA0ADRAK8AZwCRALAA1gDUANUAaADrAOkA7QBqAGkAawBtAGwAbgCgAG8AcQBwAHIAcwB1AHQAdgB3ANcAeAB6AHkAewB9AHwAoQCxAIkAfwB%2BAIAAgQDsALoA6gDuAQQBBQAJABMAFAAVABYAFwAYABkAGgAbABwAEQAPAB0AHgAEAKMAIgCiAAoABQC2ALcAtAC1AMQAxQC%2BAL8AqQCqABABBgCyALMAwwCHAEIACwAMAD4AQABeAGAAEgBfAD8A6AANAIYAiACLAIoAIwAGAQcBCAEJAQoBCwEMAQ0BDgEPAJ0AngEQAREAgwC9AAcAhQCWARIAhAC8ARMACAD1APQA9gAOAO8A8AC4ACAAHwAhAJMAQQBhAKQBFABDAI0A2ADZAI4A2gDdAN4BFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElBE5VTEwCQ1IDZl9mA2ZfdAd1bmkwMEFECG9uZS5zdXBzCHR3by5zdXBzCnRocmVlLnN1cHMJZm91ci5zdXBzCXplcm8uZG5vbQhvbmUuZG5vbQh0d28uZG5vbQp0aHJlZS5kbm9tCWZvdXIuZG5vbQZhLnN1cHMGby5zdXBzBEV1cm8HdW5pMjIxNQd1bmkwMEI1B3VuaTAzMDALdW5pMDMwMC5jYXAHdW5pMDMwMQt1bmkwMzAxLmNhcAd1bmkwMzAyC3VuaTAzMDIuY2FwB3VuaTAzMDMLdW5pMDMwMy5jYXAHdW5pMDMwNAd1bmkwMzA4C3VuaTAzMDguY2FwB3VuaTAzMEELdW5pMDMwQS5jYXAHdW5pMDMyNwt1bmkwMzI3LmNhcAd1bmkwMEEwBWkudHJrAAAAAAAAAf%2F%2FAAIAAQAAAAwAAAAAAAAAAgAIAAQANwABAD4APgABAE4ATwABAGcAZwABAG4AbwABAHgAeAABAHkAegACANoA2gABAAEAAAAKADAARAACREZMVAAObGF0bgAaAAQAAAAA%2F%2F8AAQAAAAQAAAAA%2F%2F8AAQABAAJrZXJuAA5rZXJuAA4AAAABAAAAAQAEAAIAAAACAAoBPAABACYABAAAAA4ARgBsAIIApAC6AMgA2gDoAPoBAAEKARgBHgEoAAEADgAJABMAGQAbADMANQBWAHAAiwCNAJ4ApwCpAMIACQAZAAoAG%2F%2FrADP%2F9QA1%2F%2BwAZQAVAGYAJwCe%2F%2FUAp%2F%2BvAK8AHQAFABv%2F6wA1%2F%2FUAnv%2F1AKf%2FpgCvACcACAAz%2F%2FgANf%2FzAGMABgBlACgAZgArAJ7%2F8ACn%2F8YArwA2AAUAM%2F%2F2ADX%2F9gCe%2F9gAq%2F%2F2AK8AFAADAKf%2F7ACr%2F%2FUArwA4AAQAG%2F%2F2AJ7%2F7ACr%2F%2BoArwA2AAMAp%2F%2B2AKn%2F2ACr%2F7UABAAz%2F%2FYANQAJAKn%2F7ACv%2F%2BgAAQAZ%2F%2BwAAgAZ%2F9cAG%2F%2FmAAMAGf%2FsABv%2F7AA1%2F%2BwAAQDwACQAAgAZ%2F8YAM%2F%2FsAAIAf%2F%2F3AIH%2F9wACFIwABAAAFN4WLAA5AC4AAP%2Fc%2F6D%2F2%2F%2Fc%2F7IAJgBO%2F%2FcAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9v%2FiAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8MAAAAA%2F9cAAAAAAAAAAAAAAAD%2F6%2F%2Fr%2F9cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2Frv%2Fh%2F%2BH%2FvAAAAEMAAAAAAAAAAP%2FS%2F%2BwAAP%2Fr%2F%2Bj%2F0v%2FzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FYAJAAAAAAAAAAA%2F9gAAAAAAAD%2F6wAA%2F9f%2FsAAkABH%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F9j%2F7wAA%2F%2FUAAAAAAAD%2F9f%2FYAAAAAAAA%2F%2FX%2F9gAA%2F%2FYAAAAAAAD%2F9f%2F3%2F5z%2F2P%2Fr%2F7kAAAAAAAAAAP%2F1AAr%2F7P%2FY%2F9P%2F9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6wAAAAD%2F9QAAAAD%2F9v%2F1AAAAAAAA%2F%2FUAAAAAAAAAAAAA%2F%2FEAAP%2F2AAD%2F4gAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F1%2F%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fr%2F%2FUAAAAA%2F%2BwAAP%2F2%2F%2FUAAAAAAAD%2F6%2F%2F2%2F%2BgAAAAAAAD%2F9gAA%2F%2FX%2F9gAAAAD%2F2AAUAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FUAAP%2Fs%2F%2FUAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BEAAAAAABQAAAAAAAAAAP%2F1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9v%2F1%2F%2Fb%2F9gAA%2F%2Fb%2F9v%2F1AAAAAP%2F2%2F%2FYAAP%2FtAAAAAAAAAAAAAP%2Fs%2F%2FH%2F9QAA%2F9gAEwAAAAAAAAAA%2F%2FcAAAAA%2F%2FUAAP%2F1%2F%2Fb%2F7%2F%2F2AAAAAP%2F1AAAAAAAAAAAAAP%2BI%2F%2Bj%2Fyf%2B6AAAAAP%2Fh%2F%2Bb%2FwwAAAAj%2F7QAA%2F%2BwAAP%2F1%2F%2FUAAAAA%2F%2FD%2F9v90%2F7D%2FsP%2BwAAAAAAAAAAD%2FtQAA%2F%2Bz%2Fxf%2FD%2F%2BYAAP%2FE%2F9gAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAP%2F3%2F%2BwAAAAAAAAAAAAAAAD%2F9gAA%2F%2BwAAAAAAAAAAP%2FhAAAAAAAA%2F9gAAAAAAAn%2F7AAAAAAAAP%2F2%2F%2FQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7AAAAAD%2F9f%2F2AAAAAAAAAAAAAP%2F2%2F%2FL%2F9gAA%2F%2FYAAP%2F2%2F%2BsAAAAAAAD%2F9gAA%2F%2FYAFAAAAAAAAAAA%2F%2FX%2F9gAAAAAAAAAA%2F%2FX%2F1%2F%2FiAAAAAP%2F1%2F%2FUAAAAAAAAAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9QAAAAAAAAAAAAD%2F9QAAAAAAAP%2FrAAD%2F9QAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAA%2F%2FX%2FsgAA%2F9j%2F2gAA%2F5z%2F2P%2FR%2F8T%2F6%2F%2By%2F%2Bv%2FxP9%2FAAD%2F6%2F%2FPAAAAAP%2FDABT%2FmwAAAAAAAAAA%2F%2BwAAAAAAAD%2F2v%2FR%2F7D%2F1v%2FP%2F8b%2Frv%2FYAAAAAAAAAAAAAAAAAAD%2F9f%2F2AAAAAAAAAAD%2F9v%2Fr%2F%2FYAAAAAAAAAAAAA%2F9YAAAAAAAAAAAAAAAAAAP%2FXAAAAAAAA%2F%2Fb%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2B4AAAAAAAAAAP%2FhAAD%2F9%2F%2F3%2F%2Ff%2F7QAAAAD%2FtAAAAAAAAAAAAAAAAAAv%2F9cAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FYAAAAA%2F%2Fb%2F9gAAAAAAAAAA%2F%2FX%2F9gAAAAD%2FxAAA%2F%2Bv%2F9QAR%2F7H%2F9f%2Fx%2F%2BP%2F9f%2FCAAD%2F3%2F%2BcAAD%2F9f%2FhAAAAAP%2FYACb%2FsgAAAAAAAAAAAAAAAAAAAAD%2F9f%2Fh%2F8T%2F1P%2FY%2F9%2F%2F1v%2Fi%2F%2B4AAAAAAAAAAP%2F2%2F%2Ff%2F9f%2FxAAD%2F7f%2FtAAAAAP%2F3%2F%2BL%2F9v%2Fs%2F%2B3%2F7P%2Fm%2F9oAAP%2F1%2F%2BQAAAAA%2F8QAFAAAAAAAAAAA%2F%2FcAAAAAAAAAAP%2FtAAD%2F2P%2FYAAAAAAAAAAAAAAAAAAAAAP%2FrAAAAAP%2FrAAAAAAAAAAD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FEAAAAAAAAAAAAAAAAAAD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAA%2F%2Bv%2F9gAAAAkACQAAAAAAAAAAAAAAAP%2F2AAD%2F7wAAAAAAAAAAAAAAAP%2F1AB0AAAAAAAAAAP%2F1AAAAAAAAAAAACQAP%2F%2FUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2FwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Bc%2F%2FD%2F4f%2BwAAAAFP%2Fx%2F%2Bz%2FrwAAAAAAAAAAAAAAAAAA%2F%2FUAAAAA%2F%2BEAAP%2BHAAAAAAAAAAAAAAAAAAD%2FxAAAAAD%2Fs%2F%2FD%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BsAAP%2F2%2F%2Bz%2F9gAAAAwADP%2F2AAAAAP%2FsAAAAAP%2FxAAAAAP%2FsAAD%2F9QAA%2F9j%2F9QAAAAcAAAAAAAAAAP%2F2AAAAAAAAAAAADAAAAAkABwAAAAAABQAAAAAAAAAAAAAAMQAAADEAMf%2Fx%2F%2FYAAAAAACj%2F1wAAAAAAAAAA%2F%2BwAAP%2F2AAAAAAAA%2F%2BoAAABP%2F%2BwAWv%2FsABQAAAAAADMAJgAdACgAKAASAAD%2F9QAAAAAAAP%2F1AAAAAAA5AAAAAP%2FsAAAAAP%2F1AAAAIAAAAAAAAAAAAAAAAAAAAAD%2F8QAA%2F%2FUAAAAAAAAAAP%2FYAAD%2F9QAUADwAAAAAAAAAAAAA%2F%2BIAAAAAAAAAAAAAAAAAAAAA%2F%2FUAAAAAABQAAAAA%2F%2FoAAAAA%2F%2Fn%2F9v%2F2AAAAAP%2FsABQAAAAAAAAAAP%2F2AAD%2F9AAAAAD%2F9f%2F1%2F%2BwAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Bv%2F7AAAAAAAAAAAAAAAAAAAAAD%2F6wAAAAD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F2AAAAAAAAAAAAAAAAAAA%2F%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FIAAAAAP%2FYAAAAAAAAAAD%2F7P%2F2AAAAAAAAAAD%2F8QAAAAAAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAD%2F7gAAAAAAAP%2FsAAD%2F9AAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH%2F2gAAAAAAAAAA%2F8X%2F2AAAAAAAAP%2FQ%2F%2FX%2F2gAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8b%2FdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F2%2F%2FcAEgAbAAD%2F2f%2FuAAD%2F9gAA%2F%2BkAAP%2F2%2F9QAAAAAAAAAAAAS%2F%2B0AT%2F%2FYAAAAAAAAAAAAAAAAAAAAKAAbAAD%2F6%2F%2FsAAD%2F9v%2F2AAAAAAAAAAAAAP%2FrAAAAAP%2FsAAAAAAAAAAD%2F%2FQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FDAAAAAAAAAAAAAAAAAAD%2F9gAA%2F%2F0AAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FUAAAAAAAD%2F9gAAAAAAAAAAABQAAAAAAAAAAP%2FrAAD%2F9gAAAAAAAP%2F3AAAAAP%2FsACgAFAAAAAAAAAAAAAD%2F7AAAAAAAAAAA%2F%2Bz%2F6wAAAAAAAAAAABQAAAAAAAD%2F7AAAAAD%2F4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F4gAAAAAAAAAAAAAAAAAA%2F%2FUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FrAAAAAP%2F9AAD%2F9gAAAAAAAP%2FxAAAAAAAAAAD%2F9gAAAAD%2F4gAAAAAAAP%2F1AAAAAAA2%2F%2FUAAAAAAAAAAP%2F1AAAAAAAAAAAAAAAAAAAAAAAA%2F%2FQAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAP%2F2AAAAAAAA%2F%2BwAAAAAAAAAAP%2FsAAAAAP%2FYAAAAAAAAAAAAAAAAADj%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6wAAAAAAAAAAAAD%2F4wAAAAAAAP%2F3AAAAAAAAAAAAAAAAAAAAAAAA%2F%2BQAAP%2F2AAAAAAAA%2F%2FYAAAAA%2F%2FUAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAv%2F6wAA%2F%2Fb%2F9gAA%2F8T%2F3P%2Fw%2F%2BL%2F9v%2FhAAD%2F9f9zAAD%2F9v%2FxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7P%2Fs%2F%2FD%2F7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BsAAAAAAAAAAAAAAAAAAP%2FaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F4gAAAAD%2F9v%2FZAAAAAAAAAAD%2FnP%2FO%2F%2Fb%2FogAA%2F9AAAP%2Fn%2F2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F3P%2FsAAD%2F9v%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9gAAAAD%2F6gAA%2F%2Fj%2F%2BAAA%2F8b%2F9f%2Ft%2F%2B7%2F9v%2FxAAD%2F8%2F%2By%2F%2FwAAP%2FiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2B7%2F6v%2Fs%2F%2Ff%2F5f%2FyAAAAAAAAAAD%2F7P%2F2AAAAAAAAAAD%2F9f%2F2AAAAAAAI%2F%2FUAAP%2F0%2F%2Fb%2F9gAAAAAAAP%2F2%2F%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6v%2F1AAAAAP%2F1AAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F9wAAAAA%2F8QAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fs%2F%2BwAAAAAAAAAAP%2F1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9f%2F2%2F9sAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F2%2F8L%2F3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FYAAD%2F9P%2FiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9AAAAAAAAAAAAAD%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAA%2F9gAAP%2F2%2F9QAAAAAAAAAAAAAAAAAAP%2Fi%2F%2BsAAAAAAAAAAP%2FiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fq%2F%2FUAAAAAAAAAAP%2FrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2BY%2F9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F2gAAAAAAAAAA%2F4j%2F0wAAAAAAAP%2Fh%2F%2B3%2F2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8cAAAAAAAAAAAAAAAD%2F7AAAAAAAAAAA%2F%2FYAAAAAAAD%2F7P%2F2AAAAAAAA%2F%2BwAAAAA%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FrAAAAAAAAAAAAAP%2FaAAAAAP%2F8AAAAAAAA%2F%2FUAAAAAAAAAAAAA%2F%2Fb%2F9gAA%2F%2FQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F1%2F%2BsAAAAAAAD%2F7AAAAAAAAgANAAQAIAAAACIAJQAdACgAKAAhACoAYgAiAGcAdgBbAHgAegBrAIYAkwBuAJYAngB8AKEAoQCFAKMAowCGAKUApQCHAKcApwCIAKkAqQCJAAEABACkAAYABwAIAAwAJgAnAAkAKAApACoACgALACgAKAAMACsADAANAA4ADwAQAC0AEQAuABIAEwAUAB0AFQAAABgAGQAaABwAAAAAABsAAAAcABwAHQAdACIAHwAgACEAIgA3ACMAOAAkACUABgAGAAYABgAGAAYAJgAIACYAJgAmACYAKQApACkAKQAoAAwADAAMAAwADAAMACYAEAAQABAAEAASAAwALAAUABQAFAAUABQAFAAYABUAGAAYABgAGAAAAAAAAAAAACIAHAAdAB0AHQAdAB0AHQAYADEAIgAiACIAIgAkACQAAAAdABkAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAXABYAFgABAAIANAAEADUANQAeADYAHgA2AAAAAAAyADMAMgAzADAAMAAwADAAAwAAAAAALwAAAC8AAAAvAAAABQACAEgABAAEAAwABgAGAA8ACgAKAA8ADQANABMAEgASAA8AFAAUAA8AFgAWAA0AFwAXAAIAGAAYAAMAGQAZAB8AGgAaAAQAGwAbACAAHAAcAAUAHQAdAA4AHgAeABAAIAAiABIAIwAjABEAJAAkAAYAJgAmABQAJwAnAAcAKgArACgALAAsABIALQAtACgALgAuABIALwAvACgAMAAwACkAMQAxABUAMgAyABYAMwAzACQANAA0AAgANQA1ACUANgA2AAkANwA3ACoAOAA9AAwAPwA%2FAA8ASQBPAA8AUABTAAMAVABUAAUAVQBVAAEAVwBdABAAXgBiABIAYwBmABQAZwBoACgAaQBvABIAcQB0ABYAdQB2AAkAeQB6ABEAhgCHAAsAiACJACwAigCKABwAiwCLAB0AjACMACEAjQCNAB4AjgCPACIAkACQACMAkQCRAAoAkgCSACMAkwCTAAoAlgCWACcAlwCXACsAmACYACcAmQCZACsAmgCdACYAngCeABkAogCiAC0ApACkAC0ApgCmAC0ApwCnABsAqQCpABgAqwCrABcArwCvABoA8ADwABQAAQAAAAoAYACeAAJERkxUAA5sYXRuABoABAAAAAD%2F%2FwABAAAAFgADQVpFIAAeQ1JUIAAoVFJLIAAyAAD%2F%2FwABAAEAAP%2F%2FAAIAAgAFAAD%2F%2FwACAAMABgAA%2F%2F8AAgAEAAcACGxpZ2EAMmxpZ2EAMmxpZ2EAMmxpZ2EAMmxpZ2EAMmxvY2wAOGxvY2wAOGxvY2wAOAAAAAEAAQAAAAEAAAACAAYAGgABAAAAAQAIAAEABgDKAAEAAQAmAAQAAAABAAgAAQAaAAEACAACAAYADAB5AAIAIwB6AAIAMQABAAEAIw%3D%3D%29%20format%28%27truetype%27%29%3B%0A%7D%0A%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Source%20Sans%20Pro%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20400%3B%0Asrc%3A%20url%28data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAARAQAABAAQR0RFRgNEA3IAAG5oAAAAQEdQT1PUveN5AABuqAAAGXBHU1VC8WfWVwAAiBgAAADgT1MvMlq0lFsAAGUsAAAAYGNtYXDzMPm1AABljAAAAeZjdnQgDZkA%2BgAAaTQAAAAoZnBnbQZZnDcAAGd0AAABc2dhc3D%2F%2FwADAABuYAAAAAhnbHlmIymUiAAAARwAAF3saGVhZP4Us%2BIAAGEMAAAANmhoZWEHowOhAABlCAAAACRobXR4pqgmOgAAYUQAAAPEbG9jYTiIUNQAAF8oAAAB5G1heHADCwJAAABfCAAAACBuYW1lIro8MAAAaVwAAAHGcG9zdGxQSG8AAGskAAADOXByZXCWBPrrAABo6AAAAEsABQBZAAACNQKUAAMABgAJAA8AFQBnALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAIvG7kAAgAEPlm6AAUAAgAAERI5ugAGAAIAABESOboABwACAAAREjm6AAgAAgAAERI5uQAKAAH0ugANAAIAABESObgAABC5ABIAAfQwMRMhESETJxEhEQcTLwEjDwETPwEjHwFZAdz%2BJMB%2FAVh%2BUkk0BDZKhDFC60IyApT9bAFU6P4yAc7o%2FuaEZ2eEAUled3deAAAAAAIAAwAAAh0CkAAJABEAVAC4AABFWLgADi8buQAOABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4ABEvG7kAEQAEPlm6AAUADAAOERI5ugALAAwADhESObgACy%2B5AAkAAfQwMQEnLgEnIw4BDwEXIwcjEzMTIwFxHxIgEAQPIBIf2u8%2FVd5e3lkBC2Q3bTk5bTdkQ8gCkP1wAAAAAAMAWgAAAiQCkAATABwAJQBbALgAAEVYuAAALxu5AAAAED5ZuAAARVi4ABMvG7kAEwAEPlm6ACMAAAATERI5uAAjL7oACgAjABQREjm4AAAQuQAbAAH0uAAjELkAHAAB9LgAExC5ACUAAfQwMRMzMh4CFRQGBxUeARUUDgIrARMyNjU0JisBFRMyNjU0JisBFVrDMlM7ITg6SFAkQlw30bRVSU1NZXJVXlxXcgKQEiY9KzFPDwQLTkQwSDAYAXg6NzYv1v7KP0M9OfgAAAEANP%2F0AhsCnAAhADkAuAAARVi4AAUvG7kABQAQPlm4AABFWLgAHS8buQAdAAQ%2BWbgABRC5AAwAAfS4AB0QuQAWAAH0MDETND4CMzIWFwcuASMiDgIVFB4CMzI2NxcOASMiLgI0LE5rPzxaHS8aPyovTDYeHTRLLzBHIC8nYj8%2BaU0rAUhPflgvMSA1HCElRWI9PmNGJiYjMy0yLld%2FAAACAFoAAAI0ApAACgATADUAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACi8buQAKAAQ%2BWbkACwAB9LgAABC5ABEAAfQwMRMzMhYVFA4CKwE3MjY1NCYrARFapJieKE5ySqiec3Nzc0sCkKidTntVLUSKfX2E%2FfgAAAABAFoAAAHeApAACwBNALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAsvG7kACwAEPlm4AAAQuQADAAH0ugAHAAAACxESObgABy%2B5AAUAAfS4AAsQuQAIAAH0MDETIRUhFTMVIxUhFSFaAXr%2B2fn5ATH%2BfAKQRs5H7kcAAAAAAQBaAAAB1AKQAAkAQwC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAJLxu5AAkABD5ZuAAAELkAAwAB9LoABwAAAAkREjm4AAcvuQAFAAH0MDETIRUhFTMVIxEjWgF6%2Ftn6%2BlMCkEbeRv7aAAAAAQA0%2F%2FQCJgKcACUATQC4AABFWLgABS8buQAFABA%2BWbgAAEVYuAAhLxu5ACEABD5ZuAAFELkADAAB9LgAIRC5ABYAAfS6AB0ABQAhERI5uAAdL7kAGwAB9DAxEzQ%2BAjMyFhcHLgEjIg4CFRQeAjMyNjc1IzUzEQ4BIyIuAjQtUW5CRFsdLxlBMjJQOB8dN1E1Iz8Ui9cgaUJBbE4sAUhPflgvMx41GiMlRWI9PmNGJhUSq0X%2B7CErLld%2FAAABAFoAAAIyApAACwBJALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAsvG7kACwAEPlm6AAkAAAALERI5uAAJL7kAAwAB9LgAABC4AATQuAALELgAB9AwMRMzESERMxEjESERI1pTATFUVP7PUwKQ%2Fu0BE%2F1wATX%2BywABAFoAAACtApAAAwAlALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAMvG7kAAwAEPlkwMRMzESNaU1MCkP1wAAAAAQAf%2F%2FQBiQKQABAAKwC4AABFWLgABy8buQAHABA%2BWbgAAEVYuAAOLxu5AA4ABD5ZuQADAAH0MDE3HgEzMjY1ETMRFA4CIyInWxY4IzU0VBUrRTB7OocnI0FLAcf%2BMSpLOCBpAAEAWgAAAj8CkAAMAFsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgABC8buQAEABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4AAgvG7kACAAEPlm6AAIAAAAMERI5ugAJAAQACBESOTAxEzMRMwEzBxMjAwcVI1pTAwERXs3tXcRxUwKQ%2FrcBSfr%2BagFVhdAAAAEAWgAAAcwCkAAFACsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgABS8buQAFAAQ%2BWbkAAgAB9DAxEzMRIRUhWlMBH%2F6OApD9t0cAAAABAFoAAAJ9ApAAGQBvALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAYvG7kABgAQPlm4AABFWLgAGS8buQAZAAQ%2BWbgAAEVYuAAJLxu5AAkABD5ZugADAAYACRESOboADgAGAAkREjm6ABEAGQAGERI5ugAUAAAAGRESOTAxEzMTFzM3EzMRIxE0NjcjBwMjAycjHgEVESNaYn8wBC5%2BYk8HBAQ1fi9%2FNAQDCE0CkP6ghoYBYP1wAWksaiyS%2FqkBV5Isaiz%2BlwAAAAEAWgAAAi0CkAATAFsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACC8buQAIABA%2BWbgAAEVYuAATLxu5ABMABD5ZuAAARVi4AAsvG7kACwAEPlm6AAQACwAIERI5ugAOAAAAExESOTAxEzMTFzMuATURMxEjAycjHgEVESNaVu1HBAMHT1buRwQEB08CkP5kiDJrNAFT%2FXABnYcyZzT%2BqQACADT%2F9AJlApwAEwAnADUAuAAARVi4AAovG7kACgAQPlm4AABFWLgAAC8buQAAAAQ%2BWbkAFAAB9LgAChC5AB4AAfQwMQUiLgI1ND4CMzIeAhUUDgInMj4CNTQuAiMiDgIVFB4CAUw%2BZ0opKUpnPj5nSykpS2c%2BLEczHBwzRywsRzMcHDNHDDBZf09PfVcuL1d9Tk9%2FWTBJJkdjPj1iRCUlRGI9PmNHJgACAFoAAAIVApAADgAXAEMAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgADi8buQAOAAQ%2BWboADAAAAA4REjm4AAwvuQAPAAH0uAAAELkAFgAB9DAxEzMyHgIVFA4CKwERIxMyNjU0JisBEVrJNlo%2FIyNAWTZ2U79WU1RVbAKQFC1KNjRMMhn%2B%2FAFIQUZHN%2F77AAACADT%2FXAJzApwAEwA0AEsAuAAARVi4ACQvG7kAJAAQPlm4AABFWLgAGi8buQAaAAQ%2BWbsAMQABABcABCu4ABoQuQAFAAH0uAAkELkADwAB9LgAGhC4AC7QMDETFB4CMzI%2BAjU0LgIjIg4CAQ4BIyImJy4DNTQ%2BAjMyHgIVFA4CBx4BMzI2N4ocM0csLEczHBwzRywsRzMcAekPMh1beh02WD8iKUpnPj5nSykhPVY0F1Q2FiEOAUs%2FZUgmJkhlPz1iRCUlRGL94wUKV0QHNlh3SE99Vy4vV31OR3VXNwksKgYEAAACAFoAAAIgApAACAAYAFQAuAAARVi4AA4vG7kADgAQPlm4AABFWLgADC8buQAMAAQ%2BWbgAAEVYuAAJLxu5AAkABD5ZuwABAAEACgAEK7gADhC5AAgAAfS6ABcAAQAKERI5MDETMzI2NTQmKwEBAyMRIxEzMh4CFRQGBxOtbk1SUk1uARWed1PNMlU9IlBDpgFZP0BBNP2zARX%2B6wKQEyxGM01cEf7iAAABACr%2F9AHvApwAMwBJALgAAEVYuAAWLxu5ABYAED5ZuAAARVi4ADAvG7kAMAAEPlm5AAMAAfS6AAsAFgAwERI5uAAWELkAHQAB9LoAJQAwABYREjkwMTceATMyNjU0LgIvAS4DNTQ%2BAjMyFhcHLgEjIgYVFB4CHwEeAxUUDgIjIiYnXCNfM0FIER0oF14XMCYYHzdLLTtkIy0eSS43QxMgJhRdHDIkFR86UjRFdiuPJS07MBkjGRQLKQocKDckJUAvGi0kNh0hMy0YIRkTCCgMHyk3JCdEMx00LQAAAQAcAAAB%2FAKQAAcAMwC4AABFWLgAAi8buQACABA%2BWbgAAEVYuAAHLxu5AAcABD5ZuAACELkAAAAB9LgABdAwMRMjNSEVIxEj4sYB4MZUAkpGRv22AAAAAAEAV%2F%2F0Ai4CkAAZADwAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgADS8buQANABA%2BWbgAAEVYuAAULxu5ABQABD5ZuQAHAAH0MDETMxEUHgIzMj4CNREzERQOAiMiLgI1V1MYKTggITgqGFAkP1YyMlc%2FJAKQ%2Fn07UDAVFTBQOwGD%2Fn9PbEMdHUNsTwAAAQAAAAACAwKQAA0AQAC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAKLxu5AAoAED5ZuAAARVi4AA0vG7kADQAEPlm6AAUAAAANERI5MDERMxMeARczPgE3EzMDI1lpEhsTBBIcEWlV0GECkP6eO2Q6OmQ7AWL9cAAAAQAXAAAC%2BgKQACEAdgC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAKLxu5AAoAED5ZuAAARVi4ABQvG7kAFAAQPlm4AABFWLgAIS8buQAhAAQ%2BWbgAAEVYuAAXLxu5ABcABD5ZugAFAAAAIRESOboADwAUABcREjm6ABwAIQAKERI5MDETMxMeARczPgE3EzMTHgEXMz4BNxMzAyMDLgEnIw4BBwMjF1ZFCRQJBAsYC1tMWwwYDAQJEgpFUIhkYwkPCAQIEQhhYwKQ%2Fps2aDY2aTUBZf6bNGo2Nmk1AWX9cAGLJkkmJkkm%2FnUAAAABAA8AAAHyApAAGQBbALgAAEVYuAABLxu5AAEAED5ZuAAARVi4AAsvG7kACwAQPlm4AABFWLgAGS8buQAZAAQ%2BWbgAAEVYuAAPLxu5AA8ABD5ZugAGAAEAGRESOboAEwAPAAsREjkwMRMDMxceARczPgE%2FATMDEyMnLgEnIw4BDwEjzrJcWQ0XDwQOFQxXWLO%2FXGANGxAEDhoMX1gBUwE9qBcrHR0rF6j%2Bv%2F6xsRgzHh4zGLEAAAAAAf%2F%2FAAAB3QKQAA8AQAC4AABFWLgAAS8buQABABA%2BWbgAAEVYuAALLxu5AAsAED5ZuAAARVi4AA8vG7kADwAEPlm6AAYAAQAPERI5MDE3AzMXHgEXMz4BPwEzAxUjxMVZVRAeEQQRIg9UV8VU%2FgGSuSRGJSVGJLn%2Bbv4AAAEALQAAAfECkAAJAD0AuAAARVi4AAMvG7kAAwAQPlm4AABFWLgACC8buQAIAAQ%2BWbkABgAB9LgAANC4AAMQuQABAAH0uAAF0DAxNwEhNSEVASEVIS0BWf7GAaL%2BpgFd%2FjwyAhhGMf3oRwAAAAIAOv%2F0AbcB8gAbACcAdgC4AABFWLgADy8buQAPAAg%2BWbgAAEVYuAAZLxu5ABkABD5ZuAAARVi4ABQvG7kAFAAEPlm6AAMADwAZERI5uAADL7gADxC5AAgAAfS6ABUAFAAPERI5uAAZELkAHwAB9LgAFRC5ACIAAfS4AAMQuQAjAAH0MDE3NDY3NC4CIyIGByc%2BATMyFhURIycjDgEjIiY3FBYzMjY3NQ4DOo%2BcCRcmHitJHSEiYjtZUEQHAiNRLT5RUTEkIz8jPVQzFn5QVREXLCIVIBQ5FiltW%2F7WOh0pSEgqJCEghwgWHicAAgBS%2F%2FQB%2BwLIABYAJgCDALgAAEVYuAAALxu5AAAAEj5ZuAAARVi4AAYvG7kABgAIPlm4AABFWLgAEC8buQAQAAQ%2BWbgAAEVYuAAWLxu5ABYABD5ZugADAAYAEBESOboAEwAQAAYREjm4ABMQuQAXAAH0uAAQELkAGgAB9LgABhC5ACQAAfS4AAMQuQAmAAH0MDETMxUHPgEzMh4CFRQOAiMiJicjByM3HgEzMj4CNTQuAiMiB1JSAiFOKS9IMRkiOkwqIkkgAwdCUiA%2FGB4zJRUOHzEiO0cCyMJYHScjQVs4PmJEIx8dMGwcFxsxSC0oQi8aQgAAAAABAC7%2F9AGwAfIAIQA5ALgAAEVYuAAFLxu5AAUACD5ZuAAARVi4AB0vG7kAHQAEPlm4AAUQuQAMAAH0uAAdELkAFgAB9DAxNzQ%2BAjMyFhcHLgEjIg4CFRQeAjMyNjcXDgEjIi4CLiZAVS8wRRkpFi8dITgoFxYnOCEjORYlIVEsMFQ9I%2FI9X0IiIxc1ExgbMkUqKkQxGx0UNh0iIkFfAAAAAgAv%2F%2FQB2QLIABQAIwCDALgAAEVYuAAFLxu5AAUACD5ZuAAARVi4AAovG7kACgASPlm4AABFWLgAEi8buQASAAQ%2BWbgAAEVYuAANLxu5AA0ABD5ZugAIABIABRESOboADgAFABIREjm4ABIQuQAYAAH0uAAOELkAGwAB9LgACBC5ABwAAfS4AAUQuQAfAAH0MDE3ND4CMzIWFyc1MxEjJyMOASMiJjcUFjMyNjc1LgEjIg4CLyM6TCoqPiAEU0QHAx1LK1xtVUZAIjweHzkeHTMmFvI7X0IkHhpTu%2F04ORwphHtYYiEi%2FhwXGzFEAAAAAgAu%2F%2FQBygHyABsAJABRALgAAEVYuAAFLxu5AAUACD5ZuAAARVi4ABcvG7kAFwAEPlm6AAwABQAXERI5uAAML7gAFxC5ABAAAfS4AAUQuQAfAAH0uAAMELkAJAAB9DAxNzQ%2BAjMyHgIVFAchHgEzMjY3Fw4BIyIuAiU0JiMiDgIHLiU9TiouSTEaA%2F64BVdGIzsbHSBOMjFVPyQBVD85Gi8mGQTyPF9CIyA8VDQbEk9cFRE2FB4jQV5hS08VJzklAAAAAAEAHgAAAT8C1AAVAFYAuAAARVi4AAUvG7kABQAIPlm4AABFWLgAEi8buQASABI%2BWbgAAEVYuAAJLxu5AAkABD5ZuAASELkAAgAB9LgABRC5AAgAAfS4AAvQuAAFELgADtAwMQEmIyIdATMVIxEjESM1NzU0NjMyFhcBLRscRGdnUkJCRUkXKREChQxeTUP%2BXQGjPgVNS1YJBwAAAAMALf8gAewB8gARAEkAWQBtALgAAEVYuAAlLxu5ACUACD5ZuAAARVi4AEUvG7kARQAGPlm5AAMAAfS6ADwAJQBFERI5uAA8L7kACwAB9LgAJRC4ACnQuAApL7kAKgAB9LgAPBC4ADPQuAAzL7kASgAB9LgAJRC5AFIAAfQwMRcUFjMyPgI1NCYrASImJw4BBzQ2NzUuATU0Njc1LgE1ND4CMzIWFzMVIx4BFRQOAiMiJicOARUUFjsBMhYVFA4CIyIuAhMyPgI1NCYjIgYVFB4CdUtCIzkoFjIwVA4hEBoYSCYhEhkiExgnHTJDJRQjDqlkERccMEElEiYRDRIkMl5VVSJAWzktSjUdyRUlHRA8Kys8EB0lUicuERskEyIaAwUTKiAfOBcECycdHy4NBBRDLChALRgHBT8RNB8nPysYCQgLGxQXHjc9Ij0uGxEiMAFOEB4rGzY7OzYbKx4QAAABAFIAAAHXAsgAFABYALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4AAAvG7kAAAASPlm4AABFWLgAFC8buQAUAAQ%2BWboAAwAGABQREjm4AAvQuAAGELkADwAB9LgAAxC5ABIAAfQwMRMzFQc%2BATMyFhURIxE0JiMiBgcRI1JSAyNMM01HUiwwJjolUgLIwmQhL2Be%2FswBKUU9JiX%2BoAACAEMAAAC1ArQACwAPAC0AuAAARVi4AAwvG7kADAAIPlm4AABFWLgADi8buQAOAAQ%2BWboABgAAAAMrMDETIiY1NDYzMhYVFAYHMxEjfBghIRgYISFCUlICSh4XGB0dGBceZP4aAAAAAAL%2F2P8nALUCtAAPABsANwC4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAAFLxu5AAUABj5ZugAWABAAAyu4AAUQuQAMAAH0MDETMxEUBiMiJic3HgEzMjY1EyImNTQ2MzIWFRQGU1I8SRckDREJGA0kGCoYISEYFyEhAeb940pYCAU%2BAwUyLQKBHhcYHR0YFx4AAAEAUgAAAeYCyAAMAFsAuAAARVi4AAQvG7kABAAIPlm4AABFWLgAAC8buQAAABI%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4AAgvG7kACAAEPlm6AAIAAAAMERI5ugAJAAAACBESOTAxEzMRMxMzBxMjJwcVI1JRA89bo7lajltRAsj%2BHgEAw%2F7d6mqAAAAAAAEAUv%2F0ANgCyAAPACsAuAAARVi4AAAvG7kAAAASPlm4AABFWLgADC8buQAMAAQ%2BWbkABQAB9DAxEzMRFBYzOgE3Fw4BIyImNVJSDgkEBwcLCBYRLygCyP2UFBACPgQEODYAAAABAFIAAALxAfIAIQCYALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4AAAvG7kAAAAIPlm4AABFWLgAIS8buQAhAAQ%2BWbgAAEVYuAAZLxu5ABkABD5ZuAAARVi4ABEvG7kAEQAEPlm6AAIAAAAhERI5ugAJAAAAIRESObgABhC4AAzQuQAVAAH0uAAJELkAFwAB9LgABhC5AB0AAfS4AAIQuQAfAAH0MDETMxczPgEzMhYXPgEzMhYVESMRNCYjIgcRIxE0JiMiBxEjUkQHAyBLLDg%2FDyZNLUtJUiwuN0NSLC83Q1IB5kYjLzEsKjNgXv7MASlFPUv%2BoAEpRT1L%2FqAAAAAAAQBSAAAB1wHyABQAZQC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAALxu5AAAACD5ZuAAARVi4ABQvG7kAFAAEPlm4AABFWLgACy8buQALAAQ%2BWboAAgAAABQREjm4AAYQuQAPAAH0uAACELkAEgAB9DAxEzMXMz4BMzIWFREjETQmIyIGBxEjUkQHAyNNM01HUiwwJjolUgHmRiMvYF7%2BzAEpRT0mJf6gAAAAAAIALv%2F0AfAB8gATACcANQC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAAPLxu5AA8ABD5ZuQAZAAH0uAAFELkAIwAB9DAxNzQ%2BAjMyHgIVFA4CIyIuAjcUHgIzMj4CNTQuAiMiDgIuJT5RLS1RPiUlPlEtLVE%2BJVUUJTQfHzQlFBQlNB8fNCUU8j1fQiIiQl89PF9BIiJBXzwqRDEbGzFEKipFMhsbMkUAAAIAUv8zAfsB8gAWACcAgwC4AABFWLgACS8buQAJAAg%2BWbgAAEVYuAADLxu5AAMACD5ZuAAARVi4AAIvG7kAAgAGPlm4AABFWLgAEy8buQATAAQ%2BWboABQAJABMREjm6ABYAEwAJERI5uAAWELkAFwAB9LgAExC5ABoAAfS4AAkQuQAkAAH0uAAFELkAJwAB9DAxFxUjETMXMz4BMzIeAhUUDgIjIiYnNx4BMzI%2BAjU0LgIjIgYHpFJEBwMhTysvSDAZIjpMKiJDIgIhPhgeMyUVDh8xIh8%2FJCmkArM4HCgjQVs5PmFEIx4aQBwXGzFILShCLxoiIAAAAgAv%2FzMB2QHyABQAIwB%2FALgAAEVYuAAFLxu5AAUACD5ZuAAARVi4AAsvG7kACwAIPlm4AABFWLgADS8buQANAAY%2BWbgAAEVYuAASLxu5ABIABD5ZugAIAAUAEhESOboADwASAAUREjm5ABgAAfS4AA8QuQAbAAH0uAAIELkAHAAB9LgABRC5AB8AAfQwMTc0PgIzMhYXMzczESM1Nw4BIyImNxQWMzI2NzUuASMiDgIvIzpMKipAIQIIQlMEHUsqXG1VRkAiPB4fOR4dMyYW8jtfQiQdHS79Ta1WGyeEe1hiISL%2BHBcbMUQAAAABAFIAAAFeAfIAEQBSALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4AAAvG7kAAAAIPlm4AABFWLgAES8buQARAAQ%2BWboAAgAAABEREjm4AAYQuAAM3LgAAhC5AA8AAfQwMRMzFzM%2BATMyFwcuASMiBgcRI1JEBwMZRyodFxAMFA8fQxlSAeZYLjYKSAQEMj7%2ByAABABz%2F9AGDAfIAMQBJALgAAEVYuAAVLxu5ABUACD5ZuAAARVi4AC4vG7kALgAEPlm5AAMAAfS6AAsALgAVERI5uAAVELkAHAAB9LoAJAAVAC4REjkwMTceATMyNjU0LgInLgM1ND4CMzIWFwcuASMiBhUUHgIXHgMVFA4CIyImJ0UgQywwMBQfKBQaNCkaFys%2BJy5NHCcZNiAuKxIeJxUaNSobFy1DKzReI24aICwgExwVEAgJFyEsHx0zJRUgFzQTGCocERkTDwgKFiEwIh40KBcmHQAAAAABABj%2F9AFFAm4AGQBFALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4ABQvG7kAFAAEPlm4AAYQuQAJAAH0uAAA0LgABhC4AAPQuAAUELkADQAB9DAxEyM1PwEzFTMVIxEUFjMyNjcXDgEjIi4CNWBITApFg4MhKg0eDBAULxcnNSEOAaM%2BBYiIQ%2F7yLTEIBT4HCxgqPCQAAQBL%2F%2FQBzgHmABQAZQC4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAAJLxu5AAkACD5ZuAAARVi4ABEvG7kAEQAEPlm4AABFWLgADC8buQAMAAQ%2BWbgAERC5AAUAAfS6AA0ACQAMERI5uAANELkACAAB9DAxEzMRFBYzMjY3ETMRIycjDgEjIiY1S1MrMCY6I1JEBwMiSzNORwHm%2FtdFPScrAVn%2BGkwoMGBeAAAAAAEADAAAAccB5gANAEAAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgACi8buQAKAAg%2BWbgAAEVYuAANLxu5AA0ABD5ZugAFAAAADRESOTAxEzMTHgEXMz4BNxMzAyMMVVwLFwsECxYLXFGsYAHm%2FuwkSCMjSCQBFP4aAAEAGAAAArYB5gAhAHYAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgACi8buQAKAAg%2BWbgAAEVYuAAULxu5ABQACD5ZuAAARVi4ACEvG7kAIQAEPlm4AABFWLgAFy8buQAXAAQ%2BWboABQAhAAAREjm6AA8AFwAUERI5ugAcAAAAIBESOTAxEzMTHgEXMz4BNxMzEx4BFzM%2BATcTMwMjAy4BJyMOAQcDIxhUSAgOBwQIEAlLUEwJEQgECA4IR06CZEYJDwkECBAKRGAB5v7nI0IiIkMiARn%2B5yNCIiJCIwEZ%2FhoBBSNEJSVFI%2F78AAAAAQAOAAABsAHmABkAWwC4AABFWLgAAS8buQABAAg%2BWbgAAEVYuAALLxu5AAsACD5ZuAAARVi4ABkvG7kAGQAEPlm4AABFWLgADy8buQAPAAQ%2BWboABgALAA8REjm6ABQAAQAZERI5MDE3JzMXHgEXMz4BPwEzBxcjJy4BJyMOAQ8BI62TWUELGA0ECxYLO1aTnllHDRoOBA0YDEJW%2FuhrFCkUFCkUa%2FH1cRYsFRUrF3EAAAAAAQAM%2Fy8BxwHmAB0ARgC4AABFWLgACC8buQAIAAg%2BWbgAAEVYuAASLxu5ABIACD5ZuAAARVi4ABkvG7kAGQAGPlm5AAMAAfS6AA0ACAAZERI5MDEXHgEzMjY%2FAQMzEx4BFzM%2BATcTMwMOAyMiJic3MQgUCSo1DwvDVWMLGQsECxQKV1C3DSAsOCURHAwQhgIFOy0kAef%2B8yBHIiFIIAEN%2FfIkPi0aBQVBAAAAAAEAHwAAAY8B5gAJAD0AuAAARVi4AAMvG7kAAwAIPlm4AABFWLgACC8buQAIAAQ%2BWbkABgAB9LgAANC4AAMQuQABAAH0uAAF0DAxNwEjNSEVASEVIR8BAOQBTP8AAQj%2BkCwBd0Ms%2FolDAAAA%2F%2F8AAwAAAh0DMgImAAQAAAAHAOEBDwAA%2F%2F8AAwAAAh0DMgImAAQAAAAHAOMBDwAA%2F%2F8AAwAAAh0DMgImAAQAAAAHAOUBDwAA%2F%2F8AAwAAAh0DMwImAAQAAAAHAOcBDwAA%2F%2F8AAwAAAh0DLQImAAQAAAAHAOoBDwAA%2F%2F8AAwAAAh0DawImAAQAAAAHAOwBDwAAAAIACAAAAwUCkAAFABUAfAC4AABFWLgADS8buQANABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4AAgvG7kACAAEPlm6AAIADQAMERI5ugAJAA0ADBESObgACS%2B5AAUAAfS4AAgQuQAGAAH0uAANELkADwAB9LoAFAANAAgREjm4ABQvuQASAAH0MDEBESMGDwEFFSE1IwcjASEVIRUzFSMVAZEENTY9AiD%2BjM5jWAFYAZv%2B6ujoAQIBTGtrdrtHv78CkEbOR%2B7%2F%2FwA0%2FysCGwKcAiYABgAAAAcA7gFXAAD%2F%2FwBaAAAB3gMyAiYACAAAAAcA4QEcAAD%2F%2FwBaAAAB3gMyAiYACAAAAAcA4wEcAAD%2F%2FwBaAAAB3gMyAiYACAAAAAcA5QEcAAD%2F%2FwBaAAAB3gMtAiYACAAAAAcA6gEcAAD%2F%2FwAAAAAAtgMyAiYADAAAAAcA4QCDAAD%2F%2FwBQAAABBgMyAiYADAAAAAcA4wCDAAD%2F%2F%2F%2F7AAABCwMyAiYADAAAAAcA5QCDAAD%2F%2F%2F%2F8AAABCgMtAiYADAAAAAcA6gCDAAD%2F%2FwBaAAACLQMzAiYAEQAAAAcA5wFGAAD%2F%2FwA0%2F%2FQCZQMyAiYAEgAAAAcA4QFMAAD%2F%2FwA0%2F%2FQCZQMyAiYAEgAAAAcA4wFMAAD%2F%2FwA0%2F%2FQCZQMyAiYAEgAAAAcA5QFMAAD%2F%2FwA0%2F%2FQCZQMzAiYAEgAAAAcA5wFMAAD%2F%2FwA0%2F%2FQCZQMtAiYAEgAAAAcA6gFMAAAAAwAy%2F%2BICawKuAAsAFQAwAIUAuAAARVi4ACwvG7kALAAQPlm4AABFWLgAHi8buQAeAAQ%2BWboAAAAeACwREjm5AAMAAfS6AAsALAAeERI5ugAMACwAHhESObgALBC5AA4AAfS6ABUAHgAsERI5ugAWACwAHhESOboAIQAeACwREjm6ACQAHgAsERI5ugAuACwAHhESOTAxNx4BMzI%2BAjU0Ji8BJiMiDgIVFBcBHgEVFA4CIyImJwcnNy4BNTQ%2BAjMyFzcX0BlAJixHMxwRECIzTCxIMxwiAXgfIilLZz00WSM%2FLkYgIilLZz5oRz8udBodJkdjPjBQIDI2JURiPWBEAYorc0hPf1kwISBTJFssdkhPfVcuP1EjAAIANAAAAx4CkAASABsAVQC4AABFWLgAAy8buQADABA%2BWbgAAEVYuAAOLxu5AA4ABD5ZuAADELkAGAAB9LgABdC6AAoAAwAOERI5uAAKL7kACAAB9LgADhC5ABcAAfS4AAzQMDETNDYzIRUhFTMVIxUhFSEiLgI3FBY7AREjIgY0qJkBn%2F7q6OgBIP5TS3VSK1Z6dzAwd3oBS52oRs5H7kctVXtOfokCCIQAAP%2F%2FAFf%2F9AIuAzICJgAYAAAABwDhAUIAAP%2F%2FAFf%2F9AIuAzICJgAYAAAABwDjAUIAAP%2F%2FAFf%2F9AIuAzICJgAYAAAABwDlAUIAAP%2F%2FAFf%2F9AIuAy0CJgAYAAAABwDqAUIAAP%2F%2F%2F%2F8AAAHdAzICJgAcAAAABwDjAO4AAAACACEAAAJKApAADAAbAFkAuAAARVi4ABsvG7kAGwAQPlm4AABFWLgAFi8buQAWAAQ%2BWbkAAAAB9LgAGxC5AAYAAfS6AAoAGwAWERI5uAAKL7kACQAB9LgAChC4ABjQuAAJELgAGdAwMSUyNjU0JisBFTMVIxUTMhYVFA4CKwERIzU3EQEOc3Nzc0uVlVGYnihOckqoT09Ein19hNwv%2FQJMqJ1Oe1UtAUErBAEgAAAAAAIAWgAAAhUCkAAQABkAOQC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAQLxu5ABAABD5ZuwAZAAEADgAEK7sAAgABABgABCswMRMzFTMyHgIVFA4CKwEVIzcyNjU0JisBEVpTdjZaPyMjQFk2dlO%2FVlNUVWwCkG4ULkk2NE0yGJbaQEdHNv78AP%2F%2FADr%2F9AG3AsoCJgAeAAAABwDgAQ0AAP%2F%2FADr%2F9AG3AsoCJgAeAAAABwDiAQ0AAP%2F%2FADr%2F9AG3AsoCJgAeAAAABwDkAQ0AAP%2F%2FADr%2F9AG3Aq0CJgAeAAAABwDmAQ0AAP%2F%2FADr%2F9AG3Aq4CJgAeAAAABwDpAQ0AAP%2F%2FADr%2F9AG3AtcCJgAeAAAABwDrAQ0AAAADADr%2F9ALrAfIADgBAAEcAmwC4AABFWLgAEi8buQASAAg%2BWbgAAEVYuAAYLxu5ABgACD5ZuAAARVi4ADIvG7kAMgAEPlm4AABFWLgALC8buQAsAAQ%2BWbgAMhC5AAMAAfS6ADgAMgASERI5uAA4L7kACgAB9LoAHwAYACwREjm4AB8vuAAsELkAJQAB9LgAEhC5AD0AAfS4ABgQuQBEAAH0uAAfELkARwAB9DAxNxQWMzI2Ny4BJzUOAwM%2BATMyFhc%2BATMyHgIVFAchHgMzMjY3Fw4BIyImJw4BIyImNTQ2NzQuAiMiBgcFNCYjIgYHizEkIlAhCAoBOlEzFzwiYDY2Rg8dUTItRS8YA%2F7FARkoNh8jOBseIEwyPVIcMmUvPlGOmAgXJh4oSB0CMzs4M0kHhCokJyQTNRwZCBYeJwEYFik3MDA3IDxVNBwSJj4sGBcRORQeNyQtLkhCUFURFywiFSAUZEtQU0gAAAD%2F%2FwAu%2FysBsAHyAiYAIAAAAAcA7QEQAAD%2F%2FwAu%2F%2FQBygLKAiYAIgAAAAcA4AEJAAD%2F%2FwAu%2F%2FQBygLKAiYAIgAAAAcA4gEJAAD%2F%2FwAu%2F%2FQBygLKAiYAIgAAAAcA5AEJAAD%2F%2FwAu%2F%2FQBygKuAiYAIgAAAAcA6QEJAAD%2F%2FwAMAAAAvALKAiYAZwAAAAYA4HsAAAD%2F%2FwA6AAAA6gLKAiYAZwAAAAYA4nsAAAD%2F%2F%2F%2F6AAAA%2FALKAiYAZwAAAAYA5HsAAAD%2F%2F%2F%2F0AAABAgKuAiYAZwAAAAYA6XsAAAAAAQBSAAAApAHmAAMAJQC4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAACLxu5AAIABD5ZMDETMxEjUlJSAeb%2BGgAA%2F%2F8AUgAAAdcCrQImACsAAAAHAOYBJAAA%2F%2F8ALv%2F0AfACygImACwAAAAHAOABDwAA%2F%2F8ALv%2F0AfACygImACwAAAAHAOIBDwAA%2F%2F8ALv%2F0AfACygImACwAAAAHAOQBDwAA%2F%2F8ALv%2F0AfACrQImACwAAAAHAOYBDwAA%2F%2F8ALv%2F0AfACrgImACwAAAAHAOkBDwAAAAMALv%2FpAfAB%2FQAJABMALgBJALgAAEVYuAApLxu5ACkACD5ZuAAARVi4ABwvG7kAHAAEPlm6AAAAHAApERI5uQACAAH0ugAKACkAHBESObgAKRC5AAwAAfQwMTcWMzI%2BAjU0LwEmIyIOAhUUFwEeARUUDgIjIicHJzcuATU0PgIzMhYXNxeyJzYfNScVGBslOB81JhYXASQZHSU%2BUS1PPDElNhkdJT5RLSZIHTIkXScbMUQpQy8nKBsxRSlDLgEaIFc2PF9BIjE8HUEgVTY9X0IiGRk9HQAAAAMALv%2F0AyEB8gATADwAQwBxALgAAEVYuAAZLxu5ABkACD5ZuAAARVi4ADgvG7kAOAAEPlm5AAUAAfS4ABkQuQAPAAH0uAAZELgAH9C4ADgQuAAz0LoAJgAfADMREjm4ACYvuAAzELkALAAB9LgAHxC5AEAAAfS4ACYQuQBDAAH0MDE3FB4CMzI%2BAjU0LgIjIg4CBzQ%2BAjMyFhc%2BATMyHgIVFAchHgMzMjY3Fw4BIyImJwYjIi4CJTQmIyIGB4IUJDIeHjIkFBQkMh4eMiQUVCQ8UCw4XhocWTYtRjAZA%2F7BARkpNx8jOhseIE4yOV4cOXosTzwjAqs%2BODNKB%2FIqRDEbGzFEKipFMhsbMkUqPV9CIj48OUEgPFU0HBImPiwYFxE5FB5AOXkiQV9gS1BTSAABAFL%2F9AIjAtIANwBkALgAAEVYuAADLxu5AAMAEj5ZuAAARVi4ADcvG7kANwAEPlm4AABFWLgAGS8buQAZAAQ%2BWboADQAZAAMREjm5ACAAAfS6ACMAGQADERI5ugAvABkAAxESObgAAxC5ADIAAfQwMRM0NjMyHgIVFA4CFRQeBBUUDgIjIiYnNx4BMzI2NTQuBDU0PgI1NCYjIgYVESNSZl4nPSoVHCMcHSwzLB0WKjslKkQfIRozHSoqHSwzLB0bIRwpKjY7UgIDXnEXKDUeJjUsKRoYIBkaJDYoIDYoFxoXOhYVMCAdJhwZIC0jIjAsLiAmMU1O%2FgwAAP%2F%2FAEv%2F9AHOAsoCJgAyAAAABwDgARAAAP%2F%2FAEv%2F9AHOAsoCJgAyAAAABwDiARAAAP%2F%2FAEv%2F9AHOAsoCJgAyAAAABwDkARAAAP%2F%2FAEv%2F9AHOAq4CJgAyAAAABwDpARAAAP%2F%2FAAz%2FLwHHAsoCJgA2AAAABwDiAPIAAP%2F%2FAAz%2FLwHHAq4CJgA2AAAABwDpAPIAAAACADX%2F9AHlAtoAFAA4AFkAuAAARVi4ADMvG7kAMwASPlm4AABFWLgAHS8buQAdAAQ%2BWbsAJwABAAsABCu6ADAALQADK7gAHRC5AAAAAfS4AC0QuAAV0LgAMBC4ADPcuAAwELgANtAwMSUyPgI1NCYnLgEjIg4CFRQeAhMeARUUDgIjIi4CNTQ%2BAjMyFhcuAScHJzcmJzceARc3FwEPIjIiEQEBIUIiITQkExYnMms8TB85TzEqTjwkIDdLLCZGGg43Jo0YfzQ8JiRGII4YOB00SSwOHA0sHhgsOyImPSsYAiU9qHc8Y0cnID1XNjNTOyAgIj5cJkkpQSggNBQsG0kpAAAAAAIAUv8zAfsCyAAWACcAVwC4AABFWLgACC8buQAIAAg%2BWbgAAEVYuAACLxu5AAIAEj5ZuAAARVi4AAEvG7kAAQAGPlm4AABFWLgAEi8buQASAAQ%2BWbkAGgAB9LgACBC5ACQAAfQwMRcjETMVBz4BMzIeAhUUDgIjIiYnFzUeATMyPgI1NC4CIyIGB6RSUgEgTCgwSTIZIjpMKiNCIQEhPhgeMyUVDh8xIh8%2FJM0DlcJTGiUjQVs5PmFEIxwaU5UcFxsxSC0oQi8aIiAAAAEAHgAAAlsC1AAoAHwAuAAARVi4ABIvG7kAEgAIPlm4AABFWLgAJS8buQAlABI%2BWbgAAEVYuAAOLxu5AA4ABD5ZuAAlELkAAgAB9LgAEhC4ACHQuAAG0LgAEhC5AA8AAfS4AAvQuAAH0LgADhC4AArQuAASELgAEdC4ACUQuAAW0LkAHAAB9DAxASYjIh0BMxUjESMRIxEjESM1NzU0NjMyFhcHJiMiBh0BMzU0NjMyFhcCSh0aRWdnUspSQkJLTBgvEhEeIyQoykVJFykRAoUMXk1D%2Fl0Bo%2F5dAaM%2BBUBMWAoIPg0zMD5NS1YJBwAAAAEAHv%2F0AkUC1AArAIkAuAAARVi4ABAvG7kAEAAIPlm4AABFWLgAFC8buQAUABI%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4AAMvG7kAAwAEPlm4ABAQuQANAAH0uAAJ0LgAEBC4AA%2FQuAAPL7gAFBC5ABoAAfS4ABAQuAAe0LgAItC4AAkQuAAj0LgAAxC5ACgAAfQwMSUOASMiLgI1ESMRIxEjNTc1NDYzMhYXByYjIh0BMzczFTMVIxEUFjMyNjcCRRQvFyc1IQ6uUkJCRUkXKRESGxxEsgpEhIQiKg0eDAYHCxgqPCQBDf5dAaM%2BBU1LVgkHPwxeTYiIQ%2F7yLTEIBQAAAwAg%2F%2FQCUgKcAA0AGwBJAIwAuAAARVi4ADQvG7kANAAQPlm4AABFWLgAIi8buQAiAAQ%2BWbgAAEVYuAAcLxu5ABwABD5ZugA%2FAB8AAyu4ACIQuQAFAAH0ugAIAB8APxESOboACwAiADQREjm4AAsvuAAR3LgANBC5ABkAAfS6ACwACwARERI5ugA8AAsAERESOboARgAfAD8REjkwMTcUHgIzMjY3LgEnDgETFBYXPgM1NCYjIgYBLgEnDgEjIi4CNTQ%2BAjcuATU0PgIzMhYVFA4CBx4BFz4BNzMOAQceARdwFCMvGyI%2BHTBZIyMvTREOFikfEh0hJSwBfyNMKCZdOi1JNR0VJC8ZFBcWKDgiPUQaKjUbIFcvHi8PTRQ4JyI%2BG68bLSARHBkqZDUcPQEtGzoeDx8hJRYdKzb9yQolHCIpGzBDKCE2LicRKU0kITgqGEg6IDYvKRQzXicpYDlBdjQXIAgAAAAAAgAs%2F%2FQBxQKKAAsAHQA1ALgAAEVYuAAGLxu5AAYADj5ZuAAARVi4AAAvG7kAAAAEPlm5AAwAAfS4AAYQuQAWAAH0MDEXIiY1NDYzMhYVFAYnMj4CNTQuAiMiDgIVFBb5YWxsYWBsbGAcLSESEiEtHBwuIRJFDKyhoaiooaGsQh9BZUZGZD8eHj9kRox%2FAAAAAQBPAAABtwJ%2BAAwAQwC4AABFWLgABy8buQAHAA4%2BWbgAAEVYuAAMLxu5AAwABD5ZuQABAAH0uAAHELkABAAB9LkAAgAB9LgAARC4AAnQMDE3MxEjNT4BNzMRMxUhT5J0LEEaP4T%2BmEQB1jUIFxD9xkQAAAABACQAAAHEAooAHQA9ALgAAEVYuAAPLxu5AA8ADj5ZuAAARVi4ABwvG7kAHAAEPlm5ABoAAfS4ABfQuAAA0LgADxC5AAgAAfQwMTc%2BAzU0JiMiBgcnPgEzMhYVFA4CBz4BOwEVIShIcEwoPD0oRBwvKFo%2FWWYnRV85GjgZuf5kMUh0Y1MnN0YtIC8sNWdVLVthaTsCBEcAAAEAGv%2F0Ab4CigAzAFMAuAAARVi4ABsvG7kAGwAOPlm4AABFWLgALi8buQAuAAQ%2BWbkAAwAB9LoACwAbAC4REjm4AAsvuQAMAAH0uAAbELkAFAAB9LoAJAAMAAsREjkwMTceATMyNjU0LgIjNTI%2BAjU0JiMiBgcnPgEzMh4CFRQGBxUeAxUUDgIjIi4CJ0QdTTk6ShUwTjkzRSsSOzMoQx0sJVk5KkYzHEA0HTImFSE5TCwmPzQpEIQeLj82HC8iEj8SICwZLzYkHTQjLRYpPCc6ShQEBxspNiEqRC8ZDxkgEgAAAAIAEQAAAdUCfgAJABQAVwC4AABFWLgAEi8buQASAA4%2BWbgAAEVYuAANLxu5AA0ABD5ZuwAOAAEAAAAEK7gAEhC4AATcuAAAELgACdC4AA4QuAAL0LgACRC4ABDQuAAAELgAE9AwMSU1NDY3Iw4BDwEFIxUjNSE1ATMRMwEwAwIEDBoOlQFtV07%2B4QERXFfyuRpHGhcsF9pCsLA2AZj%2BdAABABn%2F9AHBAn4AJgBHALgAAEVYuAAQLxu5ABAADj5ZuAAARVi4ACEvG7kAIQAEPlm5AAMAAfS6ABcAEAAhERI5uAAXL7gAC9y4ABAQuQASAAH0MDE3HgEzMj4CNTQmIyIGBycTIRUjBz4BMzIeAhUUDgIjIi4CJ0EcTTgdMyYWSj4hLx0sFQE%2F9xEXLh0pSDYfJDxNKiY%2FMykQgR0sFSY2IUJKFBMcATNHvQwOGDFLNDRQNx0PGB8RAAAAAAIAMP%2F0AckCigANAC4AQwC4AABFWLgAKy8buQArAA4%2BWbgAAEVYuAAhLxu5ACEABD5ZuwAZAAEACAAEK7gAIRC5AAAAAfS4ACsQuQARAAH0MDElMj4CNTQmIyIGBx4BEy4BIyIOAgc%2BATMyFhUUDgIjIi4CNTQ%2BAjMyFhcBDBgoHhE6PB5HIAhHwBQ3HiE8LhwBHlAnU2MeNEQnL1A7IihEVzA0Sxs1FCUzID9IJy1eYQHeFxscQGdMJStiYy5LNh4mTXNNYIdVJycdAAEALAAAAccCfgAPADMAuAAARVi4AAcvG7kABwAOPlm4AABFWLgAAC8buQAAAAQ%2BWbgABxC5AAUAAfS4AAnQMDEzPgM3ITUhFQ4DByOxBBgrQy%2F%2BwgGbOUcqEwRVWpaHfkJHM0iEiZldAAAAAAMAKf%2F0AcgCigAPAB0ARQBXALgAAEVYuAAsLxu5ACwADj5ZuAAARVi4AEEvG7kAQQAEPlm5AAUAAfS6AA0AQQAsERI5uAANL7gAENC4ACwQuQAWAAH0uAANELgAI9y4ABAQuAA23DAxNxQeAjMyNjU0LgInDgE3PgE1NCYjIgYVFB4CBzQ%2BAjc1LgE1ND4CMzIeAhUUDgIHFR4DFRQOAiMiLgJzFSUyHThFHDA%2FIiYztCAjOjUtOhgpNeEVISsXIzYcMEInKkIvGREZHw8VKB8THjZMLi1NNyCrGywhEj4yHywhGw4aRYUdQCMwQTgvHSkgGcQfNSshDAQZRzMlPCsYGS0%2FJRkuKCALBAwfJzIgJD4uGhovQAACACj%2F9AHAAooADQAuAEMAuAAARVi4ACEvG7kAIQAOPlm4AABFWLgAKy8buQArAAQ%2BWbsAAAABABkABCu4ACEQuQAGAAH0uAArELkAEQAB9DAxEzI2Ny4BIyIOAhUUFgceATMyPgI3DgEjIiY1ND4CMzIeAhUUDgIjIiYn6x9HIAhIPRcpHhE6ThQ3HiI8LhwBHlAoU2IeM0UmL1E7IShEVzAzTRoBNicuXmAUJTQfP0jLFxwcQWhNJixiYy5LNh4mTXNNYIdVJyYdAAABAEH%2F9AC4AHIACwAYALgAAEVYuAAJLxu5AAkABD5ZuAAD3DAxNzQ2MzIWFRQGIyImQSMZGCMjGBkjMh0jIx0bIyMAAAEAL%2F9WAMYAcgARABgAuAAARVi4AAUvG7kABQAEPlm4AAvcMDEXPgE1BiMiJjU0NjMyFhUUBgcvKjADBxgjJBkgJUY9ehM%2BKQEdHBsfNC1BYBoA%2F%2F8AQf%2F0ALgB2wInAIYAAAFpAAYAhgAA%2F%2F8AL%2F9WAMYB2wInAIYAAAFpAAYAhwAAAAIAVf%2F0AMwCngAFABEAGgC4AABFWLgADy8buQAPAAQ%2BWbkACQAB9DAxEyczBwMjBzQ2MzIWFRQGIyImaQJTAgs5HyMZGCMjGBkjAkBeXv6GlB0jIx0bIyMAAAAAAgBV%2F0gAzAHyAAUAEQAaALgAAEVYuAAPLxu5AA8ACD5ZuQAJAAH0MDEfASM3EzM3FAYjIiY1NDYzMha4AlMCCzkfIxgZIyMZGCNaXl4BepQdIyMdGyMjAAIAJv%2F0AXkCqgAbACcAKAC4AABFWLgAJS8buQAlAAQ%2BWbsAEQABAAoABCu4ACUQuQAfAAH0MDE3Jj4ENTQmIyIGByc%2BATMyFhUUDgQXBzQ2MzIWFRQGIyImoAYRHiciFzEwITsXLyBSNk5dGCMnIRIEXSIZGSMjGRkixic%2FNS4tLhsoOR8bKyQvVUshNjAvMjkjlB0jIx0bIyMAAAIAMP88AYMB8gAbACcAKAC4AABFWLgAJS8buQAlAAg%2BWbsACgABABEABCu4ACUQuQAfAAH0MDEBFg4EFRQWMzI2NxcOASMiJjU0PgQnNxQGIyImNTQ2MzIWAQkFEB4nIhcwMSE6FzAgUjZOXRgjJyASBF4jGBkjIxkYIwEgJz81Li0vGig4HhsrIzBVSyE2MC8yOSOUHSMjHRsjIwAAAAABAFABrwCoArIABQALALoAAgAEAAMrMDETJzMPASNTA1gDEDICVlxcpwAA%2F%2F8AUAGvAVgCsgAmAI4AAAAHAI4AsAAAAAEAOQGsALsCuAARAA0AuwAFAAEACwAEKzAxEw4BFTYzMhYVFAYjIiY1NDY3uyYmAwYUIR4XHiE2NAKRGTgrARoZGh0uLDxYHgAAAAABAD8BrwDBArsAEQANALsACwABAAUABCswMRM%2BATUGIyImNTQ2MzIWFRQGBz8mJQMFFSAeFx0iNzQB1Rk4LAEaGBoeLyw8Vx4AAAD%2F%2FwA5AawBawK4ACYAkAAAAAcAkACwAAD%2F%2FwA%2FAa8BcQK7ACYAkQAAAAcAkQCwAAD%2F%2FwA%2F%2F3AAwQB8AgcAkQAA%2FcEAAP%2F%2FAD%2F%2FcAFxAHwAJwCRAAD9wQAHAJEAsP3BAAAAAQAtAEIA2QG2AAYACwC6AAIABgADKzAxNzU3FwcXBy2IJHZ2JN0%2Bmx6cnhwAAAAAAQA2AEIA4gG2AAYACwC6AAIABQADKzAxNyc3FxUHJ6x2I4mJI%2FycHps%2BmxwAAAD%2F%2FwAtAEIBdwG2ACYAlgAAAAcAlgCeAAD%2F%2FwA2AEIBgAG2ACYAlwAAAAcAlwCeAAAAAQApANsBDwEaAAMADQC7AAEAAQACAAQrMDETMxUjKebmARo%2FAAAA%2F%2F8AKQDbAQ8BGgIGAJoAAAABACkA3wG3ARgAAwANALsAAQABAAIABCswMRMhFSEpAY7%2BcgEYOQAAAQApAN8C9wEYAAMADQC7AAEAAQACAAQrMDETIRUhKQLO%2FTIBGDkA%2F%2F8AQQEDALgBgQIHAIYAAAEPAAAAAQAoAI8BCAGAABMACwC6AAoAAAADKzAxNyIuAjU0PgIzMh4CFRQOApgXKB8SEh8oFxYpHxISHymPESAsGxstHxISHy0bGywgEQAAAAEADP%2BCAej%2FuQADAA0AuwAAAAEAAQAEKzAxBRUhNQHo%2FiRHNzcAAAABAFL%2FUAEJAtwADgALALoABgAAAAMrMDEXLgE1NDY3Fw4BFRQWFwfWPkZGPjM6OTk6M7Bk3oSE3WUYYNtzc9tgGAAAAAEAJv9QAN0C3AAOAAsAugAHAA0AAyswMRc%2BATU0Jic3HgEVFAYHJyY6OTk6Mz5GRj4zmGDbc3PbYBhl3YSE3mQYAAAAAQBe%2F2gBEQLEAAcAFwC7AAUAAQAGAAQruwABAAEAAgAEKzAxEzMVIxEzFSNes3V1swLEL%2F0CLwABAB%2F%2FaADRAsQABwAXALsAAAABAAUABCu7AAQAAQABAAQrMDEXESM1MxEjNZN0srJpAv4v%2FKQvAAEAIv9oARECxAAxACsAuwAAAAEAAQAEK7sAHAABAB0ABCu7ABAAAQAPAAQrugAoAA8AEBESOTAxBRUjIiY1ND4CNTQuAiM1Mj4CNTQmNTQ2OwEVIyIGFRQWFRQGBxUeARUUBhUUFjMBES07OgMDAwgTIhkZIhMICTo7LRspGwYcICAcBhspaS84TRsxLi4ZDxsWDjQOFRwOM1g3TTgvKjEuVDMxMwkECTQwM1QuMSoAAQAf%2F2gBDQLEADMAKwC7AAAAAQAxAAQruwAWAAEAEwAEK7sAIQABACIABCu6AAoAIgAhERI5MDEXMjY1NCY1NDY3NS4BNTQ2NTQmKwE1MzIeAhUUBhUUFhcVIg4CFRQeAhUUDgIrATU5KRsFGyAgGwUbKRosHiwdDgkkMhkhFAgDAwMOHSweLGkqMS5UMzA0CQQJMzEzVC4xKi8NHjMnN1gzHS8BNA4WGw8ZLi4xGyczHg0vAAAAAAEACv9gAVECxgADABgAuAAARVi4AAAvG7kAAAASPlm4AALcMDEBMwEjARU8%2FvU8Asb8mgABAFz%2FBgCWAu4AAwALALoAAQACAAMrMDETMxEjXDo6Au78GAABAA7%2FYAFUAsYAAwAYALgAAEVYuAAALxu5AAAAEj5ZuAAC3DAxEzMBIw47AQs7Asb8mgAAAgBc%2FwYAlgLuAAMABwALALoAAQAFAAMrMDETMxEjFxEjEVw6Ojo6Au7%2BNU3%2BMAHQAAAAAAEAOgGkAWgCyAAOABQAuAAARVi4AAUvG7kABQASPlkwMRM3JzcXNzMXNxcHFwcnB2I5YQ9mCTEJZw9hOCdHRwHBXiguGWxrGC4oXh1WVgAAAgAt%2F8ABxAKsAA8ARwAXALsALwABACgABCu7AEQAAQATAAQrMDElPgE1NC4CJw4BFRQeAhMuASMiBhUUHgQVFAYHHgEVFA4CIyImJzceATMyNjU0LgQ1NDY3LgE1ND4CMzIWFwFAHR8oPEcfHSAoPUdMGDYhKiUpPkc%2BKS8mDhAYKzsjNlgfMhk6KCgtKT1IPSkwJg8REyc4JjBNHcEOJiEiLCEcEhAoHyErIB0BaxQaJRobJB4eKz0uMDsWEScaHjIkFSYhLRgcKB0cJh4dKj0uLEAVECgaGi8kFSIXAAACACn%2FsAHQApAAAwAQACUAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgADi8buQAOABA%2BWTAxATMRIwMiLgI1ND4COwERAXxUVFc2XUMmJEFYNCwCkP0gATIZNVI5O1EzFv5SAAAAAwAx%2F%2FUCtwKNABMAJwBFADMAuwA6AAEAQQAEK7sALQABADQABCu4AC0QuAAj3LkABQAB9LgAQRC4ABncuQAPAAH0MDETND4CMzIeAhUUDgIjIi4CNxQeAjMyPgI1NC4CIyIOAhc0PgIzMhYXBy4BIyIGFRQWMzI2NxcOASMiLgIxNFh2QUF1WTQ0WXVBQXZYNC8sS2Q5OWRLLCxLZDk5ZEssZh8zQyQqOxgjFCkaN0NBNiAwFh4cPi0mQjIcAUNMelYuLlZ6TE17Vy8vV3tNQmtNKipNa0JBa0wpKUxrQStGMhohGCcUFUs7Qk0ZEyoYIRszSQAAAAAEABcBPwGQAskAEwAnADUAPQBXALgANC%2B4ACkvuAA0ELgAFNy5AAAAAfS4ACkQuAAe3LkACgAB9LoAMgA0ACkREjm4ADIvuQA2AAH0ugAvADYAMhESObgANBC4ADHQuAApELkAOwAB9DAxEyIuAjU0PgIzMh4CFRQOAicyPgI1NC4CIyIOAhUUHgIDMzIWFRQGBxcjJyMVIzcyNTQmKwEV0ydEMx4eM0QnJ0UzHh4zRScfNygXFyg3HyA2JxcXJzYoTCAuFBEuLiMpKUMrEhccAT8dNEgsLEg0HR00SCwsSDQdJRcqOyQjOysYGCs7IyQ7KhcBCB0kEh8GU0ZGZiIPEkMAAAIAM%2F9lAxwChgBFAFQAPwC7ADsAAQBBAAQruwAnAAEADwAEK7sASQABABYABCu7AB4AAQBQAAQruwAFAAEAMQAEK7oAIgBQAB4REjkwMTc0PgIzMh4CFRQOAiMiJicjDgEjIiY1ND4CMzIWFzM3MwcGMzI%2BAjU0LgIjIg4CFRQeAjMyNjcXBiMiLgIlFBYzMjY%2FAS4BIyIOAjNDc5dUTHlVLiU6RyIpOQUCGUAhM0UbMkcsGigOAgs3Jx5UGC8nGCNGaERDfmI7LVBtQC5SIhZVaUqAXzcBCCgeFS0aHQ4eFB4vIRHLZKR0PzBXekpCY0MiJiYdJ0hFKFNDKhcZKMh1HDVNMTxnSio3ZI5YSXJOKRkUMTMuW4ZXMCocH58XEyAyPAACACMAAAHTAooAGwAfAJsAuAAARVi4AAgvG7kACAAOPlm4AABFWLgADC8buQAMAA4%2BWbgAAEVYuAAWLxu5ABYABD5ZuAAARVi4ABovG7kAGgAEPlm7AAMAAQAAAAQruwAHAAEABAAEK7gABxC4AArQuAAHELgADtC4AAQQuAAQ0LgAAxC4ABLQuAAAELgAFNC4AAAQuAAY0LgAAxC4ABzQuAAEELgAHdAwMTcjNTM3IzUzNzMHMzczBzMVIwczFSMHIzcjByMTNyMHc1BXElVcFzUXhRg1GFFXElVcGTUYhBk22hKEEsw5lDq3t7e3OpQ5zMzMAQWUlAAAAP%2F%2FAFcBuADsAz4CBwC3AAABuAAA%2F%2F8AKAG4AUADSgIHALgAAAG4AAD%2F%2FwAjAawBPwNKAgcAuQAAAbgAAP%2F%2FACoBuAFQAz4CBwC6AAABuAAAAAIAI%2F%2F0AU0BkgALABcAKAC4AAYvuAAARVi4AAAvG7kAAAAEPlm5AAwAAfS4AAYQuQASAAH0MDEXIiY1NDYzMhYVFAYnMjY1NCYjIgYVFBa4RFFRRENSUkMmMDAmJzAwDGxkY2trY2RsM09OTk1NTk5PAAAAAQBXAAAA7AGGAAgAIgC4AAYvuAAARVi4AAgvG7kACAAEPlm4AAYQuQAAAAH0MDETIzU%2BATczESOsVSEsFDRAATQqBhMP%2FnoAAQAoAAABQAGSABoALAC4AA8vuAAARVi4ABkvG7kAGQAEPlm5ABcAAfS4AADQuAAPELkACAAB9DAxNz4DNTQmIyIGByc%2BATMyFhUUDgIHMxUhNC1GLhgoIxkqESYXQyg7RxYnNR%2Bl%2FvQlKUE2LxYmLCEYIyIqQD4cNDU4IDcAAAABACP%2F9AE%2FAZIAKgA%2BALgAFy%2B4AABFWLgAJy8buQAnAAQ%2BWboACgAJAAMruAAnELkAAwAB9LgAFxC5ABAAAfS6AB8ACQAKERI5MDE3HgEzMjY1NCYjNTI2NTQmIyIGByc%2BATMyHgIVFAYHHgEVFA4CIyImJ04SMh8gLkA5MzcnIBYoEScaPSkZLSIUJh4hMxYmMxwwShdhGx8kIiIjKSgeHCIbFCIdIw4bJxkjLw4IMScbKx8QKyEAAgAqAAABUAGGAAUAEABMALgADi%2B4AABFWLgACS8buQAJAAQ%2BWbsAAAABAAoABCu4AA4QuQACAAH0uAAAELgABdC4AAoQuAAH0LgABRC4AAzQuAAAELgAD9AwMTc1NyMPARcjFSM1IzU3MxUz3AQEMj3jOjqypEg6lkZtUWIuaGgh%2FfD%2F%2FwAlAQIBKgJUAgYAvQAA%2F%2F8AHgECAU4CVAIGAL4AAAACACUBAgEqAlQAGQAiADsAuAAAL7gAEC%2B7AAYAAQAdAAQruAAQELkACQAB9LgAABC4ABXQuAAAELkAGgAB9LoAFwAAABoREjkwMRMiJjU0NjcuASMiBgcnPgEzMhYdASMnIw4BJzI3NQ4BFRQWiC02X2gBGiMaNxQXGUUnPDcyBwQUMg0nK009HgECNCs1NwogKhUNKhAbRkDEJRIbMihVCSYcGhgAAAACAB4BAgFOAlQAEwAfABsAuAAKL7gAAC%2B5ABQAAfS4AAoQuQAaAAH0MDETIi4CNTQ%2BAjMyHgIVFA4CJzI2NTQmIyIGFRQWth83KhgYKjcfHzcqGBgqNx8qLi4qKi8vAQIXKz8oKD8rFxcrPygoPysXM0E1NkBANjVBAAAAAgApAa0BIwKtABMAHwAXALsAFAABAAAABCu7AAoAAQAaAAQrMDETIi4CNTQ%2BAjMyHgIVFA4CJzI2NTQmIyIGFRQWphktIxQUIy0ZGS0jFBQjLRkhKiohISoqAa0SIS8dHi8iEhIiLx4dLyESLi4jJS4uJSMuAAAAAgAaAGcB1wItACEANQAoALgAAEVYuAAMLxu5AAwACj5ZuwAnAAEAHgAEK7gADBC5ADEAAfQwMT8BLgE1NDY3JzcXNjMyFhc3FwceARUUBgcXBycOASMiJwc3FB4CMzI%2BAjU0LgIjIg4CGkARExMRQCxEMD8dOhdELEERFBQRQSxEFzodQC9EPBMgLBgYKyATEyArGBgsIBOUQRc6IyM7F0ItRiUTEkYtQhc7IyM6F0EtRRMTJkXiHjEkExMkMR4eMSQTEyQxAAABADT%2FkgG1AuwALQBdALgAAEVYuAAnLxu5ACcADj5ZuAAARVi4ABMvG7kAEwAEPlm4ACcQuQADAAH0ugAGABMAJxESObgAExC4ABDQuAATELkAGgAB9LoAHQAnABMREjm4ACcQuAAq0DAxAS4BIyIGFRQeBBUUBgcVIzUuASc3HgEzMjY1NC4ENTQ2NzUzFR4BFwF8HDUpLjYpPkk%2BKVNIPDBaICYgTS44Nyk%2BST4pT0I8MEMbAgwbHjQsJC4jIS9FNkhcCmVjBSsdORwnOC8oNSciLD8xQ1kLZGMFKh0AAAEANQAAAcUCigAsAFkAuAAARVi4ABUvG7kAFQAOPlm4AABFWLgAAi8buQACAAQ%2BWbkAAAAB9LoAJAAVAAIREjm4ACQvuAAK0LgAJBC5ACMAAfS4AAvQuAALL7gAFRC5ABwAAfQwMSUVITU%2BATU0JicjNTczLgE1ND4CMzIWFwcuASMiBhUUFhczFSMeARUUBgcVAcX%2BcTM3BANkQxIKERsxRCo2SxowEzAiNjkPCZ%2BSAgMgHkdHMhxfOQ4bDjQEID0gKkQwGisgLxceQTQgOyA4DhsPNUYfBAAAAAABABcAAAHaAn4AHQCEALgAAEVYuAAdLxu5AB0ADj5ZuAAARVi4AAkvG7kACQAOPlm4AABFWLgAFC8buQAUAAQ%2BWboABAAdABQREjm6ABkAHQAUERI5uAAZL7kADAAB9LgAGRC4AA3QuAAZELgAGNC4ABgvuAAQ0LgAGBC5ABUAAfS4ABHQuAAZELkAGwAB9DAxExceARczPgE%2FATMDMxUjFTMVIxUjNSM1MzUjNTMDbU4PHRAEER0PTlSkjqOjo1KioqKNowJ%2BqyFDIyNDIav%2BwC9BMJ6eMEEvAUAAAQAX%2F%2FQB6wKKADUAbQC4AABFWLgAGS8buQAZAA4%2BWbgAAEVYuAADLxu5AAMABD5ZuwAtAAEALgAEK7gALhC4AAnQuAAtELgACtC4AC0QuAAl3LgAEtC4ACUQuQAkAAH0uAAT0LgAGRC5ACAAAfS4AAMQuQAyAAH0MDElDgEjIi4CJyM1NyY0NTwBNyM1Nz4DMzIWFwcuASMiBgczFSEGFBUcARczFSMeATMyNjcB6yFUNy1NPCkJQDsBATtACSo%2FUzEtThoxFTIgQlEM%2Fv7%2BAQHa1Q1NPiU3GlEsMSFAWzsrBAkSCQgQCCwFO11BIi0hLxohYlcxBw4IChMJMFVgJCMAAAACAD3%2F3wHGAo0ABgAlADcAuwAiAAEACgAEK7sAGgABACEABCu4ACEQuAAA0LgAIhC4AAbQuAAKELgADdC4ABoQuAAX0DAxAQ4BFRQWHwEOAQcVIzUuAzU0PgI3NTMVHgEXBy4BJxE%2BATcBBjdAPjnAHUgnNC1KNR0fNkoqNCxAFygULRogNBQB3Q1YQkNYDQkaIgNnaAUlPFQ1NFI8JQZqZwIiFjQSFgL%2BqAIbEgAAAAH%2FWf%2F0APsCnAADABgAuAAARVi4AAAvG7kAAAAEPlm4AAHcMDEHATMBpwFqOP6WDAKo%2FVgAAAD%2F%2F%2F9Z%2F%2FQA%2BwKcAgYAxgAA%2F%2F8AI%2F%2F0AxYCnAAnALYAAAEKACcAxgFxAAAABwC2AckAAAAA%2F%2F8AQP%2F0Au0CnAAnALf%2F6QEKACcAxgFbAAAABwC6AZ0AAAAA%2F%2F8AQP%2F0AvkCnAAnALf%2F6QEKACcAxgFGAAAABwC4AbkAAAAA%2F%2F8AI%2F%2F0AvwCnAAnALkAAAEKACcAxgGAAAAABwC6AawAAAAAAAEAIgBoAc8CLAALAB0AuwADAAEAAAAEK7gAAxC4AAbQuAAAELgACNAwMRMjNTM1MxUzFSMVI9i2tkG2tkEBKz7Dwz7DAAAAAAEAIgErAc8BaQADAA0AuwABAAEAAgAEKzAxEyEVISIBrf5TAWk%2BAAABADIAfgG%2FAhUACwALALoABQAJAAMrMDE%2FASc3FzcXBxcHJwcym5ssm5osm5ssmpurn54tn58tnp8toKAAAAAAAwAiAGABzwIzAAsAFwAbACEAuwAPAAEAFQAEK7sABgABAAAABCu7ABkAAQAaAAQrMDETIiY1NDYzMhYVFAYDNDYzMhYVFAYjIiYnIRUh%2BRcgIBcXHx9OIBcXHx8XFyCgAa3%2BUwHIHhgXHh4XGB7%2BzhceHhcYHh7rPgAA%2F%2F8AIgDBAc8B1AImAM0AawAGAM0AlgAAAAEAIgCDAc8CFQAJABUAugABAAgAAyu6AAUACAABERI5MDETJRUPARUfARUlIgGt04aG0%2F5TAW2oR04yBDJOR6gAAAAAAQAiAIMBzwIVAAkAFQC6AAgAAQADK7oABQABAAgREjkwMQEFNT8BNS8BNQUBz%2F5T04aG0wGtASuoR04yBDJOR6gAAAACACIAAAHPAiwACwAPADgAuAAARVi4AA4vG7kADgAEPlm7AAMAAQAAAAQruAADELgABtC4AAAQuAAI0LgADhC5AAwAAfQwMRMjNTM1MxUzFSMVIwchFSHYtrZBtrZBtgGt%2FlMBMD6%2Bvj6xQT4AAAAAAQA8ARwBtQKeAAkAGgC4AABFWLgAAC8buQAAABA%2BWbkABQAB9DAxEzMTIy8BIw8BI9RJmEhBMQQyQUgCnv5%2BsIWFsAABACQBAQHNAZMAFwAnALsACAABAA8ABCu4AA8QuAAU3LkAAwAB9LgAC9C4AA8QuAAX0DAxEz4BMzIeAjMyNjcXDgEjIi4CIyIGByQbQiAeLykmFRYmES4bQiAeLykmFRYmEQE5MCoaIBodICIwKRogGh0gAAEAIgBoAc8BaQAFAA0AuwABAAEABAAEKzAxEyERIzUhIgGtQv6VAWn%2B%2F8MAAQBS%2FzgB1AHmABcAJAC4AABFWLgAES8buQARAAQ%2BWbkABQAB9LoAFAARAAUREjkwMRMzERQWMzI2NxEzESMnIw4BIyImJxcVI1JSLDAmOSNSRAcCHUUqHS4RBVIB5v7XRT0nKwFZ%2FhpMJy0RGlqR%2F%2F8AoAI9AVACygAHAOABDwAAAAD%2F%2FwDOAj0BfgLKAAcA4gEPAAAAAP%2F%2FAI4CPQGQAsoABwDkAQ8AAAAA%2F%2F8AhAJDAZoCrQAHAOYBDwAAAAD%2F%2FwCIAkwBlgKuAAcA6QEPAAAAAP%2F%2FAJQCWQGKApIABwDoAQ8AAAAA%2F%2F8AsgIeAWwC1wAHAOsBDwAAAAD%2F%2FwDA%2FysBWQADAAcA7QEVAAAAAAAB%2F5ECPQBBAsoAAwAYALgAAEVYuAADLxu5AAMADD5ZuAAB3DAxAzMXI29WWj8Cyo0AAAAAAf99AsIAMwMyAAMACwC6AAEAAwADKzAxAzMXI4NeWEUDMnAAAf%2B%2FAj0AbwLKAAMAGAC4AABFWLgAAC8buQAAAAw%2BWbgAAtwwMQMjNzMCP1pWAj2NAAAAAAH%2FzQLCAIMDMgADAAsAugACAAAAAyswMRMjNzMSRVheAsJwAAH%2FfwI9AIECygAHADcAuAAARVi4AAYvG7kABgAMPlm4AABFWLgAAy8buQADAAw%2BWbgABhC4AADcugAFAAAABhESOTAxAzMXIycjByMiRF88QwRDPALKjVtbAAAAAf94AsIAiAMyAAcAFwC6AAYAAQADK7gABhC4AAfcuAAD0DAxAzczFyMnIweIYFBgQ0MEQwLCcHBERAAAAf91AkMAiwKtABYAQQC4AABFWLgAAC8buQAAAAw%2BWbgAAEVYuAAOLxu5AA4ADD5ZuwATAAEAAwAEK7gADhC5AAgAAfS4AAMQuAAL0DAxAz4BMzIeAjMyNzMOASMiLgIjIgcjiwQoJRMgGxgMHAkuBCglEx8bGA0cCS4CQy09EBMQMy09EBMQMwAAAAAB%2F28CxwCRAzMAFwAjALoAAAARAAMrugAFAAwAAyu4AAAQuAAI0LgADBC4ABTQMDETIi4CIyIGByM%2BATMyHgIzMjY3Mw4BPBQgGxoODhYELgUsJBQgGxoODhYELgUsAscQFBAaGi89EBQQGxkuPgAAAf%2BFAlkAewKSAAMACwC4AAMvuAAB3DAxAzMVI3v29gKSOQAAAv95AkwAhwKuAAsAFwAoALgAAEVYuAAALxu5AAAADD5ZuAAG3LgAABC4AAzQuAAGELgAEtAwMQMiJjU0NjMyFhUUBjMiJjU0NjMyFhUUBlYWGxsWFRwclxUcHBUWGxsCTBwVFRwcFRUcHBUVHBwVFRwAAAAC%2F3kCywCHAy0ACwAXABsAugAGAAAAAyu4AAAQuAAM0LgABhC4ABLQMDEDIiY1NDYzMhYVFAYzIiY1NDYzMhYVFAZWFhsbFhUcHJcVHBwVFhsbAsscFRYbGxYVHBwVFhsbFhUcAAAAAAL%2FowIeAF0C1wALABcAEwC6AAwAAAADK7oABgASAAMrMDERIiY1NDYzMhYVFAYnMjY1NCYjIgYVFBYpNDQpKTQ0KRQcHBQUHBwCHjMqKjIyKiozJR4aGR4eGRoeAAAAAAL%2FowK7AF0DawALABcAEwC6AAwAAAADK7oABgASAAMrMDERIiY1NDYzMhYVFAYnMjY1NCYjIgYVFBYpNDQpKDU1KBMcHBMUHBwCuy8pKDAwKCkvJBsZFxwcFxkbAAAAAAH%2Fq%2F8rAEQAAwARABMAugACABEAAyu6AAsACgADKzAxJzMHHgEVFA4CByc%2BATU0JicTNRkYIxgoNRwIKDEhHgM1CCAfFiAWDQMpBRcUFBUIAAAAAAH%2Fq%2F8rAEQAAwARABMAugARAAIAAyu6AAoACwADKzAxJzMHHgEVFA4CByc%2BATU0JicTNRkYIxgoNRwIKDEhHgM1CCAfFiAWDQMpBRcUFBUIAAAA%2F%2F8AQwAAALUCtAIGACYAAAABAAAA8QBaAAcAcQAFAAEAAAAAAAoAAAIAAXMAAwABAAAAYgBiAGIAYgCwARYBZgGiAeACFgJ0ArAC0AMCA0oDcAPUBCQEeATABTIFhgX0BiAGZgaiBxgHdAeyB%2BgIXgjaCSoJogoEClILAgtQC4QLzAwUDEYMxg0cDXAN7A5iDqoPFg9gD7YP8hBoEMIRGBFOEVoRZhFyEX4RihGWEfoSBhISEh4SKhI2EkISThJaEmYSchJ%2BEooSlhKiEq4TOhOQE5wTqBO0E8ATzBQkFGgUdBSAFIwUmBSkFLAVZhVyFX4VihWWFaIVrhW6FcYV0hXyFf4WChYWFiIWLhY6FqYXPhe8F8gX1BfgF%2BwX%2BBgEGIYY7BlkGeYamhriGxwbaBvaHCociBzuHSQdsB4WHjgeYh5uHnoeqB7UHyIfch%2BIH5Qfuh%2FgH%2Bwf%2BCACIBAgKCBAIEwgWCBsIHQgiCCcIKYgzCDgIQIhJCFAIVwhtCIQIioiPCJWInAimCMIIzojtiQ4JMolSCVSJVwlZiVwJaolziYOJmomrCa0JrwnECdOJ4on7iheKMwpOim8KhQqMCo4KkoqXCpuKoAqpCq4KtgrFisiK0QrZiueK8Ar%2BiwQLEgsUixcLGYscCx6LIQsjiyYLLIsxCzeLPAtHi08LYItui3MLgYuOi5qLpouxC7uLu4u9gABAAAAAQzMdwyY3F8PPPUACQPoAAAAAM2XgKUAAAAAzZfjFv9A%2Fr0EiAO4AAAACQACAAAAAAAAAo0AWQAAAAAAygAAAMoAAAIgAAMCTABaAjsANAJnAFoCDwBaAe4AWgJpADQCjABaAQcAWgHgAB8CQwBaAeYAWgLXAFoChwBaApgANAJAAFoCmAA0AkUAWgIWACoCGAAcAoUAVwIDAAADEgAXAgEADwHc%2F%2F8CGwAtAgAAOgIrAFIByAAuAisALwHwAC4BJAAeAfgALQIgAFIA9gBDAPf%2F2AHvAFIA%2FwBSAz0AUgIjAFICHgAuAisAUgImAC8BWwBSAaMAHAFSABgCIABLAdMADALOABgBvgAOAdMADAGpAB8CIAADAiAAAwIgAAMCIAADAiAAAwIgAAMDNgAIAjsANAIPAFoCDwBaAg8AWgIPAFoBBwAAAQcAUAEH%2F%2FsBB%2F%2F8AocAWgKYADQCmAA0ApgANAKYADQCmAA0ApgAMgNPADQChQBXAoUAVwKFAFcChQBXAdz%2F%2FwJ%2BACECRwBaAgAAOgIAADoCAAA6AgAAOgIAADoCAAA6AxEAOgHIAC4B8AAuAfAALgHwAC4B8AAuAPYADAD2ADoA9v%2F6APb%2F9AD2AFICIwBSAh4ALgIeAC4CHgAuAh4ALgIeAC4CHgAuA0cALgJAAFICIABLAiAASwIgAEsCIABLAdMADAHTAAwCIQA1AisAUgI%2BAB4CUgAeAmEAIAHxACwB8QBPAfEAJAHxABoB8QARAfEAGQHxADAB8QAsAfEAKQHxACgA%2BQBBAPkALwD5AEEA%2BQAvASEAVQEhAFUBqQAmAakAMAD5AFABqQBQAPkAOQD5AD8BqQA5AakAPwD5AD8BqQA%2FAQ8ALQEPADYBrQAtAa0ANgE3ACkBNwApAeAAKQMgACkA%2BQBBATAAKAH0AAwBLwBSAS8AJgEvAF4BLwAfAS8AIgEvAB8BXgAKAPEAXAFeAA4A8QBcAaIAOgHxAC0CMAApAugAMQGnABcDTwAzAfEAIwFvAFcBbwAoAW8AIwFvACoBbwAjAW8AVwFvACgBbwAjAW8AKgFZACUBbQAeAVkAJQFtAB4BSwApAfEAGgHxADQB8QA1AfEAFwHxABcB8QA9AFb%2FWQBW%2F1kDOAAjAw0AQAMoAEADHAAjAfEAIgHxACIB8QAyAfEAIgHxACIB8QAiAfEAIgHxACIB8QA8AfEAJAHxACICJgBSAh4AoAIeAM4CHgCOAh4AhAIeAIgCHgCUAh4AsgIeAMAAAP%2BRAAD%2FfQAA%2F78AAP%2FNAAD%2FfwAA%2F3gAAP91AAD%2FbwAA%2F4UAAP95AAD%2FeQAA%2F6MAAP%2BjAAD%2FqwAA%2F6sAygAAAPYAQwABAAAD2P7vAAAEqv9A%2FxYEiAABAAAAAAAAAAAAAAAAAAAA8QADAccBkAAFAAACigJYAAAASwKKAlgAAAFeADIBIAAAAgsFAwMEAwICBCAAAAcAAAABAAAAAAAAAABBREJFAEAAAP7%2FAu7%2FBgAAA9gBESAAAZMAAAAAAeAClAAAACAAAwAAAAIAAAADAAAAFAADAAEAAAAUAAQB0gAAADwAIAAEABwAAAANAC8AOQBAAFoAYAB6AH4AvwDPAN8A7wD%2FATEBUwLGAtoC3CAUIBogHiAiIDogRCB0IKwiEiIV%2F%2F8AAAAAAA0AIAAwADoAQQBbAGEAewCgAMAA0ADgAPABMQFSAsYC2gLcIBMgGCAcICIgOSBEIHQgrCISIhX%2F%2FwAB%2F%2FUAAABMAAD%2FwwAA%2F70AAAAA%2F3gAAP93AAD%2FNgAA%2FhT%2BBP3%2F4IkAAAAA4H3gXeCC4EHgGN673rIAAQAAAAAAOAAAAFQAAABeAAAAZgBsAAAAqAAAAMQAAADgAAAAAAAAAAAA2gDeAAAAAAAAAAAAAAAAAAAAAAADAIoAjwCxAMEAyAB7AI4AoQCiAKsAzACHAJoAhgCnAIgAiQDRANAA0gCMALAAowCpAKQA1ACgANgApQCoAKYA1QDvAIsAxQDCAMAAwwCqAKwA3ACuALsAmADWAJsArwDdAL8A0wCzALQA2QDXAK0AngDfALIAvACZAMkAygDLAI0AVQBIAEkASgBLAEwATQDOAE4AUABRAFIAUwBUAFYAcAB3AGgAaQBqAGsAbABtAM8AbgBxAHIAcwB0AHUAeAB2AE8AbwCQAJEAlACSAJMAlQAAuAAALEu4AAlQWLEBAY5ZuAH%2FhbgARB25AAkAA19eLbgAASwgIEVpRLABYC24AAIsuAABKiEtuAADLCBGsAMlRlJYI1kgiiCKSWSKIEYgaGFksAQlRiBoYWRSWCNlilkvILAAU1hpILAAVFghsEBZG2kgsABUWCGwQGVZWTotuAAELCBGsAQlRlJYI4pZIEYgamFksAQlRiBqYWRSWCOKWS%2F9LbgABSxLILADJlBYUViwgEQbsEBEWRshISBFsMBQWLDARBshWVktuAAGLCAgRWlEsAFgICBFfWkYRLABYC24AAcsuAAGKi24AAgsSyCwAyZTWLBAG7AAWYqKILADJlNYIyGwgIqKG4ojWSCwAyZTWCMhuADAioobiiNZILADJlNYIyG4AQCKihuKI1kgsAMmU1gjIbgBQIqKG4ojWSC4AAMmU1iwAyVFuAGAUFgjIbgBgCMhG7ADJUUjISMhWRshWUQtuAAJLEtTWEVEGyEhWS0AsAArALIBAQIrAbICAgIrAbcCRDYqIRQACCu3A0A2KiEUAAgrALcBUUM0JBcACCsAsgQIByuwACBFfWkYREuwYFJYsAEbsABZsAGOAAAUAEQAUgBWAAAADP8zAAwB5gAMAgYADAI%2BAAwCfgAMApAADALIAAwAAAAHAFoAAwABBAkAAQAeAAAAAwABBAkAAgAOAB4AAwABBAkAAwBMACwAAwABBAkABAAeAAAAAwABBAkABQCCAHgAAwABBAkABgAqAPoAAwABBAkADgBIASQAUwBvAHUAcgBjAGUAIABTAGEAbgBzACAAUAByAG8AUgBlAGcAdQBsAGEAcgAxAC4AMAA1ADAAOwBBAEQAQgBFADsAUwBvAHUAcgBjAGUAUwBhAG4AcwBQAHIAbwAtAFIAZQBnAHUAbABhAHIAOwBBAEQATwBCAEUAVgBlAHIAcwBpAG8AbgAgADEALgAwADUAMAA7AFAAUwAgAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAwADAAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA3ADAAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA1ADkAMAAwAFMAbwB1AHIAYwBlAFMAYQBuAHMAUAByAG8ALQBSAGUAZwB1AGwAYQByAGgAdAB0AHAAOgAvAC8AdwB3AHcALgBhAGQAbwBiAGUALgBjAG8AbQAvAHQAeQBwAGUALwBsAGUAZwBhAGwALgBoAHQAbQBsAAAAAgAAAAAAAP%2B1ADIAAAAAAAAAAAAAAAAAAAAAAAAAAADxAAABAgEDAAMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQCtAMkAxwCuAGIAYwCQAGQAywBlAMgAygDPAMwAzQDOAGYA0wDQANEArwBnAJEAsADWANQA1QBoAOsA6QDtAGoAaQBrAG0AbABuAKAAbwBxAHAAcgBzAHUAdAB2AHcA1wB4AHoAeQB7AH0AfAChALEAiQB%2FAH4AgACBAOwAugDqAO4BBAEFAAkAEwAUABUAFgAXABgAGQAaABsAHAARAA8AHQAeAAQAowAiAKIACgAFALYAtwC0ALUAxADFAL4AvwCpAKoAEAEGALIAswDDAIcAQgALAAwAPgBAAF4AYAASAF8APwDoAA0AhgCIAIsAigAjAAYBBwEIAQkBCgELAQwBDQEOAQ8AnQCeARABEQCDAL0ABwCFAJYBEgCEALwBEwAIAPUA9AD2AA4A7wDwALgAIAAfACEAkwBBAGEApAEUAEMAjQDYANkAjgDaAN0A3gEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUETlVMTAJDUgNmX2YDZl90B3VuaTAwQUQIb25lLnN1cHMIdHdvLnN1cHMKdGhyZWUuc3Vwcwlmb3VyLnN1cHMJemVyby5kbm9tCG9uZS5kbm9tCHR3by5kbm9tCnRocmVlLmRub20JZm91ci5kbm9tBmEuc3VwcwZvLnN1cHMERXVybwd1bmkyMjE1B3VuaTAwQjUHdW5pMDMwMAt1bmkwMzAwLmNhcAd1bmkwMzAxC3VuaTAzMDEuY2FwB3VuaTAzMDILdW5pMDMwMi5jYXAHdW5pMDMwMwt1bmkwMzAzLmNhcAd1bmkwMzA0B3VuaTAzMDgLdW5pMDMwOC5jYXAHdW5pMDMwQQt1bmkwMzBBLmNhcAd1bmkwMzI3C3VuaTAzMjcuY2FwB3VuaTAwQTAFaS50cmsAAAAAAAAB%2F%2F8AAgABAAAADAAAAAAAAAACAAgABAA3AAEAPgA%2BAAEATgBPAAEAZwBnAAEAbgBvAAEAeAB4AAEAeQB6AAIA2gDaAAEAAQAAAAoAMABEAAJERkxUAA5sYXRuABoABAAAAAD%2F%2FwABAAAABAAAAAD%2F%2FwABAAEAAmtlcm4ADmtlcm4ADgAAAAEAAAABAAQAAgAAAAIACgFIAAEAJgAEAAAADgBGAGwAggCkALoAzADiAPABAgEIARIBIAEqATQAAQAOAAkAEwAZABsAMwA1AFYAcACLAI0AngCnAKkAwgAJABkABAAb%2F%2BgAM%2F%2FsADX%2F5gBlABIAZgAkAJ7%2F8gCn%2F7sArwAUAAUAG%2F%2FoADX%2F8gCe%2F%2FgAp%2F%2B1AK8AHgAIADP%2F9wA1%2F%2FEAYwAKAGUAKABmADMAnv%2F1AKf%2F0QCvADUABQAz%2F%2FAANf%2F2AJ7%2F2ACr%2F%2FYArwAIAAQAGf%2F8AKf%2F7ACr%2F%2FgArwAtAAUAGf%2F5ABv%2F9gCe%2F%2BwAq%2F%2FxAK8AJgADAKf%2FxgCp%2F9gAq%2F%2FCAAQAM%2F%2FwADUABgCp%2F%2BYAr%2F%2FdAAEAGf%2FgAAIAGf%2FGABv%2F1gADABn%2F5gAb%2F%2BYANf%2FsAAIAZgAHAPAAGQACABn%2FywAz%2F%2BwAAgB%2F%2F%2FoAgf%2F6AAIUjAAEAAAU3hYsADkALgAA%2F%2Bf%2Fq%2F%2Fj%2F%2Bf%2FtwAhAEn%2F%2BgANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fw%2F9MAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2FwAAAAAD%2FxgAAAAAAAAAAAAAAAP%2Fo%2F%2Bj%2F2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Bp%2F9j%2F2P%2BnAAAAOwAAAAAAAAAA%2F8L%2F3QAA%2F9T%2F3f%2FC%2F%2BsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9gAZAAAAAAAAAAD%2F2AAAAAAAAP%2FoAAD%2F4f%2BwABkACf%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F2P%2FxAAD%2F8gAAAAD%2F%2FP%2Fy%2F8kAAAAAAAD%2F%2BP%2F2AAD%2F9gAAAAAAAP%2Fy%2F%2Fr%2Fov%2FY%2F%2Bj%2FsAAAAAAAAAAA%2F%2FIABP%2Fm%2F8z%2Fxv%2FyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FoAAD%2F%2FP%2FyAAAAAP%2F2%2F%2FIAAAAAAAD%2F8v%2F8AAAAAAAAAAD%2F8AAA%2F%2FYAAP%2FiAAD%2F7AAAAAAAAAAAAAD%2F%2Bv%2F8AAAAAAAA%2F%2FL%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2B7%2F8v%2F8%2F%2Fn%2F7AAA%2F%2Fb%2F8gAAAAAAAP%2Fo%2F%2Fb%2F4wAAAAAAAP%2F2AAD%2F8v%2F2AAAAAP%2FMAA4AAAAAAAAAAP%2F8%2F%2FwAAAAAAAD%2F8gAA%2F%2Bb%2F8gAAAAAAAAAAAAAAAAAAAAD%2F7AAA%2F%2FwAAAAAAAAAAAAAAAAAAP%2F8AAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5AAAAAAACAAAAAAAAAAA%2F%2FIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fw%2F%2FL%2F9v%2FwAAD%2F9v%2Fw%2F%2Bz%2F7gAA%2F%2Fb%2F8gAA%2F%2BoAAAAA%2F%2FkAAAAA%2F%2Bb%2F8v%2FsAAD%2F0gAAAAAAAAAAAAD%2F9AAA%2F%2Fn%2F7P%2Fu%2F%2Bz%2F8P%2Fi%2F%2FYAAAAA%2F%2FIAAAAAAAAAAAAA%2F4j%2F4%2F%2FI%2F7T%2F%2FAAA%2F97%2F3P%2ByAAAAA%2F%2FqAAD%2F5gAA%2F%2FL%2F9AAAAAD%2F7P%2F2%2F2j%2FsP%2Bk%2F6QAAAAAAAAAAP%2B0AAD%2F4P%2Bn%2F7L%2F3AAA%2F8r%2F3gAAAAAAAAAAAAAAAAAAAAD%2F7AAA%2F%2Fr%2F7AAAAAAAAAAAAAAAAP%2F2AAD%2F7AAAAAAAAAAA%2F9gAAAAAAAD%2F3gAAAAAABv%2FyAAAAAAAA%2F%2Fb%2F7wAAAAAAAAAAAAAAAAAAAAAAAP%2F5AAAAAAAAAAAAAP%2FsAAAAAP%2Fy%2F%2FYAAAAAAAAAAAAA%2F%2Fb%2F8v%2F2AAD%2F9gAA%2F%2Fb%2F7gAAAAAAAP%2F2AAD%2F9gAOAAAAAAAAAAD%2F8v%2F2AAAAAAAAAAD%2F8v%2Fa%2F%2BIAAAAA%2F%2FL%2F8gAAAAAAAAAA%2F%2BwAAAAA%2F%2FkAAAAAAAAAAAAAAAAAAP%2FyAAAAAAAAAAAAAP%2FyAAAAAAAA%2F%2B4AAP%2F4AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F8v%2B3AAD%2F3v%2FfAAD%2Flv%2FY%2F9n%2Fyv%2Fo%2F7f%2F7v%2B%2B%2F4IAAP%2Fu%2F9IAAAAA%2F8AAFP%2BnAAAAAAAAAAD%2F7AAAAAAAAP%2Ff%2F9n%2FsP%2FR%2F9L%2Fxf%2B1%2F9gAAAAAAAAAAAAAAAAAAP%2Fy%2F%2FYAAAAAAAAAAP%2Fw%2F%2B7%2F9gAAAAD%2F%2FAAAAAD%2F0QAAAAAAAAAAAAAAAAAA%2F%2BEAAAAAAAD%2F9v%2F2AAAAAAAAAAD%2F%2BQAAAAAAAP%2F8AAAAAAAAAAAAAAAAAAAAAAAAAAD%2F8wAAAAAAAAAA%2F94AAP%2F6%2F%2Fr%2F%2Bv%2FwAAAAAP%2B%2FAAAAAAAAAAAAAAAAACf%2F4wAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Fz%2F9gAAAAD%2F9v%2FwAAAAAAAAAAD%2F8v%2F2AAAAAP%2FEAAD%2F6P%2FyAAn%2Fpf%2Fy%2F%2FD%2F5v%2Fy%2F70AAP%2FX%2F5wAAP%2Fy%2F94AAAAA%2F9IAIf%2B9AAAAAAAAAAAAAP%2F5AAAAAP%2Fy%2F97%2Fvv%2FJ%2F9j%2F1%2F%2FR%2F9P%2F5wAAAAAAAAAA%2F%2Fb%2F%2Bv%2Fy%2F%2FIAAP%2Fw%2F%2FAAAAAA%2F%2Fr%2F4v%2F2%2F%2Bz%2F8P%2Fs%2F%2Bv%2F3wAA%2F%2FL%2F6QAAAAD%2FxAAUAAAAAAAAAAD%2F%2BgAAAAAAAAAA%2F%2FAAAP%2Fe%2F94AAAAAAAAAAAAAAAAAAAAA%2F%2BgAAP%2F8%2F%2BgAAAAAAAAAAP%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8oAAAAAAAAAAAAAAAAAAP%2FwAAD%2F9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7AAAAAD%2F6P%2F2AAAABgAGAAAAAAAAAAAAAAAA%2F%2FYAAP%2FrAAAAAAAAAAAAAAAA%2F%2FIAFAAAAAAAAAAA%2F%2FIAAAAAAAAAAAAGAAj%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FmAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F5b%2F7P%2Fe%2F6QAAAAa%2F%2Br%2F7P%2BYAAAAAAAAAAAAAAAAAAD%2F%2BAAAAAD%2F5AAA%2F3YAAAAAAAAAAAAAAAAAAP%2B4AAAAAP%2Bg%2F6z%2F3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6AAA%2F%2Fb%2F5v%2F2AAAABQAF%2F%2FYAAAAA%2F%2BwAAAAA%2F%2FIAAAAA%2F%2BwAAP%2FyAAD%2F3v%2Fs%2F%2FwAAAAAAAAAAAAA%2F%2FAAAP%2F5AAAAAAAF%2F%2FkABgAAAAAAAAAEAAAAAAAAAAAAAAAuAAAALgAu%2F%2FL%2F9gAAAAAAIv%2FOAAAAAAAAAAD%2F7AAA%2F%2FYAAAAAAAD%2F8QAAAD7%2F7ABL%2F%2FIADgAAAAAANgAhABoAKAAiAA3%2F%2FP%2FyAAAAAP%2F8%2F%2FIAAAAAADEAAAAA%2F%2BYAAAAA%2F%2FIAAAAl%2F%2Fz%2F%2FAAAAAAAAAAAAAAAAP%2FwAAD%2F8gAAAAAAAAAA%2F94AAP%2F4AA4AMAAAAAAAAAAAAAD%2F3AAAAAD%2F%2FAAAAAAAAAAAAAD%2F8gAAAAAADgAAAAD%2F6gAAAAD%2F9f%2F2%2F%2FYAAAAA%2F%2BYADgAAAAAAAAAA%2F%2FYAAP%2FuAAAAAP%2Fy%2F%2FL%2F8gAA%2F%2Bb%2F%2BQAAAAAAAAAAAAAAAP%2F0AAAAAAAA%2F%2Fz%2F1P%2FmAAAAAP%2F5%2F%2FkAAAAAAAAAAP%2FoAAAAAP%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FeAAAAAAAAAAAAAAAAAAD%2F9gAA%2F%2FkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8cAAAAA%2F9IAAAAA%2F%2Fz%2F%2FP%2Fm%2F%2FYAAAAAAAAAAP%2FyAAAAAAAAAAAAAAAAAAD%2F5gAA%2F%2FkAAAAAAAAAAP%2Ft%2F%2Fz%2F9AAA%2F%2FL%2F%2FP%2FvAAYAAAAAAAD%2F%2BgAAAAAAAAAAAAAAAAAAAAAACf%2FfAAAAAAAAAAD%2Frf%2FJAAAAAAAA%2F9X%2F8v%2FfAAAAAAAAAAAAAAAAAAAAAAAAAAD%2Fy%2F97AAD%2F%2BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Fb%2F%2BgANABP%2F%2Bf%2FH%2F%2B0AAP%2F2AAD%2F5wAA%2F%2Fb%2FyQAAAAAAAAAAAA3%2F8AA%2B%2F94AAAAAAAAAAAAAAAAAAAAiABMAAP%2Fo%2F%2BwAAP%2F2%2F%2FYAAAAAAAAAAAAA%2F%2BgAAAAA%2F%2BwAAAAAAAAAAP%2F1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F88AAAAAAAAAAAAAAAAAAP%2F2AAD%2F9QAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAD%2F8gAAAAD%2F%2FP%2F2AAAAAAAAAAAADgAAAAAAAAAA%2F%2B4AAP%2F2AAAAAAAA%2F%2FoAAAAA%2F%2BwAIgAOAAAAAAAAAAAAAP%2FmAAAAAAAAAAD%2F5v%2FuAAAAAAAAAAAADgAAAAAAAP%2FsAAAAAP%2FiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FoAAAAAAAAAAAAAAAAAAD%2F8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BgAAAAA%2F%2FUAAP%2F2AAAAAAAA%2F9f%2F%2FAAAAAAAAP%2F2AAD%2F%2FP%2FiAAAAAAAA%2F%2FgAAAAAACb%2F%2BAAAAAAAAP%2F8%2F%2FIAAAAAAAAAAAAAAAAAAAAAAAD%2F7wAAAAAAAAAAAAD%2F7AAAAAD%2F%2BQAA%2F%2FYAAAAAAAD%2F3QAAAAAAAAAA%2F%2BwAAP%2F8%2F9gAAAAAAAAAAAAAAAAALf%2FyAAAAAAAA%2F%2Fz%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAP%2FoAAAAAAAAAAAAAP%2FmAAAAAP%2F8%2F%2FoAAAAA%2F%2FwAAAAAAAAAAAAAAAD%2F6QAA%2F%2FYAAAAAAAD%2F9gAAAAD%2F%2BAAZAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FwAAP%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAP%2FoAAD%2F8P%2FwAAD%2FuP%2Fb%2F%2Bz%2F4v%2F2%2F94AAP%2Fy%2F3YAAP%2F2%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fs%2F%2Bz%2F7P%2FiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6AAAAAAAAAAAAAAAAAAA%2F9kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FoAAAAAP%2F2%2F%2BIAAAAAAAAAAP%2BQ%2F87%2F9v%2ByAAD%2F1QAA%2F%2Bj%2FbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fn%2F%2BwAAP%2F2%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F2AAAAAP%2FrAAD%2F9%2F%2F3AAD%2Fv%2F%2Fy%2F%2FD%2F7f%2F2%2F%2BoAAP%2Fx%2F7f%2F%2FQAA%2F%2BIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7f%2Fr%2F%2Bz%2F9P%2Fn%2F%2B0AAAAAAAAAAP%2Fs%2F%2FYAAAAAAAAAAP%2Fy%2F%2FD%2F%2BQAAAAP%2F8gAA%2F%2B%2F%2F9v%2Fw%2F%2Fn%2F%2BwAA%2F%2FD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F%2FP%2F5AAAAAP%2Fl%2F%2FIAAAAA%2F%2FL%2F%2BQAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5wAA%2F%2Fz%2FvgAAAAAAAAAAAAAAAAAAAAD%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Bb%2F5gAAAAAAAP%2F8%2F%2FIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fy%2F%2FD%2FyAAAAAAAAAAAAAAAAP%2F8AAAAAAAA%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FD%2Fvf%2FQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F9gAAP%2Fv%2F9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fv%2F%2FkAAAAAAAAAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F0gAA%2F%2Fb%2FyQAAAAAAAAAAAAAAAAAA%2F%2BL%2F7gAAAAAAAAAA%2F%2BIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Bv%2F8gAAAAAAAAAA%2F%2BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F43%2FyQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FwAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FfAAAAAAAAAAD%2FfP%2FGAAAAAAAA%2F97%2F8P%2FfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F%2BQAAAAAAAAAAAAAAAAAAAAD%2FzwAAAAAAAAAAAAAAAP%2FsAAAAAP%2F5AAD%2F9gAAAAAAAP%2Fd%2F%2FUAAP%2F8AAD%2F7AAA%2F%2Fz%2F2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F5AAAAAAAA%2F%2BgAAAAAAAAAAAAA%2F98AAAAA%2F%2FEAAAAAAAD%2F8gAAAAAAAP%2F8AAD%2F9v%2F2AAD%2F7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FL%2F6AAAAAAAAP%2FsAAAAAAACAA0ABAAgAAAAIgAlAB0AKAAoACEAKgBiACIAZwB2AFsAeAB6AGsAhgCTAG4AlgCeAHwAoQChAIUAowCjAIYApQClAIcApwCnAIgAqQCpAIkAAQAEAKQABgAHAAgADAAmACcACQAoACkAKgAKAAsAKAAoAAwAKwAMAA0ADgAPABAALQARAC4AEgATABQAHQAVAAAAGAAZABoAHAAAAAAAGwAAABwAHAAdAB0AIgAfACAAIQAiADcAIwA4ACQAJQAGAAYABgAGAAYABgAmAAgAJgAmACYAJgApACkAKQApACgADAAMAAwADAAMAAwAJgAQABAAEAAQABIADAAsABQAFAAUABQAFAAUABgAFQAYABgAGAAYAAAAAAAAAAAAIgAcAB0AHQAdAB0AHQAdABgAMQAiACIAIgAiACQAJAAAAB0AGQAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXABcAFgAWAAEAAgA0AAQANQA1AB4ANgAeADYAAAAAADIAMwAyADMAMAAwADAAMAADAAAAAAAvAAAALwAAAC8AAAAFAAIASAAEAAQADAAGAAYADwAKAAoADwANAA0AEwASABIADwAUABQADwAWABYADQAXABcAAgAYABgAAwAZABkAHwAaABoABAAbABsAIAAcABwABQAdAB0ADgAeAB4AEAAgACIAEgAjACMAEQAkACQABgAmACYAFAAnACcABwAqACsAKAAsACwAEgAtAC0AKAAuAC4AEgAvAC8AKAAwADAAKQAxADEAFQAyADIAFgAzADMAJAA0ADQACAA1ADUAJQA2ADYACQA3ADcAKgA4AD0ADAA%2FAD8ADwBJAE8ADwBQAFMAAwBUAFQABQBVAFUAAQBXAF0AEABeAGIAEgBjAGYAFABnAGgAKABpAG8AEgBxAHQAFgB1AHYACQB5AHoAEQCGAIcACwCIAIkALACKAIoAHACLAIsAHQCMAIwAIQCNAI0AHgCOAI8AIgCQAJAAIwCRAJEACgCSAJIAIwCTAJMACgCWAJYAJwCXAJcAKwCYAJgAJwCZAJkAKwCaAJ0AJgCeAJ4AGQCiAKIALQCkAKQALQCmAKYALQCnAKcAGwCpAKkAGACrAKsAFwCvAK8AGgDwAPAAFAABAAAACgBgAJ4AAkRGTFQADmxhdG4AGgAEAAAAAP%2F%2FAAEAAAAWAANBWkUgAB5DUlQgAChUUksgADIAAP%2F%2FAAEAAQAA%2F%2F8AAgACAAUAAP%2F%2FAAIAAwAGAAD%2F%2FwACAAQABwAIbGlnYQAybGlnYQAybGlnYQAybGlnYQAybGlnYQAybG9jbAA4bG9jbAA4bG9jbAA4AAAAAQABAAAAAQAAAAIABgAaAAEAAAABAAgAAQAGAMoAAQABACYABAAAAAEACAABABoAAQAIAAIABgAMAHkAAgAjAHoAAgAxAAEAAQAj%29%20format%28%27truetype%27%29%3B%0A%7D%0A%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Source%20Sans%20Pro%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20700%3B%0Asrc%3A%20url%28data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAARAQAABAAQR0RFRgNEA3IAAG3kAAAAQEdQT1Pl%2B8B5AABuJAAAGVZHU1VC8WfWVwAAh3wAAADgT1MvMlvgllUAAGSUAAAAYGNtYXDzMPm1AABk9AAAAeZjdnQgDdkBaQAAaJwAAAAoZnBnbQZZnDcAAGbcAAABc2dhc3D%2F%2FwADAABt3AAAAAhnbHlm8iwszwAAARwAAF1UaGVhZP4ts7AAAGB0AAAANmhoZWEHuwObAABkcAAAACRobXR4wFMeHQAAYKwAAAPEbG9jYRMoKywAAF6QAAAB5G1heHADCwJCAABecAAAACBuYW1lJBs%2BoAAAaMQAAAHccG9zdGxQSG8AAGqgAAADOXByZXBFzLadAABoUAAAAEsABQBQAAACYgKUAAMABgAJAA8AFQBnALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAIvG7kAAgAEPlm6AAUAAgAAERI5ugAGAAIAABESOboABwACAAAREjm6AAgAAgAAERI5uQAKAAH0ugANAAIAABESObgAABC5ABIAAfQwMRMhESETJxEhEQcXLwEjDwETPwEjHwFQAhL97sFfAU1eCicpBCknVCogmB8rApT9bAFUuv6NAXO6%2BU1iYk0BQ187O18AAv%2F6AAACQwKMAAkAEQBUALgAAEVYuAAOLxu5AA4AED5ZuAAARVi4AAwvG7kADAAEPlm4AABFWLgAES8buQARAAQ%2BWboABQAMAA4REjm6AAsADAAOERI5uAALL7kACQAB9DAxAScuAScjDgEPARcjByMTMxMjAWEPDhoNBAwZDhCpxyiWzLHMnAEOPDFuMzRtMTxzmwKM%2FXQAAAAAAwBNAAACPAKMABUAHgAmAFsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgAFS8buQAVAAQ%2BWboAJAAAABUREjm4ACQvugAMACQAFhESObgAABC5AB0AAfS4ACQQuQAeAAH0uAAVELkAJgAB9DAxEzMyHgIVFA4CBxUeARUUDgIrARMyNjU0JisBFRMyNTQmKwEVTd8zV0ElDRoqHEZHJ0VcNfLYNjEyNEZTeTw9UwKMDyY%2BLxYsJh4HBA1KQjJILxcBhSslJSCV%2Fu1ZKyerAAAAAAEALv%2F0AjACmAAfADkAuAAARVi4AAUvG7kABQAQPlm4AABFWLgAGy8buQAbAAQ%2BWbgABRC5AAwAAfS4ABsQuQAUAAH0MDETND4CMzIWFwcuASMiDgIVFBYzMjY3Fw4BIyIuAi4yVXE%2FPWMhURkzIiI7LBlWSCg8GFEpaT0%2FcFQwAUJRf1guMyJbFxodNk4xZW8gGlkwMCtUfQAAAAIATQAAAkwCjAAMABkANQC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuQANAAH0uAAAELkAFwAB9DAxEzMyHgIVFA4CKwE3Mj4CNTQuAisBEU24S3hWLi5UdUjArypEMBsbMEQqHAKMJk96VFR8USh3FjFQOzpPLxT%2BYgAAAAABAE0AAAHvAowACwBNALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAsvG7kACwAEPlm4AAAQuQADAAH0ugAHAAAACxESObgABy%2B5AAUAAfS4AAsQuQAIAAH0MDETIRUhFTMVIxUhFSFNAZj%2B%2B97eAQ%2F%2BXgKMfIN7lnwAAAAAAQBNAAAB6AKMAAkAQwC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAJLxu5AAkABD5ZuAAAELkAAwAB9LoABwAAAAkREjm4AAcvuQAFAAH0MDETIRUhFTMVIxUjTQGb%2Fvji4pMCjHyXfP0AAAAAAQAu%2F%2FQCRAKYACMATQC4AABFWLgABS8buQAFABA%2BWbgAAEVYuAAfLxu5AB8ABD5ZuAAFELkADAAB9LgAHxC5ABQAAfS6ABsABQAfERI5uAAbL7kAGQAB9DAxEzQ%2BAjMyFhcHLgEjIg4CFRQWMzI2NzUjNTMRDgEjIi4CLjNXdUJFZSBRGDUqJj8uGVtcFCYMbO4jckVCc1YxAUJRf1guNCFbFxodNk4xZW8KCnB4%2FtQhLitUfQAAAAEATQAAAlUCjAALAEkAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACy8buQALAAQ%2BWboACQAAAAsREjm4AAkvuQADAAH0uAAAELgABNC4AAsQuAAH0DAxEzMVMzUzESMRIxEjTZPhlJThkwKM%2B%2Fv9dAEQ%2FvAAAQBNAAAA4AKMAAMAJQC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAADLxu5AAMABD5ZMDETMxEjTZOTAoz9dAAAAAEAEP%2F0AbMCjAARACsAuAAARVi4AAcvG7kABwAQPlm4AABFWLgADi8buQAOAAQ%2BWbkAAwAB9DAxNx4BMzI2NREzERQOAiMiJid0EjAZKCmTGTNPNktlIrQhIDFBAaf%2BTS9UPiQ6PAAAAQBNAAACbAKMAAwAWwC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAELxu5AAQAED5ZuAAARVi4AAwvG7kADAAEPlm4AABFWLgACC8buQAIAAQ%2BWboAAgAAAAwREjm6AAkABAAIERI5MDETMxEzEzMDEyMDBxUjTZMEwqLF6aGfTJMCjP71AQv%2B%2FP54ARNkrwAAAQBNAAAB4gKMAAUAKwC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAFLxu5AAUABD5ZuQACAAH0MDETMxEhFSFNkwEC%2FmsCjP3wfAAAAAEATQAAAq0CjAAdAG8AuAAARVi4AAAvG7kAAAAQPlm4AABFWLgABi8buQAGABA%2BWbgAAEVYuAAdLxu5AB0ABD5ZuAAARVi4AAkvG7kACQAEPlm6AAMABgAJERI5ugAQAAYACRESOboAEwAdAAYREjm6ABYAAAAdERI5MDETMxMXMzcTMxEjNTQ%2BAjcjDwEjLwEjHgMdASNNnG0nBCdqm4kEBgYDBDZkO2Q0BAMGBQSHAoz%2B23JyASX9dO8YOjs5GJf9%2FZcYOTs6GO8AAAEATQAAAkwCjAATAFsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACC8buQAIABA%2BWbgAAEVYuAATLxu5ABMABD5ZuAAARVi4AAsvG7kACwAEPlm6AAQACwAIERI5ugAOAAAAExESOTAxEzMTFzMuAT0BMxEjAycjHgEdASNNl6pABAUNjJeqQAQFDYwCjP68kDSAOub9dAFFjjZ8OucAAAACAC7%2F9AJ%2BApgAEwAfADUAuAAARVi4AAovG7kACgAQPlm4AABFWLgAAC8buQAAAAQ%2BWbkAFAAB9LgAChC5ABoAAfQwMQUiLgI1ND4CMzIeAhUUDgInMjY1NCYjIgYVFBYBVkJtTisrTm1CQm1OKytObUJDTk5DQ05ODC9YflBQfVUtLVZ9T1B%2BWC9%2Fc2Nibm5iY3MAAgBNAAACOgKMAA4AFgBDALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AA4vG7kADgAEPlm6AAwAAAAOERI5uAAML7kADwAB9LgAABC5ABUAAfQwMRMzMh4CFRQOAisBFSMTMjU0JisBFU3uNV1FKClGXDRbk%2BV4PTtSAowVMVE7OVQ2Gt0BUmgzKsUAAAACAC7%2FTgKgApgACwAqAEsAuAAARVi4ABwvG7kAHAAQPlm4AABFWLgAEi8buQASAAQ%2BWbsAJwABAA8ABCu4ABIQuQADAAH0uAAcELkACQAB9LgAEhC4ACTQMDETFBYzMjY1NCYjIgYBDgEjIiYnLgM1ND4CMzIeAhUUBgceATMyNjfFTkNDTk5DQ04B2xI7JmiPIzRVPCArTm1CQm1OK3BfF04qFSUOAUlpdHRpYm5u%2FbgJDGBNCzdWcUVQfVUtLVZ9T4SqGyIbBwUAAAACAE0AAAJTAowACAAYAFQAuAAARVi4AA4vG7kADgAQPlm4AABFWLgADC8buQAMAAQ%2BWbgAAEVYuAAJLxu5AAkABD5ZuwABAAEACgAEK7gADhC5AAgAAfS6ABcAAQAKERI5MDETMzI2NTQmKwETJyMVIxEzMh4CFRQGBxPgTDo9PTpMzn1Rk%2Bs0W0QoPzWUAWAxMDAm%2Fenr6wKMFC9OOkhdF%2F77AAEAI%2F%2F0AgoCmAAxAEkAuAAARVi4ABYvG7kAFgAQPlm4AABFWLgALi8buQAuAAQ%2BWbkAAwAB9LoACwAWAC4REjm4ABYQuQAdAAH0ugAlAC4AFhESOTAxNx4BMzI2NTQuAi8BLgM1ND4CMzIWFwcuASMiBhUUHgIfAR4BFRQOAiMiJid3I1UpLi0NGSMVVRkvJRYiPlUzOW8qSyBAJyYtDxskFVQ8RSE%2FXDpAfzK3HiYiHQ8WEQ8JJAogKzkkKEc1HiwqXRkbHxwPFREPCSIYVEUpSTchLy8AAAEAGQAAAhMCjAAHADMAuAAARVi4AAIvG7kAAgAQPlm4AABFWLgABy8buQAHAAQ%2BWbgAAhC5AAAAAfS4AAXQMDETIzUhFSMRI8yzAfqzlAIQfHz98AAAAAABAEn%2F9AJPAowAEQA8ALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAkvG7kACQAQPlm4AABFWLgADi8buQAOAAQ%2BWbkABQAB9DAxEzMRFBYzMjY1ETMRFAYjIiY1SZQ6Nzc8joN%2Bf4YCjP6TYExMYAFt%2FqKklpakAAAB%2F%2FkAAAIzAowADQBAALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAovG7kACgAQPlm4AABFWLgADS8buQANAAQ%2BWboABQAAAA0REjkwMQMzEx4BFzM%2BATcTMwMjB5xODxcPBA4YDk2WxLECjP7QNmU2NmU2ATD9dAABAA4AAAMgAowAIQB2ALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAovG7kACgAQPlm4AABFWLgAFC8buQAUABA%2BWbgAAEVYuAAhLxu5ACEABD5ZuAAARVi4ABcvG7kAFwAEPlm6AAUAAAAhERI5ugAPABQAFxESOboAHAAhAAoREjkwMRMzEx4BFzM%2BATcTMxMeARczPgE3EzMDIwMuAScjDgEHAyMOly0GDgYEChMKRn1GChMKBAcNBy2NdLlACA0FBAYNCD22Aoz%2BzzNnNDRnMwEx%2Fs8yZzU1ZjMBMf10ASgmTSQkTSb%2B2AAAAAEACwAAAiwCjAAZAFsAuAAARVi4AAEvG7kAAQAQPlm4AABFWLgACy8buQALABA%2BWbgAAEVYuAAZLxu5ABkABD5ZuAAARVi4AA8vG7kADwAEPlm6AAYAAQAZERI5ugATAA8ACxESOTAxEwMzFx4BFzM%2BAT8BMwMTIycuAScjDgEPASPAqqQ5CxYOBAsVCjSdqbSkQQwXDgQLFgs9ngFPAT17FzMfHzMXe%2F68%2FriFGjMeHjMahQAAAAAB%2F%2FgAAAIVAowADwBAALgAAEVYuAABLxu5AAEAED5ZuAAARVi4AAsvG7kACwAQPlm4AABFWLgADy8buQAPAAQ%2BWboABgABAA8REjkwMTcDMxceARczPgE%2FATMDFSO9xZ46DhkOBA4bDjuaxZPoAaSWJUUmJkUllv5c6AAAAQAkAAAB%2FAKMAAkAPQC4AABFWLgAAy8buQADABA%2BWbgAAEVYuAAILxu5AAgABD5ZuQAGAAH0uAAA0LgAAxC5AAEAAfS4AAXQMDE3ASE1IRUBIRUhJAEg%2FvsBuv7gASP%2BKFkBt3xZ%2Fkl8AAAAAgAv%2F%2FQB2QH8ABsAJQB2ALgAAEVYuAANLxu5AA0ACD5ZuAAARVi4ABcvG7kAFwAEPlm4AABFWLgAEi8buQASAAQ%2BWboAAwANABcREjm4AAMvuAANELkABgAB9LoAEwASAA0REjm4ABcQuQAfAAH0uAATELkAIgAB9LgAAxC5ACMAAfQwMTc0NjcuASMiBgcnPgEzMhYVESMnIw4BIyIuAjcUFjMyNjc1DgEvhJMCJCggQCQ0MGk7YGV4CwMgRyoiNiYVjB8aGiQUTzyKTlgPIScYFWEdJG1z%2FuQzHCMXKTYrGBcWFFcLKgAAAAACAEH%2F9AIWAr0AFgAhAIMAuAAARVi4AAAvG7kAAAASPlm4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAQLxu5ABAABD5ZuAAARVi4ABYvG7kAFgAEPlm6AAMABgAQERI5ugATABAABhESObgAExC5ABcAAfS4ABAQuQAaAAH0uAAGELkAHwAB9LgAAxC5ACEAAfQwMRMzFQc%2BATMyHgIVFA4CIyImJyMHIzceATMyNjU0IyIHQZMEHUMjLUgzGyM7SyghQx0EDHOTFCgTJjZWLCkCvaxMGh0kQV05QGRFJCAgNIwSDkVNhi0AAQAk%2F%2FQBvgH8ABwAOQC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAAYLxu5ABgABD5ZuAAFELkACwAB9LgAGBC5ABEAAfQwMTc0PgIzMhYXByYjIgYVFBYzMjY3Fw4BIyIuAiQqR14zLkoZQyMiNj4%2FMBssEjskWCk0WUIm%2BD5hQiMfGlsdTEFBTBYOXSAeI0JhAAAAAAIAJ%2F%2F0AfwCvQAWACMAgwC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAAKLxu5AAoAEj5ZuAAARVi4ABIvG7kAEgAEPlm4AABFWLgADS8buQANAAQ%2BWboACAASAAUREjm6AA4ABQASERI5uAASELkAGgAB9LgADhC5AB0AAfS4AAgQuQAeAAH0uAAFELkAIQAB9DAxNzQ%2BAjMyFhcnNTMRIycjDgEjIi4CNxQWMzI2NzUuASMiBicjOUsnKjYaBpN4CgQaRiQuSzUdly8rGCcSFCoUIzb4PWBDJBwYTKn9QzEaIyRDYD9KRBQZyxIOQwAAAAIAJP%2F0AeEB%2FAAbACIAUQC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAAXLxu5ABcABD5ZugANAAUAFxESObgADS%2B4ABcQuQARAAH0uAAFELkAHwAB9LgADRC5ACIAAfQwMTc0PgIzMh4CFRQGByEeATMyNxcOASMiLgIlNCYjIgYHJChBVC01TzUaBAL%2B1wpFMjU2MSZdLTVcRCYBQCYtIzUI%2BDxhQyQkQFczFCEJOTMhWRoeI0NgcSs2LzIAAQAYAAABdALJABgAVgC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAVLxu5ABUAEj5ZuAAARVi4AAovG7kACgAEPlm4ABUQuQACAAH0uAAGELkACQAB9LgADNC4AAYQuAAP0DAxASYjIgYdATMVIxEjESM1NzU0PgIzMhYXAVkcFxseWVmTQkITLEYyHzMRAksKISYec%2F6DAX1tBRsnRjQeDAYAAAADACL%2FLQIHAfwADgBDAE8AbQC4AABFWLgAIS8buQAhAAg%2BWbgAAEVYuAA%2FLxu5AD8ABj5ZuQADAAH0ugA2ACEAPxESObgANi%2B5AAkAAfS4ACEQuAAk0LgAJC%2B5ACUAAfS4ADYQuAAu0LgALi%2B5AEQAAfS4ACEQuQBKAAH0MDEXFBYzMjY1NCYrASImJwYHNDc1LgE1NDY3NS4BNTQ%2BAjMyFzMVIx4BFRQOAiMiJw4BFRQWOwEyFhUUDgIjIi4CEzI2NTQmIyIGFRQWmzwyMkAnJTMaIAwbeUcUGiAYGikiOUooLCG1TwcJHjVHKR0fCgghKlBcYSdIZkAsSzkg2x0nJx0dJyc%2BHB0jGhcQAwMYMDwoBA0oHxsxEQQSQywtQy0WDGsLIhQrPykUCggQDRMSO0MnQS8bDx4wAWwpKicpKCgqKQABAEEAAAIAAr0AFABYALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4AAAvG7kAAAASPlm4AABFWLgAFC8buQAUAAQ%2BWboAAwAGABQREjm4AAvQuAAGELkADwAB9LgAAxC5ABIAAfQwMRMzFQc%2BATMyFhURIxE0JiMiBgcRI0GTBxxKM1FJkx0gHCgYkwK9rFkZK2pe%2FswBITYoGRf%2BsQACADUAAADfAtIACwAPAC0AuAAARVi4AAwvG7kADAAIPlm4AABFWLgADi8buQAOAAQ%2BWboABgAAAAMrMDETIiY1NDYzMhYVFAYHMxEjiiUwMCUmLy9vk5MCOSsiIioqIiIrSf4QAAAAAAL%2Fzf88AOEC0gARAB0ANwC4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAAHLxu5AAcABj5ZugAYABIAAyu4AAcQuQAOAAH0MDETMxEUDgIjIiYnNx4BMzI2NRMiJjU0NjMyFhUUBkKTESlEMx8pDxoKEgsdF0olMDAlJTAwAfD%2BEylINiAIBmwDBCYqAjorIiIqKiIiKwABAEEAAAIeAr0ADABbALgAAEVYuAAELxu5AAQACD5ZuAAARVi4AAAvG7kAAAASPlm4AABFWLgADC8buQAMAAQ%2BWbgAAEVYuAAILxu5AAgABD5ZugACAAAADBESOboACQAAAAgREjkwMRMzETM3MwcTIycHFSNBjwSdoK67n3A%2FjwK9%2Fm7FzP7cwUd6AAEAQf%2F0ARICvQARACsAuAAARVi4AAAvG7kAAAASPlm4AABFWLgADC8buQAMAAQ%2BWbkABQAB9DAxEzMRFBYzOgE3Fw4BIyIuAjVBkxEJBQcGEgwlGSY0Hw4Cvf3XFxICbQUHGCs9JgAAAQBBAAADHQH8ACEAmAC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAALxu5AAAACD5ZuAAARVi4ACEvG7kAIQAEPlm4AABFWLgAGS8buQAZAAQ%2BWbgAAEVYuAARLxu5ABEABD5ZugACAAAAIRESOboACQAAACEREjm4AAYQuAAM0LkAFQAB9LgACRC5ABcAAfS4AAYQuQAdAAH0uAACELkAHwAB9DAxEzMXMz4BMzIWFz4BMzIWFREjETQmIyIHESMRNCYjIgcRI0F4CgQfRjE1QRMhSTJQS5MdICUwkx0gJi6TAfBAHy0rKCIxa13%2BzAEhNigw%2FrEBITYoMP6xAAAAAAEAQQAAAgAB%2FAAUAGUAuAAARVi4AAYvG7kABgAIPlm4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAAULxu5ABQABD5ZuAAARVi4AAsvG7kACwAEPlm6AAIAAAAUERI5uAAGELkADwAB9LgAAhC5ABIAAfQwMRMzFzM%2BATMyFhURIxE0JiMiBgcRI0F4CgQgTDNRSZMdIBwoGJMB8D8eLWpe%2FswBITYoGRf%2BsQAAAAACACT%2F9AIHAfwAEwAfADUAuAAARVi4AAUvG7kABQAIPlm4AABFWLgADy8buQAPAAQ%2BWbkAFwAB9LgABRC5AB0AAfQwMTc0PgIzMh4CFRQOAiMiLgI3FBYzMjY1NCYjIgYkKENYLy9XQygoQ1cvL1hDKJctLi0uLi0uLfg%2BYUIjI0JhPj5hQiMjQmE%2BQUxMQUFMTAAAAgBB%2F0gCFgH8ABYAIQCDALgAAEVYuAAJLxu5AAkACD5ZuAAARVi4AAMvG7kAAwAIPlm4AABFWLgAAi8buQACAAY%2BWbgAAEVYuAATLxu5ABMABD5ZugAFAAkAExESOboAFgATAAkREjm4ABYQuQAXAAH0uAATELkAGgAB9LgACRC5AB8AAfS4AAUQuQAhAAH0MDEXFSMRMxczPgEzMh4CFRQOAiMiJic3HgEzMjY1NCMiB9STeAoEHUknLUgyGyM7SyggPBoFFCgTJjZWKyonkQKoMRojJEJdOUBjRSQbGWQSDkVNhi0AAAIAJ%2F9IAfwB%2FAAWACMAfwC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAALLxu5AAsACD5ZuAAARVi4AA0vG7kADQAGPlm4AABFWLgAEi8buQASAAQ%2BWboACAAFABIREjm6AA8AEgAFERI5uQAaAAH0uAAPELkAHQAB9LgACBC5AB4AAfS4AAUQuQAhAAH0MDE3ND4CMzIWFzM3MxEjNTcOASMiLgI3FBYzMjY3NS4BIyIGJyM5SycpPh0EDHOTBhlCIi5LNR2XLysYJxIUKhQjNvg9YEMkHSAx%2FViXTBgfJENgP0pEFBnLEg5DAAAAAQBBAAABjwH8ABIAUgC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAALxu5AAAACD5ZuAAARVi4ABIvG7kAEgAEPlm6AAIAAAASERI5uAAGELgADdy4AAIQuQAQAAH0MDETMxczPgEzMhYXBy4BIyIGBxEjQXgKBBtMJhUbCxgOGBAcPRSTAfBXMzAFBX8EBCgz%2FuAAAAEAFf%2F0AZ8B%2FAAwAEkAuAAARVi4ABUvG7kAFQAIPlm4AABFWLgALS8buQAtAAQ%2BWbkAAwAB9LoACwAtABUREjm4ABUQuQAcAAH0ugAjABUALRESOTAxNx4BMzI2NTQuAicuAzU0PgIzMhYXBy4BIyIVFB4CFx4DFRQOAiMiJidXIj4gIR4RHSQTFy4mGBsyRis5ViBCGzQaOBAbIxMYLycYGjRMMjFnJpUaGhYUDBMQDQgJGCMvHyI6KBcnGFgUFicMEQ4NBwkXIjEiIjorGSYfAAAAAQAR%2F%2FQBbgJ0ABkARQC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAULxu5ABQABD5ZuAAGELkACQAB9LgAANC4AAYQuAAD0LgAFBC5AA0AAfQwMRMjNT8BMxUzFSMVFBYzMjY3Fw4BIyIuAjVVREwRend3Ix0MGQoXFDYkLkEpEwF9bQaEhHPHKiUGBGsGDBwyRysAAAEAPP%2F0AfgB8AAUAGUAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgACS8buQAJAAg%2BWbgAAEVYuAARLxu5ABEABD5ZuAAARVi4AAwvG7kADAAEPlm4ABEQuQAFAAH0ugANAAkADBESObgADRC5AAgAAfQwMRMzERQWMzI2NxEzESMnIw4BIyImNTyTHiAcJhaTeAsDIEkzUUkB8P7fNigaHQFI%2FhBFJitqXgAAAAABAAwAAAH%2FAfAADQBAALgAAEVYuAAALxu5AAAACD5ZuAAARVi4AAovG7kACgAIPlm4AABFWLgADS8buQANAAQ%2BWboABQAAAA0REjkwMRMzFx4BFzM%2BAT8BMwMjDJRAChMKBAkTCkGNoqoB8OolTScnTSXq%2FhAAAAABABgAAALwAfAAIQB2ALgAAEVYuAAALxu5AAAACD5ZuAAARVi4AAovG7kACgAIPlm4AABFWLgAFC8buQAUAAg%2BWbgAAEVYuAAhLxu5ACEABD5ZuAAARVi4ABcvG7kAFwAEPlm6AAUAIQAAERI5ugAPABcAFBESOboAHAAAACAREjkwMRMzFx4BFzM%2BAT8BMxceARczPgE%2FATMDIycuAScjDgEPASMYkjAGCgYEBw0JN384CQ4IBAcJBy%2BId6wtCAwHBAcLByyoAfDmJUgmJkoj5uYlSCYmSCXm%2FhDGI0YoKEYjxgABAA4AAAH0AfAAGQBbALgAAEVYuAABLxu5AAEACD5ZuAAARVi4AAsvG7kACwAIPlm4AABFWLgAGS8buQAZAAQ%2BWbgAAEVYuAAPLxu5AA8ABD5ZugAGAAsADxESOboAFAABABkREjkwMRMnMxceARczPgE%2FATMHFyMnLgEnIw4BDwEjpo%2BeLAoVCwQIEggimJCZnjAMFwwECRQJJ5gBAu5QFSsVFSsVUP%2FxUhUsFRUrFlIAAAABAAz%2FPgH9AfAAHQBGALgAAEVYuAAILxu5AAgACD5ZuAAARVi4ABIvG7kAEgAIPlm4AABFWLgAGS8buQAZAAY%2BWbkAAwAB9LoADQAIABkREjkwMRceATMyNj8BAzMXHgEXMz4BPwEzAw4DIyImJzdMBxIIJSgKB7%2BURwsSCgQIEQk8jawSJzNBLBcgDxpIAgQkHRoB49UiRiUjRyPV%2FgsvRy8YBQVwAAABACYAAAG0AfAACQA9ALgAAEVYuAADLxu5AAMACD5ZuAAARVi4AAgvG7kACAAEPlm5AAYAAfS4AADQuAADELkAAQAB9LgABdAwMTcTIzUhFQMzFSEm0LkBcNDX%2FnJPAS5zTv7RcwAA%2F%2F%2F%2F%2BgAAAkMDNgImAAQAAAAHAOEBGwAA%2F%2F%2F%2F%2BgAAAkMDNgImAAQAAAAHAOMBGwAA%2F%2F%2F%2F%2BgAAAkMDNgImAAQAAAAHAOUBGwAA%2F%2F%2F%2F%2BgAAAkMDRwImAAQAAAAHAOcBGwAA%2F%2F%2F%2F%2BgAAAkMDSAImAAQAAAAHAOoBGwAA%2F%2F%2F%2F%2BgAAAkMDfQImAAQAAAAHAOwBGwAAAAL%2F8gAAAxkCjAAGABYAfAC4AABFWLgADi8buQAOABA%2BWbgAAEVYuAANLxu5AA0ABD5ZuAAARVi4AAkvG7kACQAEPlm6AAIADgANERI5ugAKAA4ADRESObgACi%2B5AAYAAfS4AAkQuQAHAAH0uAAOELkAEAAB9LoAFQAOAAkREjm4ABUvuQATAAH0MDEBESMOAQ8BBRUhNSMHIwEhFSMVMxUjFQGCBBQnFCoCFP5psUSbATYB5%2FrT0wEHARYwXitdi3yVlQKMfIN7lgAA%2F%2F8ALv8jAjACmAImAAYAAAAHAO4BXgAA%2F%2F8ATQAAAe8DNgImAAgAAAAHAOEBIAAA%2F%2F8ATQAAAe8DNgImAAgAAAAHAOMBIAAA%2F%2F8ATQAAAe8DNgImAAgAAAAHAOUBIAAA%2F%2F8ATQAAAe8DSAImAAgAAAAHAOoBIAAA%2F%2F%2F%2F9AAAAOEDNgImAAwAAAAHAOEAlgAA%2F%2F8ASwAAATgDNgImAAwAAAAHAOMAlgAA%2F%2F%2F%2F7gAAAT4DNgImAAwAAAAHAOUAlgAA%2F%2F%2F%2F7QAAAT8DSAImAAwAAAAHAOoAlgAA%2F%2F8ATQAAAkwDRwImABEAAAAHAOcBTQAA%2F%2F8ALv%2F0An4DNgImABIAAAAHAOEBVgAA%2F%2F8ALv%2F0An4DNgImABIAAAAHAOMBVgAA%2F%2F8ALv%2F0An4DNgImABIAAAAHAOUBVgAA%2F%2F8ALv%2F0An4DRwImABIAAAAHAOcBVgAA%2F%2F8ALv%2F0An4DSAImABIAAAAHAOoBVgAAAAMAKP%2FXApQCtQAHABAAKgCFALgAAEVYuAAmLxu5ACYAED5ZuAAARVi4ABkvG7kAGQAEPlm6AAAAGQAmERI5uQACAAH0ugAHACYAGRESOboACAAmABkREjm4ACYQuQAKAAH0ugAQABkAJhESOboAEQAmABkREjm6ABsAGQAmERI5ugAeABkAJhESOboAKAAmABkREjkwMSUWMzI2NTQvASYjIgYVFBYXAR4BFRQOAiMiJwcnNy4BNTQ%2BAjMyFzcXAQgiLUNOCTAkNENOBwYBdRodK05tQl5HPkxFHSErTm1CZklCTI8cc2MtJF0ibmIcMhUBNilpQVB%2BWC8wTTpWK3JFUH1VLTVSOwAAAAACAC4AAAMyAowAFAAhAFUAuAAARVi4AAUvG7kABQAQPlm4AABFWLgAEC8buQAQAAQ%2BWbgABRC5ABwAAfS4AAfQugAMAAUAEBESObgADC%2B5AAoAAfS4ABAQuQAbAAH0uAAO0DAxEzQ%2BAjMhFSMVMxUjFSEVISIuAjcUHgI7AREjIg4CLjJZe0kBq%2FfQ0AEB%2FkNGd1gylxwzRysXFytHMxwBSVR6TyZ8g3uWfChRfFQ7UTEVAZ4UL07%2F%2FwBJ%2F%2FQCTwM2AiYAGAAAAAcA4QFMAAD%2F%2FwBJ%2F%2FQCTwM2AiYAGAAAAAcA4wFMAAD%2F%2FwBJ%2F%2FQCTwM2AiYAGAAAAAcA5QFMAAD%2F%2FwBJ%2F%2FQCTwNIAiYAGAAAAAcA6gFMAAD%2F%2F%2F%2F4AAACFQM2AiYAHAAAAAcA4wEGAAAAAgAaAAACZQKMABAAIQBZALgAAEVYuAAhLxu5ACEAED5ZuAAARVi4ABwvG7kAHAAEPlm5AAAAAfS4ACEQuQAKAAH0ugAOACEAHBESObgADi%2B5AA0AAfS4AA4QuAAe0LgADRC4AB%2FQMDElMj4CNTQuAisBFTMVIxUTMh4CFRQOAisBESM1NxEBFSpEMBsbMEQqHH19JUt4Vi4uVHVIwExMdxYxUDs6Ty8UoUe2AhUmT3pUVHxRKAEtQgUBGAACAE0AAAI6AowAEAAYADkAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgAEC8buQAQAAQ%2BWbsAGAABAA4ABCu7AAIAAQAXAAQrMDETMxUzMh4CFRQOAisBFSM3MjU0JisBFU2TWzVdRSgpRlw0W5PleD07UgKMYxUxUDs6UzYae%2FBoMynEAP%2F%2FAC%2F%2F9AHZAtQCJgAeAAAABwDgARkAAP%2F%2FAC%2F%2F9AHZAtQCJgAeAAAABwDiARkAAP%2F%2FAC%2F%2F9AHZAtQCJgAeAAAABwDkARkAAP%2F%2FAC%2F%2F9AHZAsYCJgAeAAAABwDmARkAAP%2F%2FAC%2F%2F9AHZAsYCJgAeAAAABwDpARkAAP%2F%2FAC%2F%2F9AHZAvACJgAeAAAABwDrARkAAAADAC%2F%2F9ALtAfwACwA8AEMAmwC4AABFWLgADy8buQAPAAg%2BWbgAAEVYuAAVLxu5ABUACD5ZuAAARVi4AC4vG7kALgAEPlm4AABFWLgAKC8buQAoAAQ%2BWbgALhC5AAMAAfS6ADYALgAPERI5uAA2L7kACQAB9LoAHQAVACgREjm4AB0vuAAoELkAIQAB9LgADxC5ADkAAfS4ABUQuQBAAAH0uAAdELkAQwAB9DAxNxQWMzI2NyYvAQ4BAz4BMzIWFz4BMzIeAhUUBgchHgEzMjY3Fw4BIyImJw4BIyIuAjU0NjcuASMiBgcFNCYjIgYHux8aGi8UCwMBST57MGU2LkYWIEYtMUoxGQQC%2FuIIQi0cMhsyJl0sOFMgNVgyIjYmFYKSAiEqHkAkAfwkKSMxBpUYFxYUHyMVCyoBCR0kKCMkJyVBWDMUIQk0MhQQXxoeKiMqIxcpNh9PWQ8gJxgVMy04MTQA%2F%2F8AJP8jAb4B%2FAImACAAAAAHAO0BGgAA%2F%2F8AJP%2F0AeEC1AImACIAAAAHAOABDgAA%2F%2F8AJP%2F0AeEC1AImACIAAAAHAOIBDgAA%2F%2F8AJP%2F0AeEC1AImACIAAAAHAOQBDgAA%2F%2F8AJP%2F0AeECxgImACIAAAAHAOkBDgAA%2F%2F%2F%2F9QAAANwC1AImAGcAAAAHAOAAigAA%2F%2F8AOAAAAR8C1AImAGcAAAAHAOIAigAA%2F%2F%2F%2F8AAAASQC1AImAGcAAAAHAOQAigAA%2F%2F%2F%2F4QAAATMCxgImAGcAAAAHAOkAigAAAAEAQQAAANQB8AADACUAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgAAi8buQACAAQ%2BWTAxEzMRI0GTkwHw%2FhAAAP%2F%2FAEEAAAIAAsYCJgArAAAABwDmATQAAP%2F%2FACT%2F9AIHAtQCJgAsAAAABwDgARUAAP%2F%2FACT%2F9AIHAtQCJgAsAAAABwDiARUAAP%2F%2FACT%2F9AIHAtQCJgAsAAAABwDkARUAAP%2F%2FACT%2F9AIHAsYCJgAsAAAABwDmARUAAP%2F%2FACT%2F9AIHAsYCJgAsAAAABwDpARUAAAADACT%2F5wIHAgsABwAPACoASQC4AABFWLgAJS8buQAlAAg%2BWbgAAEVYuAAYLxu5ABgABD5ZugAAABgAJRESObkAAgAB9LoACAAlABgREjm4ACUQuQAKAAH0MDE3FjMyNjU0LwEmIyIGFRQXJR4BFRQOAiMiJwcnNy4BNTQ%2BAjMyFhc3F9wXIy02ByQWIi42BwEVGh8oQ1cvSjwrNy8aHyhDWC8jRB0sN3oUSz8pG0MTSz8oG%2BkhVzY%2BYUIjKDUqOiBXNj5hQiMUEzYrAAADACT%2F9AMSAfwACwA0ADsAcQC4AABFWLgAES8buQARAAg%2BWbgAAEVYuAAwLxu5ADAABD5ZuQADAAH0uAARELkACQAB9LgAERC4ABfQuAAwELgAKtC6AB8AFwAqERI5uAAfL7gAKhC5ACMAAfS4ABcQuQA4AAH0uAAfELkAOwAB9DAxNxQWMzI2NTQmIyIGBzQ%2BAjMyFhc%2BATMyHgIVFAYHIR4BMzI2NxcOASMiJicOASMiLgIlNCYjIgYHuSwpKS4uKSkslSZAVS81Tx0eUi0xSjIZBAL%2B4QhCLRwyGzMmXiwtVB8fTzcwVD8kAnAkKSMxBvhBTExBQUxMQT5hQiMuKSotJUFYMxQhCTQyFBBfGh4tKissI0JhbS04MTQAAAABAEH%2F9AJdAscAOABkALgAAEVYuAAFLxu5AAUAEj5ZuAAARVi4ADgvG7kAOAAEPlm4AABFWLgAGy8buQAbAAQ%2BWboADwAbAAUREjm5ACEAAfS6ACQAGwAFERI5ugAwABsABRESObgABRC5ADMAAfQwMRM0PgIzMh4CFRQOAhUUHgQVFA4CIyImJzcWMzI2NTQuBDU0PgI1NCYjIgYVESNBHTpaPDNNMxoYHhgaJy4nGhcvRS0tRiQzMS4aHRonLicaFhsWIR8uLpEB5zBSPCIcLzwgJDEnIRMRFxYaJTUmIjwsGhgVZCQbFRMbFxkhLSEdKiYpGx0nQzr%2BKv%2F%2FADz%2F9AH4AtQCJgAyAAAABwDgAR0AAP%2F%2FADz%2F9AH4AtQCJgAyAAAABwDiAR0AAP%2F%2FADz%2F9AH4AtQCJgAyAAAABwDkAR0AAP%2F%2FADz%2F9AH4AsYCJgAyAAAABwDpAR0AAP%2F%2FAAz%2FPgH9AtQCJgA2AAAABwDiAQoAAP%2F%2FAAz%2FPgH9AsYCJgA2AAAABwDpAQoAAAACACr%2F9AH%2BAuQADgAyAFkAuAAARVi4AC0vG7kALQASPlm4AABFWLgAFy8buQAXAAQ%2BWbsAIQABAAkABCu6ACkAJgADK7gAFxC5AAAAAfS4ACYQuAAP0LgAKRC4AC3cuAApELgAMNAwMSUyNjU8AScuASMiBhUUFhMeARUUDgIjIi4CNTQ%2BAjMyFhcmJwcnNy4BJzceARc3FwEWKjUBFzAaLDc9ijtMIT1YNy9TQCUiOUknHTgVGjuOJnQULRlAI0YhjyZrSU4MFgsZEjo8Oz4B7jyjcDxmSioiPlk3NlQ6HxMXTThHQToOGg1ZEioZSEEAAAAAAgBB%2F0gCFgK9ABYAIQBXALgAAEVYuAAILxu5AAgACD5ZuAAARVi4AAIvG7kAAgASPlm4AABFWLgAAS8buQABAAY%2BWbgAAEVYuAASLxu5ABIABD5ZuQAaAAH0uAAIELkAHwAB9DAxFyMRMxUHPgEzMh4CFRQOAiMiJicXNR4BMzI2NTQjIgfUk5MEGkAiL0s0HCM7SygkNxoEFCgTJjZWKyq4A3WsRhcaJEJdOUBjRSQYF0qzEg5FTYYtAAABABgAAAKvAskALgB8ALgAAEVYuAATLxu5ABMACD5ZuAAARVi4ACsvG7kAKwASPlm4AABFWLgADy8buQAPAAQ%2BWbgAKxC5AAIAAfS4ABMQuAAl0LgAB9C4ABMQuQAQAAH0uAAM0LgACNC4AA8QuAAL0LgAExC4ABLQuAArELgAGdC5ACAAAfQwMQEmIyIGHQEzFSMRIxEjESMRIzU3NTQ%2BAjMyFhcHLgEjIgYdATM1ND4CMzIWFwKVHBcbHllZk6mTQkIVLUczIDYRGwwaFBohqRMsRTIgMhECSwohJh5z%2FoMBff6DAX1tBRcmRDIdCwdtBQYhIxcaJ0Y0HgwGAAAAAQAY%2F%2FQCnwLJAC4AiQC4AABFWLgAEC8buQAQAAg%2BWbgAAEVYuAAWLxu5ABYAEj5ZuAAARVi4AAwvG7kADAAEPlm4AABFWLgAAy8buQADAAQ%2BWbgAEBC5AA0AAfS4AAnQuAAQELgAD9C4AA8vuAAWELkAHAAB9LgAEBC4ACHQuAAl0LgACRC4ACbQuAADELkAKwAB9DAxJQ4BIyIuAj0BIxEjESM1NzU0PgIzMhYXByYjIgYdATM3MxUzFSMVFBYzMjY3Ap8UNiQuQSkTmZNCQhMsRjIfMxEbHBcbHqERend3Ix0MGQoGBgwcMkcryf6DAX1tBRsnRjQeDAZsCiEmHoSEc8cqJQYEAAAAAAMAGf%2F0AokCmAAKABYARACMALgAAEVYuAAvLxu5AC8AED5ZuAAARVi4AB0vG7kAHQAEPlm4AABFWLgAFy8buQAXAAQ%2BWboAOgAaAAMruAAdELkAAwAB9LoABQAaADoREjm6AAgAHQAvERI5uAAIL7gADty4AC8QuQAUAAH0ugAnAAgADhESOboANwAIAA4REjm6AEEAGgA6ERI5MDE3FBYzMjcuAScOARMUFhc%2BATU0JiMiBgEuAScOASMiLgI1ND4CNy4BNTQ%2BAjMyFhUUDgIHHgEXPgE3Mw4BBx4BF6Q1LCgrJkUdFBg9CwojMBYXGSIBhSlUKiplPjVRNxwTISsYExUZLkEpSlYXJzEZHEMkGSYMhhI1Jh85GbclLhofRCQRJgEgEigUFS4hFxwn%2FeQIIhgfIx4zQyYiNywkDyNFHyM%2BLxtQRCA1LSYRID0aIE4uPG0zEBUEAAAAAAIAJf%2F0AesChwATACcANQC4AABFWLgACi8buQAKAA4%2BWbgAAEVYuAAALxu5AAAABD5ZuQAUAAH0uAAKELkAHgAB9DAxBSIuAjU0PgIzMh4CFRQOAicyPgI1NC4CIyIOAhUUHgIBCDNUOyEhO1QzM1Q7ISE7VDMTIBgNDRggExIgGA4OGCAMK1R8UVF6UykpU3pRUXxUK3ITMlRBQVMvEhIvU0FBVDITAAEARgAAAdoCewAMAEMAuAAARVi4AAcvG7kABwAOPlm4AABFWLgADC8buQAMAAQ%2BWbkAAQAB9LgABxC5AAQAAfS5AAIAAfS4AAEQuAAJ0DAxNzMRIzU%2BATczETMVIUaKdzRIImx3%2Fmx3AW9bChwU%2Ffx3AAAAAQAeAAAB5AKHAB8APQC4AABFWLgADy8buQAPAA4%2BWbgAAEVYuAAeLxu5AB4ABD5ZuQAcAAH0uAAZ0LgAANC4AA8QuQAIAAH0MDE3PgM1NCYjIgYHJz4BMzIeAhUUDgIHPgE7ARUhJT1lSSkwKiM2GFAvYkQvTTgeIjlJJxg7F4D%2BQVQ5Y1dLIi8xJxpPMjMdNUouKFNTUygDBXwAAQAW%2F%2FQB3wKHAC8AUwC4AABFWLgAGy8buQAbAA4%2BWbgAAEVYuAAsLxu5ACwABD5ZuQADAAH0ugALABsALBESObgACy%2B5AAwAAfS4ABsQuQAUAAH0ugAkAAwACxESOTAxNx4BMzI2NTQuAiM1Mj4CNTQmIyIGByc%2BATMyHgIVFAYHFR4BFRQOAiMiJidaHUUpLzgPJkI0KzkjDygmIjceSixhOzFROSA3MzdHJkBWME5sI6scJCckFSIXDWgMFx8TISUeGlomKxctQCoyRRYEEE0%2BLEUvGTEpAAAAAAIAEwAAAfgCewAJABQAVwC4AABFWLgAEi8buQASAA4%2BWbgAAEVYuAANLxu5AA0ABD5ZuwAOAAEAAAAEK7gAEhC4AATcuAAAELgACdC4AA4QuAAL0LgACRC4ABDQuAAAELgAE9AwMQE1NDY3Iw4BDwEFIxUjNSE1EzMRMwEmBAIEDBoOVAFYSYn%2B7ei0SQEIZx9RHho2G4pwmJhlAX7%2BjQABABf%2F9AHgAnsAJABHALgAAEVYuAAQLxu5ABAADj5ZuAAARVi4ACEvG7kAIQAEPlm5AAMAAfS6ABcAEAAhERI5uAAXL7gACdy4ABAQuQASAAH0MDE3HgEzMjY1NCYjIg4CBycTIRUjBz4BMzIeAhUUDgIjIiYnWR1DKTE6Ny0OFhUXDkISAWjpCxIhFClJOCAmQFUuTmwmqholMjEwMgMIDAkqAUF8dwgHGDBKMzVSOR4zJgACACn%2F9AHsAocADQAyAEMAuAAARVi4AC8vG7kALwAOPlm4AABFWLgAJS8buQAlAAQ%2BWbsAGwABAAYABCu4ACUQuQAAAAH0uAAvELkAEQAB9DAxJTI2NTQmIyIGBx4DEy4BIyIOAgc%2BAzMyHgIVFA4CIyIuAjU0PgIzMhYXARYhLy8kGDIWBRQaH5ERNhwaLiMWAgwgIiIPKUUzHCI5TSsuV0MoK0ddMj9cHmIxNjMpHCMmMh8NAYESGxQvTDcQGREJGDBKMjJOOB0kTHdUWYJUKS0fAAEALAAAAeYCewAPADMAuAAARVi4AAcvG7kABwAOPlm4AABFWLgAAC8buQAAAAQ%2BWbgABxC5AAUAAfS4AAnQMDEzPgM3ITUhFQ4DByOfBBUnPS3%2B4wG6N0MlEASUT4V5dD58WkN1fY9dAAAAAAMAKv%2F0AegChwANABgAOgBXALgAAEVYuAAlLxu5ACUADj5ZuAAARVi4ADYvG7kANgAEPlm5AAMAAfS6AAsANgAlERI5uAALL7gADtC4ACUQuQATAAH0uAALELgAHNy4AA4QuAAt3DAxNxQWMzI2NTQuAicOATc2NTQmIyIGFRQWBzQ2NzUuATU0PgIzMh4CFRQGBxUeARUUDgIjIi4CqDooJTATJDEeFRyHJykkHSo81D8tJTAeNkssK0gyHDIhLkAgO1MzMFE7IbMqLycoFR4ZFg0UNKItMCUtJCUnLOM6ShgEHEczKEEuGBktQScuRxYEGU4%2FJkAvGxkuQAAAAAACACL%2F9AHmAocACwAwAEMAuAAARVi4ACMvG7kAIwAOPlm4AABFWLgALS8buQAtAAQ%2BWbsAAAABABkABCu4ACMQuQAGAAH0uAAtELkADwAB9DAxEzI2Ny4BIyIGFRQWBx4BMzI%2BAjcOAyMiLgI1ND4CMzIeAhUUDgIjIiYn%2FBgyFQo3IiAwMF8QNhwbLiMVAgwgIiIPKUUyHSI5TSsuV0MpK0ddMj9dHgFWHCNLOTE2Mym%2BEhsUL0s4EBkRCRgwSjIxTzgdJEx3VFmCVCkuHgAAAQA9%2F%2FQA7wCtAAsAGAC4AABFWLgACS8buQAJAAQ%2BWbgAA9wwMTc0NjMyFhUUBiMiJj0zJiYzMyYmM1AoNTUoJzU1AAABAC7%2FPgEAAK0AEAAYALgAAEVYuAAELxu5AAQABD5ZuAAK3DAxFz4BNSMiJjU0NjMyFhUUBgcuNzoIIzY2JjI0XFh0FEAmKygmLklCU3ca%2F%2F8APf%2F0AO8B8QInAIYAAAFEAAYAhgAA%2F%2F8ALv8%2BAQAB8QInAIYAAAFEAAYAhwAAAAIAUf%2F0AQMCngAFABEAGgC4AABFWLgADy8buQAPAAQ%2BWbkACQAB9DAxEyczBwMjBzQ2MzIWFRQGIyImZQWUBRVgKTMmJjMzJiYzAhmFhf7Olyg1NSgnNTUAAAAAAgBR%2F1IBAwH8AAUAEQANALgADy%2B5AAkAAfQwMR8BIzcTMzcUBiMiJjU0NjMyFu8FlAUVYCkzJiYzMyYmMymFhQEylyg1NSgnNTUAAAIAKf%2F0AaUCqgAdACkAKAC4AABFWLgAJy8buQAnAAQ%2BWbsAEQABAAoABCu4ACcQuQAhAAH0MDE3Jj4ENTQmIyIGByc%2BATMyHgIVFA4EFwc0NjMyFhUUBiMiJpoFDxwjIBUlHhwrFFEiXDgqSTUeFiElHxIDmTImJjMzJiYy5yI4MCglIxMfIBoUSikyFCpBLB8xKicqLx6XKDU1KCc1NQACACr%2FRgGmAfwAHQApABsAuAAnL7sACgABABEABCu4ACcQuQAhAAH0MDEBFg4EFRQWMzI2NxcOASMiLgI1ND4EJzcUBiMiJjU0NjMyFgE1BQ8cIyAVJh0cKxRRIlw4Kkk1HhYhJR8TA5kzJiYzMyYmMwEJIjgwKCUjEx8gGhRKKTIUKkEtHzEqJykvHpcoNTUoJzU1AAAAAAEATAFiAOACrgAFAAsAugACAAQAAyswMRMnMw8BI1EFlAUdUAIphYXHAAD%2F%2FwBMAWIBzAKuACYAjgAAAAcAjgDsAAAAAQA3AVIA5QKrABEAKwC4AABFWLgAAy8buQADAAg%2BWbgAAEVYuAAFLxu5AAUACD5ZuQALAAH0MDETDgEVNjMyFhUUBiMiJjU0NjflLS0DByAtLCEvL0ZIAmsXOy0BJyImLEU%2BR2wjAAABAEcBYAD2ArkAEQANALsACwABAAUABCswMRM%2BATUGIyImNTQ2MzIWFRQGB0ctLQMGIC0rIi4wR0gBoBc7LQEnIiYsRD9HbCMAAAD%2F%2FwA3AVIB0QKrACYAkAAAAAcAkADsAAD%2F%2FwBHAWAB4gK5ACYAkQAAAAcAkQDsAAD%2F%2FwBH%2F1gA9gCxAgcAkQAA%2FfgAAP%2F%2FAEf%2FWAHiALEAJwCRAAD9%2BAAHAJEA7P34AAAAAQAxADgA7gHAAAYACwC6AAIABgADKzAxNzU3FwcXBzGGN29vN8hokCyYmCwAAAAAAQA2ADgA8wHAAAYACwC6AAIABQADKzAxNyc3FxUHJ6VvN4aGN%2FyYLJBokCwAAAD%2F%2FwAxADgBqgHAACYAlgAAAAcAlgC8AAD%2F%2FwA2ADgBrwHAACYAlwAAAAcAlwC8AAAAAQArAMkBIQExAAMADQC7AAEAAQACAAQrMDETMxUjK%2Fb2ATFoAAAA%2F%2F8AKwDJASEBMQIGAJoAAAABACsAzgG1ASwAAwANALsAAQABAAIABCswMRMhFSErAYr%2BdgEsXgAAAQArAM4C9QEsAAMADQC7AAEAAQACAAQrMDETIRUhKwLK%2FTYBLF4A%2F%2F8APQDkAO8BnQIHAIYAAADwAAAAAQAoAHsBMQGRABMACwC6AAoAAAADKzAxNyIuAjU0PgIzMh4CFRQOAqwcMCQUFCQwHBwxJBQUJDF7FSYyHh4zJRUVJTMeHjImFQAAAAEADP90Aej%2FxwADAA0AuwAAAAEAAQAEKzAxBRUhNQHo%2FiQ5U1MAAAABAEj%2FTQEoAt8ADgALALoABgAAAAMrMDEXLgE1NDY3Fw4BFRQWFwfMP0VFP1w3MjI3XLNn3oSE3mcmYtZra9ZiJgAAAAEAMP9NARAC3wAOAAsAugAHAA0AAyswMRc%2BATU0Jic3HgEVFAYHJzA4MjI4XD9FRT9cjWLWa2vWYiZn3oSE3mcmAAAAAQBX%2F2gBKgLEAAcAFwC7AAUAAQAGAAQruwABAAEAAgAEKzAxEzMVIxEzFSNX02Vl0wLETv1ATgABAC7%2FaAEBAsQABwAXALsAAAABAAYABCu7AAMAAQACAAQrMDEXESM1MxEjNZRm09NKAsBO%2FKROAAEAH%2F9oASoCxAAzACsAuwAAAAEAAQAEK7sAHgABAB8ABCu7ABAAAQAPAAQrugAqAA8AEBESOTAxBRUjIiY1ND4CNTQuAic1PgM1NC4CNTQ2OwEVIyIGFRQWFRQGBxUeARUUBhUUFjMBKj9CPgMEAwkUIRgYIRQJAwQDPkI%2FEx8WBCQmJiQEFh9KTj1RGyonJxgNGhUNAVYBDRUaDRgnJyobUT1OHSkpTC45MwkECTM5LkwpKR0AAAABAC7%2FaAE5AsQAMwArALsAAAABADIABCu7ABUAAQAUAAQruwAjAAEAJAAEK7oACgAkACMREjkwMRcyNjU0JjU0Njc1LgE1NDY1NCYrATUzMhYVFA4CFRQeAhcVDgMVFB4CFRQGKwE1QR8WBCQmJiQEFh8TP0I%2BAwQDCRQhGBghFAkDBAM%2BQj9KHSkpTC45MwkECTM5LkwpKR1OPVEbKicnGA0aFQ0BVgENFRoNGCcnKhtRPU4AAAAAAQAN%2F2ABNgLGAAMAGAC4AABFWLgAAC8buQAAABI%2BWbgAAtwwMRMzAyPWYMlgAsb8mgAAAAEAVv8GALYC7gADAAsAugABAAIAAyswMRMzESNWYGAC7vwYAAEAHP9gAUYCxgADABgAuAAARVi4AAAvG7kAAAASPlm4AALcMDETMxMjHGDKYALG%2FJoAAAACAFb%2FBgC2Au4AAwAHAAsAugABAAUAAyswMRMzESMXESMRVmBgYGAC7v5KbP46AcYAAAAAAQAmAV0BowLIAA4AFAC4AABFWLgABS8buQAFABI%2BWTAxEzcnNxc3Mxc3FwcXBycHVztsF3QNTQ1zGGw7PVBRAYloMUgYdncZSDFoLFlZAAACACX%2FrAHrArIADQBBACgAuAAARVi4ACgvG7kAKAAEPlm7ACsAAQAlAAQruwA%2BAAEAEQAEKzAxExQeAhc2NTQuAicGNy4BIyIVFB4EFRQGBx4BFRQOAiMiJic3FjMyNjU0LgQ1NDY3LgE1NDYzMhYXoSAyPR0iIDE9HSPaFzgaNig8RzwoKycLDBkwSC83aSJVMTwfHSc6RTonKyUOD11VOlsfAVEYIRsZDxUmGCEbGA8XoRQcJxIbGyAtQC0sQRgQJhciOioYKStLMxgTExwaHi1ALyZDFxApGkRVKRgAAAIAJ%2F%2BwAhwCjAADABAAJQC4AABFWLgAAC8buQAAAA4%2BWbgAAEVYuAAOLxu5AA4ADj5ZMDEBMxEjAyIuAjU0PgI7AREBiZOTYDVeRikoRV00LAKM%2FSQBFR07Vzk%2FVTUW%2FjkAAAADAC3%2F9wLAAo8AEwAnAEUAMwC7ADoAAQBBAAQruwAtAAEANAAEK7gALRC4ACPcuQAFAAH0uABBELgAGdy5AA8AAfQwMRM0PgIzMh4CFRQOAiMiLgI3FB4CMzI%2BAjU0LgIjIg4CFzQ%2BAjMyFhcHLgEjIgYVFBYzMjY3Fw4BIyIuAi01W3hCQnhaNTVaeEJCeFs1RClGYDc3YEYpKUZgNzdgRilRIDVGJi4%2BGDcQIBQwMTIqGSQTMB1AJypHMx0BRU56VS0tVXtNTntXLi5Xe04%2BZEgnJ0hkPj1kRyYmR2Q%2BLEcyGyMYPRERPS0zPBMPRBcdHDNJAAAAAAQAIAE3Aa0CywATACMAMAA5AFcAuAAvL7gAJS%2B4AC8QuAAU3LkAAAAB9LgAJRC4ABrcuQAKAAH0ugAtAC8AJRESObgALS%2B5ADEAAfS6ACoAMQAtERI5uAAvELgALNC4ACUQuQA3AAH0MDETIi4CNTQ%2BAjMyHgIVFA4CJzI2NTQmIyIOAhUUHgInMzIWFRQHFyMnIxUjNzI2NTQmKwEV5ylJNh8fNkkpKUg2Hx82SCk%2FUFA%2FIDQnFRUnNDFZIy4jKTweHTlODw8PDxUBNx42SiwsSjYeHjZKLCxKNh4xU0ZGUxYoOCMjOCgW%2FSAiJRFNPDxkEQsLDzYAAgAx%2F1QDVgKdAEYAUwA%2FALsAOwABAEIABCu7ACcAAQAPAAQruwBJAAEAFgAEK7sAHgABAE8ABCu7AAUAAQAxAAQrugAiAE8AHhESOTAxNzQ%2BAjMyHgIVFA4CIyImJyMOASMiJjU0PgIzMhYXMzczBwYzMj4CNTQuAiMiDgIVFB4CMzI2NxcOASMiLgIlFDMyNj8BJiMiDgIxSHukXFGDXDIqQlEnK0AIAhVEHzxIHzZKKxkmDQIOWy4VQxYrIhQeQmhJQHpgOi9RaTsnUSAgLmA2S4lpPgE%2FNBAfExgPHxcjGQ3Naat6QjRfg05FZ0UiKCQdJVFFLlhFKhcbKtxWGS9DKTZiSyw1YYlUSm5IJBYRUBkXLl6NYkMUGYcdHCoyAAAAAAIAIgAAAfICigAbAB8AoAC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAKLxu5AAoACD5ZuAAARVi4AA4vG7kADgAIPlm4AABFWLgAFi8buQAWAAQ%2BWbgAAEVYuAAaLxu5ABoABD5ZuwADAAEAAAAEK7gABhC5AAQAAfS4ABDQuAAR0LgAAxC4ABLQuAAAELgAFNC4AAAQuAAY0LgAAxC4ABzQuAARELgAHdC4AB7QMDE3IzUzNyM1MzczBzM3MwczFSMHMxUjByM3IwcjEzcjB2xKVQ5PWxVUFGgVVBRPWw1UXxdVFmcXVd4OaA27Xm5epaWlpV5uXru7uwEZbm4AAP%2F%2FAEwBuAESAz4CBwC3AAABuAAA%2F%2F8AGwG4AU4DSgIHALgAAAG4AAD%2F%2FwAbAawBUQNKAgcAuQAAAbgAAP%2F%2FACMBuAFwAz4CBwC6AAABuAAAAAIAGv%2F0AV8BkgATAB8AKAC4AAovuAAARVi4AAAvG7kAAAAEPlm5ABQAAfS4AAoQuQAaAAH0MDEXIi4CNTQ%2BAjMyHgIVFA4CJzI2NTQmIyIGFRQWvCM8KxgYKzwjIzwrGRkrPCMZIyMZGSMjDBw2TTExTDUcHDVMMTFNNhxSOEZGNjZGRjgAAAABAEwAAAESAYYACgAiALgACC%2B4AABFWLgACi8buQAKAAQ%2BWbgACBC5AAAAAfQwMRMjNT4DNzMRI6VZFB8aFwxWbQEZQgMICg0J%2FnoAAQAbAAABTgGSABcALAC4AAwvuAAARVi4ABYvG7kAFgAEPlm5ABQAAfS4AADQuAAMELkABgAB9DAxNz4BNTQmIyIGByc2MzIWFRQOAgczFSEtS2AeGxQiET08WUFPER0lFXb%2B3zo%2BXyUdIBkWOFBFPxgtLCwXWgAAAQAb%2F%2FQBUQGSACgAPgC4ABUvuAAARVi4ACUvG7kAJQAEPlm6AAgABwADK7gAJRC5AAIAAfS4ABUQuQAOAAH0ugAdAAcACBESOTAxNxYzMjY1NCM1MjY1NCYjIgYHJz4BMzIeAhUUBgceARUUDgIjIiYnXCMwFyFdJCsaFxMfDj0gQi4bMSYWHhseKRkpNx4zUhp2MBgXMz4XGRQWFhE2IyAPHCkZHysQDC8jGy0fEikmAAAAAgAjAAABcAGGAAUAEABMALgADi%2B4AABFWLgACS8buQAJAAQ%2BWbsAAAABAAoABCu4AA4QuQACAAH0uAAAELgABdC4AAoQuAAH0LgABRC4AAzQuAAAELgAD9AwMTc1NyMPARcjFSM1IzU3MxUz1gYEKCrqOmCzjYY6nSl1TVFGV1c2%2Ben%2F%2FwAdAP4BQAJXAgYAvQAA%2F%2F8AGAD%2BAVwCVwIGAL4AAAACAB0A%2FgFAAlcAGQAiADsAuAAAL7gAEC%2B7AAYAAQAeAAQruAAQELkACQAB9LgAABC4ABXQuAAAELkAGgAB9LoAFwAAABoREjkwMTciJjU0NjcuASMiBgcnPgEzMhYdASMnIw4BNzI2NzUOARUUgi82WGMCFxgULhglIUknQEdTCgQSLgYPFw0yJv46KjU5CRYWEA5EFBhJS70hEhdODgw3BRwSHgAAAAACABgA%2FgFcAlcAEwAfABsAuAAKL7gAAC%2B5ABQAAfS4AAoQuQAaAAH0MDE3Ii4CNTQ%2BAjMyHgIVFA4CJzI2NTQmIyIGFRQWuiA6LRsbLTogIDotGxstOiAdHBwdHRsb%2FhcsQCkpQC0XFy1AKSlALBdSMSkqMTEqKTEAAAAAAgAnAY4BSAKuABMAHwAXALsAFAABAAAABCu7AAoAAQAaAAQrMDETIi4CNTQ%2BAjMyHgIVFA4CJzI2NTQmIyIGFRQWtx41JxYWJzUeHjUnFxcnNR4eJSUeHSYmAY4VJzQgHzUnFRUnNR8gNCcVRikhICkpICEpAAAAAgAUAFMB%2FAI%2FAB4AKgAoALgAAEVYuAALLxu5AAsACj5ZuwAiAAEAGwAEK7gACxC5ACgAAfQwMT8BJjU0NjcnNxc2MzIXNxcHFhUUBgcXBycOASMiJwc3FBYzMjY1NCYjIgYUPSIREDxJRTA2NDJFST0iEhA9SUYXNBo3LkZVMiQkMjIkJDKdPi5BIDcWPkpGGRlGSj4tQCE3Fz5KRwwMGEf3LTU1LS01NQAAAAEAJ%2F%2BSAdQC6QAtAF0AuAAARVi4ACcvG7kAJwAOPlm4AABFWLgAEy8buQATAAQ%2BWbgAJxC5AAMAAfS6AAYAEwAnERI5uAATELgAENC4ABMQuQAaAAH0ugAdACcAExESObgAJxC4ACrQMDEBLgEjIgYVFB4EFRQGBxUjNS4BJzceATMyNjU0LgQ1NDY3NTMVHgEXAYMbMiAkJic7RDsnTk5hLGEjQCZFJConJztEOydRR2EwSB0B3hkZHiIYIR4gLkEwSGcRaGQFJyBjHR0iIxokISEuPi1KYQ5nZQcsHwAAAQAwAAAB8QKHACwAVwC4AABFWLgAFi8buQAWAA4%2BWbgAAEVYuAADLxu5AAMABD5ZuwAkAAEAJQAEK7gAAxC5AAEAAfS4AATQuAAlELgAC9C4ACQQuAAM0LgAFhC5AB0AAfQwMTchFSE1PgE1NCYnIzU3My4BNTQ%2BAjMyFhcHLgEjIgYVFBYXMxUjHgEVFAYH7gED%2Fj8tPQEBZEQGBwkgOU4vOFMiUBEmGCgvBgWUgQEBFRh8fFsUTzYHDQdWBRQoFC9MNR0qJ1AVFS4wEiQSWwcOByQ0GwAAAQAMAAACBAJ7AB0AhAC4AABFWLgAHS8buQAdAA4%2BWbgAAEVYuAAJLxu5AAkADj5ZuAAARVi4ABQvG7kAFAAEPlm6AAQAHQAUERI5ugAZAB0AFBESObgAGS%2B5AAwAAfS4ABkQuAAN0LgAGRC4ABjQuAAYL7gAENC4ABgQuQAVAAH0uAAR0LgAGRC5ABsAAfQwMRMXHgEXMz4BPwEzAzMVIxUzFSMVIzUjNTM1IzUzA6MzDBgOBA0YDTKUk3qampqTmZmZepMCe4UhQiAhQiCF%2FttGN0aTk0Y3RgElAAEAFf%2F0AgcChwAxAG0AuAAARVi4ABcvG7kAFwAOPlm4AABFWLgAAy8buQADAAQ%2BWbsAKQABACoABCu4ACoQuAAH0LgAKRC4AAjQuAApELgAI9y4ABDQuAAjELkAIgAB9LgAEdC4ABcQuQAeAAH0uAADELkALgAB9DAxJQ4BIyImJyM1NyY0NTwBNyM1Nz4DMzIWFwcuASMiBgczFSMVHAEXMxUjHgEzMjY3AgckXDZeiRc%2BNgEBNj4MMEVWMi1WIFITKRorOQzW3wG2rA45Kh0rFFAtL3NwRQQHDAcHDAdEBThXPB8oJk8TGD45ShUIDgdLNzocGgAAAgA8%2F9cB5wKPAAYAJAA3ALsAIQABAAoABCu7ABoAAQAgAAQruAAgELgAANC4ACEQuAAG0LgAChC4AA3QuAAaELgAF9AwMQEOARUUFh8BDgEHFSM1LgM1ND4CNzUzFR4BFwcmJxE%2BATcBEyQkJSPUHUQiUTFPOB8gOk4vUSc%2FFkMeGxUkDwGwEEAtLUEPRRkdBV9fBihBWDY1Vj8pCGFdBB0XWhgD%2FvAEEwwAAAH%2FVf%2F0AQoCmAADABgAuAAARVi4AAAvG7kAAAAEPlm4AAHcMDEHATMBqwFgVf6gDAKk%2FVwAAAD%2F%2F%2F9V%2F%2FQBCgKYAgYAxgAA%2F%2F8AGv%2F0A0ACmAAnALYAAAEGACcAxgF9AAAABwC2AeEAAAAA%2F%2F8AL%2F%2F0AyECmAAnALf%2F4wEGACcAxgFkAAAABwC6AbEAAAAA%2F%2F8AL%2F%2F0AyMCmAAnALf%2F4wEGACcAxgFVAAAABwC4AdUAAAAA%2F%2F8AGf%2F0AykCmAAnALn%2F%2FgEGACcAxgF6AAAABwC6AbkAAAAAAAEAIgBeAe4CNgALAB0AuwADAAEAAAAEK7gAAxC4AAbQuAAAELgACNAwMRMjNTM1MxUzFSMVI9KwsGywsGwBFmi4uGi4AAAAAAEAIgEWAe4BfgADAA0AuwABAAEAAgAEKzAxEyEVISIBzP40AX5oAAABADAAcAHgAiMACwALALoABQAJAAMrMDE%2FASc3FzcXBxcHJwcwjo5Jj49Jjo5Jj4%2B6j5BKkJBKkI9KkJAAAAAAAwAiAEkB7gJLAAsAFwAbADIAuAAARVi4AAYvG7kABgAMPlm7AA8AAQAVAAQruwAZAAEAGgAEK7gABhC5AAAAAfQwMQEiJjU0NjMyFhUUBgM0NjMyFhUUBiMiJgMhFSEBCCMuLiMjLi50LiMjLi4jIy6VAcz%2BNAGxKyIiKysiIiv%2B5SIrKyIiKysBCmgAAAD%2F%2FwAiAKMB7gHyAiYAzQB0AAYAzQCNAAAAAQAiAGgB7gIwAAkAFQC6AAEACAADK7oABQAIAAEREjkwMRMlFQ8BFR8BFSUiAcywh4ew%2FjQBf7F5Oi8ELzp5sQAAAAABACIAaAHuAjAACQAVALoACAABAAMrugAFAAEACBESOTAxAQU1PwE1LwE1BQHu%2FjSwh4ewAcwBGbF5Oi8ELzp5sQAAAAIAIgAAAe4CNgALAA8AOAC4AABFWLgADi8buQAOAAQ%2BWbsAAwABAAAABCu4AAMQuAAG0LgAABC4AAjQuAAOELkADAAB9DAxEyM1MzUzFTMVIxUjByEVIdKwsGywsGywAcz%2BNAEmaKioaIg2aAAAAAABADIBEgHeAp4ACQA4ALgAAEVYuAAALxu5AAAAED5ZuAAC3LgAABC5AAUAAfS6AAYAAAACERI5uAACELgACNC4AAnQMDETMxMjLwEjDwEjzXabeS4tBC0ueQKe%2FnSAh4eAAAAAAQAdAPAB8wGkABcAJwC7AAgAAQAPAAQruAAPELgAFNy5AAMAAfS4AAvQuAAPELgAF9AwMRM%2BATMyHgIzMjY3Fw4BIyIuAiMiBgcdJUsmHy4nIxUVIxBMJUsmHy4nIxUUJBABPTkuGBwYHhw7OS4YHBgeHAABACIAXgHuAX4ABQANALsAAQABAAQABCswMRMhESM1ISIBzGz%2BoAF%2B%2FuC4AAEAQf84Af0B8AAXAD8AuAAARVi4AAsvG7kACwAEPlm4AABFWLgAES8buQARAAQ%2BWbkABQAB9LoADgARAAUREjm6ABQAEQAFERI5MDETMxEUFjMyNjcRMxEjJyMOASMiJicXFSNBkx0gHCcWk3gLBBM5IRIfDQmTAfD%2B3zYoGh0BSP4QRSQlCA5agAD%2F%2FwCBAj4BaALUAAcA4AEWAAAAAP%2F%2FAMQCPgGrAtQABwDiARYAAAAA%2F%2F8AfAI%2BAbAC1AAHAOQBFgAAAAD%2F%2FwBwAj8BvALGAAcA5gEWAAAAAP%2F%2FAG0COwG%2FAsYABwDpARYAAAAA%2F%2F8AjAJQAaACrQAHAOgBFgAAAAD%2F%2FwClAiQBhwLwAAcA6wEWAAAAAP%2F%2FALD%2FIwFsAAQABwDtARcAAAAAAAH%2FawI%2BAFIC1AADABgAuAAARVi4AAMvG7kAAwAMPlm4AAHcMDEDMxcjlY5ZawLUlgAAAAAB%2F14CvgBLAzYAAwALALoAAQADAAMrMDEDMxcjopxRdQM2eAAB%2F64CPgCVAtQAAwAYALgAAEVYuAAALxu5AAAADD5ZuAAC3DAxEyM3MxlrWY4CPpYAAAAAAf%2B1Ar4AogM2AAMACwC6AAIAAAADKzAxEyM3Myp1UZwCvngAAf9mAj4AmgLUAAcANwC4AABFWLgABi8buQAGAAw%2BWbgAAEVYuAADLxu5AAMADD5ZuAAGELgAANy6AAUAAAAGERI5MDEDMxcjJyMHIzp0YGM1BDVjAtSWT08AAAAB%2F1gCvgCoAzYABwAXALoABgABAAMruAAGELgAB9y4AAPQMDEDNzMXIycjB6hgkGBxNQQ1Ar54eD09AAAB%2F1oCPwCmAsYAGABBALgAAEVYuAAALxu5AAAADD5ZuAAARVi4AA8vG7kADwAMPlm7ABQAAQADAAQruAAPELkACAAB9LgAAxC4AAzQMDEDPgEzMh4CMzI2NzMOASMiLgIjIgYHI6YIOCgUIhwZCw0QBksIOCgUIR0ZCw0QBksCP0VCDhAOFBhEQw4RDhQZAAAB%2F1YCvwCqA0cAFwAjALoAAAARAAMrugAFAAwAAyu4AAAQuAAI0LgADBC4ABTQMDETIi4CIyIGByM%2BATMyHgIzMjY3Mw4BPxQiHRkMDRQFSwg8JxQiHRkMDRQFSwg8Ar8OEQ4UGUVDDhEOFBlFQwAAAf92AlAAigKtAAMACwC4AAMvuAAB3DAxAyEVIYoBFP7sAq1dAAAAAAL%2FVwI7AKkCxgALABcAKAC4AABFWLgAAC8buQAAAAw%2BWbgABty4AAAQuAAM0LgABhC4ABLQMDEDIiY1NDYzMhYVFAYzIiY1NDYzMhYVFAZjHycnHx8nJ6cfJycfHycnAjsoHh0oKB0eKCgeHSgoHR4oAAAAAv9XArwAqQNIAAsAFwAbALoABgAAAAMruAAAELgADNC4AAYQuAAS0DAxAyImNTQ2MzIWFRQGMyImNTQ2MzIWFRQGYx8nJx8fJyenHycnHx8nJwK8KB4eKCgeHigoHh4oKB4eKAAAAAAC%2F48CJABxAvAACwAXABMAugAMAAAAAyu6AAYAEgADKzAxESImNTQ2MzIWFRQGJzI2NTQmIyIGFRQWMz4%2BMzM%2BPjMRGBgRERgYAiQ3Ly83Ny8vNzcaFRUaGhUVGgAAAAAC%2F48CuQBxA30ACwAXABMAugAMAAAAAyu6AAYAEgADKzAxESImNTQ2MzIWFRQGJzI2NTQmIyIGFRQWMz4%2BMzM%2BPjMRFxcRERgYArk1LS01NS0tNTcXFBQXFxQUFwAAAAAB%2F5n%2FIwBVAAQAEQATALoAAgARAAMrugALAAoAAyswMSczBx4BFRQOAgcnPgE1NCYnJ1YUGiAdMEAkCyQvGSIELwgjHxolGg0COwQUFA0VCAAAAAAB%2F5n%2FIwBVAAQAEQATALoAEQACAAMrugAKAAsAAyswMSczBx4BFRQOAgcnPgE1NCYnJ1YUGiAdMEAkCyQvGSIELwgjHxolGg0COwQUFA0VCAAAAP%2F%2FADUAAADfAtICBgAmAAAAAQAAAPEAZAAHAGkABQABAAAAAAAKAAACAAFzAAMAAQAAAGAAYABgAGAArgEWAWQBqAHmAhwCeAKyAtIDBgNOA3QD2gQqBHQEugUgBXIF3gYKBkYGggb4B1QHkgfICD4Isgj8CXQJ0gokCsYLFAtIC5IL2AwMDIwM4g0sDaAOFg5gDsoPFA9qD6YQGBByEMYQ%2BhEGERIRHhEqETYRQhGoEbQRwBHMEdgR5BHwEfwSCBIUEiASLBI4EkQSUBJcEuITPhNKE1YTYhNuE3oT2BQaFCYUMhQ%2BFEoUVhRiFRQVIBUsFTgVRBVQFVwVaBV0FYAVoBWsFbgVxBXQFdwV6BZOFt4XXBdoF3QXgBeMF5gXpBgeGHwY%2FBmCGjAahBq%2BGwwbehvKHCQcjhzEHUQdrB3OHfYeAh4OHjweYh6yHv4fFB8gH1Qfeh%2BGH5IfnB%2BqH8If2h%2FmH%2FIgBiAOICIgNiBAIGYgeiCcIL4g2iD2IVIhriHIIdoh9CIOIjYipiLYI1Qj0CRiJOIk7CT2JQAlCiVOJXQlsCYKJkwmVCZcJrAm7icqJ4An8ChcKMopRimcKbgpwCnSKeQp9ioIKiwqQCpgKqgqtCrWKvgrMCtiK5wrsiv4LAIsDCwWLCAsKiw0LD4sSCxiLHQsjiygLM4s7C00LWwtgC26Le4uHi5OLnguoi6iLqoAAQAAAAEMzGhqkv5fDzz1AAkD6AAAAADNl4CfAAAAAM2X4xD%2FGf6BBMcDzgABAAkAAgAAAAAAAAKyAFAAAAAAANAAAADQAAACPf%2F6Al0ATQJGAC4CewBNAiQATQIMAE0CfgAuAqIATQEtAE0B%2FQAQAmYATQIGAE0C%2BgBNApkATQKsAC4CXgBNAqwALgJoAE0CLAAjAiwAGQKZAEkCLP%2F5Ay0ADgI3AAsCDf%2F4Ah0AJAIWAC8CPQBBAdMAJAI9ACcCBgAkAVUAGAIWACICOwBBARQANQEW%2F80CJABBAR4AQQNZAEECPABBAisAJAI9AEECPAAnAY4AQQG7ABUBfwARAjgAPAILAAwDCAAYAgIADgIJAAwBzAAmAj3%2F%2BgI9%2F%2FoCPf%2F6Aj3%2F%2BgI9%2F%2FoCPf%2F6A03%2F8gJGAC4CJABNAiQATQIkAE0CJABNAS3%2F9AEtAEsBLf%2FuAS3%2F7QKZAE0CrAAuAqwALgKsAC4CrAAuAqwALgKsACgDZwAuApkASQKZAEkCmQBJApkASQIN%2F%2FgClAAaAmkATQIWAC8CFgAvAhYALwIWAC8CFgAvAhYALwMSAC8B0wAkAgYAJAIGACQCBgAkAgYAJAEU%2F%2FUBFAA4ART%2F8AEU%2F%2BEBFABBAjwAQQIrACQCKwAkAisAJAIrACQCKwAkAisAJAM2ACQCeABBAjgAPAI4ADwCOAA8AjgAPAIJAAwCCQAMAjAAKgI9AEECkAAYArAAGAKbABkCEAAlAhAARgIQAB4CEAAWAhAAEwIQABcCEAApAhAALAIQACoCEAAiASwAPQEsAC4BLAA9ASwALgFUAFEBVABRAc8AKQHPACoBLABMAhgATAEsADcBLABHAhgANwIYAEcBLABHAhgARwEkADEBJAA2AeAAMQHgADYBTAArAUwAKwHgACsDIAArASwAPQFZACgB9AAMAVgASAFYADABWABXAVgALgFYAB8BWAAuAVMADQEMAFYBUwAcAQwAVgHJACYCEAAlAnwAJwLuAC0BzgAgA4cAMQIQACIBeABMAXgAGwF4ABsBeAAjAXgAGgF4AEwBeAAbAXgAGwF4ACMBZwAdAXUAGAFnAB0BdQAYAW0AJwIQABQCEAAnAhAAMAIQAAwCEAAVAhAAPABg%2F1UAYP9VA1kAGgMpAC8DTgAvAzIAGQIQACICEAAiAhAAMAIQACICEAAiAhAAIgIQACICEAAiAhAAMgIQAB0CEAAiAj0AQQIrAIECKwDEAisAfAIrAHACKwBtAisAjAIrAKUCKwCwAAD%2FawAA%2F14AAP%2BuAAD%2FtQAA%2F2YAAP9YAAD%2FWgAA%2F1YAAP92AAD%2FVwAA%2F1cAAP%2BPAAD%2FjwAA%2F5kAAP%2BZANAAAAEUADUAAQAAA9j%2B7wAABOH%2FGf7ZBMcAAQAAAAAAAAAAAAAAAAAAAPEAAwHhArwABQAAAooCWAAAAEsCigJYAAABXgAyASAAAAILBwMDBAMCAgQgAAAHAAAAAQAAAAAAAAAAQURCRQAgAAD%2B%2FwLu%2FwYAAAPYAREgAAGTAAAAAAHgApQAAAAgAAMAAAACAAAAAwAAABQAAwABAAAAFAAEAdIAAAA8ACAABAAcAAAADQAvADkAQABaAGAAegB%2BAL8AzwDfAO8A%2FwExAVMCxgLaAtwgFCAaIB4gIiA6IEQgdCCsIhIiFf%2F%2FAAAAAAANACAAMAA6AEEAWwBhAHsAoADAANAA4ADwATEBUgLGAtoC3CATIBggHCAiIDkgRCB0IKwiEiIV%2F%2F8AAf%2F1AAAATAAA%2F8MAAP%2B9AAAAAP94AAD%2FdwAA%2FzYAAP4U%2FgT9%2F%2BCJAAAAAOB94F3gguBB4Bjeu96yAAEAAAAAADgAAABUAAAAXgAAAGYAbAAAAKgAAADEAAAA4AAAAAAAAAAAANoA3gAAAAAAAAAAAAAAAAAAAAAAAwCKAI8AsQDBAMgAewCOAKEAogCrAMwAhwCaAIYApwCIAIkA0QDQANIAjACwAKMAqQCkANQAoADYAKUAqACmANUA7wCLAMUAwgDAAMMAqgCsANwArgC7AJgA1gCbAK8A3QC%2FANMAswC0ANkA1wCtAJ4A3wCyALwAmQDJAMoAywCNAFUASABJAEoASwBMAE0AzgBOAFAAUQBSAFMAVABWAHAAdwBoAGkAagBrAGwAbQDPAG4AcQByAHMAdAB1AHgAdgBPAG8AkACRAJQAkgCTAJUAALgAACxLuAAJUFixAQGOWbgB%2F4W4AEQduQAJAANfXi24AAEsICBFaUSwAWAtuAACLLgAASohLbgAAywgRrADJUZSWCNZIIogiklkiiBGIGhhZLAEJUYgaGFkUlgjZYpZLyCwAFNYaSCwAFRYIbBAWRtpILAAVFghsEBlWVk6LbgABCwgRrAEJUZSWCOKWSBGIGphZLAEJUYgamFkUlgjilkv%2FS24AAUsSyCwAyZQWFFYsIBEG7BARFkbISEgRbDAUFiwwEQbIVlZLbgABiwgIEVpRLABYCAgRX1pGESwAWAtuAAHLLgABiotuAAILEsgsAMmU1iwQBuwAFmKiiCwAyZTWCMhsICKihuKI1kgsAMmU1gjIbgAwIqKG4ojWSCwAyZTWCMhuAEAioobiiNZILADJlNYIyG4AUCKihuKI1kguAADJlNYsAMlRbgBgFBYIyG4AYAjIRuwAyVFIyEjIVkbIVlELbgACSxLU1hFRBshIVktALAAKwCyAQECKwGyAgICKwG3AiYeGBMMAAgrtwMlHhgTDAAIKwC3ATAoIhgQAAgrALIECAcrsAAgRX1pGERLsGBSWLABG7AAWbABjgAAFABzAJIAlgAAAAz%2FMwAMAeYADAIGAAwCPgAMAn4ADAKQAAwCyAAMAAAABwBaAAMAAQQJAAEAHgAAAAMAAQQJAAIACAAeAAMAAQQJAAMARgAmAAMAAQQJAAQAKABsAAMAAQQJAAUAggCUAAMAAQQJAAYAJAEWAAMAAQQJAA4ASAE6AFMAbwB1AHIAYwBlACAAUwBhAG4AcwAgAFAAcgBvAEIAbwBsAGQAMQAuADAANQAwADsAQQBEAEIARQA7AFMAbwB1AHIAYwBlAFMAYQBuAHMAUAByAG8ALQBCAG8AbABkADsAQQBEAE8AQgBFAFMAbwB1AHIAYwBlACAAUwBhAG4AcwAgAFAAcgBvACAAQgBvAGwAZABWAGUAcgBzAGkAbwBuACAAMQAuADAANQAwADsAUABTACAAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAMAA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOQAwADAAUwBvAHUAcgBjAGUAUwBhAG4AcwBQAHIAbwAtAEIAbwBsAGQAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAZABvAGIAZQAuAGMAbwBtAC8AdAB5AHAAZQAvAGwAZQBnAGEAbAAuAGgAdABtAGwAAgAAAAAAAP%2B1ADIAAAAAAAAAAAAAAAAAAAAAAAAAAADxAAABAgEDAAMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQCtAMkAxwCuAGIAYwCQAGQAywBlAMgAygDPAMwAzQDOAGYA0wDQANEArwBnAJEAsADWANQA1QBoAOsA6QDtAGoAaQBrAG0AbABuAKAAbwBxAHAAcgBzAHUAdAB2AHcA1wB4AHoAeQB7AH0AfAChALEAiQB%2FAH4AgACBAOwAugDqAO4BBAEFAAkAEwAUABUAFgAXABgAGQAaABsAHAARAA8AHQAeAAQAowAiAKIACgAFALYAtwC0ALUAxADFAL4AvwCpAKoAEAEGALIAswDDAIcAQgALAAwAPgBAAF4AYAASAF8APwDoAA0AhgCIAIsAigAjAAYBBwEIAQkBCgELAQwBDQEOAQ8AnQCeARABEQCDAL0ABwCFAJYBEgCEALwBEwAIAPUA9AD2AA4A7wDwALgAIAAfACEAkwBBAGEApAEUAEMAjQDYANkAjgDaAN0A3gEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUETlVMTAJDUgNmX2YDZl90B3VuaTAwQUQIb25lLnN1cHMIdHdvLnN1cHMKdGhyZWUuc3Vwcwlmb3VyLnN1cHMJemVyby5kbm9tCG9uZS5kbm9tCHR3by5kbm9tCnRocmVlLmRub20JZm91ci5kbm9tBmEuc3VwcwZvLnN1cHMERXVybwd1bmkyMjE1B3VuaTAwQjUHdW5pMDMwMAt1bmkwMzAwLmNhcAd1bmkwMzAxC3VuaTAzMDEuY2FwB3VuaTAzMDILdW5pMDMwMi5jYXAHdW5pMDMwMwt1bmkwMzAzLmNhcAd1bmkwMzA0B3VuaTAzMDgLdW5pMDMwOC5jYXAHdW5pMDMwQQt1bmkwMzBBLmNhcAd1bmkwMzI3C3VuaTAzMjcuY2FwB3VuaTAwQTAFaS50cmsAAAAAAAAB%2F%2F8AAgABAAAADAAAAAAAAAACAAgABAA3AAEAPgA%2BAAEATgBPAAEAZwBnAAEAbgBvAAEAeAB4AAEAeQB6AAIA2gDaAAEAAQAAAAoAMABEAAJERkxUAA5sYXRuABoABAAAAAD%2F%2FwABAAAABAAAAAD%2F%2FwABAAEAAmtlcm4ADmtlcm4ADgAAAAEAAAABAAQAAgAAAAIACgEuAAEAJAAEAAAADQBCAGgAegCcALIAwADWAOQA8gD4AQIBEAEaAAEADQAJABMAGQAbADMANQBWAHAAiwCNAJ4ApwCpAAkAGf%2F6ABv%2F5AAz%2F94ANf%2FcAGUADABmACAAnv%2FuAKf%2F0ACvAAYABAAb%2F%2BQANf%2FuAKf%2FzgCvABAACAAz%2F%2FYANf%2FtAGMAEQBlACgAZgBBAJ7%2F%2FQCn%2F%2BUArwAzAAUAM%2F%2FmADX%2F9gCe%2F9gAq%2F%2F2AK%2F%2F9AADABn%2F%2BACn%2F%2BwArwAbAAUAGf%2FwABv%2F9gCe%2F%2BwAq%2F%2F8AK8ACwADAKf%2F4QCp%2F9gAq%2F%2FZAAMAM%2F%2FmAKn%2F3ACv%2F8sAAQAZ%2F8wAAgAZ%2F6gAG%2F%2B7AAMAGf%2FcABv%2F3AA1%2F%2BwAAgBmABAA8AAHAAIAGf%2FUADP%2F7AACFIwABAAAFN4WLAA5AC4AAP%2F5%2F73%2F8f%2F5%2F8AAGABAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5v%2B6AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F7wAAAAA%2F6gAAAAAAAAAAAAA%2F%2BT%2F5P%2FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2FoP%2FK%2F8r%2FggAAAC0AAAAAAAD%2Fp%2F%2FEAAD%2Fq%2F%2FL%2F6f%2F3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FYABwAAAAAAAP%2FYAAAAAAAA%2F%2BQAAP%2Fw%2F7AAB%2F%2F7%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F9j%2F9QAA%2F%2B4AAAAA%2F%2B7%2FsAAAAAAAAAAA%2F%2FYAAP%2F2AAAAAAAA%2F%2B4AAP%2Bs%2F9j%2F5P%2BiAAAAAAAAAAD%2F7v%2F6%2F9z%2FuP%2Bv%2F%2B7%2F%2BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5AAA%2F%2Fj%2F7gAAAAD%2F7gAAAAAAAP%2Fu%2F%2FgAAAAAAAAAAP%2FtAAD%2F9gAA%2F%2BIAAP%2FsAAAAAAAAAAAAAP%2Fz%2F%2FgAAAAAAAD%2F7v%2F2%2F%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F0%2F%2B7%2F%2BP%2Fw%2F%2BwAAP%2FuAAAAAAAA%2F%2BT%2F9v%2FbAAAAAAAA%2F%2FYAAP%2Fu%2F%2FYAAAAA%2F7gABAAAAAAAAAAA%2F%2Fj%2F%2BAAAAAAAAP%2Fu%2F%2FYAAP%2Fc%2F%2B4AAAAAAAAAAAAAAAAAAAAA%2F%2BwAAP%2F4AAAAAAAAAAAAAAAA%2F%2FgAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FqAAAAAP%2F0AAAAAAAAAAD%2F7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5v%2Fu%2F%2Fb%2F5gAA%2F%2Fb%2F3v%2FQAAD%2F9v%2FrAAD%2F5AAAAAD%2F8AAAAAD%2F3P%2F1%2F94AAP%2FI%2F%2BQAAAAAAAAAAP%2FuAAD%2F8P%2Fe%2F9D%2F3v%2Fm%2F%2Bb%2FzP%2F2AAAAAP%2FuAAAAAAAAAAAAAP%2BI%2F9v%2Fxf%2Bq%2F%2FgAAP%2FL%2F5QAAP%2F6%2F%2BQAAP%2FcAAD%2F7v%2FyAAAAAP%2Fl%2F%2Fb%2FVP%2Bw%2F5D%2FkAAAAAAAAAAA%2F7EAAP%2FM%2F3T%2FlP%2FL%2F9oAAP%2FU%2F%2BgAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAA%2F%2BwAAAAAAAAAAAAA%2F%2FYAAP%2FsAAAAAAAAAAD%2FygAAAAAAAP%2FoAAAAAAAA%2F%2FwAAAAAAAD%2F9v%2FmAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F8AAAAAAAAAAAAAD%2F7AAAAAD%2F7v%2F2AAAAAAAAAAD%2F9v%2Fy%2F%2FYAAP%2F2AAD%2F9v%2F0AAAAAAAA%2F%2FYAAP%2F2AAQAAAAAAAAAAP%2Fu%2F%2FYAAAAAAAAAAAAA%2F%2B7%2F4P%2FiAAAAAP%2Fu%2F%2B4AAAAAAAAAAP%2FsAAAAAP%2FwAAAAAAAAAAAAAAAA%2F%2B4AAAAAAAAAAAAA%2F%2B4AAAAAAAD%2F9AAAAAD%2F%2BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FIAAAAAAAAAAAAAAAAAAAAA%2F%2B7%2FwAAA%2F%2BgAAP%2BM%2F9j%2F5%2F%2FU%2F%2BT%2FwP%2F0%2F7T%2FhgAA%2F%2FT%2F1gAAAAD%2FvAAU%2F7wAAAAAAAAAAP%2FsAAAAAAAA%2F%2Bj%2F6P%2Fn%2F7D%2FyP%2FW%2F8T%2FwP%2FYAAAAAAAAAAAAAAAAAAD%2F7v%2F2AAAAAAAA%2F%2Bb%2F9P%2F2AAAAAP%2F4AAAAAP%2FIAAAAAAAAAAAAAAAAAAD%2F8AAAAAAAAP%2F2%2F%2FYAAAAAAAAAAAAA%2F%2FAAAAAAAAD%2F%2BAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FwAAAAAAAD%2F2gAAAAAAAAAA%2F%2FQAAAAA%2F9EAAAAAAAAAAAAAAAAAGf%2F4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F4%2F%2FYAAAAA%2F%2Fb%2F5gAAAAAAAAAA%2F%2B7%2F9gAAAAD%2FxAAA%2F%2B7%2F%2B%2F%2BQ%2F%2B7%2F7f%2Fq%2F%2B7%2FtAAA%2F8n%2FnAAA%2F%2B7%2F2gAAAAD%2FyAAY%2F9EAAAAAAAAAAAAA%2F%2FAAAAAA%2F%2B7%2F5P%2Fa%2F7T%2Ft%2F%2FY%2F8n%2FyP%2B6%2F9wAAAAAAAAAAP%2F2AAD%2F7v%2F1AAD%2F9AAAAAAAAP%2Fi%2F%2Fb%2F7P%2F0%2F%2Bz%2F8%2F%2FoAAD%2F7v%2FyAAAAAP%2FEABQAAAAAAAAAAAAAAAAAAAAAAAD%2F9P%2F0AAD%2F6P%2FoAAAAAAAAAAAAAAAAAAAAAP%2FkAAD%2F%2BP%2FkAAAAAAAA%2F%2BYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F1AAAAAAAAAAAAAAAAAAA%2F%2BYAAP%2FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAA%2F%2BT%2F9gAAAAAAAAAAAAAAAAAAAAD%2F9gAA%2F%2BQAAAAAAAAAAAAAAAD%2F7gAGAAAAAAAAAAD%2F7gAAAAAAAAAAAAAAAP%2F7%2F94AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F3AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2BM%2F%2BX%2F2v%2BQAAAAJP%2Fs%2F28AAAAAAAAAAAAAAAAAAAAAAAAAAP%2FqAAD%2FWAAAAAAAAAAAAAAAAAAA%2F6QAAAAA%2F4D%2Fg%2F%2FE%2F90AAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BQAAP%2F2%2F9z%2F9gAA%2F%2Fr%2F9gAAAAD%2F7AAAAAD%2F9f%2F7AAD%2F7AAA%2F%2B4AAP%2Fo%2F97%2F%2BP%2FxAAAAAAAAAAD%2F5gAA%2F%2FAAAAAA%2F%2Fr%2F%2Bv%2FwAAD%2F8QAAAAAAAAAAAAAAAAAAAAAAKgAAACoAKv%2F1%2F%2FYAAAAY%2F8AAAAAAAAAAAP%2FsAAD%2F9gAAAAAAAP%2F8AAAAIP%2FsADL%2F%2FAAEAAAAAAA6ABgAFgAoABgABAAA%2F%2Fj%2F7gAAAAD%2F%2BP%2FuAAAAAAAjAAAAAP%2FcAAAAAP%2FuAAAALv%2F4AAAAAAAAAAAAAAAA%2F%2B0AAP%2FuAAAAAAAAAAD%2F6AAAAAAABAAcAAAAAAAAAAAAAP%2FSAAAAAP%2F4%2F%2FgAAAAAAAAAAAAA%2F%2B4AAAAAAAQAAAAA%2F88AAAAA%2F%2B7%2F9v%2F2AAD%2F3AAEAAAAAAAAAAD%2F9gAA%2F%2BQAAAAA%2F%2B7%2F7v%2F8AAD%2F3P%2FwAAAAAAAAAAAAAAAA%2F%2BAAAAAAAAAAAP%2F4%2F6v%2F3AAAAAD%2F8P%2FwAAAAAAAAAAD%2F5AAAAAD%2F5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BgAAAAAAAAAAAAAAAAAAP%2F2AAD%2F8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FFAAAAAP%2FIAAAAAP%2F4%2F9z%2F9gAAAAAAAAAA%2F%2FX%2F%2BwAAAAAAAAAAAAAAAP%2FcAAD%2F8AAAAAAAAAAA%2F%2Bz%2F%2BP%2FgAAD%2F%2FP%2F4%2F%2Fj%2F5gAAAAAAAP%2F7%2F%2FMAAAAAAAAAAAAAAAAAAAAA%2F%2Fv%2F6AAAAAAAAP%2BE%2F7AAAAAAAAD%2F3v%2Fu%2F%2BgAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FU%2F4QAAP%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F2AAAABf%2Fw%2F6j%2F7AAA%2F%2FYAAP%2FjAAD%2F9v%2B3AAAAAAAAAAAABP%2F0ACD%2F6AAAAAAAAAAAAAAAAAAAABgABQAEAAD%2F5P%2FsAAD%2F9v%2F2AAAAAAAAAAAAAP%2FkAAAAAP%2FsAAAAAAAA%2F%2BcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5AAAAAAAAAAAAAAAAAAA%2F%2FYAAP%2FnAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAA%2F%2B4AAAAA%2F%2Fj%2F9gAAAAAAAAAEAAAAAAAAAAD%2F9AAA%2F%2FYAAAAAAAAAAAAAAAD%2F7AAYAAQAAAAAAAAAAAAA%2F9wAAAAAAAAAAAAA%2F9z%2F9AAAAAAAAAAAAAQAAAAAAAD%2F7AAAAAD%2F4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FIAAAAAAAAAAAAAAAAAAP%2FuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FkAAAAAP%2FnAAD%2F9gAAAAD%2Frf%2F4AAAAAAAA%2F%2FYAAP%2F4%2F%2BIAAAAAAAAAAAAAAAAACwAAAAAAAAAA%2F%2Fj%2F7gAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BYAAAAAAAAAAAAA%2F%2BwAAAAA%2F%2FAAAP%2F2AAAAAP%2FEAAAAAAAAAAD%2F7AAA%2F%2Fj%2F2AAAAAAAAAAAAAAAAAAb%2F%2FwAAAAAAAD%2F%2BP%2F4AAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5AAAAAAAAAAAAAD%2F6gAAAAD%2F%2BAAAAAD%2F%2BAAAAAAAAAAAAAAAAP%2FyAAD%2F9gAAAAAAAP%2F2AAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAD%2F%2BAAAAAD%2F5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F6%2F%2FL%2F5AAA%2F%2BYAAP%2Bk%2F9n%2F5f%2Fi%2F%2Fb%2F2gAA%2F%2B7%2FegAA%2F%2Fb%2F7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5gAAAAD%2F7P%2Fs%2F%2BX%2FzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FkAAAAAAAAAAAAAAAAAAD%2F2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F8gAAAAD%2F9v%2FwAAAAAAAA%2F3z%2Fzv%2F2%2F80AAP%2FeAAD%2F6%2F9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F%2Bf%2FsAAD%2F9v%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9gAAAAD%2F7AAA%2F%2FYAAP%2B0%2F%2B7%2F9P%2Fs%2F%2Fb%2F3QAA%2F%2B3%2FwAAAAAD%2F4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9gAA%2F%2Bz%2F7P%2Fs%2F%2B7%2F6%2F%2FlAAAAAAAAAAD%2F7P%2F2AAAAAAAAAAD%2F5v%2FwAAD%2F%2Bv%2FuAAD%2F5v%2F2%2F%2Bb%2F8P%2FwAAD%2F5v%2F2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F4%2F%2FAAAP%2FuAAD%2F3P%2FuAAAAAP%2Fu%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FkAAP%2F4%2F7QAAAAAAAAAAAAAAAAAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F3P%2FcAAAAAAAA%2F%2FgAAP%2FuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5v%2BoAAAAAAAAAAAAAAAA%2F%2FgAAAAAAAD%2F7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5v%2B0%2F7kAAP%2FuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FYAAD%2F5v%2B6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Bb%2F8AAAAAAAAAAAAAD%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8gAAP%2F2%2F7cAAAAAAAAAAAAAAAD%2F4v%2F0AAAAAAAAAAD%2F4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7P%2FuAAAAAAAAAAAAAP%2FkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2Fe%2F%2B3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F%2BAAAAAAAAAAAAAAAAAAAAAAAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6AAAAAAAAP9o%2F68AAAAAAAD%2F2v%2F0%2F%2BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FwAAAAAAAAAAAAAAAAAAAAAAAA%2F90AAAAAAAAAAAAAAAD%2F7AAAAAD%2F8AAA%2F%2FYAAAAA%2F8T%2F8wAA%2F%2FgAAP%2FsAAD%2F%2BP%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F8AAAAAAAAP%2FkAAAAAAAAAAAAAP%2FoAAAAAP%2FfAAAAAP%2FuAAAAAAAA%2F%2FgAAP%2F2%2F%2FYAAP%2FmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fu%2F%2BQAAAAAAAD%2F7AAAAAAAAgANAAQAIAAAACIAJQAdACgAKAAhACoAYgAiAGcAdgBbAHgAegBrAIYAkwBuAJYAngB8AKEAoQCFAKMAowCGAKUApQCHAKcApwCIAKkAqQCJAAEABACkAAYABwAIAAwAJgAnAAkAKAApACoACgALACgAKAAMACsADAANAA4ADwAQAC0AEQAuABIAEwAUAB0AFQAAABgAGQAaABwAAAAAABsAAAAcABwAHQAdACIAHwAgACEAIgA3ACMAOAAkACUABgAGAAYABgAGAAYAJgAIACYAJgAmACYAKQApACkAKQAoAAwADAAMAAwADAAMACYAEAAQABAAEAASAAwALAAUABQAFAAUABQAFAAYABUAGAAYABgAGAAAAAAAAAAAACIAHAAdAB0AHQAdAB0AHQAYADEAIgAiACIAIgAkACQAAAAdABkAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAXABYAFgABAAIANAAEADUANQAeADYAHgA2AAAAAAAyADMAMgAzADAAMAAwADAAAwAAAAAALwAAAC8AAAAvAAAABQACAEgABAAEAAsABgAGAA4ACgAKAA4ADQANABIAEgASAA4AFAAUAA4AFgAWAAwAFwAXAAIAGAAYAAMAGQAZAB4AGgAaAAQAGwAbAB8AHAAcAAUAHQAdAA0AHgAeAA8AIAAiABEAIwAjABAAJAAkAAYAJgAmABMAJwAnAAcAKgArACgALAAsABEALQAtACgALgAuABEALwAvACgAMAAwACkAMQAxABQAMgAyABUAMwAzACMANAA0ACQANQA1ACUANgA2AAgANwA3ACoAOAA9AAsAPwA%2FAA4ASQBPAA4AUABTAAMAVABUAAUAVQBVAAEAVwBdAA8AXgBiABEAYwBmABMAZwBoACgAaQBvABEAcQB0ABUAdQB2AAgAeQB6ABAAhgCHAAoAiACJACwAigCKABsAiwCLABwAjACMACAAjQCNAB0AjgCPACEAkACQACIAkQCRAAkAkgCSACIAkwCTAAkAlgCWACcAlwCXACsAmACYACcAmQCZACsAmgCdACYAngCeABgAogCiAC0ApACkAC0ApgCmAC0ApwCnABoAqQCpABcAqwCrABYArwCvABkA8ADwABMAAAABAAAACgBgAJ4AAkRGTFQADmxhdG4AGgAEAAAAAP%2F%2FAAEAAAAWAANBWkUgAB5DUlQgAChUUksgADIAAP%2F%2FAAEAAQAA%2F%2F8AAgACAAUAAP%2F%2FAAIAAwAGAAD%2F%2FwACAAQABwAIbGlnYQAybGlnYQAybGlnYQAybGlnYQAybGlnYQAybG9jbAA4bG9jbAA4bG9jbAA4AAAAAQABAAAAAQAAAAIABgAaAAEAAAABAAgAAQAGAMoAAQABACYABAAAAAEACAABABoAAQAIAAIABgAMAHkAAgAjAHoAAgAxAAEAAQAj%29%20format%28%27truetype%27%29%3B%0A%7D%0A%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Source%20Sans%20Pro%27%3B%0Afont%2Dstyle%3A%20italic%3B%0Afont%2Dweight%3A%20400%3B%0Asrc%3A%20url%28data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAARAQAABAAQR0RFRgNEA3IAAG18AAAAQEdQT1Oz7r2nAABtvAAAFhxHU1VCjb2NzgAAg9gAAABwT1MvMlq1lDoAAGQ0AAAAYGNtYXDzMPm1AABklAAAAeZjdnQgDZkA%2BgAAaDwAAAAoZnBnbQZZnDcAAGZ8AAABc2dhc3D%2F%2FwADAABtdAAAAAhnbHlmQB3ERQAAARwAAFz4aGVhZP3Ms%2BoAAGAYAAAANmhoZWEIGwb0AABkEAAAACRobXR4lfkiLwAAYFAAAAPAbG9jYezv1iYAAF40AAAB4m1heHADCgJaAABeFAAAACBuYW1lJDg%2BsQAAaGQAAAHccG9zdNT1lfMAAGpAAAADMXByZXCXBvrrAABn8AAAAEsABQAkAAACbgKUAAMABgAJAA8AFQBxALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAIvG7kAAgAEPlm6AAQAAgAAERI5ugAFAAIAABESOboABwACAAAREjm6AAgAAgAAERI5uQAKAAH0ugAOAAIAABESObgAABC5ABEAAfS6ABUAAgAAERI5MDETIQMhEwM3FxMHAzMvASMHEzcjHwEzpgHIgv44sl6poWCr4fksHwRHoFrlKBwEApT9bAI%2F%2Firr6wHW6%2F7kiGVlAR1%2Ff10AAv%2FLAAAB1QKQAAkAEQBUALgAAEVYuAAOLxu5AA4AED5ZuAAARVi4ABEvG7kAEQAEPlm4AABFWLgADC8buQAMAAQ%2BWboABQAMAA4REjm6AAsADAAOERI5uAALL7kACQAB9DAxAScuAScjDgEPARcjByMBMxMjAWwKBQkEBBozHDrJ6GlWAWRaTFEBCXA0aTk5ZzZwPM0CkP1wAAAAAwAjAAACIAKQABMAHAAlAFcAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgAEy8buQATAAQ%2BWboAIwAAABMREjm4ACMvuQAcAAH0ugAJABwAIxESObgAABC5ABoAAfS4ABMQuQAdAAH0MDETMzIWFRQOAg8BHgEVFA4CKwETMjY1NCYrAQcTMjY1NCYrAQOmr19sGSo0GwEzRilKZDrS9l5aREtbLDNebk1JdDQCkElIITcqHAYEDEE4N08zGQF2RjgtMt3%2Bx0RNMj3%2FAAAAAQA5%2F%2FQCLQKcACEAOQC4AABFWLgABS8buQAFABA%2BWbgAAEVYuAAdLxu5AB0ABD5ZuAAFELkADAAB9LgAHRC5ABYAAfQwMTc0PgIzMhYXBy4BIyIOAhUUHgIzMjY3Fw4BIyIuAjkxWX1MOVAYNhQ1JjteQiQTKEAsKEMgIyRcPDhXOx%2F9TZV1SDcqKSAnPmJ5PC1LNh8gGzIgLCdGYQAAAAIAIwAAAjYCkAAKABUANQC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAKLxu5AAoABD5ZuQALAAH0uAAAELkAEwAB9DAxEzMyFhUUDgIrATcyPgI1NCYrAQOmeomNMVuEU7CwQGZIJmZkNmoCkId5WZRpOkAxV3pJXmj97wABACMAAAIQApAACwBNALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAsvG7kACwAEPlm4AAAQuQACAAH0ugAGAAsAABESObgABi%2B5AAQAAfS4AAsQuQAJAAH0MDETIQchBzMHIwchByGmAWoN%2FuMq8Q7vMwEmDv6OApBB1UL2QgAAAAEAIwAAAhACkAAJAEMAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACS8buQAJAAQ%2BWbgAABC5AAIAAfS6AAYAAAAJERI5uAAGL7kABAAB9DAxEyEHIQczByMDI6YBag3%2B4y3xDfA8TgKQQeRC%2FtcAAAABADn%2F9AI7ApwAJQBNALgAAEVYuAAFLxu5AAUAED5ZuAAARVi4ACEvG7kAIQAEPlm4AAUQuQAMAAH0uAAhELkAFgAB9LoAGgAFACEREjm4ABovuQAcAAH0MDE3ND4CMzIWFwcuASMiDgIVFB4CMzI2PwEjNzMDDgEjIi4COTFagVE7URk3EzcoPmJFJBMqQi8kOBQliA3OOSRdOTtbPh%2F9TpV1RzcqKSAnPmJ5PCxLOB8XEbVA%2FuQeJSZFYgAAAAABACMAAAJpApAACwBJALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAsvG7kACwAEPlm6AAgAAAALERI5uAAIL7kAAgAB9LgAABC4AATQuAALELgAB9AwMRMzAyETMwMjEyEDI6ZOOAEoOE2DTj%2F%2B2D5OApD%2B6wEV%2FXABOP7IAAAAAAEAIwAAAPQCkAADACUAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgAAi8buQACAAQ%2BWTAxEzMDI6ZOg04CkP1wAAAB%2F%2F7%2F9AHIApAAEgArALgAAEVYuAAQLxu5ABAAED5ZuAAARVi4AAUvG7kABQAEPlm5AAwAAfQwMSUOAyMiJic3HgEzMjY3EzMDAWoIIjJEKztRFTMOOCoyPg1cTl64Kkg1HTcuKyQpSkIBzf4oAAAAAQAjAAACVwKQAAwASQC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAMLxu5AAwABD5ZugACAAAADBESObgAABC4AATQuAAMELgACNC6AAkABAAIERI5MDETMwMzATMHEyMDDwEjpk5BAwFJWPaVUX6JLU4CkP68AUT8%2FmwBYobcAAABACMAAAGSApAABQArALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAQvG7kABAAEPlm5AAIAAfQwMRMzAyEHIaZOdgEUDf6eApD9skIAAQAjAAACvAKQABkAXQC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAZLxu5ABkABD5ZuAAAELgABtC4ABkQuAAJ0LoAAwAGAAkREjm6AA0ACQAGERI5ugARABkAABESOboAFAAAABkREjkwMRMzExczNxMzAyMTPgE3IwcDIwMnIw4BBwMjpl05FgRGw12DS0wJGgwET8EsPRYEBg4ISkkCkP6eiIgBYv1wAXItaSuS%2FqQBXJItZy3%2BjgAAAAABACMAAAJmApAAEwBFALgAAEVYuAAALxu5AAAAED5ZuAAARVi4ABMvG7kAEwAEPlm4AAvQuAAAELgACNC6AAQACwAIERI5ugAOAAAAExESOTAxEzMTFzM%2BATcTMwMjAycjDgEHAyOmTpYqBAYNC0VLg02UKwQGDwpGSwKQ%2FlyJMW0zAVz9cAGjjTNqMv6fAAACADz%2F9AJeApwAEwAlADkAuAAARVi4AAovG7kACgAQPlm4AABFWLgAAC8buQAAAAQ%2BWbgAChC5ABQAAfS4AAAQuQAeAAH0MDEFIi4CNTQ%2BAjMyHgIVFA4CEyIOAhUUHgIzMj4CNTQmAR83VTkeL1R1RzdVOR4vVHYSNVc%2BIhIlOic1Vz4iSgwnSGY%2BS5FzRidIZT5LknNGAmU8YHY6ME84Hz1gdjlhdQACACMAAAItApAADgAXAEcAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgADS8buQANAAQ%2BWboACwAAAA0REjm4AAsvuAAAELkAFQAB9LgACxC5ABcAAfQwMRMzMh4CFRQOAisBAyMTMjY1NCYrAQOmuS5MNh4rTGk%2FaTRO7mZpTEhlNQKQEic8KzxYORv%2B%2BAFHUE85M%2F71AAAAAAIAPP9eAl4CnAARAC8ASwC4AABFWLgAHy8buQAfABA%2BWbgAAEVYuAAXLxu5ABcABD5ZuwAUAAEALAAEK7gAFxC5AAUAAfS4AB8QuQANAAH0uAAXELgAKdAwMRMUHgIzMj4CNTQmIyIOAgEGIyImJy4BNTQ%2BAjMyHgIVFA4CBx4BMzI2N4sSJTonNVc%2BIkpONVc%2BIgGBISBUeBlUVi9UdUc3VTkeK05tQhFUNQ8aDgENME84Hz1gdjlhdTxgdv4iC0tRE45sS5FzRidIZT5IjXBKBiwqBAMAAAIAIwAAAicCkAAIABoAVAC4AABFWLgAGi8buQAaABA%2BWbgAAEVYuAAYLxu5ABgABD5ZuAAARVi4ABUvG7kAFQAEPlm7AAAAAQAWAAQruAAaELkABwAB9LoAEwAWAAAREjkwMQEyNjU0JisBBxMyHgIVFA4CBxMjAyMDIxMBGF5kS0hgMqUuSzYeHTRGKnNTbHI3ToMBVVJGNi%2F9ATsRJTopLUo3JAj%2B4wEW%2FuoCkAAAAQAM%2F%2FQB%2FgKcAC8ASQC4AABFWLgAFC8buQAUABA%2BWbgAAEVYuAAsLxu5ACwABD5ZuQADAAH0ugALACwAFBESObgAFBC5ABsAAfS6ACMAFAAsERI5MDE3HgEzMj4CNTQmLwEuATU0PgIzMhYXBy4BIyIOAhUUFh8BHgEVFA4CIyImJ0UdVTceNCUWLSVMKjsfNkssO2AfMxpFLhwsHxAxJEwwMyI8VDJEbyiTLDESIC4cJDEXLhpIOCVCMh00KC4eKRIeJhQmLxYtHEc3LEo1Hjk7AAABAF0AAAI1ApAABwAzALgAAEVYuAACLxu5AAIAED5ZuAAARVi4AAcvG7kABwAEPlm4AAIQuQAAAAH0uAAE0DAxASM3IQcjAyMBG74NAcsNv3VOAk1DQ%2F2zAAAAAAEAT%2F%2F0AmYCkAAaADMAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgAFC8buQAUAAQ%2BWbkABwAB9LgAABC4AA3QMDETMwMGFRQWMzI%2BAjcTMwMOAyMiJjU0NjejTksJQEUcMywhC1FMUg4vQE0sZGsFBQKQ%2FoktIkdMFjBLNgGS%2FmtHZD8daGcVLxkAAAAAAQBSAAACQQKQAA0ANwC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAANLxu5AA0ABD5ZugAFAAAADRESObgAABC4AArQMDETMxMeARczPgE3EzMBI1JPGwUIAwQZNRq1VP6pXQKQ%2FpQ2bDY1bjUBbP1wAAEAXwAAAywCkAAhAFcAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgAIS8buQAhAAQ%2BWboABQAAACEREjm4AAAQuAAK0LgAFNC4ACEQuAAX0LoAEAAUABcREjm6ABsAIQAKERI5MDETMwMOAQczPgE3EzMTFhQVMz4BNxMzASMDNDY3Iw4BBwMjaFAKAwMEBBcwFqRHCQEEFCsUjk3%2B8mMHAQIEDiERs2ECkP6XNWo2Nmo1AWn%2BlzRrNjZqNQFp%2FXABkSRPJydMJ%2F5vAAAAAAH%2F3AAAAiICkAAZAEUAuAAARVi4AAEvG7kAAQAQPlm4AABFWLgAGS8buQAZAAQ%2BWbgAD9C4AAEQuAAL0LoABwAPAAsREjm6ABQAAQAZERI5MDETAzMXHgEXMz4BPwEzAxMjJy4BJyMOAQ8BI9hsVDgHDAgDESIPeFLtdVQ8CA8IAxQkEYBTAVQBPK4XKxoYMBer%2Fr7%2BsrgZMxoaNxm0AAABAFMAAAIeApAADwA3ALgAAEVYuAABLxu5AAEAED5ZuAAARVi4AA8vG7kADwAEPlm6AAYAAQAPERI5uAABELgAC9AwMRMDMxceARczPgE%2FATMBAyO%2Ba1AtCQ8JBBcrGHxT%2Fu40TQEAAZC9JEQmJUYkvP5w%2FwAAAAAB%2F%2F8AAAIdApAACQBFALgAAEVYuAADLxu5AAMAED5ZuAAARVi4AAgvG7kACAAEPlm5AAYAAfS4AADQuAAAL7gAAxC5AAEAAfS4AAXQuAAFLzAxNwEhNyEHASEHIQkBqf7UDgGJCv5aAUsP%2FlYvAiBBLv3gQgAAAAACACf%2F9AH4AfIAFAAjAFsAuAAARVi4AAUvG7kABQAIPlm4AABFWLgACi8buQAKAAg%2BWbgAAEVYuAASLxu5ABIABD5ZuAAARVi4AA0vG7kADQAEPlm4ABIQuQAVAAH0uAAFELkAHAAB9DAxNzQ%2BAjMyFhczNzMDIzcjDgEjIiYXMjY%2FAS4BIyIOAhUUFicsSl4zJz0RBBM%2BYT8IBCNYLkBMqCZPJCwVMhwkRDQfMKRGelo0KCE9%2FhpIJi5aGi0w2SYiK0hdMj89AAIAH%2F%2F0AfACyAAVACQAWwC4AABFWLgAAS8buQABABI%2BWbgAAEVYuAAILxu5AAgACD5ZuAAARVi4AAAvG7kAAAAEPlm4AABFWLgAEC8buQAQAAQ%2BWbgACBC5ABYAAfS4ABAQuQAdAAH0MDEzEzMPATM%2BATMyFhUUDgIjIiYnIwcTIgYPAR4BMzI%2BAjU0Jh%2BOTScWAiRULUBMLElfMic9EQMU6iJRIy4UMh0kRDMfLwLIvmAdK1pWRnpaNCghPQGyKiXnJiIrSF0zPj0AAAEAJf%2F0AbIB8gAdADkAuAAARVi4AAUvG7kABQAIPlm4AABFWLgAGy8buQAbAAQ%2BWbgABRC5AAwAAfS4ABsQuQAUAAH0MDE3ND4CMzIWFwcuASMiDgIVFBYzMjY3Fw4BIyImJS1LYjUsPBYtEyYdJEQ1Hzk6IDUXIhpMNlBjt0RzVDAiGTAXFShDWjJCRhoRMhQlZQACACf%2F9AInAsgAFQAkAFsAuAAARVi4ABEvG7kAEQAIPlm4AABFWLgAAS8buQABABI%2BWbgAAEVYuAAJLxu5AAkABD5ZuAAARVi4AAQvG7kABAAEPlm4AAkQuQAWAAH0uAARELkAHQAB9DAxATczAyM3Iw4BIyImNTQ%2BAjMyFhczAzI2PwEuASMiDgIVFBYBtCZNkD8IBCNYLkBMLEpeMyc6EgPVJk4lLBUyHCRENB8wAgq%2B%2FThIJi5aVkZ6WjQnIP6JLTDZJiIrSF0yPz0AAAAAAgAl%2F%2FQBvwHyABwAKgBRALgAAEVYuAAFLxu5AAUACD5ZuAAARVi4ABovG7kAGgAEPlm6AA0ABQAaERI5uAANL7gAGhC5ABMAAfS4AAUQuQAlAAH0uAANELkAKgAB9DAxNzQ%2BAjMyHgIVFAYHIQYeAjMyNjcXDgEjIiYlPgE1NC4CIyIOAgclLkldMCk5JBAMBf7EBxAlNiAdORceHVAwV2gBVAIDChYkGhszLCMJv0VxUSwbL0ElHTQOL0MsFBkRMxUfaboMGA4VJx4SFio6JAAAAAABACsAAAGNAtQAFwBWALgAAEVYuAAQLxu5ABAACD5ZuAAARVi4AAUvG7kABQASPlm4AABFWLgAFS8buQAVAAQ%2BWbgAEBC4AADQuAAFELkADAAB9LgAEBC5ABMAAfS4ABfQMDETPwE%2BATMyFhcHLgEjIgYPATMHIwMjEyNMQRAPTT4aKhIbCxoRISkIEWIMY1VMVT8B4QVRSlMNCzcHCjIrUz7%2BWAGoAAAC%2F%2F7%2FIAHyAfIAIAAvAFQAuAAARVi4ABsvG7kAGwAIPlm4AABFWLgAIC8buQAgAAg%2BWbgAAEVYuAAELxu5AAQABj5ZuwAhAAEAEwAEK7gABBC5AAsAAfS4ABsQuQAoAAH0MDEBAw4BIyImJzceATMyNj8BIw4BIyImNTQ%2BAjMyFhczNwMyNj8BLgEjIg4CFRQWAfJmFHRcMVYjJBxEKT9KEBgDJFIvPk8rSF0xJj4RAxPmI1AjKxcwHCNCMh4uAeb%2BA2FoJh01GCJPQmQjK1ZVQ3VXMyghPf5fKyrQJiIpRVkwPDoAAAAAAQAfAAAB2ALIABsARAC4AABFWLgABy8buQAHAAg%2BWbgAAEVYuAAALxu5AAAAEj5ZuAAARVi4ABovG7kAGgAEPlm4AA%2FQuAAHELkAFgAB9DAxEzMPATM%2BATMyFhUUBgcDIxM%2BATU0JiMiBgcDI61NMBAEKlAtPjUDBT5MPAQEIiYdRy5FTALI6z0jL0A5ER4U%2FsoBLBQYDSUmKi7%2BqAAAAAIAHwAAAPsCsgADAA8ALQC4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAACLxu5AAIABD5ZugAKAAQAAyswMRMzAyMTIiY1NDYzMhYVFAaATWJMohQdIxcUHSMB5v4aAksXFhkhGBYZIAAAAv%2BE%2FycA%2BwKyAA8AGwA3ALgAAEVYuAAOLxu5AA4ACD5ZuAAARVi4AAMvG7kAAwAGPlm6ABYAEAADK7gAAxC5AAoAAfQwMRcOASMiJic3HgEzMjY3EzMnIiY1NDYzMhYVFAZfDkM%2FFyMRGQoUEBwhCm9NDRMdIhgTHSM9RlYKCTkGBzAsAiRlFxYZIRgWGSAAAQAfAAAB7QLIAAwATgC4AABFWLgAAC8buQAAABI%2BWbgAAEVYuAAELxu5AAQACD5ZuAAARVi4AAwvG7kADAAEPlm6AAIAAAAMERI5uAAI0LoACQAEAAgREjkwMRMzAzMTMwcTIycPASOtTWAC%2BVjCdU5dcBpMAsj%2BHQEBy%2F7l7XJ7AAAAAQAs%2F%2FQA%2BgLIABMAKwC4AABFWLgAAC8buQAAABI%2BWbgAAEVYuAAOLxu5AA4ABD5ZuQAHAAH0MDETMwMGFBUUMzI2NxcOASMiJjU0N61NfQIRAwYHAQoWECAhBgLI%2FZEICAMSAQI7BAQhHhAaAAAAAAEAHwAAAuoB8gAsAFgAuAAARVi4AAYvG7kABgAIPlm4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAAsLxu5ACwABD5ZuAAGELgADtC4ACwQuAAh0LgAFtC4AAYQuQAnAAH0uAAc0DAxEzMHMz4BMzIeAhc%2BATMyFhUUBgcDIxM%2BATU0IyIGBwMjEz4BNTQjIgYHAyN%2FPwcEJlQmHSgaDgMvVyY9NgQEPk09BARHFUgsRUw8BARGFkgrRUwB5kkkMQ8ZIxQtMkA5ER4U%2FsoBLBQYDUsqLv6oASwUGA1LKi7%2BqAAAAQAfAAAB2AHyABoARAC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAALxu5AAAACD5ZuAAARVi4ABovG7kAGgAEPlm4AA7QuAAGELkAFQAB9DAxEzMHMz4BMzIWFRQGBwMjEz4BNTQmIyIGBwMjfz8HBCpSLj41AwU%2BTDwEBCImHUcuRUwB5kkkMUA5ER4U%2FsoBLBQYDSUmKi7%2BqAAAAgAn%2F%2FQB2wHyAA8AHwA5ALgAAEVYuAAILxu5AAgACD5ZuAAARVi4AAAvG7kAAAAEPlm4AAgQuQAQAAH0uAAAELkAGAAB9DAxFyImNTQ%2BAjMyFhUUDgITIg4CFRQWMzI%2BAjU0JtRPXixKXjJPXy1JXx8hQDIeNTMiPzIeNQxoW0V0Uy9oW0V0Uy8BvydDWjNCRidCWjNCRwAC%2F%2Fb%2FMwHwAfIAFQAkAFIAuAAARVi4AAMvG7kAAwAIPlm4AABFWLgAES8buQARAAQ%2BWbgAAEVYuAACLxu5AAIABj5ZuAADELgACdC4AAkvuQAWAAH0uAARELkAHQAB9DAxFwcjEzMHMz4BMzIWFRQOAiMiJicjEyIGDwEeATMyPgI1NCZhH0yKPwYDJVUuQEwsSV8yJjwTAtUiUSMuFDIdJEQzHy8unwKzQB8tW1VGelo0Jx8BeCom6CYgK0hdMz49AAAAAgAn%2FzMB%2BAHyABUAJABWALgAAEVYuAAMLxu5AAwACD5ZuAAARVi4ABQvG7kAFAAGPlm4AABFWLgABC8buQAEAAQ%2BWbgADBC4ABHQuAARL7gABBC5ABYAAfS4AAwQuQAdAAH0MDElIw4BIyImNTQ%2BAjMyFhczNzMDIzcnMjY%2FAS4BIyIOAhUUFgFgAiRZLkBMLEpeMyc9EQQTPopNIXMiUiUsFTIcJEQ0HzBJJTBaVkZ6WjQoIT39TZ9iLTDZJiIrSF0yPz0AAAABAB8AAAF8AfIAEAA1ALgAAEVYuAAALxu5AAAACD5ZuAAARVi4ABAvG7kAEAAEPlm4AAAQuAAG0LgABi%2B4AAvcMDETMwczPgEzMhcHJiMiBgcDI38%2FCwQdTS0ZFRsQGiRMHz1MAeZdLTwJRAg%2BPP7NAAAAAAH%2F%2FP%2F0AX4B8gAzAEkAuAAARVi4ABUvG7kAFQAIPlm4AABFWLgALi8buQAuAAQ%2BWbkAAwAB9LoADQAuABUREjm4ABUQuQAcAAH0ugAkABUALhESOTAxNx4BMzI%2BAjU0LgInLgE1ND4CMzIWFwcuASMiBhUUHgIXHgMVFA4CIyIuAicsF0AmFSUdEAkUIxk5NhstPSItRxssFDAhJzUOGB8RISsbCxsxQycYMS0lDHYgJw0WHRENFhUWDh88KiA2JhUkHSsUHC0fDxgUEgkSISEiFCI4JxUOGSITAAABADz%2F9AFYAmwAHgBFALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4ABYvG7kAFgAEPlm4AAYQuQAJAAH0uAAA0LgABhC4AAPQuAAWELkADwAB9DAxEyM%2FAjMHMwcjAwYVFBYzMjY3Fw4BIyIuAjU0NjeDRwtMJEEbewx9OQMbIw4aCxERLh0gLBwMAwIBqDkFhoY%2B%2FuoSEh4eCgU3CA4RHScXDxkOAAEAOP%2F0Ae8B5gAaAFEAuAAARVi4AA0vG7kADQAIPlm4AABFWLgAGS8buQAZAAg%2BWbgAAEVYuAAGLxu5AAYABD5ZuAAARVi4AAEvG7kAAQAEPlm4AAYQuQAVAAH0MDEhIzcjDgEjIiY1NDY3EzMDDgEVFBYzMjY3EzMBjj8IBChTLT41AwU%2BTT0EBCImHUYtRUxKIzNBOBEeFAE2%2FtQUGA0lJiouAVgAAAEAOwAAAeEB5gANAEAAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgACi8buQAKAAg%2BWbgAAEVYuAANLxu5AA0ABD5ZugAGAAAADRESOTAxEzMTHgEXMz4BNxMzASM7TCQEBgQEESQTj03%2B%2FVwB5v7nI0sjJEkkARn%2BGgAAAAABAEYAAALHAeYAIQBbALgAAEVYuAAALxu5AAAACD5ZuAAARVi4ACEvG7kAIQAEPlm6AAUAAAAhERI5uAAAELgACtC4ACEQuAAX0LgAChC4ABTQugAPABcAFBESOboAHAAhAAoREjkwMRMzEx4BFzM%2BATcTMxMeARczPgE3EzMDIwMuAScjDgEHAyNGTBABAQEEDxsQgEsRAgECBA4aEH9I3V8OAQEBBA8dD3ZcAeb%2B4iNDIiJDIwEe%2FuIjQyIiQyMBHv4aAQojSCQkSCP%2B9gAAAf%2FUAAAB0gHmABkARQC4AABFWLgAAS8buQABAAg%2BWbgAAEVYuAAZLxu5ABkABD5ZuAAP0LgAARC4AAvQugAHAA8ACxESOboAFAABABkREjkwMRMnMxceARczPgE%2FATMHFyMnLgEnIw4BDwEjrltOKggNCAQPIA9VU8hjTywIEQoEECITXlQBAuRsFicVFCkVbPXxchYtFxcrF3MAAf%2FC%2Fy8B4wHmABwAPQC4AABFWLgABy8buQAHAAg%2BWbgAAEVYuAAYLxu5ABgABj5ZuQACAAH0ugAMABgABxESObgABxC4ABHQMDEHFjMyNj8BAzMTHgEXMz4BNxMzAQ4DIyImJzclEhIlQRkSU0wmBQgDBBElEoxM%2FuITKjE6IwsfDhmKCTwzIwHn%2Fu8hTSMjSyMBEf3xJD0tGgYIOQAAAAH%2F9gAAAa4B5gAJAEUAuAAARVi4AAMvG7kAAwAIPlm4AABFWLgACC8buQAIAAQ%2BWbkABgAB9LgAANC4AAAvuAADELkAAQAB9LgABdC4AAUvMDEnASM3IQcBMwchAgFD3Q0BPQj%2Bvf4M%2FqEsAXw%2BLf6FPgD%2F%2F%2F%2FLAAAB1QMwAiYABAAAAAcA4QDdAAD%2F%2F%2F%2FLAAAB6AMwAiYABAAAAAcA4wDdAAD%2F%2F%2F%2FLAAAB2AMwAiYABAAAAAcA5QDdAAD%2F%2F%2F%2FLAAAB9gMwAiYABAAAAAcA5wDdAAD%2F%2F%2F%2FLAAAB4wMqAiYABAAAAAcA6gDdAAD%2F%2F%2F%2FLAAAB1QNrAiYABAAAAAcA7ADdAAAAAv%2FfAAADPAKQAAYAFgBoALgAAEVYuAAULxu5ABQAED5ZuAAARVi4AA4vG7kADgAEPlm4AABFWLgAEi8buQASAAQ%2BWbsABgABABAABCu7AAkAAQAKAAQruAAUELkABwAB9LoAAQAUAAcREjm4AA4QuQAMAAH0MDEBIw4BDwEzEwczByMHIQchNyMHIwEhBwHRAyZJJlSokCrlDeQzARoN%2FpknxoNZAcsBkg4CVThqN3wBT9VC9kLCwgKQQf%2F%2FADn%2FKwItApwCJgAGAAAABwDuARkAAP%2F%2FACMAAAIQAzACJgAIAAAABwDhAOgAAP%2F%2FACMAAAIQAzACJgAIAAAABwDjAOgAAP%2F%2FACMAAAIQAzACJgAIAAAABwDlAOgAAP%2F%2FACMAAAIQAyoCJgAIAAAABwDqAOgAAP%2F%2FACMAAAD9AzACJgAMAAAABgDhUwAAAP%2F%2FACMAAAFeAzACJgAMAAAABgDjUwAAAP%2F%2FACMAAAFOAzACJgAMAAAABgDlUwAAAP%2F%2FACMAAAFZAyoCJgAMAAAABgDqUwAAAP%2F%2FACMAAAJmAzACJgARAAAABwDnAREAAP%2F%2FADz%2F9AJeAzACJgASAAAABwDhARgAAP%2F%2FADz%2F9AJeAzACJgASAAAABwDjARgAAP%2F%2FADz%2F9AJeAzACJgASAAAABwDlARgAAP%2F%2FADz%2F9AJeAzACJgASAAAABwDnARgAAP%2F%2FADz%2F9AJeAyoCJgASAAAABwDqARgAAAAD%2F%2F3%2F4gKhAq8ACgAVAC8ASQC4AABFWLgAKi8buQAqABA%2BWbgAAEVYuAAdLxu5AB0ABD5ZuQADAAH0ugAKAB0AKhESObgAKhC5AA4AAfS6ABUAHQAqERI5MDE3HgEzMj4CNTQvAS4BIyIOAhUUFwEWFRQOAiMiJicHJzcmNTQ%2BAjMyFhc3F64TOSk1Vz4iCxUTOyo1Vz4iDAGpHi9UdkY2Ux1UKF8gL1R1RzhUHVkkdR0hPWB2OTQsNCAiPGB2OjkrAXtBWUuSc0YlI1ojZUJbS5FzRiclXyMAAAAAAgA8AAADSQKQABIAHQBvALgAAEVYuAAFLxu5AAUAED5ZuAAARVi4AA8vG7kADwAEPlm7AAoAAQALAAQruAAFELkABwAB9LgADxC5AA0AAfS4AAcQuAAT0LgAEy%2B4AA0QuAAb0LgAGy%2B4ABzQuAAcL7gAExC4AB3QuAAdLzAxEzQ%2BAjMhByEHMwcjByEHISImASIOAhUUFjsBEzwwXIRTAaoO%2Fvcr3w7dMwEUDv6EiY0BY0BmSCZmZCdqAQBak2k6QdVC9kKHAcoxV3tJXmcCEQAAAP%2F%2FAE%2F%2F9AJmAzACJgAYAAAABwDhAQ4AAP%2F%2FAE%2F%2F9AJmAzACJgAYAAAABwDjAQ4AAP%2F%2FAE%2F%2F9AJmAzACJgAYAAAABwDlAQ4AAP%2F%2FAE%2F%2F9AJmAyoCJgAYAAAABwDqAQ4AAP%2F%2FAFMAAAIeAzACJgAcAAAABwDjALgAAAACAC8AAAJIApAADgAdAFcAuAAARVi4AA8vG7kADwAQPlm4AABFWLgAFy8buQAXAAQ%2BWbsACwABAAwABCu4ABcQuQAAAAH0uAAPELkACAAB9LgADBC4ABnQuAALELgAG9C4ABsvMDE3Mj4CNTQmKwEHMwcjAxMyFhUUDgIrARMjPwET5UBmSCZmZDYtlgqVNKOJjTFbhFOwQUcJRjpAMVd6SV5o4Sz%2B%2FAJQh3lZlGk6AUQpAwEgAAAAAgAjAAACFwKUABAAGQA9ALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AA8vG7kADwAEPlm7ABEAAQANAAQruAAAELgAF9y5AAMAAfQwMRMzBzMyHgIVFA4CKwEHIzcyNjU0JisBA6ZOF3MtSTQdK0xpP2oeTddnaUpHaTQClHMSJz0qPFg5HJjXUU45M%2F71AAD%2F%2FwAn%2F%2FQB%2BALIAiYAHgAAAAcA4ADVAAD%2F%2FwAn%2F%2FQB%2BALIAiYAHgAAAAcA4gDVAAD%2F%2FwAn%2F%2FQB%2BALIAiYAHgAAAAcA5ADVAAD%2F%2FwAn%2F%2FQB%2BAKqAiYAHgAAAAcA5gDVAAD%2F%2FwAn%2F%2FQB%2BAKsAiYAHgAAAAcA6QDVAAD%2F%2FwAn%2F%2FQB%2BALUAiYAHgAAAAcA6wDVAAEAAwAg%2F%2FQC2AHyADcARQBRAJMAuAAARVi4ABIvG7kAEgAIPlm4AABFWLgAGC8buQAYAAg%2BWbgAAEVYuAAtLxu5AC0ABD5ZuAAARVi4ADMvG7kAMwAEPlm7ADgAAQAgAAQruwAFAAEARgAEK7gAEhC5AAsAAfS6ABUALQASERI5uAAtELkAJgAB9LoAMAAtABIREjm4AAsQuABA0LgAJhC4AEzQMDE3ND4CNz4BNTQmIyIGByc%2BATMyFhc%2BATMyHgIVFAYHIQYeAjMyNjcXDgEjIiYnDgEjIi4CJT4BNTQuAiMiDgIPAQ4BFRQWMzI2NyY2IC9UdUYDAictIEUjFSZaLTJBCCJXLik5JBENBf7RBgwgMSAdORceHU4vNVMRMGM2Gi0iFAJxAgMKFiQaFy8pIQlLbXwsIh9QKgQBajRILhcCDhMLLS4YFDgVHS8wLTIbL0ElHTQOKEIuGhkRMxUfNyktMw8eLMoOFg4VJx4SFio6JB0DQD0jJiosIDMAAAD%2F%2FwAl%2FysBsgHyAiYAIAAAAAcA7QDOAAD%2F%2FwAl%2F%2FQBvwLIAiYAIgAAAAcA4ADGAAD%2F%2FwAl%2F%2FQBvwLIAiYAIgAAAAcA4gDGAAD%2F%2FwAl%2F%2FQBvwLIAiYAIgAAAAcA5ADGAAD%2F%2FwAl%2F%2FQBxAKsAiYAIgAAAAcA6QDGAAD%2F%2FwAfAAAA8gLIAiYAZwAAAAYA4EYAAAD%2F%2FwAfAAABOwLIAiYAZwAAAAYA4kYAAAD%2F%2FwAfAAABMQLIAiYAZwAAAAYA5EYAAAD%2F%2FwAfAAABRAKsAiYAZwAAAAYA6UYAAAAAAQAfAAAAzQHmAAMAJQC4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAACLxu5AAIABD5ZMDETMwMjgE1iTAHm%2FhoA%2F%2F8AHwAAAfUCqgImACsAAAAHAOYA5QAA%2F%2F8AJ%2F%2F0AdsCyAImACwAAAAHAOAA2AAA%2F%2F8AJ%2F%2F0AdsCyAImACwAAAAHAOIA2AAA%2F%2F8AJ%2F%2F0AdsCyAImACwAAAAHAOQA2AAA%2F%2F8AJ%2F%2F0AegCqgImACwAAAAHAOYA2AAA%2F%2F8AJ%2F%2F0AdsCrAImACwAAAAHAOkA2AAAAAMAAP%2FpAgcB%2FAAJABMAKwBJALgAAEVYuAAnLxu5ACcACD5ZuAAARVi4ABsvG7kAGwAEPlm5AAIAAfS6AAkAGwAnERI5uAAnELkADAAB9LoAEwAbACcREjkwMTcWMzI%2BAjU0LwEmIyIOAhUUFwEWFRQOAiMiJwcnNyY1ND4CMzIXNxeJGzYlQzMdBhIcNyVDMh0HAU0XLUlfMk0vOx1AGSxKXjJQLz0eWCYqRVkvIBgpKipFWi8kGAEbLj5FdFQuMj0cQi9BRXRTLzU%2FHAAAAAADACf%2F9AMLAfIAKgA6AEcAjQC4AABFWLgACC8buQAIAAg%2BWbgAAEVYuAAQLxu5ABAACD5ZuAAARVi4AAAvG7kAAAAEPlm4AABFWLgAJS8buQAlAAQ%2BWbsAOwABABgABCu6AAsAAAAIERI5uAAlELkAHgAB9LoAKAAAAAgREjm4AAgQuQArAAH0uAAeELgAM9C4ACsQuABC0LgAQi8wMRciJjU0PgIzMhYXPgMzMh4CFRQGByEGHgIzMjY3Fw4BIyImJw4BEyIOAhUUFjMyPgI1NCYFNjU0LgIjIg4CB9BNXCxIXTE9Sw4QKjAyGSk6JBANBf7UBg8hLxwdORcdHVAwOlAOImoXID8xHjUzIT4xHjUBbwYKFiQaGC8oHwkMaFtFdFMvQT0eLyARGy9BJR00Di9DLBQZETMVH0NCP0YBvydDWjNCRidCWjNCR5wYGhUnHhIWKjokAAEAH%2F%2F0AfkC1AA%2FAEYAuAAARVi4AAUvG7kABQASPlm4AABFWLgAPi8buQA%2BAAQ%2BWbgAAEVYuAAdLxu5AB0ABD5ZuQAkAAH0uAAFELkAOAAB9DAxEz4DMzIeAhUUDgQVFB4EFRQOAiMiJic3HgEzMjY1NC4ENTQ%2BBDU0JiMiDgIHAyOICSQ1RioeNCcXFB0iHRQWICcgFhktPCQlSB8jFzMfJzcWIiYiFhQdIx0UIicaKyIYB2ZMAg0pSDYgECEyIR8vJh8eIBQUHhwdIy0fITkqGRkZMxMWMSYYJB4cICYaGikiICMoGyIsGSo4IP4F%2F%2F8AOP%2F0Ae8CyAImADIAAAAHAOAA0QAA%2F%2F8AOP%2F0Ae8CyAImADIAAAAHAOIA0QAA%2F%2F8AOP%2F0Ae8CyAImADIAAAAHAOQA0QAA%2F%2F8AOP%2F0Ae8CrAImADIAAAAHAOkA0QAA%2F%2F%2F%2Fwv8vAeMCyAImADYAAAAHAOIAogAA%2F%2F%2F%2Fwv8vAeMCrAImADYAAAAHAOkAogAAAAIAK%2F%2F0AhIC2gARADUAKAC4AABFWLgAGi8buQAaAAQ%2BWbsAJAABAAgABCu4ABoQuQAAAAH0MDE3Mj4CNy4BIyIOAhUUHgITHgEVFA4CIyIuAjU0PgIzMhYXLgEnByc3Jic3HgEXNxfhJDwsGwMUNycnPisYDxwqxyImIkFePCU%2FLxogPFU2JD8WBB4bkxCHJTokIz0akRA0KUZdNR4vJDpKJxouIxQCHzJ6TEeCYzscMUMoNGNNLyYhPF4nPSk4KiUuFDIdPCkAAv%2F2%2FzMB8ALIABYAJQBvALgAAEVYuAAILxu5AAgAEj5ZuAAARVi4AA8vG7kADwAIPlm4AABFWLgABi8buQAGAAY%2BWbgAAEVYuAAALxu5AAAABD5ZugAEAAYACBESOboADAAGAAgREjm4AA8QuQAXAAH0uAAAELkAHgAB9DAxFyImJyMPASMTMw8BMz4BMzIWFRQOAhMiBg8BHgEzMj4CNTQm6iY7FAISH0y3TScWAiRULUBMLElfLCJRIy4UMh0kRDMfLwwnH2ifA5W%2BYB0rW1VGelo0Ab4qJekmICtIXTM%2BPQAAAQArAAACnALUACsAqAC4AABFWLgAAy8buQADABI%2BWbgAAEVYuAAfLxu5AB8AEj5ZuAAARVi4AA4vG7kADgAIPlm4AABFWLgAGi8buQAaAAg%2BWbgAAEVYuAAqLxu5ACoACD5ZuAAARVi4ABIvG7kAEgAEPlm4AABFWLgAFi8buQAWAAQ%2BWbgAAxC5AAoAAfS4AA4QuQAQAAH0uAAU0LgAFdC4ABjQuAAZ0LgAHxC5ACYAAfQwMQE%2BATMyFhcHLgEjIgYPATMHIwMjEyMDIxMjPwI%2BATMyFhcHLgEjIgYPATMBqw9OPRopFBwKGhEhKggRYw1iVU1VwVZMVT8LQQ4QUT8dLBQbDBwUIy4ID8ICN0pTDQo4BwoyK1M%2B%2FlgBqP5YAag5BUdKUw0KOAcKMitJAAEAK%2F%2F0AkUC1AAyAJsAuAAARVi4ACAvG7kAIAASPlm4AABFWLgAGy8buQAbAAg%2BWbgAAEVYuAArLxu5ACsACD5ZuAAARVi4AC8vG7kALwAIPlm4AABFWLgAFy8buQAXAAQ%2BWbgAAEVYuAAMLxu5AAwABD5ZuQAFAAH0uAAvELkAFQAB9LgAFtC4ABnQuAAa0LgAIBC5ACcAAfS4ABoQuAAx0LgAMtAwMSUGFRQWMzI2NxcOASMiLgI1NDY3EyMDIxMjPwI%2BATMyFhcHLgEjIgYPATM3MwczByMBgwMbIw4aCxAQLh0gLBwMAgM5o1ZMVT8LQRAPTT4aKRMbCxoRISkIEackQRt7DH2SEhIeHgoFNwgOER0nFw8ZDgES%2FlgBqDkFUUpTDQo4BwoyK1OGhj4AAAAAAwAP%2F%2FQCRAKcAAsAGgBDAIwAuAAARVi4ADUvG7kANQAQPlm4AABFWLgAJi8buQAmAAQ%2BWbgAAEVYuAAhLxu5ACEABD5ZugBAACMAAyu4ACYQuQADAAH0ugAGACMAQBESOboACQAmADUREjm4AAkvuAAO3LgANRC5ABYAAfS6AB4AIwBAERI5ugAuAAkADhESOboAPQAJAA4REjkwMTcUFjMyNjcuAScOARMUFz4DNTQmIyIOAgUOAQcWFwcmJw4BIyImNTQ%2BAjcmNTQ%2BAjMyFhUUDgIHHgEXPgE3WzkuI0UgJ0IXL0CKCxwzJhcYGhUlGxABXx9MMDcvID0%2BKmA2S1ocLjwgEhwvPiM2NiA0QiIVQCYpPRqXLjgcGStnOCBIARgmLBEiJiwbFyEUJDGdQns0LBE%2BFDUiJ1NGKEE2KxQ6NypGMx09LiY%2BNS0VNWIoK2Q6AAIAKv%2F0Ac4CigATACUAOQC4AABFWLgACi8buQAKAA4%2BWbgAAEVYuAAALxu5AAAABD5ZuAAKELkAFAAB9LgAABC5AB4AAfQwMRciLgI1ND4CMzIeAhUUDgITIg4CFRQeAjMyPgI1NCbIJjsoFStIYDUlOycVKkhfMCdEMx0LFiIXJ0QzHSwMITpPL1miekgiOlEuWqB6RwJYRm%2BKQyE4KRdFb4lEQ1cAAAEAGgAAAYACfgALAEMAuAAARVi4AAYvG7kABgAOPlm4AABFWLgACy8buQALAAQ%2BWbkAAQAB9LgABhC4AALcuAAGELgABNy4AAEQuAAI0DAxNzMTIzc2NzMDMwchJ4tgcQpVNzt0ggz%2BpkAB3jIMIv3CQAAAAf%2F2AAABxAKKABwAOQC4AABFWLgADy8buQAPAA4%2BWbgAAEVYuAAbLxu5ABsABD5ZuQAZAAH0uAAA0LgADxC5AAgAAfQwMSc%2BAzU0JiMiBgcnPgEzMh4CFRQOAgchByECYI5eLzM1IEEiJyxXMCk%2FLBYqUn1SARQM%2FnUuUXpkVy8sPCEfMCYpFyo6IjVdYm9IQgAAAAH%2F9%2F%2F0AckCigAuAFMAuAAARVi4ABwvG7kAHAAOPlm4AABFWLgAKy8buQArAAQ%2BWbkAAwAB9LoADQAcACsREjm4AA0vuQAOAAH0uAAcELkAFgAB9LoAIgANAA4REjkwMTceATMyPgI1NC4CIzcyPgI1NCYjIgYHJzYzMhYVFAYHFR4BFRQOAiMiJicqF0kyIjkpFxQsRjMMO1AxFTIzHUMdJ1NdUVZKSzU7Iz5WMkJkHooiNBQjMB0ZKyAROhgmLxcqNhwXMz9QQj1cFQQRSDIuSTQcQS0AAAIACAAAAb8CfgAKABQAUwC4AABFWLgABS8buQAFAA4%2BWbgAAEVYuAAALxu5AAAABD5ZuwALAAEAAQAEK7gACxC4ABTQuAAD0LgACxC4AAbQuAABELgACdC4AAUQuAAP3DAxMzchNwEzAzMHIwcnNz4BNyMOAQ8B9CT%2B8AkBVlRQVA1TIxglBhEIBBQnErGwNAGa%2FnA%2BsO69HUEhHDUX1AAB%2F%2Fz%2F9AHXAn4AJgBJALgAAEVYuAASLxu5ABIADj5ZuAAARVi4ACMvG7kAIwAEPlm5AAUAAfS6ABkAEgAjERI5uAAZL7kADQAB9LgAEhC5ABQAAfQwMTceAzMyPgI1NCYjIgYHJxMhByMHPgEzMh4CFRQOAiMiJicuCxoiLBwfOSwaPzQfLCAhUAErDek0ESoZJD0tGShCVy9CXR2JER4YDhgtPic%2BPBARGgEtQrwIDBUqPyo5XEAjPy0AAAIAM%2F%2F0AegCigASADMAQwC4AABFWLgAMC8buQAwAA4%2BWbgAAEVYuAAmLxu5ACYABD5ZuwAeAAEAAAAEK7gAJhC5AAsAAfS4ADAQuQAWAAH0MDEBIg4CBwYUFRQWMzI%2BAjU0JjcuASMiDgIHPgEzMhYVFA4CIyIuAjU0PgIzMhYXAQUMHyQnEwE6MxswJBQzfBErHyZEOSkKIVIhR1QfOEssKUEuGS1QbUA0QxQBSQgSHxgLFwxFVRwtOh43QcccHidHZT8mJFhOL1RAJSA5UC9hpHdCMSAAAAEAawAAAgMCfgAPADMAuAAARVi4AAcvG7kABwAOPlm4AABFWLgAAC8buQAAAAQ%2BWbgABxC5AAUAAfS4AAnQMDEzPgM3ITchBw4DByN4FTRFWj3%2Bzg4BigpKZUUsEVBam4x%2FPEIyRoyQmFIAAAMAI%2F%2F0AdcCigARACEARwBbALgAAEVYuAAwLxu5ADAADj5ZuAAARVi4AEMvG7kAQwAEPlm6AAAAMABDERI5uAAAL7gAQxC5AAgAAfS4AAAQuAAn3LgAEtC4ADAQuQAaAAH0uAASELgAOdwwMRMOARUUHgIzMj4CNTQuAjc%2BAzU0JiMiDgIVFBYHND4CNzUuATU0PgIzMh4CFRQGBxUeAxUUDgIjIi4C3DNAEyEsGRoxJxcXKDQ8EiMbEDcpFigfEjrcGSk2HRwdHjRDJh45LBpENg4fGRAjOk0rI0M0IQFAHEo4HCseEBEfLx4cKiMeKAweJSsZMDQPHSoaMjzYJDwvJA0EHDsnKUAtGBIlOCVAVh4EChwkLRkrRTAaFCk%2FAAIAEv%2F0AccCigASADMAQwC4AABFWLgAJi8buQAmAA4%2BWbgAAEVYuAAwLxu5ADAABD5ZuwAAAAEAHgAEK7gAJhC5AAsAAfS4ADAQuQAWAAH0MDETMj4CNzY0NTQmIyIOAhUUFgceATMyPgI3DgEjIiY1ND4CMzIeAhUUDgIjIiYn9QwfJCcTATozGzAjFDN9ESsgJUQ4KQohUSBIVB84SywpQi4YLVBtQDRDFAE1CBIfGAsXDEVVHC06HjhAxxweJ0dkPiUjWE4vVEAlIDlQL2Kjd0IxIAAAAAEAF%2F%2F0AIgAbAALABoAuAAARVi4AAAvG7kAAAAEPlm5AAYAAfQwMRciJjU0NjMyFhUUBkYWGSYdFhglDBwWGiwdFhorAAAAAAH%2F4f9cAJAAbAAQAB4AuAAARVi4AAMvG7kAAwAEPlm5AAoAAfS4ABDcMDEHPgE3IyImNTQ2MzIWFRQGBx8vOAgCFx0jHRocWkp2EjslGRcZJyQeSm8VAP%2F%2FABf%2F9ADIAd0CJwCGAEABcQAGAIYAAP%2F%2F%2F%2BH%2FXADIAd0CJwCGAEABcQAGAIcAAAACACv%2F9AEFAp8ABQARABoAuAAARVi4AAYvG7kABgAEPlm5AAwAAfQwMRM3MwcDIwciJjU0NjMyFhUUBqkPTRNWNgsWGiYdFxckAkNcXP6B0BwWGiwdFhorAAAAAAIAFf9HAO4B8gAFABMAGgC4AABFWLgABi8buQAGAAg%2BWbkADgAB9DAxFwcjNxMzNzIWFRQOAiMiJjU0NnEPTRNWNgsWGQoSGA8WFyRdXFwBf9AcFg0ZFAwdFhorAAAAAAIAXv%2F0AaICqgALACcAKAC4AABFWLgAAC8buQAAAAQ%2BWbsAHQABABYABCu4AAAQuQAGAAH0MDEXIiY1NDYzMhYVFAYnPgU1NCYjIgYHJz4BMzIWFRQOBAeNFhkmHRYYJRkCICwyKhwuKB02FikdUS1GUh0sNC4hAwwcFhosHRYaK9UqQTUtLTEfKi0cFy4eJ0lBKT40LzI7JgAAAAL%2F%2FP89AUAB8wALACcAKAC4AABFWLgAAC8buQAAAAg%2BWbsAFgABAB0ABCu4AAAQuQAGAAH0MDEBMhYVFAYjIiY1NDYXDgUVFBYzMjY3Fw4BIyImNTQ%2BBDcBEBYaJh0XFyQaAx8sMiocLSgdNxYoHVAtRlIdKzQuIQQB8xwWGS0dFhor1SpANS0uMR8pLhwYLh8nSUIoPjQvMzomAAEAgAGqAPECnwAFAAsAugABAAQAAyswMRM3Mw8BI5cPSxMqNAJDXFyZAAD%2F%2FwCAAaoBlwKfACYAjgAAAAcAjgCmAAAAAQBuAbIBAgKzABIADQC7AAMAAQAKAAQrMDEBDgEHMzIWFRQGIyImNTQ%2BAjcBAi0xAQUVHB4YFx4UJDAcAo0XQh0XFRciJCAiOzAkDAAAAAABAG8BuwEEArwAEgANALsACgABAAMABCswMRM%2BATcjIiY1NDYzMhYVFA4CB28uMQEFFhweGRceFCQxHAHgF0McFxYXIiQgIzowJAz%2F%2FwBuAbIBqAKzACYAkAAAAAcAkACmAAD%2F%2FwBvAbsBqgK8ACYAkQAAAAcAkQCmAAD%2F%2F%2F%2F4%2F20AjQBuAgcAkf%2BJ%2FbIAAP%2F%2F%2F%2Fj%2FbQEyAG4AJwCR%2F4n9sgAHAJEALv2yAAAAAQAoAEMA6wGzAAYACwC6AAIABgADKzAxPwIXBxcHKAucHI5VI%2BE%2BlB2coRYAAAAAAQAXAEMA2gGzAAYACwC6AAYAAgADKzAxEw8BJzcnN9oLnByNVSQBFT6UHZyhFgD%2F%2FwAoAEMBigGzACYAlgAAAAcAlgCfAAD%2F%2FwAXAEMBeQGzACYAlwAAAAcAlwCfAAAAAQAjAN4BCgEZAAMADQC7AAEAAQACAAQrMDETMwcjL9sN2gEZOwAA%2F%2F8AJADeAQsBGQIGAJoBAAABACMA4QGrARcAAwANALsAAQABAAIABCswMRMhByEuAX0M%2FoQBFzYAAQAjAOEC3gEXAAMADQC7AAEAAQACAAQrMDETIQchLgKwC%2F1QARc2%2F%2F8ATwEMAMABhAIHAIYAOAEYAAAAAQApAJEBAgF%2FAA8ACwC6AAgAAAADKzAxNyImNTQ%2BAjMyFhUUDgKLKzcRHywcKjcRHyyROi8YMCUYOy4ZMCUXAAH%2F3P%2BEAbD%2FtgADAA0AuwAAAAEAAQAEKzAxBQchNwGwCv42C0oyMgABAEH%2FUAFXAtsAEgALALoACAAAAAMrMDEXLgE1ND4CNxcGAhUUHgIXB3oYIR88VjgtamwFCxALMrBAolNXnJKLRhmH%2FuCeI0tKRhwTAAAAAAH%2F1P9QAOoC2wARAAsAugAAAAgAAyswMRMeARUUDgIHJxIRNC4CJzexGCEfPFc3LdUFChALMgLbQKJSWJySi0YaAQ0BNyNMSkQdEwABAAj%2FaAFdAsQABwAXALsAAAABAAEABCu7AAQAAQAFAAQrMDEXByMTMwcjA7wLqaypB3GZay0DXC38%2FgAB%2F8%2F%2FaAEmAsQABwAXALsAAAABAAUABCu7AAQAAQABAAQrMDEXEyM3MwMjN0ibcAirrKsKawMCLfykLQABACD%2FaAFgAsQANQArALsAMQABADIABCu7ABkAAQAaAAQruwALAAEACgAEK7oAJQAKAAsREjkwMRc0PgI1NC4CIzcyPgI3PgE3PgM7AQcjIgYHDgEHDgEHFR4BFRQOAhUUFjsBByMiJi8RFREGDxwVCxkjFwwDCQsLBxYfLB4uChooIgoIDQkKJyMYFBAUEBcgGAosLylIHEpNRBYKFQ8KMg4XHA4wXDMnNB8NLS4wK1suMTYJBAgfFhpJTUYYGRgtJgAAAf%2FM%2F2gBDALEADUAKwC7ABsAAQAYAAQruwAyAAEAMQAEK7sACgABAAsABCu6ACUACwAKERI5MDETFA4CFRQeAjMHIg4CBw4BBw4DKwE3MzI2Nz4BNz4BNzUuATU0PgI1NCYrATczMhb9ERURBg8bFgsaIxcLAwkLCwgWHywdLgkaKCMJCA4ICyYjGRMQFBAWIBkKLDApAnQcS0xGFgoTDwoyDhccDjBdNCczHg0tLDErWi8yNgkECB8WGklMRhgaGC0nAAH%2FuP9gAaICxgADABgAuAAARVi4AAAvG7kAAAASPlm4AALcMDEBMwEjAWo4%2Fk03Asb8mgABAF%2F%2FBgCTAu4AAwALALoAAQACAAMrMDETMxEjXzQ0Au78GAABAFj%2FYAEBAsYAAwAYALgAAEVYuAAALxu5AAAAEj5ZuAAC3DAxEzMTI1g0dTYCxvyaAAAAAgBf%2FwYAkwLuAAMABwALALoAAQAFAAMrMDETMxEjFxEjEV80NDQ0Au7%2BM0z%2BMQHPAAAAAAEAfQGmAZ0CyQAOABQAuAAARVi4AAUvG7kABQASPlkwMRM3JzcXNxcHNxcHFwcnB5BFWBJjGSwIZwdnJig0UAHPWDEoIWoEaw4rH2EXWEwAAgAP%2F8QBwgKsAA8ARQAXALsALgABACcABCu7AEIAAQATAAQrMDElPgE1NC4CJw4BFRQeAhMuASMiBhUUHgQVFAYHFhUUDgIjIiYnNx4BMzI2NTQuBDU0NjcmNTQ%2BAjMyFhcBKiMlIzQ7GSEqJDU9hRU4IB8wIDE5MSA4Mg0YLDskLVcjKRpEJCYzIDE5MSA8MBAXKDchLU0dug0rKB0rJCIUDjAmHikiIAFnGCInIxgkISEpNiU6QhcaHSA3KBcoIzIcJSwjGiYgHic0JTZLFBsfITUlFSkgAAAAAAIASf%2BwAgsCkAADABAAJQC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAOLxu5AA4AED5ZMDEBMwMjAyIuAjU0PgI7AQMBvk2TTActUDwjLkxjNTBXApD9IAEzFyxCK0BgPh%2F%2BUwADACT%2F9QKVAo0AHQAxAEUAPAC4AABFWLgAHi8buQAeAAQ%2BWbsAKAABADIABCu7ABQAAQAbAAQruwAFAAEADAAEK7gAHhC5ADwAAfQwMRM0PgIzMhYXBy4BIyIOAhUUFjMyNjcXDgEjIiYXIi4CNTQ%2BAjMyHgIVFA4CEyIOAhUUHgIzMj4CNTQuArQmPEokIy4RJQ4fFxgyKho1LRwtGRkfPyhBUXY6YUUmNF%2BGUTphRSc0YIYQRnRULh45UzRGdVQuHjpTARQ3Vz0hHhUiERIaL0EnNjcXECcXHE3VKUlmPUqLbEIpSWU9SoxsQgJwO2F7PzVYQCQ7YXs%2FNVhAJAAABABJAUMBswLGAA0AFQApADsASQC4AABFWLgAIC8buQAgABI%2BWbgAAEVYuAAOLxu5AA4ACj5ZuwA0AAEAFgAEK7oAAQATAAMruAAOELgACty4ACAQuQAqAAH0MDETMzIWFRQGBxcjJyMHIzcyNjU0KwEHFyIuAjU0PgIzMh4CFRQOAgMiDgIVFB4CMzI%2BAjU0JtJCHSIaFxwoFiIPJlEXGiEZDQchOywaHjVJKyE7LBseNkkJIjorGBEhMB4hOysZRQJrHhwXIghPRkZkFhIeRsIZLD4mKk49JRktPiUqTz0kAWAdMUEkHjImFR0xQiQ8TgAAAAIALf9lAwkChABGAFQAUAC4AABFWLgAIy8buQAjAA4%2BWbsAFAABABkABCu7AAAAAQAtAAQruwBKAAEANAAEK7sAPgABAFAABCu4ACMQuQAKAAH0ugBBAFAAPhESOTAxJTI%2BAjU0LgIjIg4CFRQeAjMyNxcGIyIuAjU0PgIzMh4CFRQOAiMiJicjDgEjIi4CNTQ%2BAjMyFzM3MwcGFicUFjMyPwEuASMiDgICRRgzKBodPl5ARIVpQSlFXTVLPBdQVEFwUjBJeZ1UR25MKCM7TCgjMAcDFzshFyofEx81RykvGgINMzILF%2BwnHS0tJA4cER4xJBRkHz1ZOTZeRCdAcZlZQ2dHJCUuKytRdkxnsIFJLE9tQElwTScpIx0mEiIzICxWQykzK9kvOWItLD2hGhMiND8AAgAYAAAB6wKKABsAHwClALgAAEVYuAAILxu5AAgADj5ZuAAARVi4AAwvG7kADAAOPlm4AABFWLgAFi8buQAWAAQ%2BWbgAAEVYuAAaLxu5ABoABD5ZuwADAAEAAAAEK7sABwABAAQABCu4AAcQuAAK0LgABxC4AA7QuAAEELgAENC4AAMQuAAS0LgAABC4ABTQuAAAELgAGNC4AAMQuAAc0LgABBC4AB3QugAfABYACBESOTAxNyM3MzcjNzM3MwczNzMHMwcjBzMHIwcjNyMHIwE3IwdnTw1SLlAOVDszOn07MzpPDlIuUQ5VQDRBfkA0AQQufy7NN5Y3ubm5uTeWN83NzQEElpb%2F%2FwCyAbgBVwM%2BAgcAtwBWAbgAAP%2F%2FAFcBuAGCA0oCBwC4AFYBuAAA%2F%2F8AVgGsAYADSgIHALkAVgG4AAD%2F%2FwBfAbgBhgM%2BAgcAugBWAbgAAAACAA%2F%2F9AFAAZMAEwAjACgAuAAARVi4AAAvG7kAAAAEPlm7AAoAAQAUAAQruAAAELkAHAAB9DAxFyIuAjU0PgIzMh4CFRQOAhMiDgIVFBYzMj4CNTQmih0uHxEYL0MsHS4fERgvRAscLB4QICUcLB4QIAwXKTchLl5MLxcpNyEvXksvAW0mPUokLjwmPEokLj0AAAAAAQBcAAABAQGGAAgADQC7AAUAAQAAAAQrMDETIzc%2BATczAyO2WggnLxgvTTwBOCcGERD%2BegAAAAABAAEAAAEsAZIAGgAoALgAAEVYuAAZLxu5ABkABD5ZuwAPAAEACAAEK7gAGRC5ABcAAfQwMTc%2BAzU0JiMiBgcnPgEzMhYVFA4CBzMHIQg9WDgaICAVKRMjHDsmNj4ZMUkwowr%2B%2FyYrRTo1Gx0hGxQkGyQ4MR86Oj8kMwAAAQAA%2F%2FQBKgGSACkAPAC4AABFWLgAJi8buQAmAAQ%2BWbsAGAABABIABCu7AAoAAQAJAAQruAAmELkAAwAB9LoAHgAJAAoREjkwMTceATMyNjU0JiM3Mj4CNTQmIyIHJz4BMzIWFRQGBx4BFRQOAiMiJicpDishIzIyOQkiLhwMIB0pKhsdOyExPS8sIiIXJjQcMUQRYRoiJSMdKikOFhwOGR4hKRUTMi0lOg4MMhodLSAQMCAAAgAJAAABMAGGAAUAEAAnALsADQABAAMABCu7ABAAAQAGAAQruAAQELgAANC4AAYQuAAK0DAxPwIjDwEXIwcjNyM%2FATMHM8IPGgRDVtk4FTYVsAfWQTA5lUxsVGQramoh%2B%2FEA%2F%2F8APAECAXYCVAIGAL0AAP%2F%2FADsBAgFkAlQCBgC%2BAAAAAgA8AQIBdgJUABQAIwA5ALsAFQABABIABCu7AAUAAQAcAAQruAAcELgACNC4AAgvugAJABwABRESObgAFRC4AA7QuAAOLzAxEzQ%2BAjMyFhczNzMDIzcjDgEjIiYXMjY%2FAS4BIyIOAhUUFjweMT8iFygLBA4uQC8GBBc6HiszcRc2FxoNHxEXKyEVHwF5LlA7IhcYJ%2F6%2BMBoePQwhHYUaFBstPCAoJQAAAgA7AQIBZAJUAA8AHwAXALsAGAABAAAABCu7AAgAAQAQAAQrMDETIiY1ND4CMzIWFRQOAhMiDgIVFBYzMj4CNTQmsTZAHzJAITZBHzJBFxgqIBMiIBcqIBMhAQJEPi9NNh5EPTBNNh4BIxksOSApLBkrOiAoLQAAAgBlAbABUgKtAA8AHwAXALsAGAABAAAABCu7AAgAAQAQAAQrMDETIiY1ND4CMzIWFRQOAiciDgIVFBYzMj4CNTQm0C88FSMwGy48FSMvBxIeFQshHhIdFQwhAbA9Mh0zJxc9Mh0zJxfSERsjEh0oEBsjEh0pAAAAAgALAHEB7wIlACEAMQAoALgAAEVYuAAULxu5ABQACj5ZuwAqAAEAAwAEK7gAFBC5ACIAAfQwMSUOASMiJwcnNy4BNTQ2Nyc3Fz4BMzIWFzcXBxYVFAYHFwcDIg4CFRQWMzI%2BAjU0JgFRGj0gQCRII0cHCCAcLywwGjofHzITSSNJEB8aNStwGjIoGC0qGjIoGC21FBYnPyo%2BECUXLVAePSU%2FEhQUET8qPyIqLU0dRCQBYRksPCIzNxkrPCMzNwAAAQAR%2F5IB0ALvADEAZQC4AABFWLgAKy8buQArAA4%2BWbgAAEVYuAAVLxu5ABUABD5ZuAArELkAAwAB9LoABgArABUREjm4ABUQuAAS0LgAEi%2B4ABUQuQAcAAH0ugAfABUAKxESObgAKxC4AC7QuAAuLzAxAS4BIyIGFRQeBBUUDgIPASM3LgEnNx4BMzI2NTQuBDU0PgI%2FATMHHgEXAZ4UOiMwPiAvNy8gGjFFKhQ4FC1KGjEXRi03RiAvOC8gGi9AJxQ4FSM9FgIJHSg5LR8tJycwPysnRDMfA2JmCTIfMB4wQDQkNSsnLTgmJT4uHAJiZwksHQAAAAABAAQAAAHrAo0AJgBCALgAAEVYuAAeLxu5AB4ABD5ZuwAIAAEADwAEK7sAFgABABcABCu4ABYQuAAA0LgAHhC5ABwAAfS4ABcQuAAk0DAxEy4BNTQ%2BAjMyFhcHLgEjIgYVFBYXMwcjDgEPASEHITc%2BAT0BIzeZAgQfNkssM0QVNBEtHjdJBAKbDIwBKi0BAQMM%2FoIJSEhgCwFWGC8UM1E5HzEiKRsiVkwUKxc7RWUrBEIuI3pICDYAAQAcAAACDwJ%2BAB0AigC4AABFWLgAAC8buQAAAA4%2BWbgAAEVYuAAJLxu5AAkADj5ZuAAARVi4ABMvG7kAEwAEPlm7ABAAAQARAAQruwAMAAEADQAEK7oABQATAAAREjm4ABMQuAAP3LgAERC4ABXQuAAPELgAF9C4ABjQuAANELgAGdC4AAwQuAAb0LoAHAATAAAREjkwMRMXHgEXMz4BPwEzAzMHIwczByMHIzcjNzM3IzczA7YpBw8IAxcpFmxN2IgKmw2cCpwgTCGcCZwMmwmIWwJ%2BsCFDJCVDILD%2BvStFKqGhKkUrAUMAAAABABT%2F9AIIAo0ALwCBALgAAEVYuAAsLxu5ACwADj5ZuAAARVi4ABsvG7kAGwAEPlm4ACwQuQADAAH0ugAKACwAGxESObgACi%2B5AAkAAfS6AA8AGwAsERI5uAAPL7kAEAAB9LgAGxC5ABQAAfS4ABAQuAAf0LgADxC4ACDQuAAKELgAJdC4AAkQuAAm0DAxAS4BIyIOAgczByMOAQczByMUFjMyNjcXDgEjIiY1Iz8BPgE3Iz8BPgMzMhYXAc4PKiMfOTAnDfoJ%2FAQEAtIKykM7IzsZJiVUMlhlPgo2AgQEMwk1EThHUy03QxUCCB8nHDNGKiwRIxItW2EhGC8jJ4F7KAQTIxEoAzleQyU4KAAAAAIATv%2FyAd4CngAIACUAPAC4AABFWLgAFS8buQAVAAQ%2BWbsADQABABQABCu4ABUQuAAg3LoAAAAVACAREjm4ABQQuAAX0LgAFy8wMQEOAxUUFhcTLgEnAz4BNxcOAQ8BIzcuATU0PgI%2FATMHHgEXATIeNyoZKSrCESMYRSA2FxsgRi4VMhVETipFViwUMRQlNRQB9wUiNUYpOUoLASoUGAT%2BowIYETQUIANpagpkVT5lSCoEZmcFJhcAAAAAAf8t%2F%2FQBRQKgAAMAGAC4AABFWLgAAC8buQAAAAQ%2BWbgAAdwwMQcBMwHTAeQ0%2FhwMAqz9VAAAAP%2F%2F%2Fy3%2F9AFFAqACBgDGAAD%2F%2FwA9%2F%2FQC8AKhACcAtgAuAQ4AJwDGAVkAAAAHALYBsAAAAAD%2F%2FwB3%2F%2FQCuAKgACcAtwAbAQ4AJwDGAUwAAAAHALoBiAAAAAD%2F%2FwBj%2F%2FQCzwKgACcAtwAXAQ4AJwDGATYAAAAHALgBowAAAAD%2F%2FwAu%2F%2FQCygKgACcAuQAuAQ4AJwDGAW4AAAAHALoBmgAAAAAAAQAwAGcBygIqAAsAHQC7AAMAAQAAAAQruAADELgABtC4AAAQuAAI0DAxEyM1MzUzFTMVIxUj3q6vPK%2BwPAEuOcPDOccAAAAAAQAwAS4BygFnAAMADQC7AAEAAQAAAAQrMDETNSEVMAGaAS45OQAAAAEAQQCHAboCDgALACUAuAAARVi4AAQvG7kABAAKPlm4AABFWLgABi8buQAGAAo%2BWTAxNyc3JzcXNxcHFwcnaSiUlCiUlCmVlSmUhymbmyibmyibmymcAAADADAAYQHKAjIACwAXABsAIQC7ABIAAQAMAAQruwAGAAEAAAAEK7sAGQABABgABCswMRMiJjU0NjMyFhUUBgMiJjU0NjMyFhUUBic1IRX9Fh0dFhYdHRYWHR0WFh0d4wGaAcweFhUdHRUWHv6VHRYVHR0VFh3NOTkAAAD%2F%2FwAwAMQBygHRAiYAzQBqAAYAzQCWAAAAAQAuAIcBygIOAAkAFAC4AABFWLgAAS8buQABAAo%2BWTAxEyUVDwEVHwEVJS4BnMt9fcv%2BZAFnp0FQMAQxT0KmAAEAMACHAcwCDgAJABQAuAAARVi4AAYvG7kABgAKPlkwMT8CNS8BNQUVBTDMfHzMAZz%2BZMlPMQQwUEGnOqYAAAACADAAAAHKAioACwAPADgAuAAARVi4AAwvG7kADAAEPlm7AAMAAQAAAAQruAADELgABtC4AAAQuAAI0LgADBC5AA0AAfQwMRMjNTM1MxUzFSMVIwc1IRXerq88r7A8rgGaATs6tbU6uYI6OgABAFMBGwG1Ap4ACQAUALgAAEVYuAAALxu5AAAAED5ZMDETMxMjLwEjDwEj5T6SQEEtAy9AQgKe%2Fn2yhYWyAAAAAQAtAQQBwwGSABcAFwC7AAgAAQAPAAQruwADAAEAFAAEKzAxEz4BMzIeAjMyNjcXDgEjIi4CIyIGBy0ZPx8bLSklFBYjESsZPx8bLSklFBYjEQE5LyobIBsdIBwvKhsgGx0gAAEAMABnAcoBZwAFAA0AuwABAAEABAAEKzAxEyERIzUhMAGaPP6iAWf%2FAMcAAf%2F2%2F0EB7QHmABoAJAC4AABFWLgAEi8buQASAAQ%2BWbkABgAB9LoAFQASAAYREjkwMTcOARUUFjMyNjcTMwMjNyMOASMiJicPASMTM40EBCImHUYtRUtgPwgEI0gmHS0LDR1Mh026FBgNJSYqLgFY%2FhpKIzAWHVOWAqUA%2F%2F8A%2FgI7AYQCyAAHAOAA2AAAAAD%2F%2FwEHAjsBzQLIAAcA4gDYAAAAAP%2F%2FAM4COwHDAsgABwDkANgAAAAA%2F%2F8AxQJCAegCqgAHAOYA2AAAAAD%2F%2FwDVAk0B1gKsAAcA6QDYAAAAAP%2F%2FANkCWQHNAo8ABwDoANgAAAAA%2F%2F8A%2BgIbAa8C0wAHAOsA2AAAAAD%2F%2FwBh%2FysA%2BwADAAcA7QDYAAAAAAABACYCOwCsAsgAAwAYALgAAEVYuAAALxu5AAAAEj5ZuAAC3DAxEzMXIyZLOzgCyI0AAAAAAQAUAsIAqgMwAAMADQC7AAEAAQADAAQrMDETMxcjFFJEPQMwbgAAAAEALwI7APUCyAADABgAuAAARVi4AAAvG7kAAAASPlm4AALcMDETMwcjo1KIPgLIjQAAAAABAEkCwgELAzAAAwANALsAAAABAAIABCswMRMzByO0V4BCAzBuAAAAAf%2F2AjsA6wLIAAcAKgC4AABFWLgAAC8buQAAABI%2BWbgAAty6AAUAAAACERI5uAAG0LgAB9AwMRMzFyMnIwcjcDlCNS8EUzoCyI1cXAAAAAAB%2F%2FoCwgD7AzAABwAVALsAAQABAAMABCu4AAMQuAAG0DAxEzMXIycjByNsSEc7MwNOQgMwbkZGAAH%2F7QJCARACqgAXAD0AuwAIAAEADwAEK7gADxC4AADQuAAAL7gACBC4ABTQuAAUL7kAAwAB9LgAC9C4AAsvugAMABQAAxESOTAxAz4BMzIeAjMyNjczDgEjIi4CIyIGBxMNMSAVHBYVEA0WCiwNMSAWGxYWEAwWCgJELTkRExEcFy05ERMRHBcAAAAAAf%2FxAsUBGQMwABkAMwC7AAoAAQARAAQruAARELgAANC4AAAvuAAKELgAFtC4ABYvuQAFAAH0uAAN0LgADS8wMQM%2BAzMyHgIzMjY3Mw4BIyIuAiMiBgcPBRQaHhETGhcWDxAYCSwLNiITGhYWDxAYCQLHFiYdEBEVERwZLTwRFRIdGQAAAQABAlkA9QKPAAMAGgC4AABFWLgAAC8buQAAABA%2BWbkAAgAB9DAxEzMHIwvqCesCjzYAAAL%2F%2FQJNAP4CrAALABcAHQC7AAYAAQAAAAQruAAAELgADNC4AAYQuAAS0DAxEyImNTQ2MzIWFRQGMyImNTQ2MzIWFRQGJREXHhUSFx%2BRERceFRIWHgJNFRMXIBYUFx4VExcgFhQXHgAAAgAGAssBBgMqAAsAFwAdALsABgABAAAABCu4AAAQuAAM0LgABhC4ABLQMDETIiY1NDYzMhYVFAYzIiY1NDYzMhYVFAYuERceFREXHpERFx4VERYdAssVExYhFRQVIRUTFiEVFBUhAAACACICGwDXAtMADwAbADkAuAAARVi4ABYvG7kAFgAMPlm4AABFWLgACC8buQAIABI%2BWbgAFhC5AAAAAfS4AAgQuQAQAAH0MDETIiY1ND4CMzIWFRQOAiciBhUUFjMyNjU0JnYkMA8bJBQkLw8aJAgVHxYUFR8WAhsqKBUlHBAqKBUlHBCUJRoWGyYaFRsAAAACAC4CuQDlA2sADwAbABcAuwAWAAEAAAAEK7sACAABABAABCswMRMiJjU0PgIzMhYVFA4CJyIGFRQWMzI2NTQmgiMxEBskFCMxEBskBxYgFxQWIBcCuSYpFSQbDyYpFSQbD44iGRUaIhoVGQAB%2F4n%2FKwAjAAMAEQANALsAAAABAAIABCswMSczBx4BFRQOAgcnPgE1NCYnGDQmEhsZKjYdBCg2GB0DOAcbFxgkGQ8DIwccGRESCAAAAf%2BJ%2FysAIwADABEADQC7AAAAAQACAAQrMDEnMwceARUUDgIHJz4BNTQmJxg0JhIbGSo2HQQoNhgdAzgHGxcYJBkPAyMHHBkREggAAAEAAADwAHAABwB1AAUAAQAAAAAACgAAAgABcwADAAEAAABmAGYAZgBmALQBGgFqAagB6AIgAoACwALgAxgDWAN%2BA9wEJAR4BMQFMAWIBfIGIAZmBp4HBAdUB5AHzAgwCJYI4AlICbIKBgp6CsoK%2FgtGC4gLwAwwDH4Myg0sDZANyg44DooO3g8cD4QP0hAiEFwQaBB0EIAQjBCYEKQRAhEOERoRJhEyET4RShFWEWIRbhF6EYYRkhGeEaoRthIkEo4SmhKmErISvhLKEyYTbhN6E4YTkhOeE6oTthR2FIIUjhSaFKYUshS%2BFMoU1hTiFQIVDhUaFSYVMhU%2BFUoVshZeFtYW4hbuFvoXBhcSFx4Xghf0GIwZJhnQGiQaXhqoGxQbZBvCHC4cZBz0HWAdhB2wHbwdyB32HiYedB7CHtge5B8MHzIfPh9KH1QfYh96H5Ifnh%2BqH74fxh%2FaH%2B4f%2BCAYICwgVCB6IJggtiEYIXohlCGmIcAh2iICInAioiMiI5wkNiS6JMQkziTYJOIlLCVIJYYl4CYSJhomIiZ2JrIm7idOJ8ooJiicKSQpgimeKaYpuCnKKdwp7ioSKiYqUiqQKpwqvCrcKxIrMitkK3oruCvCK8wr1ivgK%2Bor9Cv%2BLAgsIiw2LFAsZCyMLKgs7i0wLUotfi2yLfouMC5WLnwufAAAAAEAAAABDMwn%2B4QIXw889QAJA%2BgAAAAAzZeAlwAAAADNl%2BMI%2Fy3%2B5QRRA7QAAgAJAAIAAAAAAAACdAAkAAAAAADAAAAAwAAAAf7%2FywJHACMCJgA5AlAAIwH3ACMB2QAjAkwAOQJuACMA%2FAAjAcj%2F%2FgIvACMBzgAjAsEAIwJrACMCeQA8AiYAIwJ5ADwCKwAjAfoADAH%2BAF0CaABPAfAAUgL0AF8B7v%2FcAc0AUwIA%2F%2F8CGQAnAhgAHwGzACUCFwAnAeEAJQEaACsCE%2F%2F%2BAgcAHwDtAB8A7v%2BEAdwAHwD4ACwDHwAfAg0AHwIDACcCF%2F%2F2AhkAJwFWAB8Bkv%2F8AUUAPAIQADgBwAA7AsMARgGt%2F9QBwP%2FCAZr%2F9gH%2B%2F8sB%2Fv%2FLAf7%2FywH%2B%2F8sB%2Fv%2FLAf7%2FywMj%2F98CJgA5AfcAIwH3ACMB9wAjAfcAIwD8ACMA%2FAAjAPwAIwD8ACMCawAjAnkAPAJ5ADwCeQA8AnkAPAJ5ADwCef%2F9AzAAPAJoAE8CaABPAmgATwJoAE8BzQBTAmIALwIyACMCGQAnAhkAJwIZACcCGQAnAhkAJwIZACcC%2BQAgAbMAJQHhACUB4QAlAeEAJQHhACUA7QAfAO0AHwDtAB8A7QAfAO0AHwINAB8CAwAnAgMAJwIDACcCAwAnAgMAJwIDAAADLAAnAisAHwIQADgCEAA4AhAAOAIQADgBwP%2FCAcD%2FwgIMACsCF%2F%2F2AigAKwIxACsCRgAPAeAAKgHgABoB4P%2F2AeD%2F9wHgAAgB4P%2F8AeAAMwHgAGsB4AAjAeAAEgDyABcA8v%2FhAPIAFwDy%2F%2BEBGgArARoAFQGZAF4Bmf%2F8APIAgAGYAIAA8gBuAPIAbwGYAG4BmABvAPL%2F%2BAEg%2F%2FgA%2FAAoAPwAFwGbACgBmwAXASsAIwErACQBzwAjAwEAIwDyAE8BJwApAeP%2F3AEjAEEBJf%2FUASQACAEl%2F88BIgAgASX%2FzAFU%2F7gA5wBfAVQAWADnAF8BkwB9Ad0ADwIXAEkCmQAkAZYASQMuAC0B3wAYAWQAsgFhAFcBXwBWAWIAXwFlAA8BZABcAWEAAQFfAAABYgAJAWIAPAFcADsBYgA8AVwAOwE5AGUB4AALAeAAEQHgAAQB4AAcAeAAFAHgAE4AVP8tAFT%2FLQMXAD0C7AB3AwQAYwL8AC4B4AAwAeAAMAHgAEEB4AAwAeAAMAHgAC4B4AAwAeAAMAHfAFMB4AAtAeAAMAIO%2F%2FYCBQD%2BAgUBBwIFAM4CBQDFAgUA1QIFANkCBQD6AgUAYQAAACYAAAAUAAAALwAAAEkAAP%2F2AAD%2F%2BgAA%2F%2B0AAP%2FxAAAAAQAA%2F%2F0AAAAGAAAAIgAAAC4AAP%2BJAAD%2FiQDAAAAAAQAAA9j%2B7wAABHj%2FLf61BFED6ADCAAAAAAAAAAAAAAAAAPAAAwGpAZAABQAAAooCWP%2FxAEsCigJYAEQBXgAyASAAAAILBQMDBAMJAgQgAAAHAAAAAQAAAAAAAAAAQURCRQABAAD%2B%2FwLu%2FwYAAAPYAREgAAGTAAAAAAHgApQAAAAgAAMAAAACAAAAAwAAABQAAwABAAAAFAAEAdIAAAA8ACAABAAcAAAADQAvADkAQABaAGAAegB%2BAL8AzwDfAO8A%2FwExAVMCxgLaAtwgFCAaIB4gIiA6IEQgdCCsIhIiFf%2F%2FAAAAAAANACAAMAA6AEEAWwBhAHsAoADAANAA4ADwATEBUgLGAtoC3CATIBggHCAiIDkgRCB0IKwiEiIV%2F%2F8AAf%2F1AAAATAAA%2F8MAAP%2B9AAAAAP94AAD%2FdwAA%2FzYAAP4U%2FgT9%2F%2BCJAAAAAOB94F3gguBB4Bjeu96yAAEAAAAAADgAAABUAAAAXgAAAGYAbAAAAKgAAADEAAAA4AAAAAAAAAAAANoA3gAAAAAAAAAAAAAAAAAAAAAAAwCKAI8AsQDBAMgAewCOAKEAogCrAMwAhwCaAIYApwCIAIkA0QDQANIAjACwAKMAqQCkANQAoADYAKUAqACmANUA7wCLAMUAwgDAAMMAqgCsANwArgC7AJgA1gCbAK8A3QC%2FANMAswC0ANkA1wCtAJ4A3wCyALwAmQDJAMoAywCNAFUASABJAEoASwBMAE0AzgBOAFAAUQBSAFMAVABWAHAAdwBoAGkAagBrAGwAbQDPAG4AcQByAHMAdAB1AHgAdgBPAG8AkACRAJQAkgCTAJUAALgAACxLuAAJUFixAQGOWbgB%2F4W4AEQduQAJAANfXi24AAEsICBFaUSwAWAtuAACLLgAASohLbgAAywgRrADJUZSWCNZIIogiklkiiBGIGhhZLAEJUYgaGFkUlgjZYpZLyCwAFNYaSCwAFRYIbBAWRtpILAAVFghsEBlWVk6LbgABCwgRrAEJUZSWCOKWSBGIGphZLAEJUYgamFkUlgjilkv%2FS24AAUsSyCwAyZQWFFYsIBEG7BARFkbISEgRbDAUFiwwEQbIVlZLbgABiwgIEVpRLABYCAgRX1pGESwAWAtuAAHLLgABiotuAAILEsgsAMmU1iwQBuwAFmKiiCwAyZTWCMhsICKihuKI1kgsAMmU1gjIbgAwIqKG4ojWSCwAyZTWCMhuAEAioobiiNZILADJlNYIyG4AUCKihuKI1kguAADJlNYsAMlRbgBgFBYIyG4AYAjIRuwAyVFIyEjIVkbIVlELbgACSxLU1hFRBshIVktALAAKwCyAQECKwGyAgICKwG3AkQ2KiEUAAgrtwNANiohFAAIKwC3AVJENiQWAAgrALIECAcrsAAgRX1pGERLsGBSWLABG7AAWbABjgAAFABEAFIAVgAAAAz%2FMwAMAeYADAIGAAwCPgAMAn4ADAKQAAwCyAAMAAAABwBaAAMAAQQJAAEAHgAAAAMAAQQJAAIADAAeAAMAAQQJAAMAQgAqAAMAAQQJAAQALABsAAMAAQQJAAUAggCYAAMAAQQJAAYAIAEaAAMAAQQJAA4ASAE6AFMAbwB1AHIAYwBlACAAUwBhAG4AcwAgAFAAcgBvAEkAdABhAGwAaQBjADEALgAwADUAMAA7AEEARABCAEUAOwBTAG8AdQByAGMAZQBTAGEAbgBzAFAAcgBvAC0ASQB0ADsAQQBEAE8AQgBFAFMAbwB1AHIAYwBlACAAUwBhAG4AcwAgAFAAcgBvACAASQB0AGEAbABpAGMAVgBlAHIAcwBpAG8AbgAgADEALgAwADUAMAA7AFAAUwAgAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAwADAAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA3ADAAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA1ADkAMAAwAFMAbwB1AHIAYwBlAFMAYQBuAHMAUAByAG8ALQBJAHQAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAZABvAGIAZQAuAGMAbwBtAC8AdAB5AHAAZQAvAGwAZQBnAGEAbAAuAGgAdABtAGwAAgAA%2F%2FUAAP%2B1ADIAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAABAgEDAAMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQCtAMkAxwCuAGIAYwCQAGQAywBlAMgAygDPAMwAzQDOAGYA0wDQANEArwBnAJEAsADWANQA1QBoAOsA6QDtAGoAaQBrAG0AbABuAKAAbwBxAHAAcgBzAHUAdAB2AHcA1wB4AHoAeQB7AH0AfAChALEAiQB%2FAH4AgACBAOwAugDqAO4BBAEFAAkAEwAUABUAFgAXABgAGQAaABsAHAARAA8AHQAeAAQAowAiAKIACgAFALYAtwC0ALUAxADFAL4AvwCpAKoAEAEGALIAswDDAIcAQgALAAwAPgBAAF4AYAASAF8APwDoAA0AhgCIAIsAigAjAAYBBwEIAQkBCgELAQwBDQEOAQ8AnQCeARABEQCDAL0ABwCFAJYBEgCEALwBEwAIAPUA9AD2AA4A7wDwALgAIAAfACEAkwBBAGEApAEUAEMAjQDYANkAjgDaAN0A3gEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkBE5VTEwCQ1IDZl9mA2ZfdAd1bmkwMEFECG9uZS5zdXBzCHR3by5zdXBzCnRocmVlLnN1cHMJZm91ci5zdXBzCXplcm8uZG5vbQhvbmUuZG5vbQh0d28uZG5vbQp0aHJlZS5kbm9tCWZvdXIuZG5vbQZhLnN1cHMGby5zdXBzBEV1cm8HdW5pMjIxNQd1bmkwMEI1B3VuaTAzMDALdW5pMDMwMC5jYXAHdW5pMDMwMQt1bmkwMzAxLmNhcAd1bmkwMzAyC3VuaTAzMDIuY2FwB3VuaTAzMDMLdW5pMDMwMy5jYXAHdW5pMDMwNAd1bmkwMzA4C3VuaTAzMDguY2FwB3VuaTAzMEELdW5pMDMwQS5jYXAHdW5pMDMyNwt1bmkwMzI3LmNhcAd1bmkwMEEwAAAAAAAAAf%2F%2FAAIAAQAAAAwAAAAAAAAAAgAIAAQANwABAD4APgABAE4ATwABAGcAZwABAG4AbwABAHgAeAABAHkAegACANoA2gABAAEAAAAKADAARAACREZMVAAObGF0bgAaAAQAAAAA%2F%2F8AAQAAAAQAAAAA%2F%2F8AAQABAAJrZXJuAA5rZXJuAA4AAAABAAAAAQAEAAIAAAACAAoBFAABACYABAAAAA4ARgBgAHIAhACSAKAAsgDAANYA3ADiAOgA8gEAAAEADgAJABMAGQAbADMANQBWAHAAhgCJAIsAjQCeAKkABgAZ%2F%2FkAM%2F%2F2ADX%2F7ACe%2F%2FYAp%2F%2BwAK8AKwAEABv%2F6AA1%2F%2FYAp%2F%2BiAK8AIAAEADX%2F5QCe%2F%2BwAp%2F%2FEAK8AKwADAJ7%2FwgCr%2F%2F0ArwA1AAMAp%2F%2FsAKv%2F5gCvACYABAAZ%2F%2FYAnv%2FsAKv%2F2ACvACYAAwCn%2F8sAqf%2FYAKv%2FqwAFADP%2F6AA1ABAAjP%2FrAKn%2F7ACv%2F9YAAQAnAAMAAQAnAB8AAQAZ%2F%2BUAAgAZ%2F9EAG%2F%2FlAAMAGf%2FsABv%2F5QA1%2F%2BwAAgAZ%2F8QAM%2F%2FsAAIRmAAEAAASFBNiADMALAAA%2F%2BL%2FnP%2FY%2F9j%2FsABk%2F%2FYAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F8v%2FXADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2FvQAAAAD%2FzQAAAAAAAAAA%2F%2BX%2F7P%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Bp%2F8j%2F3v%2B9AEYAAAAAAAD%2FyP%2FdAAD%2F5f%2Fv%2F%2B%2F%2F2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAA%2F9gAAAAAAAD%2F7P%2FsAAD%2FsAAU%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F6v%2F3v%2Fv%2F9H%2F9v%2F2%2F%2FL%2FqAAA%2F%2Fb%2F9v%2FrAAAAAP%2FvAAD%2F7%2F%2F2%2F4j%2F2P%2Fl%2F8%2F%2FqQAAAAAAAAAA%2F88ABv%2Bp%2F7n%2F8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FYAAAAAP%2FlAAD%2F9v%2FyAAAAAP%2FyAAAAAAAAAAAAAP%2F2%2F%2FYAAP%2BiAAD%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FL%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7P%2FyAAAAAAAA%2F%2B%2F%2F7wAAAAD%2F7P%2F2%2F88AAAAAAAD%2F9v%2Fy%2F%2FYAAAAA%2F6cAAAATAAAAAAAAAAAAAAAAAAAAAP%2FvAAD%2Fz%2F%2FrAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8sAAAAAAAAABQAAAAAAAAAA%2F%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fv%2F%2FL%2F9v%2Fv%2F%2FYAAAAAAAAAAP%2F2AAD%2F5QAAAAAAAAAA%2F%2Bj%2F8f%2FsAAD%2FyQAAAAAAAAAAAAAAAP%2F2AAD%2F1QAAAAAAAP%2Fa%2F9UAAAAAAAAAAAAAAAAAAAAAAAD%2FiP%2FX%2F9H%2FqwAA%2F8L%2F0f%2BaAAP%2F5QAA%2F9P%2F8gAA%2F%2B8AAP%2Fq%2F%2Fb%2FWf%2Bc%2F43%2F0f%2BNAAAAAAAAAAD%2FowAA%2F3L%2Fmv%2BnAAD%2FsP%2FYAAAAAAAAAAAAAAAAAAAAAAAA%2F94AAAAA%2F%2BgAAAAAAAAAAAAAAAD%2F9gAAAAAAAAAA%2F%2BwAAAAA%2F7cAAAAAAAAAA%2F%2FsAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FcAAAAAP%2FsAAAAAAAAAAD%2F9v%2Fy%2F%2FYAAP%2F2%2F%2FYAAP%2FsAAAAAP%2FyAAAAAAAAABkAAAAAAAAAAP%2F2%2F%2FYAAAAAAAD%2F9v%2FY%2F%2BgAAAAAAAD%2F9gAAAAAAAAAAAAD%2F4gAAAAAAAAAAAAAAAAAAAAD%2F9gAAAAAAAAAAAAD%2F9gAAAAD%2F4gAA%2F%2FYAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FYAAP%2FY%2F9gAAP%2Br%2F7L%2Fy%2F%2Fs%2F7D%2FsP%2Ff%2F4L%2F7P%2BcAAAAAP%2FEAAAAK%2F%2BjAAAAAAAAAAD%2F7AAAAAD%2F2P%2FY%2F5z%2FwP%2BV%2F7D%2FxP%2Bc%2F5z%2FvQAAAAAAAAAAAAAAAP%2FyAAAAAAAAAAD%2F9v%2F2AAAAAAAAAAAAAP%2B2AAAAAAAAAAAAAAAAAAD%2F2AAAAAAAAP%2F2%2F%2FYAAAAAAAAAAAAAAAD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2B%2F%2F9v%2F2AAD%2F%2Bf%2FsAAb%2FnAAAAAAAAAAAAAAAAAAn%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fv%2F8gAAAAA%2F%2B8AAP%2FvAAAAAAAA%2F%2FYAAAAAAAAAAP%2Fo%2F%2BgAAP%2FG%2F%2Fb%2F6P%2Fy%2F9f%2F2AAA%2F6IAAP%2FiAAAAAP%2FYAA0AK%2F%2BwAAAAAAAAAAAAAAAAAAD%2F6P%2Fe%2F73%2Ftv%2Bp%2F97%2Fwv%2FA%2F%2FL%2F0AAAAAAAAAAA%2F%2Fb%2F9v%2FyAAD%2F6P%2FoAAD%2F7P%2Fi%2F%2Fb%2F7P%2Fn%2F%2FEAAP%2Fi%2F%2FL%2F3QAAAAD%2FxAAAABcAAAAAAAAAAP%2F2AAAAAAAA%2F%2BgAAP%2FC%2F80AAAAAAAAAAAAAAAAAAAAAAAD%2F3gAAAAD%2F3gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2FnAAAAAAAAAAAAAAAAAAAAAD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F94AAAAA%2F%2BgAAAAGAAYAAAAAAAAAAAAA%2F%2FH%2F9gAAAAAAAAAAAAAAAP%2F2AAAAEwAAAAAAAAAA%2F%2FIAAAAAAAAABgAG%2F%2B8AAAAAAAAAAAAAAAAAAAAAAAAAAP%2BrAAAAAP%2FeAAoAAAAA%2F%2BUAAAAAAAAAAAAAAAAAAAAAAAAAAP%2B3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2Flf%2Br%2F%2BL%2FrAAf%2F%2B3%2F7P%2BGAAAAAAAAAAD%2F9gAAAAAAAP%2FiAAD%2FZQAAAAAAAAAAAAAAAAAAAAD%2FrAAA%2F4b%2Fmv%2FdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F88AAP%2F2%2F%2BUAAP%2Fy%2F%2FL%2F4AAA%2F%2BwAAP%2FyAAD%2F8QAA%2F%2Bz%2F7wAA%2F7P%2F9v%2FlAAD%2F8wAAAAAAAAAA%2F%2FIAAAAAAAD%2F8gAAAA3%2F6AAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAMgAyAAAAAAAAACEAAAAAAAAAAP%2F2%2F%2BwAAAAAAAAAAAAAAFD%2F8wAeAEv%2F7AAeAAAAAAAyACgAKAAhAAAAAP%2F2AAD%2Fwv%2F6AAAAAAAAAAAANQAAAAD%2F7wAAAAD%2F7%2F%2F2AAAAAP%2FdAAAAAAAAAAD%2F7%2F%2F2AAAAAP%2F2%2F%2Fb%2FxAAA%2F%2BwAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F3f%2FlAA0AAAAAAAAAAAAAAAAAAAAA%2F%2BgAAAAA%2F94AAAAAAAD%2FxAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F7AAAAAAAAAAAAAAAAAAAAAA%2F%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FAAAAAAP%2FCAAD%2F%2Bf%2F1%2F70AAAAAAAAAAAAA%2F%2FEAAAAAAAAAAAAA%2F9gAAAAAAAAAAAAAAAAAAP%2FoAAAAAP%2FY%2F%2FX%2F7wAUAAD%2F9gAAAAD%2F8gAAAAD%2F%2BQAAAAAAAAAAAAAAAAAAAAAAAAAA%2F7kAAAAAAAD%2F2P%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FE%2F3QAAAAAAAAAAAAAAAAAAAAA%2F64AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F%2BgAGAAYADQAAAAD%2F7AAA%2F%2Fb%2F6QAA%2F6sAAAAAAAAAFAAAAAAAOv%2FYAAAAAAAAAAAAAAAAACEABgAA%2F%2Bz%2F7P%2FNAAD%2F%2Bv%2F2AAAAAAAAAAAAAP%2FeAAAAAP%2FoAAAAAP%2F8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2B3AAAAAAAAAAAAAAAAAAAAAP%2FyAAAAAAAA%2F%2FwAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9f%2FsAAAAAAAA%2F%2FYAAAAA%2F%2BwAAAAtABQAAAAAAAAAAAAAAAAAAAAAAAD%2F5f%2FsAA0AAAAAAAAAFAAAAAAAAAAA%2F9gAAAAA%2F%2Bz%2F9gAAAAAAAP%2F5AAAAAAAA%2F%2Fz%2F9gAA%2F%2BIAAAAA%2F%2BIAAAAAAAAAM%2F%2F2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FoAAAAAP%2FyAAAAAAAAAAAAAP%2FYAAAAAP%2Fl%2F%2FYAAAAAAAAAAAAAAAAAAP%2F8%2F%2BwAAP%2FeAAAAAAAAAAAAAAAAADP%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F3QAAAAD%2F9gAAAAAAAAAAAAD%2F4gAAAAD%2F6AAAAAAAAAAAAAAAAAAAAAD%2F9v%2FpAAAAAAAA%2F%2BwAAAAA%2F%2FYAAAAmAAAAAAAAAAD%2F9gAAAAAAAAAAAAD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F8%2F%2FkAAP%2F2%2F%2FYAAP%2FY%2F%2FD%2F7P%2F2%2F%2Fb%2F4gAA%2F3T%2F9v%2FxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7P%2B9%2F%2Bz%2F8f%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7AAAAAAAAAAAAAAAAAAAAAD%2F4gAAAAD%2F8gAAAAAAAAAA%2F8L%2F9v%2BcAAD%2F7P%2FiAAD%2FeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9v%2F2%2F4YAAAAA%2F%2BwAAAAAAAAAAAAAAAD%2F9gAAAAAAAAAAAAAAAP%2FP%2F%2Bz%2F7AAA%2F%2BX%2FyAAA%2F6wAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8%2F%2Fzf%2B5%2F%2Bz%2F7P%2FIAAD%2FzQAAAAAAAP%2FyAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAA%2F%2FAAAAAAAAD%2F8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FP%2F9gAAAAAAAAAAAAA%2F%2BUAAAAAAAAAAAAAAAAAAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F7kAAAAAAAAAAAAAAAD%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Bj%2F7AAAAAAAAP%2FvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9P%2Fo%2F5UAAAAAAAAAAAAAAAAAAAAA%2F%2B0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2Fr%2F%2FJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2FoAAA%2F%2FL%2FyQAAAAAAAAAAAAAAAP%2F5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F3f%2F5AAAAAAAA%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F6MAAP%2Fy%2F70AAAAAAAAAAAAA%2F%2BL%2F7AAAAAAAAAAA%2F%2BIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F9EAAAAAAAAAAP%2FyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2FvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2FmgAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F7MAAAAAAAD%2F6P%2FcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F20AAP%2FYAAAAAAAAAAAAAAAA%2F9gAAAAA%2F%2Bz%2F9gAAAAAAAP%2FyAAAAAAAA%2F%2Fz%2F7AAA%2F94AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FdAAAAAP%2FyAAAAAAAAAAAAAP%2FCAAAAAP%2FoAAAAAAAAAAAAAAAAAAAAAP%2Fv%2F%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fr%2F%2FIAAAAAAAAAAAAA%2F%2FkAAAACABQABAAHAAAACQAKAAQADQAPAAYAEgAgAAkAIgAlABgAKAAoABwAKgA9AB0APwA%2FADEASQBOADIAUABVADgAVwBiAD4AZwB2AEoAeAB6AFoAhgCTAF0AlgCeAGsAoQChAHQAowCjAHUApQClAHYApwCnAHcAqQCpAHgAAQAEAKQABwAIAAkADQAAACUACgAAAAAAJgALAAwAAAAAAA0AJwANAA4ADwAQABEAKAASACkAEwAUABUAHQAWAAAAGQAaABUAHAAAAAAAGwAAABwAHAAdAB0AFQAfACAAIQAVADEAIgAyACMAJAAHAAcABwAHAAcABwAAAAkAAAAAAAAAAAAAAAAAAAAAAAAADQANAA0ADQANAA0AAAARABEAEQARABMADQAAABUAFQAVABUAFQAVABkAFgAZABkAGQAZAAAAAAAAAAAAFQAcAB0AHQAdAB0AHQAdABkALAAVABUAFQAVACMAIwAAAB0AGgAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYABgAFwAXAAEAAgAEAAUALwAvAB4AMAAeADAAAAAAAC0ALgAtAC4AKwArACsAKwADAAAAAAAqAAAAKgAAACoAAAAGAAEABACsAAoAAAANAAAAAAAAAA0AAAAAABEAAAAAAAAAAAANAAAADQAAAAsAAgADAB0ABAAeAAUADAAOAAAADgAOAA4AEAAOAAAAAAAGAAAAAAAmACYADgAmAA4AJgAnABIAEwAhAAcAIgAIACgACgAKAAoACgAKAAoAAAANAAAAAAAAAAAAAAAAAAAAAAAAAA0ADQANAA0ADQANAA0AAwADAAMAAwAFAAEAAAAOAA4ADgAOAA4ADgAPAA4ADgAOAA4ADgAAAAAAAAAAACYAJgAOAA4ADgAOAA4ADgAOAAAAEwATABMAEwAIAAgAAAAAABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAlACkAKQAaABsAFwAcAB8AHwAgAAkAIAAJAAAAAAAkACoAJAAqACMAIwAjACMAFgAAAAAAAAArAAAAKwAAACsAGQAAABUAAAAUAAAAAAAAABgAAQAAAAoAMABEAAJERkxUAA5sYXRuABoABAAAAAD%2F%2FwABAAAABAAAAAD%2F%2FwABAAEAAmxpZ2EADmxpZ2EADgAAAAEAAAABAAQABAAAAAEACAABABoAAQAIAAIABgAMAHkAAgAjAHoAAgAxAAEAAQAj%29%20format%28%27truetype%27%29%3B%0A%7D%0Ahtml%7Bfont%2Dfamily%3Asans%2Dserif%3B%2Dms%2Dtext%2Dsize%2Dadjust%3A100%25%3B%2Dwebkit%2Dtext%2Dsize%2Dadjust%3A100%25%7Dbody%7Bmargin%3A0%7Darticle%2Caside%2Cdetails%2Cfigcaption%2Cfigure%2Cfooter%2Cheader%2Chgroup%2Cmain%2Cmenu%2Cnav%2Csection%2Csummary%7Bdisplay%3Ablock%7Daudio%2Ccanvas%2Cprogress%2Cvideo%7Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Abaseline%7Daudio%3Anot%28%5Bcontrols%5D%29%7Bdisplay%3Anone%3Bheight%3A0%7D%5Bhidden%5D%2Ctemplate%7Bdisplay%3Anone%7Da%7Bbackground%2Dcolor%3Atransparent%7Da%3Aactive%2Ca%3Ahover%7Boutline%3A0%7Dabbr%5Btitle%5D%7Bborder%2Dbottom%3A1px%20dotted%7Db%2Cstrong%7Bfont%2Dweight%3Abold%7Ddfn%7Bfont%2Dstyle%3Aitalic%7Dh1%7Bfont%2Dsize%3A2em%3Bmargin%3A0%2E67em%200%7Dmark%7Bbackground%3A%23ff0%3Bcolor%3A%23000%7Dsmall%7Bfont%2Dsize%3A80%25%7Dsub%2Csup%7Bfont%2Dsize%3A75%25%3Bline%2Dheight%3A0%3Bposition%3Arelative%3Bvertical%2Dalign%3Abaseline%7Dsup%7Btop%3A%2D0%2E5em%7Dsub%7Bbottom%3A%2D0%2E25em%7Dimg%7Bborder%3A0%7Dsvg%3Anot%28%3Aroot%29%7Boverflow%3Ahidden%7Dfigure%7Bmargin%3A1em%2040px%7Dhr%7B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%3Bheight%3A0%7Dpre%7Boverflow%3Aauto%7Dcode%2Ckbd%2Cpre%2Csamp%7Bfont%2Dfamily%3Amonospace%2C%20monospace%3Bfont%2Dsize%3A1em%7Dbutton%2Cinput%2Coptgroup%2Cselect%2Ctextarea%7Bcolor%3Ainherit%3Bfont%3Ainherit%3Bmargin%3A0%7Dbutton%7Boverflow%3Avisible%7Dbutton%2Cselect%7Btext%2Dtransform%3Anone%7Dbutton%2Chtml%20input%5Btype%3D%22button%22%5D%2Cinput%5Btype%3D%22reset%22%5D%2Cinput%5Btype%3D%22submit%22%5D%7B%2Dwebkit%2Dappearance%3Abutton%3Bcursor%3Apointer%7Dbutton%5Bdisabled%5D%2Chtml%20input%5Bdisabled%5D%7Bcursor%3Adefault%7Dbutton%3A%3A%2Dmoz%2Dfocus%2Dinner%2Cinput%3A%3A%2Dmoz%2Dfocus%2Dinner%7Bborder%3A0%3Bpadding%3A0%7Dinput%7Bline%2Dheight%3Anormal%7Dinput%5Btype%3D%22checkbox%22%5D%2Cinput%5Btype%3D%22radio%22%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%3Bpadding%3A0%7Dinput%5Btype%3D%22number%22%5D%3A%3A%2Dwebkit%2Dinner%2Dspin%2Dbutton%2Cinput%5Btype%3D%22number%22%5D%3A%3A%2Dwebkit%2Douter%2Dspin%2Dbutton%7Bheight%3Aauto%7Dinput%5Btype%3D%22search%22%5D%7B%2Dwebkit%2Dappearance%3Atextfield%3B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%7Dinput%5Btype%3D%22search%22%5D%3A%3A%2Dwebkit%2Dsearch%2Dcancel%2Dbutton%2Cinput%5Btype%3D%22search%22%5D%3A%3A%2Dwebkit%2Dsearch%2Ddecoration%7B%2Dwebkit%2Dappearance%3Anone%7Dfieldset%7Bborder%3A1px%20solid%20%23c0c0c0%3Bmargin%3A0%202px%3Bpadding%3A0%2E35em%200%2E625em%200%2E75em%7Dlegend%7Bborder%3A0%3Bpadding%3A0%7Dtextarea%7Boverflow%3Aauto%7Doptgroup%7Bfont%2Dweight%3Abold%7Dtable%7Bborder%2Dcollapse%3Acollapse%3Bborder%2Dspacing%3A0%7Dtd%2Cth%7Bpadding%3A0%7D%40media%20print%7B%2A%2C%2A%3Abefore%2C%2A%3Aafter%7Bbackground%3Atransparent%20%21important%3Bcolor%3A%23000%20%21important%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%20%21important%3Bbox%2Dshadow%3Anone%20%21important%3Btext%2Dshadow%3Anone%20%21important%7Da%2Ca%3Avisited%7Btext%2Ddecoration%3Aunderline%7Da%5Bhref%5D%3Aafter%7Bcontent%3A%22%20%28%22%20attr%28href%29%20%22%29%22%7Dabbr%5Btitle%5D%3Aafter%7Bcontent%3A%22%20%28%22%20attr%28title%29%20%22%29%22%7Da%5Bhref%5E%3D%22%23%22%5D%3Aafter%2Ca%5Bhref%5E%3D%22javascript%3A%22%5D%3Aafter%7Bcontent%3A%22%22%7Dpre%2Cblockquote%7Bborder%3A1px%20solid%20%23999%3Bpage%2Dbreak%2Dinside%3Aavoid%7Dthead%7Bdisplay%3Atable%2Dheader%2Dgroup%7Dtr%2Cimg%7Bpage%2Dbreak%2Dinside%3Aavoid%7Dimg%7Bmax%2Dwidth%3A100%25%20%21important%7Dp%2Ch2%2Ch3%7Borphans%3A3%3Bwidows%3A3%7Dh2%2Ch3%7Bpage%2Dbreak%2Dafter%3Aavoid%7D%2Enavbar%7Bdisplay%3Anone%7D%2Ebtn%3E%2Ecaret%2C%2Edropup%3E%2Ebtn%3E%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23000%20%21important%7D%2Elabel%7Bborder%3A1px%20solid%20%23000%7D%2Etable%7Bborder%2Dcollapse%3Acollapse%20%21important%7D%2Etable%20td%2C%2Etable%20th%7Bbackground%2Dcolor%3A%23fff%20%21important%7D%2Etable%2Dbordered%20th%2C%2Etable%2Dbordered%20td%7Bborder%3A1px%20solid%20%23ddd%20%21important%7D%7D%40font%2Dface%7Bfont%2Dfamily%3A%27Glyphicons%20Halflings%27%3Bsrc%3Aurl%28data%3Aapplication%2Fvnd%2Ems%2Dfontobject%3Bbase64%2Cn04AAEFNAAACAAIABAAAAAAABQAAAAAAAAABAJABAAAEAExQAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAJxJ%2FLAAAAAAAAAAAAAAAAAAAAAAAACgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAAAADgBSAGUAZwB1AGwAYQByAAAAeABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAA5ADsAUABTACAAMAAwADEALgAwADAAOQA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOAAzADIAOQAAADgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAKncAE0TAE0ZAEbuFM3pjM%2FSEdmjKHUbyow8ATBE40IvWA3vTu8LiABDQ%2BpexwUMcm1SMnNryctQSiI1K5ZnbOlXKmnVV5YvRe6RnNMFNCOs1KNVpn6yZhCJkRtVRNzEufeIq7HgSrcx4S8h%2Fv4vnrrKc6oCNxmSk2uKlZQHBii6iKFoH0746ThvkO1kJHlxjrkxs%2BLWORaDQBEtiYJIR5IB9Bi1UyL4Rmr0BNigNkMzlKQmnofBHviqVzUxwdMb3NdCn69hy%2BpRYVKGVS%2F1tnsqv4LL7wCCPZZAZPT4aCShHjHJVNuXbmMrY5LeQaGnvAkXlVrJgKRAUdFjrWEah9XebPeQMj7KS7DIBAFt8ycgC5PLGUOHSE3ErGZCiViNLL5ZARfywnCoZaKQCu6NuFX42AEeKtKUGnr%2FCm2Cy8tpFhBPMW5Fxi4Qm4TkDWh4IWFDClhU2hRWosUWqcKLlgyXB%2BlSHaWaHiWlBAR8SeSgSPCQxdVQgzUixWKSTrIQEbU94viDctkvX%2BVSjJuUmV8L4CXShI11esnp0pjWNZIyxKHS4wVQ2ime1P4RnhvGw0aDN1OLAXGERsB7buFpFGGBAre4QEQR0HOIO5oYH305G%2BKspT%2FFupEGGafCCwxSe6ZUa%2B073rXHnNdVXE6eWvibUS27XtRzkH838mYLMBmYysZTM0EM3A1fbpCBYFccN1B%2FEnCYu%2FTgCGmr7bMh8GfYL%2BBfcLvB0gRagC09w9elfldaIy%2FhNCBLRgBgtCC7jAF63wLSMAfbfAlEggYU0bUA7ACCJmTDpEmJtI78w4%2FBO7dN7JR7J7ZvbYaUbaILSQsRBiF3HGk5fEg6p9unwLvn98r%2BvnsV%2B372uf1xBLq4qU%2F45fTuqaAP%2BpssmCCCTF0mhEow8ZXZOS8D7Q85JsxZ%2BAzok7B7O%2Ff6J8AzYBySZQB%2FQHYUSA%2BEeQhEWiS6AIQzgcsDiER4MjgMBAWDV4AgQ3g1eBgIdweCQmCjJEMkJ%2BPKRWyFHHmg1Wi%2F6xzUgA0LREoKJChwnQa9B%2B5RQZRB3IlBlkAnxyQNaANwHMowzlYSMCBgnbpzvqpl0iTJNCQidDI9ZrSYNIRBhHtUa5YHMHxyGEik9hDE0AKj72AbTCaxtHPUaKZdAZSnQTyjGqGLsmBStCejApUhg4uBMU6mATujEl%2BKdDPbI6Ag4vLr%2BhjY6lbjBeoLKnZl0UZgRX8gTySOeynZVz1wOq7e1hFGYIq%2BMhrGxDLak0PrwYzSXtcuyhXEhwOYofiW%2BEcI%2Fjw8P6IY6ed%2BetAbuqKp5QIapT77LnAe505lMuqL79a0ut4rWexzFttsOsLDy7zvtQzcq3U1qabe7tB0wHWVXji%2BzDbo8x8HyIRUbXnwUcklFv51fvTymiV%2BMXLSmGH9d9%2BaXpD5X6lao41anWGig7IwIdnoBY2ht%2FpO9mClLo4NdXHAsefqWUKlXJkbqPOFhMoR4aiA1BXqhRNbB2Xwi%2B7u%2FjpAoOpKJ0UX24EsrzMfHXViakCNcKjBxuQX8BO0ZqjJ3xXzf%2B61t2VXOSgJ8xu65QKgtN6FibPmPYsXbJRHHqbgATcSZxBqGiDiU4NNNsYBsKD0MIP%2FOfKnlk%2FLkaid%2FO2NbKeuQrwOB2Gq3YHyr6ALgzym5wIBnsdC1ZkoBFZSQXChZvlesPqvK2c5oHHT3Q65jYpNxnQcGF0EHbvYqoFw60WNlXIHQF2HQB7zD6lWjZ9rVqUKBXUT6hrkZOle0RFYII0V5ZYGl1JAP0Ud1fZZMvSomBzJ710j4Me8mjQDwEre5Uv2wQfk1ifDwb5ksuJQQ3xt423lbuQjvoIQByQrNDh1JxGFkOdlJvu%2FgFtuW0wR4cgd%2BZKesSV7QkNE2kw6AV4hoIuC02LGmTomyf8PiO6CZzOTLTPQ%2BHW06H%2Btx%2BbQ8LmDYg1pTFrp2oJXgkZTyeRJZM0C8aE2LpFrNVDuhARsN543%2FFV6klQ6Tv1OoZGXLv0igKrl%2FCmJxRmX7JJbJ998VSIPQRyDBICzl4JJlYHbdql30NvYcOuZ7a10uWRrgoieOdgIm4rlq6vNOQBuqESLbXG5lzdJGHw2m0sDYmODXbYGTfSTGRKpssTO95fothJCjUGQgEL4yKoGAF%2F0SrpUDNn8CBgBcSDQByAeNkCXp4S4Ro2Xh4OeaGRgR66PVOsU8bc6TR5%2FxTcn4IVMLOkXSWiXxkZQCbvKfmoAvQaKjO3EDKwkwqHChCDEM5loQRPd5ACBki1TjF772oaQhQbQ5C0lcWXPFOzrfsDGUXGrpxasbG4iab6eByaQkQfm0VFlP0ZsDkvvqCL6QXMUwCjdMx1ZOyKhTJ7a1GWAdOUcJ8RSejxNVyGs31OKMyRyBVoZFjqIkmKlLQ5eHMeEL4MkUf23cQ%2F1SgRCJ1dk4UdBT7OoyuNgLs0oCd8RnrEIb6QdMxT2QjD4zMrJkfgx5aDMcA4orsTtKCqWb%2FVeyceqa5OGSmB28YwH4rFbkQaLoUN8OQQYnD3w2eXpI4ScQfbCUZiJ4yMOIKLyyTc7BQ4uXUw6Ee6%2FxM%2B4Y67ngNBknxIPwuppgIhFcwJyr6EIj%2BLzNj%2FmfR2vhhRlx0BILZoAYruF0caWQ7YxO66UmeguDREAFHYuC7HJviRgVO6ruJH59h%2FC%2FPkgSle8xNzZJULLWq9JMDTE2fjGE146a1Us6PZDGYle6ldWRqn%2FpdpgHKNGrGIdkRK%2BKPETT9nKT6kLyDI8xd9A1FgWmXWRAIHwZ37WyZHOVyCadJEmMVz0MadMjDrPho%2BEIochkVC2xgGiwwsQ6DMv2P7UXqT4x7CdcYGId2BJQQa85EQKmCmwcRejQ9Bm4oATENFPkxPXILHpMPUyWTI5rjNOsIlmEeMbcOCEqInpXACYQ9DDxmFo9vcmsDblcMtg4tqBerNngkIKaFJmrQAPnq1dEzsMXcwjcHdfdCibcAxxA%2Bq%2Fj9m3LM%2FO7WJka4tSidVCjsvo2lQ%2F2ewyoYyXwAYyr2PlRoR5MpgVmSUIrM3PQxXPbgjBOaDQFIyFMJvx3Pc5RSYj12ySVF9fwFPQu2e2KWVoL9q3Ayv3IzpGHUdvdPdrNUdicjsTQ2ISy7QU3DrEytIjvbzJnAkmANXjAFERA0MUoPF3%2F5KFmW14bBNOhwircYgMqoDpUMcDtCmBE82QM2YtdjVLB4kBuKho%2FbcwQdeboqfQartuU3CsCf%2BcXkgYAqp%2F0Ee3RorAZt0AvvOCSI4JICIlGlsV0bsSid%2FNIEALAAzb6HAgyWHBps6xAOwkJIGcB82CxRQq4sJf3FzA70A%2BTRqcqjEMETCoez3mkPcpnoALs0ugJY8kQwrC%2BJE5ik3w9rzrvDRjAQnqgEVvdGrNwlanR0SOKWzxOJOvLJhcd8Cl4AshACUkv9czdMkJCVQSQhp6kp7StAlpVRpK0t0SW6LHeBJnE2QchB5Ccu8kxRghZXGIgZIiSj7gEKMJDClcnX6hgoqJMwiQDigIXg3ioFLCgDgjPtYHYpsF5EiA4kcnN18MZtOrY866dEQAb0FB34OGKHGZQjwW%2FWDHA60cYFaI%2FPjpzquUqdaYGcIq%2BmLez3WLFFCtNBN2QJcrlcoELgiPku5R5dSlJFaCEqEZle1AQzAKC%2B1SotMcBNyQUFuRHRF6OlimSBgjZeTBCwLyc6A%2BP%2FoFRchXTz5ADknYJHxzrJ5pGuIKRQISU6WyKTBBjD8WozmVYWIsto1AS5rxzKlvJu4E%2FvwOiKxRtCWsDM%2BeTHUrmwrCK5BIfMzGkD%2B0Fk5LzBs0jMYXktNDblB06LMNJ09U8pzSLmo14MS0OMjcdrZ31pyQqxJJpRImlSvfYAK8inkYU52QY2FPEVsjoWewpwhRp5yAuNpkqhdb7ku9Seefl2D0B8SMTFD90xi4CSOwwZy9IKkpMtI3FmFUg3%2FkFutpQGNc3pCR7gvC4sgwbupDu3DyEN%2BW6YGLNM21jpB49irxy9BSlHrVDlnihGKHwPrbVFtc%2Bh1rVQKZduxIyojccZIIcOCmhEnC7UkY68WXKQgLi2JCDQkQWJRQuk60hZp0D3rtCTINSeY9Ej2kIKYfGxwOs4j9qMM7fYZiipzgcf7TamnehqdhsiMiCawXnz4xAbyCkLAx5EGbo3Ax1u3dUIKnTxIaxwQTHehPl3V491H0%2BbC5zgpGz7Io%2BmjdhKlPJ01EeMpM7UsRJMi1nGjmJg35i6bQBAAxjO%2FENJubU2mg3ONySEoWklCwdABETcs7ck3jgiuU9pcKKpbgn%2B3YlzV1FzIkB6pmEDOSSyDfPPlQskznctFji0kpgZjW5RZe6x9kYT4KJcXg0bNiCyif%2BpZACCyRMmYsfiKmN9tSO65F0R2OO6ytlEhY5Sj6uRKfFxw0ijJaAx%2Fk3QgnAFSq27%2F2i4GEBA%2BUvTJKK%2F9eISNvG46Em5RZfjTYLdeD8kdXHyrwId%2FDQZUaMCY4gGbke2C8vfjgV%2FY9kkRQOJIn%2FxM9INZSpiBnqX0Q9GlQPpPKAyO5y%2BW5NMPSRdBCUlmuxl40ZfMCnf2Cp044uI9WLFtCi4YVxKjuRCOBWIb4XbIsGdbo4qtMQnNOQz4XDSui7W%2FN6l54qOynCqD3DpWQ%2BmpD7C40D8BZEWGJX3tlAaZBMj1yjvDYKwCJBa201u6nBKE5UE%2B7QSEhCwrXfbRZylAaAkplhBWX50dumrElePyNMRYUrC99UmcSSNgImhFhDI4BXjMtiqkgizUGCrZ8iwFxU6fQ8GEHCFdLewwxYWxgScAYMdMLmcZR6b7rZl95eQVDGVoUKcRMM1ixXQtXNkBETZkVVPg8LoSrdetHzkuM7DjZRHP02tCxA1fmkXKF3VzfN1pc1cv%2F8lbTIkkYpqKM9VOhp65ktYk%2BQ46myFWBapDfyWUCnsnI00QTBQmuFjMZTcd0V2NQ768Fhpby04k2IzNR1wKabuGJqYWwSly6ocMFGTeeI%2BejsWDYgEvr66QgqdcIbFYDNgsm0x9UHY6SCd5%2B7tpsLpKdvhahIDyYmEJQCqMqtCF6UlrE5GXRmbu%2Bvtm3BFSxI6ND6UxIE7GsGMgWqghXxSnaRJuGFveTcK5ZVSPJyjUxe1dKgI6kNF7EZhIZs8y8FVqwEfbM0Xk2ltORVDKZZM40SD3qQoQe0orJEKwPfZwm3YPqwixhUMOndis6MhbmfvLBKjC8sKKIZKbJk8L11oNkCQzCgvjhyyEiQSuJcgCQSG4Mocfgc0Hkwcjal1UNgP0CBPikYqBIk9tONv4kLtBswH07vUCjEaHiFGlLf8MgXKzSgjp2HolRRccAOh0ILHz9qlGgIFkwAnzHJRjWFhlA7ROwINyB5HFj59PRZHFor6voq7l23EPNRwdWhgawqbivLSjRA4htEYUFkjESu67icTg5S0aW1sOkCiIysfJ9UnIWevOOLGpepcBxy1wEhd2WI3AZg7sr9WBmHWyasxMcvY%2FiOmsLtHSWNUWEGk9hScMPShasUA1AcHOtRZlqMeQ0OzYS9vQvYUjOLrzP07BUAFikcJNMi7gIxEw4pL1G54TcmmmoAQ5s7TGWErJZ2Io4yQ0ljRYhL8H5e62oDtLF8aDpnIvZ5R3GWJyAugdiiJW9hQAVTsnCBHhwu7rkBlBX6r3b7ejEY0k5GGeyKv66v%2B6dg7mcJTrWHbtMywbedYqCQ0FPwoytmSWsL8WTtChZCKKzEF7vP6De4x2BJkkniMgSdWhbeBSLtJZR9CTHetK1xb34AYIJ37OegYIoPVbXgJ%2FqDQK%2BbfCtxQRVKQu77WzOoM6SGL7MaZwCGJVk46aImai9fmam%2BWpHG%2B0BtQPWUgZ7RIAlPq6lkECUhZQ2gqWkMYKcYMYaIc4gYCDFHYa2d1nzp3%2BJ1eCBay8IYZ0wQRKGAqvCuZ%2FUgbQPyllosq%2BXtfKIZOzmeJqRazpmmoP%2F76YfkjzV2NlXTDSBYB04SVlNQsFTbGPk1t%2FI4Jktu0XSgifO2ozFOiwd%2F0SssJDn0dn4xqk4GDTTKX73%2FwQyBLdqgJ%2BWx6AQaba3BA9CKEzjtQYIfAsiYamapq80LAamYjinlKXUkxdpIDk0puXUEYzSalfRibAeDAKpNiqQ0FTwoxuGYzRnisyTotdVTclis1LHRQCy%2FqqL8oUaQzWRxilq5Mi0IJGtMY02cGLD69vGjkj3p6pGePKI8bkBv5evq8SjjyU04vJR2cQXQwSJyoinDsUJHCQ50jrFTT7yRdbdYQMB3MYCb6uBzJ9ewhXYPAIZSXfeEQBZZ3GPN3Nbhh%2FwkvAJLXnQMdi5NYYZ5GHE400GS5rXkOZSQsdZgIbzRnF9ueLnsfQ47wHAsirITnTlkCcuWWIUhJSbpM3wWhXNHvt2xUsKKMpdBSbJnBMcihkoDqAd1Zml%2FR4yrzow1Q2A5G%2Bkzo%2FRhRxQS2lCSDRV8LlYLBOOoo1bF4jwJAwKMK1tWLHlu9i0j4Ig8qVm6wE1DxXwAwQwsaBWUg2pOOol2dHxyt6npwJEdLDDVYyRc2D0HbcbLUJQj8gPevQBUBOUHXPrsAPBERICpnYESeu2OHotpXQxRGlCCtLdIsu23MhZVEoJg8Qumj%2FUMMc34IBqTKLDTp76WzL%2FdMjCxK7MjhiGjeYAC%2Fkj%2FjY%2FRde7hpSM1xChrog6yZ7OWTuD56xBJnGFE%2BpT2ElSyCnJcwVzCjkqeNLfMEJqKW0G7OFIp0G%2B9mh50I9o8k1tpCY0xYqFNIALgIfc2me4n1bmJnRZ89oepgLPT0NTMLNZsvSCZAc3TXaNB07vail36%2FdBySis4m9%2FDR8izaLJW6bWCkVgm5T%2Bius3ZXq4xI%2BGnbveLbdRwF2mNtsrE0JjYc1AXknCOrLSu7Te%2Fr4dPYMCl5qtiHNTn%2BTPbh1jCBHH%2BdMJNhwNgs3nT%2BOhQoQ0vYif56BMG6WowAcHR3DjQolxLzyVekHj00PBAaW7IIAF1EF%2BuRIWyXjQMAs2chdpaKPNaB%2BkSezYt0%2BCA04sOg5vx8Fr7Ofa9sUv87h7SLAUFSzbetCCZ9pmyLt6l6%2FTzoA1%2FZBG9bIUVHLAbi%2FkdBFgYGyGwRQGBpkqCEg2ah9UD6EedEcEL3j4y0BQQCiExEnocA3SZboh%2Bepgd3YsOkHskZwPuQ5OoyA0fTA5AXrHcUOQF%2BzkJHIA7PwCDk1gGVmGUZSSoPhNf%2BTklauz98QofOlCIQ%2FtCD4dosHYPqtPCXB3agggQQIqQJsSkB%2Bqn0rkQ1toJjON%2FOtCIB9RYv3PqRA4C4U68ZMlZn6BdgEvi2ziU%2BTQ6NIw3ej%2BAtDwMGEZk7e2IjxUWKdAxyaw9OCwSmeADTPPleyk6UhGDNXQb%2B%2BW6Uk4q6F7%2Frg6WVTo82IoCxSIsFDrav4EPHphD3u4hR53WKVvYZUwNCCeM4PMBWzK%2BEfIthZOkuAwPo5C5jgoZgn6dUdvx5rIDmd58cXXdKNfw3l%2BwM2UjgrDJeQHhbD7HW2QDoZMCujgIUkk5Fg8VCsdyjOtnGRx8wgKRPZN5dR0zPUyfGZFVihbFRniXZFOZGKPnEQzU3AnD1KfR6weHW2XS6KbPJxUkOTZsAB9vTVp3Le1F8q5l%2BDMcLiIq78jxAImD2pGFw0VHfRatScGlK6SMu8leTmhUSMy8Uhdd6xBiH3Gdman4tjQGLboJfqz6fL2WKHTmrfsKZRYX6BTDjDldKMosaSTLdQS7oDisJNqAUhw1PfTlnacCO8vl8706Km1FROgLDmudzxg%2BEWTiArtHgLsRrAXYWdB0NmToNCJdKm0KWycZQqb%2BMw76Qy29iQ5up%2FX7oyw8QZ75kP5F6iJAJz6KCmqxz8fEa%2FxnsMYcIO%2FvEkGRuMckhr4rIeLrKaXnmIzlNLxbFspOphkcnJdnz%2FChp%2FVlpj2P7jJQmQRwGnltkTV5dbF9fE3%2FfxoSqTROgq9wFUlbuYzYcasE0ouzBo%2BdDCDzxKAfhbAZYxQiHrLzV2iVexnDX%2FQnT1fsT%2Fxuhu1ui5qIytgbGmRoQkeQooO8eJNNZsf0iALur8QxZFH0nCMnjerYQqG1pIfjyVZWxhVRznmmfLG00BcBWJE6hzQWRyFknuJnXuk8A5FRDCulwrWASSNoBtR%2BCtGdkPwYN2o7DOw%2FVGlCZPusRBFXODQdUM5zeHDIVuAJBLqbO%2Ff9Qua%2BpDqEPk230Sob9lEZ8BHiCorjVghuI0lI4JDgHGRDD%2FprQ84B1pVGkIpVUAHCG%2Biz3Bn3qm2AVrYcYWhock4jso5%2BJ7HfHVj4WMIQdGctq3psBCVVzupQOEioBGA2Bk%2BUILT7%2BVoX5mdxxA5fS42gISQVi%2FHTzrgMxu0fY6hE1ocUwwbsbWcezrY2n6S8%2F6cxXkOH4prpmPuFoikTzY7T85C4T2XYlbxLglSv2uLCgFv8Quk%2FwdesUdWPeHYIH0R729JIisN9Apdd4eB10aqwXrPt%2BSu9mA8k8n1sjMwnfsfF2j3jMUzXepSHmZ%2FBfqXvzgUNQQWOXO8YEuFBh4QTYCkOAPxywpYu1VxiDyJmKVcmJPGWk%2Fgc3Pov02StyYDahwmzw3E1gYC9wkupyWfDqDSUMpCTH5e5N8B%2F%2FlHiMuIkTNw4USHrJU67bjXGqNav6PBuQSoqTxc8avHoGmvqNtXzIaoyMIQIiiUHIM64cXieouplhNYln7qgc4wBVAYR104kO%2BCvKqsg4yIUlFNThVUAKZxZt1XA34h3TCUUiXVkZ0w8Hh2R0Z5L0b4LZvPd%2Fp1gi%2F07h8qfwHrByuSxglc9cI4QIg2oqvC%2Fqm0i7tjPLTgDhoWTAKDO2ONW5oe%2B%2FeKB9vZB8K6C25yCZ9RFVMnb6NRdRjyVK57CHHSkJBfnM2%2Fj4ODUwRkqrtBBCrDsDpt8jhZdXoy%2F1BCqw3sSGhgGGy0a5Jw6BP%2FTExoCmNFYjZl248A0osgPyGEmRA%2BfAsqPVaNAfytu0vuQJ7rk3J4kTDTR2AlCHJ5cls26opZM4w3jMULh2YXKpcqGBtuleAlOZnaZGbD6DHzMd6i2oFeJ8z9XYmalg1Szd%2FocZDc1C7Y6vcALJz2lYnTXiWEr2wawtoR4g3jvWUU2Ngjd1cewtFzEvM1NiHZPeLlIXFbBPawxNgMwwAlyNSuGF3zizVeOoC9bag1qRAQKQE%2FEZBWC2J8mnXAN2aTBboZ7HewnObE8CwROudZHmUM5oZ%2FUgd%2FJZQK8lvAm43uDRAbyW8gZ%2BZGq0EVerVGUKUSm%2FIdn8AQHdR4m7bue88WBwft9mSCeMOt1ncBwziOmJYI2ZR7ewNMPiCugmSsE4EyQ%2BQATJG6qORMGd4snEzc6B4shPIo4G1T7PgSm8PY5eUkPdF8JZ0VBtadbHXoJgnEhZQaODPj2gpODKJY5Yp4DOsLBFxWbvXN755KWylJm%2BoOd4zEL9Hpubuy2gyyfxh8oEfFutnYWdfB8PdESLWYvSqbElP9qo3u6KTmkhoacDauMNNjj0oy40DFV7Ql0aZj77xfGl7TJNHnIwgqOkenruYYNo6h724%2BzUQ7%2BvkCpZB%2BpGA562hYQiDxHVWOq0oDQl%2FQsoiY%2BcuI7iWq%2FZIBtHcXJ7kks%2Bh2fCNUPA82BzjnqktNts%2BRLdk1VSu%2BtqEn7QZCCsvEqk6FkfiOYkrsw092J8jsfIuEKypNjLxrKA9kiA19mxBD2suxQKCzwXGws7kEJvlhUiV9tArLIdZW0IORcxEzdzKmjtFhsjKy%2F44XYXdI5noQoRcvjZ1RMPACRqYg2V1%2BOwOepcOknRLLFdYgTkT5UApt%2FJhLM3jeFYprZV%2BZow2g8fP%2BU68hkKFWJj2yBbKqsrp25xkZX1DAjUw52IMYWaOhab8Kp05VrdNftqwRrymWF4OQSjbdfzmRZirK8FMJELEgER2PHjEAN9pGfLhCUiTJFbd5LBkOBMaxLr%2FA1SY9dXFz4RjzoU9ExfJCmx%2FI9FKEGT3n2cmzl2X42L3Jh%2BAbQq6sA%2BSs1kitoa4TAYgKHaoybHUDJ51oETdeI%2F9ThSmjWGkyLi5QAGWhL0BG1UsTyRGRJOldKBrYJeB8ljLJHfATWTEQBXBDnQexOHTB%2BUn44zExFE4vLytcu5NwpWrUxO%2F0ZICUGM7hGABXym0V6ZvDST0E370St9MIWQOTWngeoQHUTdCJUP04spMBMS8LSker9cReVQkULFDIZDFPrhTzBl6sed9wcZQTbL%2BBDqMyaN3RJPh%2Fanbx%2BIv%2BqgQdAa3M9Z5JmvYlh4qop%2BHo1F1W5gbOE9YKLgAnWytXElU4G8GtW47lhgFE6gaSs%2Bgs37sFvi0PPVvA5dnCBgILTwoKd%2F%2BDoL9F6inlM7H4rOTzD79KJgKlZO%2FZgt22UsKhrAaXU5ZcLrAglTVKJEmNJvORGN1vqrcfSMizfpsgbIe9zno%2BgBoKVXgIL%2FVI8dB1O5o%2FR3Suez%2FgD7M781ShjKpIIORM%2FnxG%2BjjhhgPwsn2IoXsPGPqYHXA63zJ07M2GPEykQwJBYLK808qYxuIew4frk52nhCsnCYmXiR6CuapvE1IwRB4%2FQftDbEn%2BAucIr1oxrLabRj9q4ae0%2BfXkHnteAJwXRbVkR0mctVSwEbqhJiMSZUp9DNbEDMmjX22m3ABpkrPQQTP3S1sib5pD2VRKRd%2BeNAjLYyT0hGrdjWJZy24OYXRoWQAIhGBZRxuBFMjjZQhpgrWo8SiFYbojcHO8V5DyscJpLTHyx9Fimassyo5U6WNtquUMYgccaHY5amgR3PQzq3ToNM5ABnoB9kuxsebqmYZm0R9qxJbFXCQ1UPyFIbxoUraTJFDpCk0Wk9GaYJKz%2F6oHwEP0Q14lMtlddQsOAU9zlYdMVHiT7RQP3XCmWYDcHCGbVRHGnHuwzScA0BaSBOGkz3lM8CArjrBsyEoV6Ys4qgDK3ykQQPZ3hCRGNXQTNNXbEb6tDiTDLKOyMzRhCFT%2BmAUmiYbV3YQVqFVp9dorv%2BTsLeCykS2b5yyu8AV7IS9cxcL8z4Kfwp%2BxJyYLv1OsxQCZwTB4a8BZ%2F5EdxTBJthApqyfd9u3ifr%2FWILTqq5VqgwMT9SOxbSGWLQJUUWCVi4k9tho9nEsbUh7U6NUsLmkYFXOhZ0kmamaJLRNJzSj%2Fqn4Mso6zb6iLLBXoaZ6AqeWCjHQm2lztnejYYM2eubnpBdKVLORZhudH3JF1waBJKA9%2BW8EhMj3Kzf0L4vi4k6RoHh3Z5YgmSZmk6ns4fjScjAoL8GoOECgqgYEBYUGFVO4FUv4%2FYtowhEmTs0vrvlD%2FCrisnoBNDAcUi%2FteY7OctFlmARQzjOItrrlKuPO6E2Ox93L4O%2F4DcgV%2FdZ7qR3VBwVQxP1GCieA4RIpweYJ5FoYrHxqRBdJjnqbsikA2Ictbb8vE1GYIo9dacK0REgDX4smy6GAkxlH1yCGGsk%2BtgiDhNKuKu3yNrMdxafmKTF632F8Vx4BNK57GvlFisrkjN9WDAtjsWA0ENT2e2nETUb%2Fn7qwhvGnrHuf5bX6Vh%2Fn3xffU3PeHdR%2BFA92i6ufT3AlyAREoNDh6chiMWTvjKjHDeRhOa9YkOQRq1vQXEMppAQVwHCuIcV2g5rBn6GmZZpTR7vnSD6ZmhdSl176gqKTXu5E%2BYbfL0adwNtHP7dT7t7b46DVZIkzaRJOM%2BS6KcrzYVg%2BT3wSRFRQashjfU18NutrKa%2F7PXbtuJvpIjbgPeqd%2BpjmRw6YKpnANFSQcpzTZgpSNJ6J7uiagAbir%2F8tNXJ%2FOsOnRh6iuIexxrmkIneAgz8QoLmiaJ8sLQrELVK2yn3wOHp57BAZJhDZjTBzyoRAuuZ4eoxHruY1pSb7qq79cIeAdOwin4GdgMeIMHeG%2BFZWYaiUQQyC5b50zKjYw97dFjAeY2I4Bnl105Iku1y0lMA1ZHolLx19uZnRdILcXKlZGQx%2FGdEqSsMRU1BIrFqRcV1qQOOHyxOLXEGcbRtAEsuAC2V4K3p5mFJ22IDWaEkk9ttf5Izb2LkD1MnrSwztXmmD%2FQi%2FEmVEFBfiKGmftsPwVaIoZanlKndMZsIBOskFYpDOq3QUs9aSbAAtL5Dbokus2G4%2FasthNMK5UQKCOhU97oaOYNGsTah%2BjfCKsZnTRn5TbhFX8ghg8CBYt%2FBjeYYYUrtUZ5jVij%2Fop7V5SsbA4mYTOwZ46hqdpbB6Qvq3AS2HHNkC15pTDIcDNGsMPXaBidXYPHc6PJAkRh29Vx8KcgX46LoUQBhRM%2B3SW6Opll%2FwgxxsPgKJKzr5QCmwkUxNbeg6Wj34SUnEzOemSuvS2OetRCO8Tyy%2BQbSKVJcqkia%2BGvDefFwMOmgnD7h81TUtMn%2BmRpyJJ349HhAnoWFTejhpYTL9G8N2nVg1qkXBeoS9Nw2fB27t7trm7d%2FQK7Cr4uoCeOQ7%2F8JfKT77KiDzLImESHw%2F0wf73QeHu74hxv7uihi4fTX%2BXEwAyQG3264dwv17aJ5N335Vt9sdrAXhPOAv8JFvzqyYXwfx8WYJaef1gMl98JRFyl5Mv5Uo%2FoVH5ww5OzLFsiTPDns7fS6EURSSWd%2F92BxMYQ8sBaH%2Bj%2BwthQPdVgDGpTfi%2BJQIWMD8xKqULliRH01rTeyF8x8q%2FGBEEEBrAJMPf25UQwi0b8tmqRXY7kIvNkzrkvRWLnxoGYEJsz8u4oOyMp8cHyaybb1HdMCaLApUE%2B%2F7xLIZGP6H9xuSEXp1zLIdjk5nBaMuV%2FyTDRRP8Y2ww5RO6d2D94o%2B6ucWIqUAvgHIHXhZsmDhjVLczmZ3ca0Cb3PpKwt2UtHVQ0BgFJsqqTsnzZPlKahRUkEu4qmkJt%2Bkqdae76ViWe3STan69yaF9%2BfESD2lcQshLHWVu4ovItXxO69bqC5p1nZLvI8NdQB9s9UNaJGlQ5mG947ipdDA0eTIw%2FA1zEdjWquIsQXXGIVEH0thC5M%2BW9pZe7IhAVnPJkYCCXN5a32HjN6nsvokEqRS44tGIs7s2LVTvcrHAF%2BRVmI8L4HUYk4x%2B67AxSMJKqCg8zrGOgvK9kNMdDrNiUtSWuHFpC8%2Fp5qIQrEo%2FH%2B1l%2F0cAwQ2nKmpWxKcMIuHY44Y6DlkpO48tRuUGBWT0FyHwSKO72Ud%2BtJUfdaZ4CWNijzZtlRa8%2BCkmO%2FEwHYfPZFU%2FhzjFWH7vnzHRMo%2BaF9u8qHSAiEkA2HjoNQPEwHsDKOt6hOoK3Ce%2F%2B%2F9boMWDa44I6FrQhdgS7OnNaSzwxWKZMcyHi6LN4WC6sSj0qm2PSOGBTvDs%2FGWJS6SwEN%2FULwpb4LQo9fYjUfSXRwZkynUazlSpvX9e%2BG2zor8l%2BYaMxSEomDdLHGcD6YVQPegTaA74H8%2BV4WvJkFUrjMLGLlvSZQWvi8%2FQA7yzQ8GPno%2F%2F5SJHRP%2FOqKObPCo81s%2F%2B6WgLqykYpGAgQZhVDEBPXWgU%2FWzFZjKUhSFInufPRiMAUULC6T11yL45ZrRoB4DzOyJShKXaAJIBS9wzLYIoCEcJKQW8GVCx4fihqJ6mshBUXSw3wWVj3grrHQlGNGhIDNNzsxQ3M%2BGWn6ASobIWC%2BLbYOC6UpahVO13Zs2zOzZC8z7FmA05JhUGyBsF4tsG0drcggIFzgg%2Fkpf3%2BCnAXKiMgIE8Jk%2FMhpkc8DUJEUzDSnWlQFme3d0sHZDrg7LavtsEX3cHwjCYA17pMTfx8Ajw9hHscN67hyo%2BRJQ4458RmPywXykkVcW688oVUrQhahpPRvTWPnuI0B%2BSkQu7dCyvLRyFYlC1LG1gRCIvn3rwQeINzZQC2KXq31FaR9UmVV2QeGVqBHjmE%2BVMd3b1fhCynD0pQNhCG6%2FWCDbKPyE7NRQzL3BzQAJ0g09aUzcQA6mUp9iZFK6Sbp%2FYbHjo%2B%2B7%2FWj8S4YNa%2BZdqAw1hDrKWFXv9%2BzaXpf8ZTDSbiqsxnwN%2FCzK5tPkOr4tRh2kY3Bn9JtalbIOI4b3F7F1vPQMfoDcdxMS8CW9m%2FNCW%2FHILTUVWQIPiD0j1A6bo8vsv6P1hCESl2abrSJWDrq5sSzUpwoxaCU9FtJyYH4QFMxDBpkkBR6kn0LMPO%2B5EJ7Z6bCiRoPedRZ%2FP0SSdii7ZnPAtVwwHUidcdyspwncz5uq6vvm4IEDbJVLUFCn%2FLvIHfooUBTkFO130FC7CmmcrKdgDJcid9mvVzsDSibOoXtIf9k6ABle3PmIxejodc4aob0QKS432srrCMndbfD454q52V01G4q913mC5HOsTzWF4h2No1av1VbcUgWAqyoZl%2B11PoFYnNv2HwAODeNRkHj%2B8SF1fcvVBu6MrehHAZK1Gm69ICcTKizykHgGFx7QdowTVAsYEF2tVc0Z6wLryz2FI1sc5By2znJAAmINndoJiB4sfPdPrTC8RnkW7KRCwxC6YvXg5ahMlQuMpoCSXjOlBy0Kij%2BbsCYPbGp8BdCBiLmLSAkEQRaieWo1SYvZIKJGj9Ur%2FeWHjiB7SOVdqMAVmpBvfRiebsFjger7DC%2B8kRFGtNrTrnnGD2GAJb8rQCWkUPYHhwXsjNBSkE6lGWUj5QNhK0DMNM2l%2BkXRZ0KLZaGsFSIdQz%2FHXDxf3%2FTE30%2BDgBKWGWdxElyLccJfEpjsnszECNoDGZpdwdRgCixeg9L4EPhH%2BRptvRMVRaahu4cySjS3P5wxAUCPkmn%2BrhyASpmiTaiDeggaIxYBmtLZDDhiWIJaBgzfCsAGUF1Q1SFZYyXDt9skCaxJsxK2Ms65dmdp5WAZyxik%2FzbrTQk5KmgxCg%2Ff45L0jywebOWUYFJQAJia7XzCV0x89rpp%2Ff3AVWhSPyTanqmik2SkD8A3Ml4NhIGLAjBXtPShwKYfi2eXtrDuKLk4QlSyTw1ftXgwqA2jUuopDl%2B5tfUWZNwBpEPXghzbBggYCw%2Fdhy0ntds2yeHCDKkF%2FYxQjNIL%2FF%2F37jLPHCKBO9ibwYCmuxImIo0ijV2Wbg3kSN2psoe8IsABv3RNFaF9uMyCtCYtqcD%2BqNOhwMlfARQUdJ2tUX%2BMNJqOwIciWalZsmEjt07tfa8ma4cji9sqz%2BQ9hWfmMoKEbIHPOQORbhQRHIsrTYlnVTNvcq1imqmmPDdVDkJgRcTgB8Sb6epCQVmFZe%2BjGDiNJQLWnfx%2BdrTKYjm0G8yH0ZAGMWzEJhUEQ4Maimgf%2Fbkvo8PLVBsZl152y5S8%2BHRDfZIMCbYZ1WDp4yrdchOJw8k6R%2B%2F2pHmydK4NIK2PHdFPHtoLmHxRDwLFb7eB%2BM4zNZcB9NrAgjVyzLM7xyYSY13ykWfIEEd2n5%2FiYp3ZdrCf7fL%2Ben%2BsIJu2W7E30MrAgZBD1rAAbZHPgeAMtKCg3NpSpYQUDWJu9bT3V7tOKv%2BNRiJc8JAKqqgCA%2FPNRBR7ChpiEulyQApMK1AyqcWnpSOmYh6yLiWkGJ2mklCSPIqN7UypWj3dGi5MvsHQ87MrB4VFgypJaFriaHivwcHIpmyi5LhNqtem4q0n8awM19Qk8BOS0EsqGscuuydYsIGsbT5GHnERUiMpKJl4ON7qjB4fEqlGN%2FhCky89232UQCiaeWpDYCJINXjT6xl4Gc7DxRCtgV0i1ma4RgWLsNtnEBRQFqZggCLiuyEydmFd7WlogpkCw5G1x4ft2psm3KAREwVwr1Gzl6RT7FDAqpVal34ewVm3VH4qn5mjGj%2BbYL1NgfLNeXDwtmYSpwzbruDKpTjOdgiIHDVQSb5%2FzBgSMbHLkxWWgghIh9QTFSDILixVwg0Eg1puooBiHAt7DzwJ7m8i8%2Fi%2BjHvKf0QDnnHVkVTIqMvIQImOrzCJwhSR7qYB5gSwL6aWL9hERHCZc4G2%2BJrpgHNB8eCCmcIWIQ6rSdyPCyftXkDlErUkHafHRlkOIjxGbAktz75bnh50dU7YHk%2BMz7wwstg6RFZb%2BTZuSOx1qqP5C66c0mptQmzIC2dlpte7vZrauAMm%2F7RfBYkGtXWGiaWTtwvAQiq2oD4YixPLXE2khB2FRaNRDTk%2B9sZ6K74Ia9VntCpN4BhJGJMT4Z5c5FhSepRCRWmBXqx%2BwhVZC4me4saDs2iNqXMuCl6iAZflH8fscC1sTsy4PHeC%2BXYuqMBMUun5YezKbRKmEPwuK%2BCLzijPEQgfhahQswBBLfg%2FGBgBiI4QwAqzJkkyYAWtjzSg2ILgMAgqxYfwERRo3zruBL9WOryUArSD8sQOcD7fvIODJxKFS615KFPsb68USBEPPj1orNzFY2xoTtNBVTyzBhPbhFH0PI5AtlJBl2aSgNPYzxYLw7XTDBDinmVoENwiGzmngrMo8OmnRP0Z0i0Zrln9DDFcnmOoBZjABaQIbPOJYZGqX%2BRCMlDDbElcjaROLDoualmUIQ88Kekk3iM4OQrADcxi3rJguS4MOIBIgKgXrjd1WkbCdqxJk%2F4efRIFsavZA7KvvJQqp3Iid5Z0NFc5aiMRzGN3vrpBzaMy4JYde3wr96PjN90AYOIbyp6T4zj8LoE66OGcX1Ef4Z3KoWLAUF4BTg7ug%2FAbkG5UNQXAMkQezujSHeir2uTThgd3gpyzDrbnEdDRH2W7U6PeRvBX1ZFMP5RM%2BZu6UUZZD8hDPHldVWntTCNk7To8IeOW9yn2wx0gmurwqC60AOde4r3ETi5pVMSDK8wxhoGAoEX9NLWHIR33VbrbMveii2jAJlrxwytTHbWNu8Y4N8vCCyZjAX%2FpcsfwXbLze2%2BD%2Bu33OGBoJyAAL3jn3RuEcdp5If8O%2Ba4NKWvxOTyDltG0IWoHhwVGe7dKkCWFT%2B%2Btm%2BhaBCikRUUMrMhYKZJKYoVuv%2FbsJzO8DwfVIInQq3g3BYypiz8baogH3r3GwqCwFtZnz4xMjAVOYnyOi5HWbFA8n0qz1OjSpHWFzpQOpvkNETZBGpxN8ybhtqV%2FDMUxd9uFZmBfKXMCn%2FSqkWJyKPnT6lq%2B4zBZni6fYRByJn6OK%2BOgPBGRAJluwGSk4wxjOOzyce%2FPKODwRlsgrVkdcsEiYrqYdXo0Er2GXi2GQZd0tNJT6c9pK1EEJG1zgDJBoTVuCXGAU8BKTvCO%2FcEQ1Wjk3Zzuy90JX4m3O5IlxVFhYkSUwuQB2up7jhvkm%2BbddRQu5F9s0XftGEJ9JSuSk%2BZachCbdU45fEqbugzTIUokwoAKvpUQF%2FCvLbWW5BNQFqFkJg2f30E%2F48StNe5QwBg8zz3YAJ82FZoXBxXSv4QDooDo79NixyglO9AembuBcx5Re3CwOKTHebOPhkmFC7wNaWtoBhFuV4AkEuJ0J%2B1pT0tLkvFVZaNzfhs%2FKd3%2BA9YsImlO4XK4vpCo%2FelHQi%2F9gkFg07xxnuXLt21unCIpDV%2BbbRxb7FC6nWYTsMFF8%2B1LUg4JFjVt3vqbuhHmDKbgQ4e%2BRGizRiO8ky05LQGMdL2IKLSNar0kNG7lHJMaXr5mLdG3nykgj6vB%2FKVijd1ARWkFEf3yiUw1v%2FWaQivVUpIDdSNrrKbjO5NPnxz6qTTGgYg03HgPhDrCFyYZTi3XQw3HXCva39mpLNFtz8AiEhxAJHpWX13gCTAwgm9YTvMeiqetdNQv6IU0hH0G%2BZManTqDLPjyrOse7WiiwOJCG%2BJ0pZYULhN8NILulmYYvmVcV2MjAfA39sGKqGdjpiPo86fecg65UPyXDIAOyOkCx5NQsLeD4gGVjTVDwOHWkbbBW0GeNjDkcSOn2Nq4cEssP54t9D749A7M1AIOBl0Fi0sSO5v3P7LCBrM6ZwFY6kp2FX6AcbGUdybnfChHPyu6WlRZ2Fwv9YM0RMI7kISRgR8HpQSJJOyTfXj%2F6gQKuihPtiUtlCQVPohUgzfezTg8o1b3n9pNZeco1QucaoXe40Fa5JYhqdTspFmxGtW9h5ezLFZs3j%2FN46f%2BS2rjYNC2JySXrnSAFhvAkz9a5L3pza8eYKHNoPrvBRESpxYPJdKVUxBE39nJ1chrAFpy4MMkf0qKgYALctGg1DQI1kIymyeS2AJNT4X240d3IFQb%2F0jQbaHJ2YRK8A%2Bls6WMhWmpCXYG5jqapGs5%2FeOJErxi2%2F2KWVHiPellTgh%2FfNl%2F2KYPKb7DUcAg%2BmCOPQFCiU9Mq%2FWLcU1xxC8aLePFZZlE%2BPCLzf7ey46INWRw2kcXySR9FDgByXzfxiNKwDFbUSMMhALPFSedyjEVM5442GZ4hTrsAEvZxIieSHGSgkwFh%2FnFNdrrFD4tBH4Il7fW6ur4J8Xaz7RW9jgtuPEXQsYk7gcMs2neu3zJwTyUerHKSh1iTBkj2YJh1SSOZL5pLuQbFFAvyO4k1Hxg2h99MTC6cTUkbONQIAnEfGsGkNFWRbuRyyaEZInM5pij73EA9rPIUfU4XoqQpHT9THZkW%2BoKFLvpyvTBMM69tN1Ydwv1LIEhHsC%2BueVG%2Bw%2BkyCPsvV3erRikcscHjZCkccx6VrBkBRusTDDd8847GA7p2Ucy0y0HdSRN6YIBciYa4vuXcAZbQAuSEmzw%2BH%2FAuOx%2BaH%2BtBL88H57D0MsqyiZxhOEQkF%2F8DR1d2hSPMj%2FsNOa5rxcUnBgH8ictv2J%2Bcb4BA4v3MCShdZ2vtK30vAwkobnEWh7rsSyhmos3WC93Gn9C4nnAd%2FPjMMtQfyDNZsOPd6XcAsnBE%2FmRHtHEyJMzJfZFLE9OvQa0i9kUmToJ0ZxknTgdl%2FXPV8xoh0K7wNHHsnBdvFH3sv52lU7UFteseLG%2FVanIvcwycVA7%2BBE1Ulyb20BvwUWZcMTKhaCcmY3ROpvonVMV4N7yBXTL7IDtHzQ4CCcqF66LjF3xUqgErKzolLyCG6Kb7irP%2FMVTCCwGRxfrPGpMMGvPLgJ881PHMNMIO09T5ig7AzZTX%2F5PLlwnJLDAPfuHynSGhV4tPqR3gJ4kg4c06c%2FF1AcjGytKm2Yb5jwMotF7vro4YDLWlnMIpmPg36NgAZsGA0W1spfLSue4xxat0Gdwd0lqDBOgIaMANykwwDKejt5YaNtJYIkrSgu0KjIg0pznY0SCd1qlC6R19g97UrWDoYJGlrvCE05J%2F5wkjpkre727p5PTRX5FGrSBIfJqhJE%2FIS876PaHFkx9pGTH3oaY3jJRvLX9Iy3Edoar7cFvJqyUlOhAEiOSAyYgVEGkzHdug%2BoRHIEOXAExMiTSKU9A6nmRC8mp8iYhwWdP2U%2F5EkFAdPrZw03YA3gSyNUtMZeh7dDCu8pF5x0VORCTgKp07ehy7NZqKTpIC4UJJ89lnboyAfy5OyXzXtuDRbtAFjZRSyGFTpFrXwkpjSLIQIG3N0Vj4BtzK3wdlkBJrO18MNsgseR4BysJilI0wI6ZahLhBFA0XBmV8d4LUzEcNVb0xbLjLTETYN8OEVqNxkt10W614dd1FlFFVTIgB7%2FBQQp1sWlNolpIu4ekxUTBV7NmxOFKEBmmN%2BnA7pvF78%2FRII5ZHA09OAiE%2F66MF6HQ%2BqVEJCHxwymukkNvzqHEh52dULPbVasfQMgTDyBZzx4007YiKdBuUauQOt27Gmy8ISclPmEUCIcuLbkb1mzQSqIa3iE0PJh7UMYQbkpe%2BhXjTJKdldyt2mVPwywoODGJtBV1lJTgMsuSQBlDMwhEKIfrvsxGQjHPCEfNfMAY2oxvyKcKPUbQySkKG6tj9AQyEW3Q5rpaDJ5Sns9ScLKeizPRbvWYAw4bXkrZdmB7CQopCH8NAmqbuciZChHN8lVGaDbCnmddnqO1PQ4ieMYfcSiBE5zzMz%2BJV%2F4eyzrzTEShvqSGzgWimkNxLvUj86iAwcZuIkqdB0VaIB7wncLRmzHkiUQpPBIXbDDLHBlq7vp9xwuC9AiNkIptAYlG7Biyuk8ILdynuUM1cHWJgeB%2BK3wBP%2FineogxkvBNNQ4AkW0hvpBOQGFfeptF2YTR75MexYDUy7Q%2F9uocGsx41O4IZhViw%2F2FvAEuGO5g2kyXBUijAggWM08bRhXg5ijgMwDJy40QeY%2FcQpUDZiIzmvskQpO5G1zyGZA8WByjIQU4jRoFJt56behxtHUUE%2Fom7Rj2psYXGmq3llVOCgGYKNMo4pzwntITtapDqjvQtqpjaJwjHmDzSVGLxMt12gEXAdLi%2FcaHSM3FPRGRf7dB7YC%2BcD2ho6oL2zGDCkjlf%2FDFoQVl8GS%2F56wur3rdV6ggtzZW60MRB3g%2BU1W8o8cvqIpMkctiGVMzXUFI7FacFLrgtdz4mTEr4aRAaQ2AFQaNeG7GX0yOJgMRYFziXdJf24kg%2FgBQIZMG%2FYcPEllRTVNoDYR6oSJ8wQNLuihfw81UpiKPm714bZX1KYjcXJdfclCUOOpvTxr9AAJevTY4HK%2FG7F3mUc3GOAKqh60zM0v34v%2BELyhJZqhkaMA8UMMOU90f8RKEJFj7EqepBVwsRiLbwMo1J2zrE2UYJnsgIAscDmjPjnzI8a719Wxp757wqmSJBjXowhc46QN4RwKIxqEE6E5218OeK7RfcpGjWG1jD7qND%2B%2FGTk6M56Ig4yMsU6LUW1EWE%2BfIYycVV1thldSlbP6ltdC01y3KUfkobkt2q01YYMmxpKRvh1Z48uNKzP%2FIoRIZ%2FF6buOymSnW8gICitpJjKWBscSb9JJKaWkvEkqinAJ2kowKoqkqZftRqfRQlLtKoqvTRDi2vg%2FRrPD%2Fd3a09J8JhGZlEkOM6znTsoMCsuvTmywxTCDhw5dd0GJOHCMPbsj3QLkTE3MInsZsimDQ3HkvthT7U9VA4s6G07sID0FW4SHJmRGwCl%2BMu4xf0ezqeXD2PtPDnwMPo86sbwDV%2B9PWcgFcARUVYm3hrFQrHcgMElFGbSM2A1zUYA3baWfheJp2AINmTJLuoyYD%2FOwA4a6V0ChBN97E8YtDBerUECv0u0TlxR5yhJCXvJxgyM73Bb6pyq0jTFJDZ4p1Am1SA6sh8nADd1hAcGBMfq4d%2FUfwnmBqe0Jun1n1LzrgKuZMAnxA3NtCN7Klf4BH%2B14B7ibBmgt0TGUafVzI4uKlpF7v8NmgNjg90D6QE3tbx8AjSAC%2BOA1YJvclyPKgT27QpIEgVYpbPYGBsnyCNrGz9XUsCHkW1QAHgL2STZk12QGqmvAB0NFteERkvBIH7INDsNW9KKaAYyDMdBEMzJiWaJHZALqDxQDWRntumSDPcplyFiI1oDpT8wbwe01AHhW6%2BvAUUBoGhY3CT2tgwehdPqU%2F4Q7ZLYvhRl%2FogOvR9O2%2BwkkPKW5vCTjD2fHRYXONCoIl4Jh1bZY0ZE1O94mMGn%2FdFSWBWzQ%2FVYk%2BGezi46RgiDv3EshoTmMSlioUK6MQEN8qeyK6FRninyX8ZPeUWjjbMJChn0n%2FyJvrq5bh5UcCAcBYSafTFg7p0jDgrXo2QWLb3WpSOET%2FHh4oSadBTvyDo10IufLzxiMLAnbZ1vcUmj3w7BQuIXjEZXifwukVxrGa9j%2BDXfpi12m1RbzYLg9J2wFergEwOxFyD0%2FJstNK06ZN2XdZSGWxcJODpQHOq4iKqjqkJUmPu1VczL5xTGUfCgLEYyNBCCbMBFT%2FcUP6pE%2FmujnHsSDeWxMbhrNilS5MyYR0nJyzanWXBeVcEQrRIhQeJA6Xt4f2eQESNeLwmC10WJVHqwx8SSyrtAAjpGjidcj1E2FYN0LObUcFQhafUKTiGmHWRHGsFCB%2BHEXgrzJEB5bp0QiF8ZHh11nFX8AboTD0PS4O1LqF8XBks2MpjsQnwKHF6HgaKCVLJtcr0XjqFMRGfKv8tmmykhLRzu%2BvqQ02%2BKpJBjaLt9ye1Ab%2BBbEBhy4EVdIJDrL2naV0o4wU8YZ2Lq04FG1mWCKC%2BUwkXOoAjneU%2FxHplMQo2cXUlrVNqJYczgYlaOEczVCs%2FOCgkyvLmTmdaBJc1iBLuKwmr6qtRnhowngsDxhzKFAi02tf8bmET8BO27ovJKF1plJwm3b0JpMh38%2BxsrXXg7U74QUM8ZCIMOpXujHntKdaRtsgyEZl5MClMVMMMZkZLNxH9%2Bb8fH6%2Bb8Lev30A9TuEVj9CqAdmwAAHBPbfOBFEATAPZ2CS0OH1Pj%2F0Q7PFUcC8hDrxESWdfgFRm%2B7vvWbkEppHB4T%2F1ApWnlTIqQwjcPl0VgS1yHSmD0OdsCVST8CQVwuiew1Y%2Bg3QGFjNMzwRB2DSsAk26cmA8lp2wIU4p93AUBiUHFGOxOajAqD7Gm6NezNDjYzwLOaSXRBYcWipTSONHjUDXCY4mMI8XoVCR%2FRrs%2FJLKXgEx%2BqkmeDlFOD1%2FyTQNDClRuiUyKYCllfMiQiyFkmuTz2vLsBNyRW%2Bxz%2B5FElFxWB28VjYIGZ0Yd%2B5wIjkcoMaggxswbT0pCmckRAErbRlIlcOGdBo4djTNO8FAgQ%2BlT6vPS60BwTRSUAM3ddkEAZiwtEyArrkiDRnS7LJ%2B2hwbzd2YDQagSgACpsovmjil5wfPuXq3GuH0CyE7FK3M4FgRaFoIkaodORrPx1%2BJpI9psyNYIFuJogZa0%2F1AhOWdlHQxdAgbwacsHqPZo8u%2FngAH2GmaTdhYnBfSDbBfh8CHq6Bx5bttP2%2BRdM%2BMAaYaZ0Y%2FADkbNCZuAyAVQa2OcXOeICmDn9Q%2FeFkDeFQg5MgHEDXq%2FtVjj%2Bjtd26nhaaolWxs1ixSUgOBwrDhRIGOLyOVk2%2FBc0UxvseQCO2pQ2i%2BKrfhu%2FWeBovNb5dJxQtJRUDv2mCwYVpNl2efQM9xQHnK0JwLYt%2FU0Wf%2BphiA4uw8G91slC832pmOTCAoZXohg1fewCZqLBhkOUBofBWpMPsqg7XEXgPfAlDo2U5WXjtFdS87PIqClCK5nW6adCeXPkUiTGx0emOIDQqw1yFYGHEVx20xKjJVYe0O8iLmnQr3FA9nSIQilUKtJ4ZAdcTm7%2BExseJauyqo30hs%2B1qSW211A1SFAOUgDlCGq7eTIcMAeyZkV1SQJ4j%2Fe1Smbq4HcjqgFbLAGLyKxlMDMgZavK5NAYH19Olz3la%2FQCTiVelFnU6O%2FGCvykqS%2FwZJDhKN9gBtSOp%2F1SP5VRgJcoVj%2Bkmf2wBgv4gjrgARBWiURYx8xENV3bEVUAAWWD3dYDKAIWk5opaCFCMR5ZjJExiCAw7gYiSZ2rkyTce4eNMY3lfGn%2B8p6%2BvBckGlKEXnA6Eota69OxDO9oOsJoy28BXOR0UoXNRaJD5ceKdlWMJlOFzDdZNpc05tkMGQtqeNF2lttZqNco1VtwXgRstLSQ6tSPChgqtGV5h2DcDReIQadaNRR6AsAYKL5gSFsCJMgfsaZ7DpKh8mg8Wz8V7H%2BgDnLuMxaWEIUPevIbClgap4dqmVWSrPgVYCzAoZHIa5z2Ocx1D%2FGvDOEqMOKLrMefWIbSWHZ6jbgA8qVBhYNHpx0P%2BjAgN5TB3haSifDcApp6yymEi6Ij%2FGsEpDYUgcHATJUYDUAmC1SCkJ4cuZXSAP2DEpQsGUjQmKJfJOvlC2x%2FpChkOyLW7KEoMYc5FDC4v2FGqSoRWiLsbPCiyg1U5yiHZVm1XLkHMMZL11%2Fyxyw0UnGig3MFdZklN5FI%2FqiT65T%2BjOXOdO7XbgWurOAZR6Cv9uu1cm5LjkXX4xi6mWn5r5NjBS0gTliHhMZI2WNqSiSphEtiCAwnafS11JhseDGHYQ5%2BbqWiAYiAv6Jsf79%2FVUs4cIl%2Bn6%2BWOjcgB%2F2l5TreoAV2717JzZbQIR0W1cl%2FdEqCy5kJ3ZSIHuU0vBoHooEpiHeQWVkkkOqRX27eD1FWw4BfO9CJDdKoSogQi3hAAwsPRFrN5RbX7bqLdBJ9JYMohWrgJKHSjVl1sy2xAG0E3sNyO0oCbSGOxCNBRRXTXenYKuwAoDLfnDcQaCwehUOIDiHAu5m5hMpKeKM4sIo3vxACakIxKoH2YWF2QM84e6F5C5hJU4g8uxuFOlAYnqtwxmHyNEawLW%2FPhoawJDrGAP0JYWHgAVUByo%2FbGdiv2T2EMg8gsS14%2FrAdzlOYazFE7w4OzxeKiWdm3nSOnQRRKXSlVo8HEAbBfyJMKqoq%2BSCcTSx5NDtbFwNlh8VhjGGDu7JG5%2FTAGAvniQSSUog0pNzTim8Owc6QTuSKSTXlQqwV3eiEnklS3LeSXYPXGK2VgeZBqNcHG6tZHvA3vTINhV0ELuQdp3t1y9%2BogD8Kk%2FW7QoRN1UWPqM4%2BxdygkFDPLoTaumKReKiLWoPHOfY54m3qPx4c%2B4pgY3MRKKbljG8w4wvz8pxk3AqKsy4GMAkAtmRjRMsCxbb4Q2Ds0Ia9ci8cMT6DmsJG00XaHCIS%2Bo3F8YVVeikw13w%2BOEDaCYYhC0ZE54kA4jpjruBr5STWeqQG6M74HHL6TZ3lXrd99ZX%2B%2B7LhNatQaZosuxEf5yRA15S9gPeHskBIq3Gcw81AGb9%2FO53DYi%2F5CsQ51EmEh8Rkg4vOciClpy4d04eYsfr6fyQkBmtD%2BP8sNh6e%2BXYHJXT%2FlkXxT4KXU5F2sGxYyzfniMMQkb9OjDN2C8tRRgTyL7GwozH14PrEUZc6oz05Emne3Ts5EG7WolDmU8OB1LDG3VrpQxp%2BpT0KYV5dGtknU64JhabdqcVQbGZiAxQAnvN1u70y1AnmvOSPgLI6uB4AuDGhmAu3ATkJSw7OtS%2F2ToPjqkaq62%2F7WFG8advGlRRqxB9diP07JrXowKR9tpRa%2BjGJ91zxNTT1h8I2PcSfoUPtd7NejVoH03EUcqSBuFZPkMZhegHyo2ZAITovmm3zAIdGFWxoNNORiMRShgwdYwFzkPw5PA4a5MIIQpmq%2Bnsp3YMuXt%2FGkXxLx%2FP6%2BZJS0lFyz4MunC3eWSGE8xlCQrKvhKUPXr0hjpAN9ZK4PfEDrPMfMbGNWcHDzjA7ngMxTPnT7GMHar%2BgMQQ3NwHCv4zH4BIMYvzsdiERi6gebRmerTsVwZJTRsL8dkZgxgRxmpbgRcud%2BYlCIRpPwHShlUSwuipZnx9QCsEWziVazdDeKSYU5CF7UVPAhLer3CgJOQXl%2Fzh575R5rsrmRnKAzq4POFdgbYBuEviM4%2BLVC15ssLNFghbTtHWerS1hDt5s4qkLUha%2FqpZXhWh1C6lTQAqCNQnaDjS7UGFBC6wTu8yFnKJnExCnAs3Ok9yj5KpfZESQ4lTy5pTGTnkAUpxI%2ByjEldJfSo4y0QhG4i4IwkRFGcjWY8%2BEzgYYJUK7BXQksLxAww%2FYYWBMhJILB9e8ePEJ4OP7z%2B4%2FwOQDl64iOYDp26DaONPxpKtBxq%2FaTzRGarm3VkPYTLJKx6Z%2FMw2YbBGseJhPMwhhNswrIkyvV2BYzrvZbxLpKwcWJhYmFtVZ%2BlPEq91FzVp1HlQY1bZVLqeNR9SAUn6n0E28k%2FUuGkNpP1DBI5ch%2FEehZfjUQ9aE41NhETExoPT2gGQz0IhWJbEOvTQ4wgcXCHHFBhewYUiFHuhRSAUVmEHeCRQHQkXGFwkAgyzREJCVN7TRnTon36Zw3tPhx4EALwNdwDv%2BJ41YSP4B2CQqz0EFgARZ4ESgBHQgROwAVn9GTI%2BHYexTUevLUeta4%2FDqKrbMVS%2BYqb8hUwYCrlgKtmAq1YCrFgKrd4qpXiqZcKn1oqdWipjYKpWwVPVYqW6xUpVipKqFR3QKjagVEtAqHpxUMTitsnFaJOKx2cVhswq35RVpyiq9lFVNIKnOQVMkgqtYxVNxiqQjFS7GKlSIVIsQqPIhUWwioigFQ%2B%2BKkN8VHr49HDw9Ebo9EDo9DTo9Crg9BDg9%2FWx7gWx7YWwlobYrOGxWPNisAaAHEyALpkAVDIAeWAArsABVXACYuAD5cAF6wAKFQAQqgAbVAAsoAAlQAUaYAfkwAvogBWQACOgAD9AAHSAAKT4GUdMiOvFngBTwCn2AZ7Dv6B6k%2F90B8%2ByRnkV144AIBoAMTQATGgAjNAA4YABgwABZgB%2FmQCwyAVlwCguASlwCEuAQFwB4uAMlwBYuAJlQAUVAAhUD2KgdpUDaJgaRMDFJgX5MC1JgWJEAokQCWRAHxEAWkQBMRADpEAMkQAYROAEecC484DRpwBDTnwNOdw05tjTmiNOYwtswhYFwLA7BYG4LA2BYGOLAwRYFuLAsxYFQJAohIEyJAMwkAwiQC0JAJgkAeiQBkJAFokAPCQA0JABwcD4Dgc4cDdDgaYcDIDgYgUC6CgWgUClCgUYUAVBQBOFAEYMALgwAgDA9QYAdIn8AZzeBB2L5EcWrenUT1KXienEsuJJ7x5U8XlTjc1NVzUyXFTGb1LlpUtWlTDIjqwE4LsagowoCi2gJLKAkpoBgJQNpAIhNqaEoneI6kiiqQ6Go%2Fn6j0cS%2Ba2gEU8gIHJ%2BBwfgZX4GL%2BBd%2FgW34FZ%2BBS%2FgUH4FN6BTegTvoEv6BJegRnYEF2A79gOvYDl2BdEjCkqkGtwXp0LNToIskOTXzh%2FF062yJ7AAAAEDAWAAABWhJ%2BKPEIJgBFxMVP7w2QJBGHASQnOBKXKFIdUK4igKA9IEaYJg%29%3Bsrc%3Aurl%28data%3Aapplication%2Fvnd%2Ems%2Dfontobject%3Bbase64%2Cn04AAEFNAAACAAIABAAAAAAABQAAAAAAAAABAJABAAAEAExQAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAJxJ%2FLAAAAAAAAAAAAAAAAAAAAAAAACgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAAAADgBSAGUAZwB1AGwAYQByAAAAeABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAA5ADsAUABTACAAMAAwADEALgAwADAAOQA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOAAzADIAOQAAADgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAKncAE0TAE0ZAEbuFM3pjM%2FSEdmjKHUbyow8ATBE40IvWA3vTu8LiABDQ%2BpexwUMcm1SMnNryctQSiI1K5ZnbOlXKmnVV5YvRe6RnNMFNCOs1KNVpn6yZhCJkRtVRNzEufeIq7HgSrcx4S8h%2Fv4vnrrKc6oCNxmSk2uKlZQHBii6iKFoH0746ThvkO1kJHlxjrkxs%2BLWORaDQBEtiYJIR5IB9Bi1UyL4Rmr0BNigNkMzlKQmnofBHviqVzUxwdMb3NdCn69hy%2BpRYVKGVS%2F1tnsqv4LL7wCCPZZAZPT4aCShHjHJVNuXbmMrY5LeQaGnvAkXlVrJgKRAUdFjrWEah9XebPeQMj7KS7DIBAFt8ycgC5PLGUOHSE3ErGZCiViNLL5ZARfywnCoZaKQCu6NuFX42AEeKtKUGnr%2FCm2Cy8tpFhBPMW5Fxi4Qm4TkDWh4IWFDClhU2hRWosUWqcKLlgyXB%2BlSHaWaHiWlBAR8SeSgSPCQxdVQgzUixWKSTrIQEbU94viDctkvX%2BVSjJuUmV8L4CXShI11esnp0pjWNZIyxKHS4wVQ2ime1P4RnhvGw0aDN1OLAXGERsB7buFpFGGBAre4QEQR0HOIO5oYH305G%2BKspT%2FFupEGGafCCwxSe6ZUa%2B073rXHnNdVXE6eWvibUS27XtRzkH838mYLMBmYysZTM0EM3A1fbpCBYFccN1B%2FEnCYu%2FTgCGmr7bMh8GfYL%2BBfcLvB0gRagC09w9elfldaIy%2FhNCBLRgBgtCC7jAF63wLSMAfbfAlEggYU0bUA7ACCJmTDpEmJtI78w4%2FBO7dN7JR7J7ZvbYaUbaILSQsRBiF3HGk5fEg6p9unwLvn98r%2BvnsV%2B372uf1xBLq4qU%2F45fTuqaAP%2BpssmCCCTF0mhEow8ZXZOS8D7Q85JsxZ%2BAzok7B7O%2Ff6J8AzYBySZQB%2FQHYUSA%2BEeQhEWiS6AIQzgcsDiER4MjgMBAWDV4AgQ3g1eBgIdweCQmCjJEMkJ%2BPKRWyFHHmg1Wi%2F6xzUgA0LREoKJChwnQa9B%2B5RQZRB3IlBlkAnxyQNaANwHMowzlYSMCBgnbpzvqpl0iTJNCQidDI9ZrSYNIRBhHtUa5YHMHxyGEik9hDE0AKj72AbTCaxtHPUaKZdAZSnQTyjGqGLsmBStCejApUhg4uBMU6mATujEl%2BKdDPbI6Ag4vLr%2BhjY6lbjBeoLKnZl0UZgRX8gTySOeynZVz1wOq7e1hFGYIq%2BMhrGxDLak0PrwYzSXtcuyhXEhwOYofiW%2BEcI%2Fjw8P6IY6ed%2BetAbuqKp5QIapT77LnAe505lMuqL79a0ut4rWexzFttsOsLDy7zvtQzcq3U1qabe7tB0wHWVXji%2BzDbo8x8HyIRUbXnwUcklFv51fvTymiV%2BMXLSmGH9d9%2BaXpD5X6lao41anWGig7IwIdnoBY2ht%2FpO9mClLo4NdXHAsefqWUKlXJkbqPOFhMoR4aiA1BXqhRNbB2Xwi%2B7u%2FjpAoOpKJ0UX24EsrzMfHXViakCNcKjBxuQX8BO0ZqjJ3xXzf%2B61t2VXOSgJ8xu65QKgtN6FibPmPYsXbJRHHqbgATcSZxBqGiDiU4NNNsYBsKD0MIP%2FOfKnlk%2FLkaid%2FO2NbKeuQrwOB2Gq3YHyr6ALgzym5wIBnsdC1ZkoBFZSQXChZvlesPqvK2c5oHHT3Q65jYpNxnQcGF0EHbvYqoFw60WNlXIHQF2HQB7zD6lWjZ9rVqUKBXUT6hrkZOle0RFYII0V5ZYGl1JAP0Ud1fZZMvSomBzJ710j4Me8mjQDwEre5Uv2wQfk1ifDwb5ksuJQQ3xt423lbuQjvoIQByQrNDh1JxGFkOdlJvu%2FgFtuW0wR4cgd%2BZKesSV7QkNE2kw6AV4hoIuC02LGmTomyf8PiO6CZzOTLTPQ%2BHW06H%2Btx%2BbQ8LmDYg1pTFrp2oJXgkZTyeRJZM0C8aE2LpFrNVDuhARsN543%2FFV6klQ6Tv1OoZGXLv0igKrl%2FCmJxRmX7JJbJ998VSIPQRyDBICzl4JJlYHbdql30NvYcOuZ7a10uWRrgoieOdgIm4rlq6vNOQBuqESLbXG5lzdJGHw2m0sDYmODXbYGTfSTGRKpssTO95fothJCjUGQgEL4yKoGAF%2F0SrpUDNn8CBgBcSDQByAeNkCXp4S4Ro2Xh4OeaGRgR66PVOsU8bc6TR5%2FxTcn4IVMLOkXSWiXxkZQCbvKfmoAvQaKjO3EDKwkwqHChCDEM5loQRPd5ACBki1TjF772oaQhQbQ5C0lcWXPFOzrfsDGUXGrpxasbG4iab6eByaQkQfm0VFlP0ZsDkvvqCL6QXMUwCjdMx1ZOyKhTJ7a1GWAdOUcJ8RSejxNVyGs31OKMyRyBVoZFjqIkmKlLQ5eHMeEL4MkUf23cQ%2F1SgRCJ1dk4UdBT7OoyuNgLs0oCd8RnrEIb6QdMxT2QjD4zMrJkfgx5aDMcA4orsTtKCqWb%2FVeyceqa5OGSmB28YwH4rFbkQaLoUN8OQQYnD3w2eXpI4ScQfbCUZiJ4yMOIKLyyTc7BQ4uXUw6Ee6%2FxM%2B4Y67ngNBknxIPwuppgIhFcwJyr6EIj%2BLzNj%2FmfR2vhhRlx0BILZoAYruF0caWQ7YxO66UmeguDREAFHYuC7HJviRgVO6ruJH59h%2FC%2FPkgSle8xNzZJULLWq9JMDTE2fjGE146a1Us6PZDGYle6ldWRqn%2FpdpgHKNGrGIdkRK%2BKPETT9nKT6kLyDI8xd9A1FgWmXWRAIHwZ37WyZHOVyCadJEmMVz0MadMjDrPho%2BEIochkVC2xgGiwwsQ6DMv2P7UXqT4x7CdcYGId2BJQQa85EQKmCmwcRejQ9Bm4oATENFPkxPXILHpMPUyWTI5rjNOsIlmEeMbcOCEqInpXACYQ9DDxmFo9vcmsDblcMtg4tqBerNngkIKaFJmrQAPnq1dEzsMXcwjcHdfdCibcAxxA%2Bq%2Fj9m3LM%2FO7WJka4tSidVCjsvo2lQ%2F2ewyoYyXwAYyr2PlRoR5MpgVmSUIrM3PQxXPbgjBOaDQFIyFMJvx3Pc5RSYj12ySVF9fwFPQu2e2KWVoL9q3Ayv3IzpGHUdvdPdrNUdicjsTQ2ISy7QU3DrEytIjvbzJnAkmANXjAFERA0MUoPF3%2F5KFmW14bBNOhwircYgMqoDpUMcDtCmBE82QM2YtdjVLB4kBuKho%2FbcwQdeboqfQartuU3CsCf%2BcXkgYAqp%2F0Ee3RorAZt0AvvOCSI4JICIlGlsV0bsSid%2FNIEALAAzb6HAgyWHBps6xAOwkJIGcB82CxRQq4sJf3FzA70A%2BTRqcqjEMETCoez3mkPcpnoALs0ugJY8kQwrC%2BJE5ik3w9rzrvDRjAQnqgEVvdGrNwlanR0SOKWzxOJOvLJhcd8Cl4AshACUkv9czdMkJCVQSQhp6kp7StAlpVRpK0t0SW6LHeBJnE2QchB5Ccu8kxRghZXGIgZIiSj7gEKMJDClcnX6hgoqJMwiQDigIXg3ioFLCgDgjPtYHYpsF5EiA4kcnN18MZtOrY866dEQAb0FB34OGKHGZQjwW%2FWDHA60cYFaI%2FPjpzquUqdaYGcIq%2BmLez3WLFFCtNBN2QJcrlcoELgiPku5R5dSlJFaCEqEZle1AQzAKC%2B1SotMcBNyQUFuRHRF6OlimSBgjZeTBCwLyc6A%2BP%2FoFRchXTz5ADknYJHxzrJ5pGuIKRQISU6WyKTBBjD8WozmVYWIsto1AS5rxzKlvJu4E%2FvwOiKxRtCWsDM%2BeTHUrmwrCK5BIfMzGkD%2B0Fk5LzBs0jMYXktNDblB06LMNJ09U8pzSLmo14MS0OMjcdrZ31pyQqxJJpRImlSvfYAK8inkYU52QY2FPEVsjoWewpwhRp5yAuNpkqhdb7ku9Seefl2D0B8SMTFD90xi4CSOwwZy9IKkpMtI3FmFUg3%2FkFutpQGNc3pCR7gvC4sgwbupDu3DyEN%2BW6YGLNM21jpB49irxy9BSlHrVDlnihGKHwPrbVFtc%2Bh1rVQKZduxIyojccZIIcOCmhEnC7UkY68WXKQgLi2JCDQkQWJRQuk60hZp0D3rtCTINSeY9Ej2kIKYfGxwOs4j9qMM7fYZiipzgcf7TamnehqdhsiMiCawXnz4xAbyCkLAx5EGbo3Ax1u3dUIKnTxIaxwQTHehPl3V491H0%2BbC5zgpGz7Io%2BmjdhKlPJ01EeMpM7UsRJMi1nGjmJg35i6bQBAAxjO%2FENJubU2mg3ONySEoWklCwdABETcs7ck3jgiuU9pcKKpbgn%2B3YlzV1FzIkB6pmEDOSSyDfPPlQskznctFji0kpgZjW5RZe6x9kYT4KJcXg0bNiCyif%2BpZACCyRMmYsfiKmN9tSO65F0R2OO6ytlEhY5Sj6uRKfFxw0ijJaAx%2Fk3QgnAFSq27%2F2i4GEBA%2BUvTJKK%2F9eISNvG46Em5RZfjTYLdeD8kdXHyrwId%2FDQZUaMCY4gGbke2C8vfjgV%2FY9kkRQOJIn%2FxM9INZSpiBnqX0Q9GlQPpPKAyO5y%2BW5NMPSRdBCUlmuxl40ZfMCnf2Cp044uI9WLFtCi4YVxKjuRCOBWIb4XbIsGdbo4qtMQnNOQz4XDSui7W%2FN6l54qOynCqD3DpWQ%2BmpD7C40D8BZEWGJX3tlAaZBMj1yjvDYKwCJBa201u6nBKE5UE%2B7QSEhCwrXfbRZylAaAkplhBWX50dumrElePyNMRYUrC99UmcSSNgImhFhDI4BXjMtiqkgizUGCrZ8iwFxU6fQ8GEHCFdLewwxYWxgScAYMdMLmcZR6b7rZl95eQVDGVoUKcRMM1ixXQtXNkBETZkVVPg8LoSrdetHzkuM7DjZRHP02tCxA1fmkXKF3VzfN1pc1cv%2F8lbTIkkYpqKM9VOhp65ktYk%2BQ46myFWBapDfyWUCnsnI00QTBQmuFjMZTcd0V2NQ768Fhpby04k2IzNR1wKabuGJqYWwSly6ocMFGTeeI%2BejsWDYgEvr66QgqdcIbFYDNgsm0x9UHY6SCd5%2B7tpsLpKdvhahIDyYmEJQCqMqtCF6UlrE5GXRmbu%2Bvtm3BFSxI6ND6UxIE7GsGMgWqghXxSnaRJuGFveTcK5ZVSPJyjUxe1dKgI6kNF7EZhIZs8y8FVqwEfbM0Xk2ltORVDKZZM40SD3qQoQe0orJEKwPfZwm3YPqwixhUMOndis6MhbmfvLBKjC8sKKIZKbJk8L11oNkCQzCgvjhyyEiQSuJcgCQSG4Mocfgc0Hkwcjal1UNgP0CBPikYqBIk9tONv4kLtBswH07vUCjEaHiFGlLf8MgXKzSgjp2HolRRccAOh0ILHz9qlGgIFkwAnzHJRjWFhlA7ROwINyB5HFj59PRZHFor6voq7l23EPNRwdWhgawqbivLSjRA4htEYUFkjESu67icTg5S0aW1sOkCiIysfJ9UnIWevOOLGpepcBxy1wEhd2WI3AZg7sr9WBmHWyasxMcvY%2FiOmsLtHSWNUWEGk9hScMPShasUA1AcHOtRZlqMeQ0OzYS9vQvYUjOLrzP07BUAFikcJNMi7gIxEw4pL1G54TcmmmoAQ5s7TGWErJZ2Io4yQ0ljRYhL8H5e62oDtLF8aDpnIvZ5R3GWJyAugdiiJW9hQAVTsnCBHhwu7rkBlBX6r3b7ejEY0k5GGeyKv66v%2B6dg7mcJTrWHbtMywbedYqCQ0FPwoytmSWsL8WTtChZCKKzEF7vP6De4x2BJkkniMgSdWhbeBSLtJZR9CTHetK1xb34AYIJ37OegYIoPVbXgJ%2FqDQK%2BbfCtxQRVKQu77WzOoM6SGL7MaZwCGJVk46aImai9fmam%2BWpHG%2B0BtQPWUgZ7RIAlPq6lkECUhZQ2gqWkMYKcYMYaIc4gYCDFHYa2d1nzp3%2BJ1eCBay8IYZ0wQRKGAqvCuZ%2FUgbQPyllosq%2BXtfKIZOzmeJqRazpmmoP%2F76YfkjzV2NlXTDSBYB04SVlNQsFTbGPk1t%2FI4Jktu0XSgifO2ozFOiwd%2F0SssJDn0dn4xqk4GDTTKX73%2FwQyBLdqgJ%2BWx6AQaba3BA9CKEzjtQYIfAsiYamapq80LAamYjinlKXUkxdpIDk0puXUEYzSalfRibAeDAKpNiqQ0FTwoxuGYzRnisyTotdVTclis1LHRQCy%2FqqL8oUaQzWRxilq5Mi0IJGtMY02cGLD69vGjkj3p6pGePKI8bkBv5evq8SjjyU04vJR2cQXQwSJyoinDsUJHCQ50jrFTT7yRdbdYQMB3MYCb6uBzJ9ewhXYPAIZSXfeEQBZZ3GPN3Nbhh%2FwkvAJLXnQMdi5NYYZ5GHE400GS5rXkOZSQsdZgIbzRnF9ueLnsfQ47wHAsirITnTlkCcuWWIUhJSbpM3wWhXNHvt2xUsKKMpdBSbJnBMcihkoDqAd1Zml%2FR4yrzow1Q2A5G%2Bkzo%2FRhRxQS2lCSDRV8LlYLBOOoo1bF4jwJAwKMK1tWLHlu9i0j4Ig8qVm6wE1DxXwAwQwsaBWUg2pOOol2dHxyt6npwJEdLDDVYyRc2D0HbcbLUJQj8gPevQBUBOUHXPrsAPBERICpnYESeu2OHotpXQxRGlCCtLdIsu23MhZVEoJg8Qumj%2FUMMc34IBqTKLDTp76WzL%2FdMjCxK7MjhiGjeYAC%2Fkj%2FjY%2FRde7hpSM1xChrog6yZ7OWTuD56xBJnGFE%2BpT2ElSyCnJcwVzCjkqeNLfMEJqKW0G7OFIp0G%2B9mh50I9o8k1tpCY0xYqFNIALgIfc2me4n1bmJnRZ89oepgLPT0NTMLNZsvSCZAc3TXaNB07vail36%2FdBySis4m9%2FDR8izaLJW6bWCkVgm5T%2Bius3ZXq4xI%2BGnbveLbdRwF2mNtsrE0JjYc1AXknCOrLSu7Te%2Fr4dPYMCl5qtiHNTn%2BTPbh1jCBHH%2BdMJNhwNgs3nT%2BOhQoQ0vYif56BMG6WowAcHR3DjQolxLzyVekHj00PBAaW7IIAF1EF%2BuRIWyXjQMAs2chdpaKPNaB%2BkSezYt0%2BCA04sOg5vx8Fr7Ofa9sUv87h7SLAUFSzbetCCZ9pmyLt6l6%2FTzoA1%2FZBG9bIUVHLAbi%2FkdBFgYGyGwRQGBpkqCEg2ah9UD6EedEcEL3j4y0BQQCiExEnocA3SZboh%2Bepgd3YsOkHskZwPuQ5OoyA0fTA5AXrHcUOQF%2BzkJHIA7PwCDk1gGVmGUZSSoPhNf%2BTklauz98QofOlCIQ%2FtCD4dosHYPqtPCXB3agggQQIqQJsSkB%2Bqn0rkQ1toJjON%2FOtCIB9RYv3PqRA4C4U68ZMlZn6BdgEvi2ziU%2BTQ6NIw3ej%2BAtDwMGEZk7e2IjxUWKdAxyaw9OCwSmeADTPPleyk6UhGDNXQb%2B%2BW6Uk4q6F7%2Frg6WVTo82IoCxSIsFDrav4EPHphD3u4hR53WKVvYZUwNCCeM4PMBWzK%2BEfIthZOkuAwPo5C5jgoZgn6dUdvx5rIDmd58cXXdKNfw3l%2BwM2UjgrDJeQHhbD7HW2QDoZMCujgIUkk5Fg8VCsdyjOtnGRx8wgKRPZN5dR0zPUyfGZFVihbFRniXZFOZGKPnEQzU3AnD1KfR6weHW2XS6KbPJxUkOTZsAB9vTVp3Le1F8q5l%2BDMcLiIq78jxAImD2pGFw0VHfRatScGlK6SMu8leTmhUSMy8Uhdd6xBiH3Gdman4tjQGLboJfqz6fL2WKHTmrfsKZRYX6BTDjDldKMosaSTLdQS7oDisJNqAUhw1PfTlnacCO8vl8706Km1FROgLDmudzxg%2BEWTiArtHgLsRrAXYWdB0NmToNCJdKm0KWycZQqb%2BMw76Qy29iQ5up%2FX7oyw8QZ75kP5F6iJAJz6KCmqxz8fEa%2FxnsMYcIO%2FvEkGRuMckhr4rIeLrKaXnmIzlNLxbFspOphkcnJdnz%2FChp%2FVlpj2P7jJQmQRwGnltkTV5dbF9fE3%2FfxoSqTROgq9wFUlbuYzYcasE0ouzBo%2BdDCDzxKAfhbAZYxQiHrLzV2iVexnDX%2FQnT1fsT%2Fxuhu1ui5qIytgbGmRoQkeQooO8eJNNZsf0iALur8QxZFH0nCMnjerYQqG1pIfjyVZWxhVRznmmfLG00BcBWJE6hzQWRyFknuJnXuk8A5FRDCulwrWASSNoBtR%2BCtGdkPwYN2o7DOw%2FVGlCZPusRBFXODQdUM5zeHDIVuAJBLqbO%2Ff9Qua%2BpDqEPk230Sob9lEZ8BHiCorjVghuI0lI4JDgHGRDD%2FprQ84B1pVGkIpVUAHCG%2Biz3Bn3qm2AVrYcYWhock4jso5%2BJ7HfHVj4WMIQdGctq3psBCVVzupQOEioBGA2Bk%2BUILT7%2BVoX5mdxxA5fS42gISQVi%2FHTzrgMxu0fY6hE1ocUwwbsbWcezrY2n6S8%2F6cxXkOH4prpmPuFoikTzY7T85C4T2XYlbxLglSv2uLCgFv8Quk%2FwdesUdWPeHYIH0R729JIisN9Apdd4eB10aqwXrPt%2BSu9mA8k8n1sjMwnfsfF2j3jMUzXepSHmZ%2FBfqXvzgUNQQWOXO8YEuFBh4QTYCkOAPxywpYu1VxiDyJmKVcmJPGWk%2Fgc3Pov02StyYDahwmzw3E1gYC9wkupyWfDqDSUMpCTH5e5N8B%2F%2FlHiMuIkTNw4USHrJU67bjXGqNav6PBuQSoqTxc8avHoGmvqNtXzIaoyMIQIiiUHIM64cXieouplhNYln7qgc4wBVAYR104kO%2BCvKqsg4yIUlFNThVUAKZxZt1XA34h3TCUUiXVkZ0w8Hh2R0Z5L0b4LZvPd%2Fp1gi%2F07h8qfwHrByuSxglc9cI4QIg2oqvC%2Fqm0i7tjPLTgDhoWTAKDO2ONW5oe%2B%2FeKB9vZB8K6C25yCZ9RFVMnb6NRdRjyVK57CHHSkJBfnM2%2Fj4ODUwRkqrtBBCrDsDpt8jhZdXoy%2F1BCqw3sSGhgGGy0a5Jw6BP%2FTExoCmNFYjZl248A0osgPyGEmRA%2BfAsqPVaNAfytu0vuQJ7rk3J4kTDTR2AlCHJ5cls26opZM4w3jMULh2YXKpcqGBtuleAlOZnaZGbD6DHzMd6i2oFeJ8z9XYmalg1Szd%2FocZDc1C7Y6vcALJz2lYnTXiWEr2wawtoR4g3jvWUU2Ngjd1cewtFzEvM1NiHZPeLlIXFbBPawxNgMwwAlyNSuGF3zizVeOoC9bag1qRAQKQE%2FEZBWC2J8mnXAN2aTBboZ7HewnObE8CwROudZHmUM5oZ%2FUgd%2FJZQK8lvAm43uDRAbyW8gZ%2BZGq0EVerVGUKUSm%2FIdn8AQHdR4m7bue88WBwft9mSCeMOt1ncBwziOmJYI2ZR7ewNMPiCugmSsE4EyQ%2BQATJG6qORMGd4snEzc6B4shPIo4G1T7PgSm8PY5eUkPdF8JZ0VBtadbHXoJgnEhZQaODPj2gpODKJY5Yp4DOsLBFxWbvXN755KWylJm%2BoOd4zEL9Hpubuy2gyyfxh8oEfFutnYWdfB8PdESLWYvSqbElP9qo3u6KTmkhoacDauMNNjj0oy40DFV7Ql0aZj77xfGl7TJNHnIwgqOkenruYYNo6h724%2BzUQ7%2BvkCpZB%2BpGA562hYQiDxHVWOq0oDQl%2FQsoiY%2BcuI7iWq%2FZIBtHcXJ7kks%2Bh2fCNUPA82BzjnqktNts%2BRLdk1VSu%2BtqEn7QZCCsvEqk6FkfiOYkrsw092J8jsfIuEKypNjLxrKA9kiA19mxBD2suxQKCzwXGws7kEJvlhUiV9tArLIdZW0IORcxEzdzKmjtFhsjKy%2F44XYXdI5noQoRcvjZ1RMPACRqYg2V1%2BOwOepcOknRLLFdYgTkT5UApt%2FJhLM3jeFYprZV%2BZow2g8fP%2BU68hkKFWJj2yBbKqsrp25xkZX1DAjUw52IMYWaOhab8Kp05VrdNftqwRrymWF4OQSjbdfzmRZirK8FMJELEgER2PHjEAN9pGfLhCUiTJFbd5LBkOBMaxLr%2FA1SY9dXFz4RjzoU9ExfJCmx%2FI9FKEGT3n2cmzl2X42L3Jh%2BAbQq6sA%2BSs1kitoa4TAYgKHaoybHUDJ51oETdeI%2F9ThSmjWGkyLi5QAGWhL0BG1UsTyRGRJOldKBrYJeB8ljLJHfATWTEQBXBDnQexOHTB%2BUn44zExFE4vLytcu5NwpWrUxO%2F0ZICUGM7hGABXym0V6ZvDST0E370St9MIWQOTWngeoQHUTdCJUP04spMBMS8LSker9cReVQkULFDIZDFPrhTzBl6sed9wcZQTbL%2BBDqMyaN3RJPh%2Fanbx%2BIv%2BqgQdAa3M9Z5JmvYlh4qop%2BHo1F1W5gbOE9YKLgAnWytXElU4G8GtW47lhgFE6gaSs%2Bgs37sFvi0PPVvA5dnCBgILTwoKd%2F%2BDoL9F6inlM7H4rOTzD79KJgKlZO%2FZgt22UsKhrAaXU5ZcLrAglTVKJEmNJvORGN1vqrcfSMizfpsgbIe9zno%2BgBoKVXgIL%2FVI8dB1O5o%2FR3Suez%2FgD7M781ShjKpIIORM%2FnxG%2BjjhhgPwsn2IoXsPGPqYHXA63zJ07M2GPEykQwJBYLK808qYxuIew4frk52nhCsnCYmXiR6CuapvE1IwRB4%2FQftDbEn%2BAucIr1oxrLabRj9q4ae0%2BfXkHnteAJwXRbVkR0mctVSwEbqhJiMSZUp9DNbEDMmjX22m3ABpkrPQQTP3S1sib5pD2VRKRd%2BeNAjLYyT0hGrdjWJZy24OYXRoWQAIhGBZRxuBFMjjZQhpgrWo8SiFYbojcHO8V5DyscJpLTHyx9Fimassyo5U6WNtquUMYgccaHY5amgR3PQzq3ToNM5ABnoB9kuxsebqmYZm0R9qxJbFXCQ1UPyFIbxoUraTJFDpCk0Wk9GaYJKz%2F6oHwEP0Q14lMtlddQsOAU9zlYdMVHiT7RQP3XCmWYDcHCGbVRHGnHuwzScA0BaSBOGkz3lM8CArjrBsyEoV6Ys4qgDK3ykQQPZ3hCRGNXQTNNXbEb6tDiTDLKOyMzRhCFT%2BmAUmiYbV3YQVqFVp9dorv%2BTsLeCykS2b5yyu8AV7IS9cxcL8z4Kfwp%2BxJyYLv1OsxQCZwTB4a8BZ%2F5EdxTBJthApqyfd9u3ifr%2FWILTqq5VqgwMT9SOxbSGWLQJUUWCVi4k9tho9nEsbUh7U6NUsLmkYFXOhZ0kmamaJLRNJzSj%2Fqn4Mso6zb6iLLBXoaZ6AqeWCjHQm2lztnejYYM2eubnpBdKVLORZhudH3JF1waBJKA9%2BW8EhMj3Kzf0L4vi4k6RoHh3Z5YgmSZmk6ns4fjScjAoL8GoOECgqgYEBYUGFVO4FUv4%2FYtowhEmTs0vrvlD%2FCrisnoBNDAcUi%2FteY7OctFlmARQzjOItrrlKuPO6E2Ox93L4O%2F4DcgV%2FdZ7qR3VBwVQxP1GCieA4RIpweYJ5FoYrHxqRBdJjnqbsikA2Ictbb8vE1GYIo9dacK0REgDX4smy6GAkxlH1yCGGsk%2BtgiDhNKuKu3yNrMdxafmKTF632F8Vx4BNK57GvlFisrkjN9WDAtjsWA0ENT2e2nETUb%2Fn7qwhvGnrHuf5bX6Vh%2Fn3xffU3PeHdR%2BFA92i6ufT3AlyAREoNDh6chiMWTvjKjHDeRhOa9YkOQRq1vQXEMppAQVwHCuIcV2g5rBn6GmZZpTR7vnSD6ZmhdSl176gqKTXu5E%2BYbfL0adwNtHP7dT7t7b46DVZIkzaRJOM%2BS6KcrzYVg%2BT3wSRFRQashjfU18NutrKa%2F7PXbtuJvpIjbgPeqd%2BpjmRw6YKpnANFSQcpzTZgpSNJ6J7uiagAbir%2F8tNXJ%2FOsOnRh6iuIexxrmkIneAgz8QoLmiaJ8sLQrELVK2yn3wOHp57BAZJhDZjTBzyoRAuuZ4eoxHruY1pSb7qq79cIeAdOwin4GdgMeIMHeG%2BFZWYaiUQQyC5b50zKjYw97dFjAeY2I4Bnl105Iku1y0lMA1ZHolLx19uZnRdILcXKlZGQx%2FGdEqSsMRU1BIrFqRcV1qQOOHyxOLXEGcbRtAEsuAC2V4K3p5mFJ22IDWaEkk9ttf5Izb2LkD1MnrSwztXmmD%2FQi%2FEmVEFBfiKGmftsPwVaIoZanlKndMZsIBOskFYpDOq3QUs9aSbAAtL5Dbokus2G4%2FasthNMK5UQKCOhU97oaOYNGsTah%2BjfCKsZnTRn5TbhFX8ghg8CBYt%2FBjeYYYUrtUZ5jVij%2Fop7V5SsbA4mYTOwZ46hqdpbB6Qvq3AS2HHNkC15pTDIcDNGsMPXaBidXYPHc6PJAkRh29Vx8KcgX46LoUQBhRM%2B3SW6Opll%2FwgxxsPgKJKzr5QCmwkUxNbeg6Wj34SUnEzOemSuvS2OetRCO8Tyy%2BQbSKVJcqkia%2BGvDefFwMOmgnD7h81TUtMn%2BmRpyJJ349HhAnoWFTejhpYTL9G8N2nVg1qkXBeoS9Nw2fB27t7trm7d%2FQK7Cr4uoCeOQ7%2F8JfKT77KiDzLImESHw%2F0wf73QeHu74hxv7uihi4fTX%2BXEwAyQG3264dwv17aJ5N335Vt9sdrAXhPOAv8JFvzqyYXwfx8WYJaef1gMl98JRFyl5Mv5Uo%2FoVH5ww5OzLFsiTPDns7fS6EURSSWd%2F92BxMYQ8sBaH%2Bj%2BwthQPdVgDGpTfi%2BJQIWMD8xKqULliRH01rTeyF8x8q%2FGBEEEBrAJMPf25UQwi0b8tmqRXY7kIvNkzrkvRWLnxoGYEJsz8u4oOyMp8cHyaybb1HdMCaLApUE%2B%2F7xLIZGP6H9xuSEXp1zLIdjk5nBaMuV%2FyTDRRP8Y2ww5RO6d2D94o%2B6ucWIqUAvgHIHXhZsmDhjVLczmZ3ca0Cb3PpKwt2UtHVQ0BgFJsqqTsnzZPlKahRUkEu4qmkJt%2Bkqdae76ViWe3STan69yaF9%2BfESD2lcQshLHWVu4ovItXxO69bqC5p1nZLvI8NdQB9s9UNaJGlQ5mG947ipdDA0eTIw%2FA1zEdjWquIsQXXGIVEH0thC5M%2BW9pZe7IhAVnPJkYCCXN5a32HjN6nsvokEqRS44tGIs7s2LVTvcrHAF%2BRVmI8L4HUYk4x%2B67AxSMJKqCg8zrGOgvK9kNMdDrNiUtSWuHFpC8%2Fp5qIQrEo%2FH%2B1l%2F0cAwQ2nKmpWxKcMIuHY44Y6DlkpO48tRuUGBWT0FyHwSKO72Ud%2BtJUfdaZ4CWNijzZtlRa8%2BCkmO%2FEwHYfPZFU%2FhzjFWH7vnzHRMo%2BaF9u8qHSAiEkA2HjoNQPEwHsDKOt6hOoK3Ce%2F%2B%2F9boMWDa44I6FrQhdgS7OnNaSzwxWKZMcyHi6LN4WC6sSj0qm2PSOGBTvDs%2FGWJS6SwEN%2FULwpb4LQo9fYjUfSXRwZkynUazlSpvX9e%2BG2zor8l%2BYaMxSEomDdLHGcD6YVQPegTaA74H8%2BV4WvJkFUrjMLGLlvSZQWvi8%2FQA7yzQ8GPno%2F%2F5SJHRP%2FOqKObPCo81s%2F%2B6WgLqykYpGAgQZhVDEBPXWgU%2FWzFZjKUhSFInufPRiMAUULC6T11yL45ZrRoB4DzOyJShKXaAJIBS9wzLYIoCEcJKQW8GVCx4fihqJ6mshBUXSw3wWVj3grrHQlGNGhIDNNzsxQ3M%2BGWn6ASobIWC%2BLbYOC6UpahVO13Zs2zOzZC8z7FmA05JhUGyBsF4tsG0drcggIFzgg%2Fkpf3%2BCnAXKiMgIE8Jk%2FMhpkc8DUJEUzDSnWlQFme3d0sHZDrg7LavtsEX3cHwjCYA17pMTfx8Ajw9hHscN67hyo%2BRJQ4458RmPywXykkVcW688oVUrQhahpPRvTWPnuI0B%2BSkQu7dCyvLRyFYlC1LG1gRCIvn3rwQeINzZQC2KXq31FaR9UmVV2QeGVqBHjmE%2BVMd3b1fhCynD0pQNhCG6%2FWCDbKPyE7NRQzL3BzQAJ0g09aUzcQA6mUp9iZFK6Sbp%2FYbHjo%2B%2B7%2FWj8S4YNa%2BZdqAw1hDrKWFXv9%2BzaXpf8ZTDSbiqsxnwN%2FCzK5tPkOr4tRh2kY3Bn9JtalbIOI4b3F7F1vPQMfoDcdxMS8CW9m%2FNCW%2FHILTUVWQIPiD0j1A6bo8vsv6P1hCESl2abrSJWDrq5sSzUpwoxaCU9FtJyYH4QFMxDBpkkBR6kn0LMPO%2B5EJ7Z6bCiRoPedRZ%2FP0SSdii7ZnPAtVwwHUidcdyspwncz5uq6vvm4IEDbJVLUFCn%2FLvIHfooUBTkFO130FC7CmmcrKdgDJcid9mvVzsDSibOoXtIf9k6ABle3PmIxejodc4aob0QKS432srrCMndbfD454q52V01G4q913mC5HOsTzWF4h2No1av1VbcUgWAqyoZl%2B11PoFYnNv2HwAODeNRkHj%2B8SF1fcvVBu6MrehHAZK1Gm69ICcTKizykHgGFx7QdowTVAsYEF2tVc0Z6wLryz2FI1sc5By2znJAAmINndoJiB4sfPdPrTC8RnkW7KRCwxC6YvXg5ahMlQuMpoCSXjOlBy0Kij%2BbsCYPbGp8BdCBiLmLSAkEQRaieWo1SYvZIKJGj9Ur%2FeWHjiB7SOVdqMAVmpBvfRiebsFjger7DC%2B8kRFGtNrTrnnGD2GAJb8rQCWkUPYHhwXsjNBSkE6lGWUj5QNhK0DMNM2l%2BkXRZ0KLZaGsFSIdQz%2FHXDxf3%2FTE30%2BDgBKWGWdxElyLccJfEpjsnszECNoDGZpdwdRgCixeg9L4EPhH%2BRptvRMVRaahu4cySjS3P5wxAUCPkmn%2BrhyASpmiTaiDeggaIxYBmtLZDDhiWIJaBgzfCsAGUF1Q1SFZYyXDt9skCaxJsxK2Ms65dmdp5WAZyxik%2FzbrTQk5KmgxCg%2Ff45L0jywebOWUYFJQAJia7XzCV0x89rpp%2Ff3AVWhSPyTanqmik2SkD8A3Ml4NhIGLAjBXtPShwKYfi2eXtrDuKLk4QlSyTw1ftXgwqA2jUuopDl%2B5tfUWZNwBpEPXghzbBggYCw%2Fdhy0ntds2yeHCDKkF%2FYxQjNIL%2FF%2F37jLPHCKBO9ibwYCmuxImIo0ijV2Wbg3kSN2psoe8IsABv3RNFaF9uMyCtCYtqcD%2BqNOhwMlfARQUdJ2tUX%2BMNJqOwIciWalZsmEjt07tfa8ma4cji9sqz%2BQ9hWfmMoKEbIHPOQORbhQRHIsrTYlnVTNvcq1imqmmPDdVDkJgRcTgB8Sb6epCQVmFZe%2BjGDiNJQLWnfx%2BdrTKYjm0G8yH0ZAGMWzEJhUEQ4Maimgf%2Fbkvo8PLVBsZl152y5S8%2BHRDfZIMCbYZ1WDp4yrdchOJw8k6R%2B%2F2pHmydK4NIK2PHdFPHtoLmHxRDwLFb7eB%2BM4zNZcB9NrAgjVyzLM7xyYSY13ykWfIEEd2n5%2FiYp3ZdrCf7fL%2Ben%2BsIJu2W7E30MrAgZBD1rAAbZHPgeAMtKCg3NpSpYQUDWJu9bT3V7tOKv%2BNRiJc8JAKqqgCA%2FPNRBR7ChpiEulyQApMK1AyqcWnpSOmYh6yLiWkGJ2mklCSPIqN7UypWj3dGi5MvsHQ87MrB4VFgypJaFriaHivwcHIpmyi5LhNqtem4q0n8awM19Qk8BOS0EsqGscuuydYsIGsbT5GHnERUiMpKJl4ON7qjB4fEqlGN%2FhCky89232UQCiaeWpDYCJINXjT6xl4Gc7DxRCtgV0i1ma4RgWLsNtnEBRQFqZggCLiuyEydmFd7WlogpkCw5G1x4ft2psm3KAREwVwr1Gzl6RT7FDAqpVal34ewVm3VH4qn5mjGj%2BbYL1NgfLNeXDwtmYSpwzbruDKpTjOdgiIHDVQSb5%2FzBgSMbHLkxWWgghIh9QTFSDILixVwg0Eg1puooBiHAt7DzwJ7m8i8%2Fi%2BjHvKf0QDnnHVkVTIqMvIQImOrzCJwhSR7qYB5gSwL6aWL9hERHCZc4G2%2BJrpgHNB8eCCmcIWIQ6rSdyPCyftXkDlErUkHafHRlkOIjxGbAktz75bnh50dU7YHk%2BMz7wwstg6RFZb%2BTZuSOx1qqP5C66c0mptQmzIC2dlpte7vZrauAMm%2F7RfBYkGtXWGiaWTtwvAQiq2oD4YixPLXE2khB2FRaNRDTk%2B9sZ6K74Ia9VntCpN4BhJGJMT4Z5c5FhSepRCRWmBXqx%2BwhVZC4me4saDs2iNqXMuCl6iAZflH8fscC1sTsy4PHeC%2BXYuqMBMUun5YezKbRKmEPwuK%2BCLzijPEQgfhahQswBBLfg%2FGBgBiI4QwAqzJkkyYAWtjzSg2ILgMAgqxYfwERRo3zruBL9WOryUArSD8sQOcD7fvIODJxKFS615KFPsb68USBEPPj1orNzFY2xoTtNBVTyzBhPbhFH0PI5AtlJBl2aSgNPYzxYLw7XTDBDinmVoENwiGzmngrMo8OmnRP0Z0i0Zrln9DDFcnmOoBZjABaQIbPOJYZGqX%2BRCMlDDbElcjaROLDoualmUIQ88Kekk3iM4OQrADcxi3rJguS4MOIBIgKgXrjd1WkbCdqxJk%2F4efRIFsavZA7KvvJQqp3Iid5Z0NFc5aiMRzGN3vrpBzaMy4JYde3wr96PjN90AYOIbyp6T4zj8LoE66OGcX1Ef4Z3KoWLAUF4BTg7ug%2FAbkG5UNQXAMkQezujSHeir2uTThgd3gpyzDrbnEdDRH2W7U6PeRvBX1ZFMP5RM%2BZu6UUZZD8hDPHldVWntTCNk7To8IeOW9yn2wx0gmurwqC60AOde4r3ETi5pVMSDK8wxhoGAoEX9NLWHIR33VbrbMveii2jAJlrxwytTHbWNu8Y4N8vCCyZjAX%2FpcsfwXbLze2%2BD%2Bu33OGBoJyAAL3jn3RuEcdp5If8O%2Ba4NKWvxOTyDltG0IWoHhwVGe7dKkCWFT%2B%2Btm%2BhaBCikRUUMrMhYKZJKYoVuv%2FbsJzO8DwfVIInQq3g3BYypiz8baogH3r3GwqCwFtZnz4xMjAVOYnyOi5HWbFA8n0qz1OjSpHWFzpQOpvkNETZBGpxN8ybhtqV%2FDMUxd9uFZmBfKXMCn%2FSqkWJyKPnT6lq%2B4zBZni6fYRByJn6OK%2BOgPBGRAJluwGSk4wxjOOzyce%2FPKODwRlsgrVkdcsEiYrqYdXo0Er2GXi2GQZd0tNJT6c9pK1EEJG1zgDJBoTVuCXGAU8BKTvCO%2FcEQ1Wjk3Zzuy90JX4m3O5IlxVFhYkSUwuQB2up7jhvkm%2BbddRQu5F9s0XftGEJ9JSuSk%2BZachCbdU45fEqbugzTIUokwoAKvpUQF%2FCvLbWW5BNQFqFkJg2f30E%2F48StNe5QwBg8zz3YAJ82FZoXBxXSv4QDooDo79NixyglO9AembuBcx5Re3CwOKTHebOPhkmFC7wNaWtoBhFuV4AkEuJ0J%2B1pT0tLkvFVZaNzfhs%2FKd3%2BA9YsImlO4XK4vpCo%2FelHQi%2F9gkFg07xxnuXLt21unCIpDV%2BbbRxb7FC6nWYTsMFF8%2B1LUg4JFjVt3vqbuhHmDKbgQ4e%2BRGizRiO8ky05LQGMdL2IKLSNar0kNG7lHJMaXr5mLdG3nykgj6vB%2FKVijd1ARWkFEf3yiUw1v%2FWaQivVUpIDdSNrrKbjO5NPnxz6qTTGgYg03HgPhDrCFyYZTi3XQw3HXCva39mpLNFtz8AiEhxAJHpWX13gCTAwgm9YTvMeiqetdNQv6IU0hH0G%2BZManTqDLPjyrOse7WiiwOJCG%2BJ0pZYULhN8NILulmYYvmVcV2MjAfA39sGKqGdjpiPo86fecg65UPyXDIAOyOkCx5NQsLeD4gGVjTVDwOHWkbbBW0GeNjDkcSOn2Nq4cEssP54t9D749A7M1AIOBl0Fi0sSO5v3P7LCBrM6ZwFY6kp2FX6AcbGUdybnfChHPyu6WlRZ2Fwv9YM0RMI7kISRgR8HpQSJJOyTfXj%2F6gQKuihPtiUtlCQVPohUgzfezTg8o1b3n9pNZeco1QucaoXe40Fa5JYhqdTspFmxGtW9h5ezLFZs3j%2FN46f%2BS2rjYNC2JySXrnSAFhvAkz9a5L3pza8eYKHNoPrvBRESpxYPJdKVUxBE39nJ1chrAFpy4MMkf0qKgYALctGg1DQI1kIymyeS2AJNT4X240d3IFQb%2F0jQbaHJ2YRK8A%2Bls6WMhWmpCXYG5jqapGs5%2FeOJErxi2%2F2KWVHiPellTgh%2FfNl%2F2KYPKb7DUcAg%2BmCOPQFCiU9Mq%2FWLcU1xxC8aLePFZZlE%2BPCLzf7ey46INWRw2kcXySR9FDgByXzfxiNKwDFbUSMMhALPFSedyjEVM5442GZ4hTrsAEvZxIieSHGSgkwFh%2FnFNdrrFD4tBH4Il7fW6ur4J8Xaz7RW9jgtuPEXQsYk7gcMs2neu3zJwTyUerHKSh1iTBkj2YJh1SSOZL5pLuQbFFAvyO4k1Hxg2h99MTC6cTUkbONQIAnEfGsGkNFWRbuRyyaEZInM5pij73EA9rPIUfU4XoqQpHT9THZkW%2BoKFLvpyvTBMM69tN1Ydwv1LIEhHsC%2BueVG%2Bw%2BkyCPsvV3erRikcscHjZCkccx6VrBkBRusTDDd8847GA7p2Ucy0y0HdSRN6YIBciYa4vuXcAZbQAuSEmzw%2BH%2FAuOx%2BaH%2BtBL88H57D0MsqyiZxhOEQkF%2F8DR1d2hSPMj%2FsNOa5rxcUnBgH8ictv2J%2Bcb4BA4v3MCShdZ2vtK30vAwkobnEWh7rsSyhmos3WC93Gn9C4nnAd%2FPjMMtQfyDNZsOPd6XcAsnBE%2FmRHtHEyJMzJfZFLE9OvQa0i9kUmToJ0ZxknTgdl%2FXPV8xoh0K7wNHHsnBdvFH3sv52lU7UFteseLG%2FVanIvcwycVA7%2BBE1Ulyb20BvwUWZcMTKhaCcmY3ROpvonVMV4N7yBXTL7IDtHzQ4CCcqF66LjF3xUqgErKzolLyCG6Kb7irP%2FMVTCCwGRxfrPGpMMGvPLgJ881PHMNMIO09T5ig7AzZTX%2F5PLlwnJLDAPfuHynSGhV4tPqR3gJ4kg4c06c%2FF1AcjGytKm2Yb5jwMotF7vro4YDLWlnMIpmPg36NgAZsGA0W1spfLSue4xxat0Gdwd0lqDBOgIaMANykwwDKejt5YaNtJYIkrSgu0KjIg0pznY0SCd1qlC6R19g97UrWDoYJGlrvCE05J%2F5wkjpkre727p5PTRX5FGrSBIfJqhJE%2FIS876PaHFkx9pGTH3oaY3jJRvLX9Iy3Edoar7cFvJqyUlOhAEiOSAyYgVEGkzHdug%2BoRHIEOXAExMiTSKU9A6nmRC8mp8iYhwWdP2U%2F5EkFAdPrZw03YA3gSyNUtMZeh7dDCu8pF5x0VORCTgKp07ehy7NZqKTpIC4UJJ89lnboyAfy5OyXzXtuDRbtAFjZRSyGFTpFrXwkpjSLIQIG3N0Vj4BtzK3wdlkBJrO18MNsgseR4BysJilI0wI6ZahLhBFA0XBmV8d4LUzEcNVb0xbLjLTETYN8OEVqNxkt10W614dd1FlFFVTIgB7%2FBQQp1sWlNolpIu4ekxUTBV7NmxOFKEBmmN%2BnA7pvF78%2FRII5ZHA09OAiE%2F66MF6HQ%2BqVEJCHxwymukkNvzqHEh52dULPbVasfQMgTDyBZzx4007YiKdBuUauQOt27Gmy8ISclPmEUCIcuLbkb1mzQSqIa3iE0PJh7UMYQbkpe%2BhXjTJKdldyt2mVPwywoODGJtBV1lJTgMsuSQBlDMwhEKIfrvsxGQjHPCEfNfMAY2oxvyKcKPUbQySkKG6tj9AQyEW3Q5rpaDJ5Sns9ScLKeizPRbvWYAw4bXkrZdmB7CQopCH8NAmqbuciZChHN8lVGaDbCnmddnqO1PQ4ieMYfcSiBE5zzMz%2BJV%2F4eyzrzTEShvqSGzgWimkNxLvUj86iAwcZuIkqdB0VaIB7wncLRmzHkiUQpPBIXbDDLHBlq7vp9xwuC9AiNkIptAYlG7Biyuk8ILdynuUM1cHWJgeB%2BK3wBP%2FineogxkvBNNQ4AkW0hvpBOQGFfeptF2YTR75MexYDUy7Q%2F9uocGsx41O4IZhViw%2F2FvAEuGO5g2kyXBUijAggWM08bRhXg5ijgMwDJy40QeY%2FcQpUDZiIzmvskQpO5G1zyGZA8WByjIQU4jRoFJt56behxtHUUE%2Fom7Rj2psYXGmq3llVOCgGYKNMo4pzwntITtapDqjvQtqpjaJwjHmDzSVGLxMt12gEXAdLi%2FcaHSM3FPRGRf7dB7YC%2BcD2ho6oL2zGDCkjlf%2FDFoQVl8GS%2F56wur3rdV6ggtzZW60MRB3g%2BU1W8o8cvqIpMkctiGVMzXUFI7FacFLrgtdz4mTEr4aRAaQ2AFQaNeG7GX0yOJgMRYFziXdJf24kg%2FgBQIZMG%2FYcPEllRTVNoDYR6oSJ8wQNLuihfw81UpiKPm714bZX1KYjcXJdfclCUOOpvTxr9AAJevTY4HK%2FG7F3mUc3GOAKqh60zM0v34v%2BELyhJZqhkaMA8UMMOU90f8RKEJFj7EqepBVwsRiLbwMo1J2zrE2UYJnsgIAscDmjPjnzI8a719Wxp757wqmSJBjXowhc46QN4RwKIxqEE6E5218OeK7RfcpGjWG1jD7qND%2B%2FGTk6M56Ig4yMsU6LUW1EWE%2BfIYycVV1thldSlbP6ltdC01y3KUfkobkt2q01YYMmxpKRvh1Z48uNKzP%2FIoRIZ%2FF6buOymSnW8gICitpJjKWBscSb9JJKaWkvEkqinAJ2kowKoqkqZftRqfRQlLtKoqvTRDi2vg%2FRrPD%2Fd3a09J8JhGZlEkOM6znTsoMCsuvTmywxTCDhw5dd0GJOHCMPbsj3QLkTE3MInsZsimDQ3HkvthT7U9VA4s6G07sID0FW4SHJmRGwCl%2BMu4xf0ezqeXD2PtPDnwMPo86sbwDV%2B9PWcgFcARUVYm3hrFQrHcgMElFGbSM2A1zUYA3baWfheJp2AINmTJLuoyYD%2FOwA4a6V0ChBN97E8YtDBerUECv0u0TlxR5yhJCXvJxgyM73Bb6pyq0jTFJDZ4p1Am1SA6sh8nADd1hAcGBMfq4d%2FUfwnmBqe0Jun1n1LzrgKuZMAnxA3NtCN7Klf4BH%2B14B7ibBmgt0TGUafVzI4uKlpF7v8NmgNjg90D6QE3tbx8AjSAC%2BOA1YJvclyPKgT27QpIEgVYpbPYGBsnyCNrGz9XUsCHkW1QAHgL2STZk12QGqmvAB0NFteERkvBIH7INDsNW9KKaAYyDMdBEMzJiWaJHZALqDxQDWRntumSDPcplyFiI1oDpT8wbwe01AHhW6%2BvAUUBoGhY3CT2tgwehdPqU%2F4Q7ZLYvhRl%2FogOvR9O2%2BwkkPKW5vCTjD2fHRYXONCoIl4Jh1bZY0ZE1O94mMGn%2FdFSWBWzQ%2FVYk%2BGezi46RgiDv3EshoTmMSlioUK6MQEN8qeyK6FRninyX8ZPeUWjjbMJChn0n%2FyJvrq5bh5UcCAcBYSafTFg7p0jDgrXo2QWLb3WpSOET%2FHh4oSadBTvyDo10IufLzxiMLAnbZ1vcUmj3w7BQuIXjEZXifwukVxrGa9j%2BDXfpi12m1RbzYLg9J2wFergEwOxFyD0%2FJstNK06ZN2XdZSGWxcJODpQHOq4iKqjqkJUmPu1VczL5xTGUfCgLEYyNBCCbMBFT%2FcUP6pE%2FmujnHsSDeWxMbhrNilS5MyYR0nJyzanWXBeVcEQrRIhQeJA6Xt4f2eQESNeLwmC10WJVHqwx8SSyrtAAjpGjidcj1E2FYN0LObUcFQhafUKTiGmHWRHGsFCB%2BHEXgrzJEB5bp0QiF8ZHh11nFX8AboTD0PS4O1LqF8XBks2MpjsQnwKHF6HgaKCVLJtcr0XjqFMRGfKv8tmmykhLRzu%2BvqQ02%2BKpJBjaLt9ye1Ab%2BBbEBhy4EVdIJDrL2naV0o4wU8YZ2Lq04FG1mWCKC%2BUwkXOoAjneU%2FxHplMQo2cXUlrVNqJYczgYlaOEczVCs%2FOCgkyvLmTmdaBJc1iBLuKwmr6qtRnhowngsDxhzKFAi02tf8bmET8BO27ovJKF1plJwm3b0JpMh38%2BxsrXXg7U74QUM8ZCIMOpXujHntKdaRtsgyEZl5MClMVMMMZkZLNxH9%2Bb8fH6%2Bb8Lev30A9TuEVj9CqAdmwAAHBPbfOBFEATAPZ2CS0OH1Pj%2F0Q7PFUcC8hDrxESWdfgFRm%2B7vvWbkEppHB4T%2F1ApWnlTIqQwjcPl0VgS1yHSmD0OdsCVST8CQVwuiew1Y%2Bg3QGFjNMzwRB2DSsAk26cmA8lp2wIU4p93AUBiUHFGOxOajAqD7Gm6NezNDjYzwLOaSXRBYcWipTSONHjUDXCY4mMI8XoVCR%2FRrs%2FJLKXgEx%2BqkmeDlFOD1%2FyTQNDClRuiUyKYCllfMiQiyFkmuTz2vLsBNyRW%2Bxz%2B5FElFxWB28VjYIGZ0Yd%2B5wIjkcoMaggxswbT0pCmckRAErbRlIlcOGdBo4djTNO8FAgQ%2BlT6vPS60BwTRSUAM3ddkEAZiwtEyArrkiDRnS7LJ%2B2hwbzd2YDQagSgACpsovmjil5wfPuXq3GuH0CyE7FK3M4FgRaFoIkaodORrPx1%2BJpI9psyNYIFuJogZa0%2F1AhOWdlHQxdAgbwacsHqPZo8u%2FngAH2GmaTdhYnBfSDbBfh8CHq6Bx5bttP2%2BRdM%2BMAaYaZ0Y%2FADkbNCZuAyAVQa2OcXOeICmDn9Q%2FeFkDeFQg5MgHEDXq%2FtVjj%2Bjtd26nhaaolWxs1ixSUgOBwrDhRIGOLyOVk2%2FBc0UxvseQCO2pQ2i%2BKrfhu%2FWeBovNb5dJxQtJRUDv2mCwYVpNl2efQM9xQHnK0JwLYt%2FU0Wf%2BphiA4uw8G91slC832pmOTCAoZXohg1fewCZqLBhkOUBofBWpMPsqg7XEXgPfAlDo2U5WXjtFdS87PIqClCK5nW6adCeXPkUiTGx0emOIDQqw1yFYGHEVx20xKjJVYe0O8iLmnQr3FA9nSIQilUKtJ4ZAdcTm7%2BExseJauyqo30hs%2B1qSW211A1SFAOUgDlCGq7eTIcMAeyZkV1SQJ4j%2Fe1Smbq4HcjqgFbLAGLyKxlMDMgZavK5NAYH19Olz3la%2FQCTiVelFnU6O%2FGCvykqS%2FwZJDhKN9gBtSOp%2F1SP5VRgJcoVj%2Bkmf2wBgv4gjrgARBWiURYx8xENV3bEVUAAWWD3dYDKAIWk5opaCFCMR5ZjJExiCAw7gYiSZ2rkyTce4eNMY3lfGn%2B8p6%2BvBckGlKEXnA6Eota69OxDO9oOsJoy28BXOR0UoXNRaJD5ceKdlWMJlOFzDdZNpc05tkMGQtqeNF2lttZqNco1VtwXgRstLSQ6tSPChgqtGV5h2DcDReIQadaNRR6AsAYKL5gSFsCJMgfsaZ7DpKh8mg8Wz8V7H%2BgDnLuMxaWEIUPevIbClgap4dqmVWSrPgVYCzAoZHIa5z2Ocx1D%2FGvDOEqMOKLrMefWIbSWHZ6jbgA8qVBhYNHpx0P%2BjAgN5TB3haSifDcApp6yymEi6Ij%2FGsEpDYUgcHATJUYDUAmC1SCkJ4cuZXSAP2DEpQsGUjQmKJfJOvlC2x%2FpChkOyLW7KEoMYc5FDC4v2FGqSoRWiLsbPCiyg1U5yiHZVm1XLkHMMZL11%2Fyxyw0UnGig3MFdZklN5FI%2FqiT65T%2BjOXOdO7XbgWurOAZR6Cv9uu1cm5LjkXX4xi6mWn5r5NjBS0gTliHhMZI2WNqSiSphEtiCAwnafS11JhseDGHYQ5%2BbqWiAYiAv6Jsf79%2FVUs4cIl%2Bn6%2BWOjcgB%2F2l5TreoAV2717JzZbQIR0W1cl%2FdEqCy5kJ3ZSIHuU0vBoHooEpiHeQWVkkkOqRX27eD1FWw4BfO9CJDdKoSogQi3hAAwsPRFrN5RbX7bqLdBJ9JYMohWrgJKHSjVl1sy2xAG0E3sNyO0oCbSGOxCNBRRXTXenYKuwAoDLfnDcQaCwehUOIDiHAu5m5hMpKeKM4sIo3vxACakIxKoH2YWF2QM84e6F5C5hJU4g8uxuFOlAYnqtwxmHyNEawLW%2FPhoawJDrGAP0JYWHgAVUByo%2FbGdiv2T2EMg8gsS14%2FrAdzlOYazFE7w4OzxeKiWdm3nSOnQRRKXSlVo8HEAbBfyJMKqoq%2BSCcTSx5NDtbFwNlh8VhjGGDu7JG5%2FTAGAvniQSSUog0pNzTim8Owc6QTuSKSTXlQqwV3eiEnklS3LeSXYPXGK2VgeZBqNcHG6tZHvA3vTINhV0ELuQdp3t1y9%2BogD8Kk%2FW7QoRN1UWPqM4%2BxdygkFDPLoTaumKReKiLWoPHOfY54m3qPx4c%2B4pgY3MRKKbljG8w4wvz8pxk3AqKsy4GMAkAtmRjRMsCxbb4Q2Ds0Ia9ci8cMT6DmsJG00XaHCIS%2Bo3F8YVVeikw13w%2BOEDaCYYhC0ZE54kA4jpjruBr5STWeqQG6M74HHL6TZ3lXrd99ZX%2B%2B7LhNatQaZosuxEf5yRA15S9gPeHskBIq3Gcw81AGb9%2FO53DYi%2F5CsQ51EmEh8Rkg4vOciClpy4d04eYsfr6fyQkBmtD%2BP8sNh6e%2BXYHJXT%2FlkXxT4KXU5F2sGxYyzfniMMQkb9OjDN2C8tRRgTyL7GwozH14PrEUZc6oz05Emne3Ts5EG7WolDmU8OB1LDG3VrpQxp%2BpT0KYV5dGtknU64JhabdqcVQbGZiAxQAnvN1u70y1AnmvOSPgLI6uB4AuDGhmAu3ATkJSw7OtS%2F2ToPjqkaq62%2F7WFG8advGlRRqxB9diP07JrXowKR9tpRa%2BjGJ91zxNTT1h8I2PcSfoUPtd7NejVoH03EUcqSBuFZPkMZhegHyo2ZAITovmm3zAIdGFWxoNNORiMRShgwdYwFzkPw5PA4a5MIIQpmq%2Bnsp3YMuXt%2FGkXxLx%2FP6%2BZJS0lFyz4MunC3eWSGE8xlCQrKvhKUPXr0hjpAN9ZK4PfEDrPMfMbGNWcHDzjA7ngMxTPnT7GMHar%2BgMQQ3NwHCv4zH4BIMYvzsdiERi6gebRmerTsVwZJTRsL8dkZgxgRxmpbgRcud%2BYlCIRpPwHShlUSwuipZnx9QCsEWziVazdDeKSYU5CF7UVPAhLer3CgJOQXl%2Fzh575R5rsrmRnKAzq4POFdgbYBuEviM4%2BLVC15ssLNFghbTtHWerS1hDt5s4qkLUha%2FqpZXhWh1C6lTQAqCNQnaDjS7UGFBC6wTu8yFnKJnExCnAs3Ok9yj5KpfZESQ4lTy5pTGTnkAUpxI%2ByjEldJfSo4y0QhG4i4IwkRFGcjWY8%2BEzgYYJUK7BXQksLxAww%2FYYWBMhJILB9e8ePEJ4OP7z%2B4%2FwOQDl64iOYDp26DaONPxpKtBxq%2FaTzRGarm3VkPYTLJKx6Z%2FMw2YbBGseJhPMwhhNswrIkyvV2BYzrvZbxLpKwcWJhYmFtVZ%2BlPEq91FzVp1HlQY1bZVLqeNR9SAUn6n0E28k%2FUuGkNpP1DBI5ch%2FEehZfjUQ9aE41NhETExoPT2gGQz0IhWJbEOvTQ4wgcXCHHFBhewYUiFHuhRSAUVmEHeCRQHQkXGFwkAgyzREJCVN7TRnTon36Zw3tPhx4EALwNdwDv%2BJ41YSP4B2CQqz0EFgARZ4ESgBHQgROwAVn9GTI%2BHYexTUevLUeta4%2FDqKrbMVS%2BYqb8hUwYCrlgKtmAq1YCrFgKrd4qpXiqZcKn1oqdWipjYKpWwVPVYqW6xUpVipKqFR3QKjagVEtAqHpxUMTitsnFaJOKx2cVhswq35RVpyiq9lFVNIKnOQVMkgqtYxVNxiqQjFS7GKlSIVIsQqPIhUWwioigFQ%2B%2BKkN8VHr49HDw9Ebo9EDo9DTo9Crg9BDg9%2FWx7gWx7YWwlobYrOGxWPNisAaAHEyALpkAVDIAeWAArsABVXACYuAD5cAF6wAKFQAQqgAbVAAsoAAlQAUaYAfkwAvogBWQACOgAD9AAHSAAKT4GUdMiOvFngBTwCn2AZ7Dv6B6k%2F90B8%2ByRnkV144AIBoAMTQATGgAjNAA4YABgwABZgB%2FmQCwyAVlwCguASlwCEuAQFwB4uAMlwBYuAJlQAUVAAhUD2KgdpUDaJgaRMDFJgX5MC1JgWJEAokQCWRAHxEAWkQBMRADpEAMkQAYROAEecC484DRpwBDTnwNOdw05tjTmiNOYwtswhYFwLA7BYG4LA2BYGOLAwRYFuLAsxYFQJAohIEyJAMwkAwiQC0JAJgkAeiQBkJAFokAPCQA0JABwcD4Dgc4cDdDgaYcDIDgYgUC6CgWgUClCgUYUAVBQBOFAEYMALgwAgDA9QYAdIn8AZzeBB2L5EcWrenUT1KXienEsuJJ7x5U8XlTjc1NVzUyXFTGb1LlpUtWlTDIjqwE4LsagowoCi2gJLKAkpoBgJQNpAIhNqaEoneI6kiiqQ6Go%2Fn6j0cS%2Ba2gEU8gIHJ%2BBwfgZX4GL%2BBd%2FgW34FZ%2BBS%2FgUH4FN6BTegTvoEv6BJegRnYEF2A79gOvYDl2BdEjCkqkGtwXp0LNToIskOTXzh%2FF062yJ7AAAAEDAWAAABWhJ%2BKPEIJgBFxMVP7w2QJBGHASQnOBKXKFIdUK4igKA9IEaYJg%29%20format%28%27embedded%2Dopentype%27%29%2Curl%28data%3Aapplication%2Ffont%2Dwoff%3Bbase64%2Cd09GRgABAAAAAFuAAA8AAAAAsVwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABWAAAABwAAAAcbSqX3EdERUYAAAF0AAAAHwAAACABRAAET1MvMgAAAZQAAABFAAAAYGe5a4ljbWFwAAAB3AAAAsAAAAZy2q3jgWN2dCAAAAScAAAABAAAAAQAKAL4Z2FzcAAABKAAAAAIAAAACP%2F%2FAANnbHlmAAAEqAAATRcAAJSkfV3Cb2hlYWQAAFHAAAAANAAAADYFTS%2FYaGhlYQAAUfQAAAAcAAAAJApEBBFobXR4AABSEAAAAU8AAAN00scgYGxvY2EAAFNgAAACJwAAAjBv%2B5XObWF4cAAAVYgAAAAgAAAAIAFqANhuYW1lAABVqAAAAZ4AAAOisyygm3Bvc3QAAFdIAAAELQAACtG6o%2BU1d2ViZgAAW3gAAAAGAAAABsMYVFAAAAABAAAAAMw9os8AAAAA0HaBdQAAAADQdnOXeNpjYGRgYOADYgkGEGBiYGRgZBQDkixgHgMABUgASgB42mNgZulmnMDAysDCzMN0gYGBIQpCMy5hMGLaAeQDpRCACYkd6h3ux%2BDAoPD%2FP%2FOB%2FwJAdSIM1UBhRiQlCgyMADGWCwwAAAB42u2UP2hTQRzHf5ekaVPExv6JjW3fvTQ0sa3QLA5xylBLgyBx0gzSWEUaXbIoBBQyCQGHLqXUqYNdtIIgIg5FHJxEtwqtpbnfaV1E1KFaSvX5vVwGEbW6OPngk8%2FvvXfv7pt3v4SImojIDw6BViKxRgIVBaZwVdSv%2BxvXA%2BIuzqcog2cOkkvDNE8Lbqs74k64i%2B5Sf3u8Z2AnIRLbyVCyTflVSEXVoEqrrMqrgiqqsqqqWQ5xlAc5zWOc5TwXucxVnuE5HdQhHdFRHdNJndZZndeFLc%2FzsKJLQ%2FWV6BcrCdWkwspVKZVROaw0qUqqoqZZcJhdTnGGxznHBS5xhad5VhNWCuturBTXKZ3RObuS98pb9c57k6ql9rp2v1as5deb1r6s9q1GV2IrHSt73T631424YXzjgPwqt%2BRn%2BVG%2BlRvyirwsS%2FKCPCfPytPypDwhj8mjctRZd9acF86y89x55jxxHjkPnXstXfbt%2FpNjj%2FnwXW%2BcHa6%2FSYvZ7yEwbDYazDcIgoUGzY3h2HtqgUcs1AFPWKgTXrRQF7xkoQhRf7uF9hPFeyzUTTSwY6EoUUJY6AC8bSGMS4Ys1Au3WaiPSGGsMtkdGH2rzJgYHAaYjxIwQqtB1CnYkEZ9BM6ALOpROAfyqI%2FDBQudgidBETXuqRIooz4DV0AV9UV4GsyivkTEyMMmw1UYGdhkuAYjA5sMGMvIwCbDDRgZeAz1TXgcmDy3YeRhk%2BcOjCxsMjyAkYFNhscwMrDJ8BQ2886gXoaRhedQvyTSkDZ7uA6HLLQBI5vGntAbGHugTc53cMxC7%2BE4SKL%2BACOzNpk3YWTWJid%2BiRo5NXIKM3fBItAPW55FdJLY3FeHBDr90606JCIU9Jk%2BMs3%2FY%2F8L8jUq3y79bJ%2F0%2F%2BROoP4v9v%2F4%2Fmj%2Bi7HBXUd0%2FelU6IHfHt8Aj9EPGAAoAvgAAAAB%2F%2F8AAnjaxb0JfBvVtTA%2BdxaN1hltI1m2ZVuSJVneLVlSHCdy9oTEWchqtrBEJRAgCYEsQNhC2EsbWmpI2dqkQBoSYgKlpaQthVL0yusrpW77aEubfq%2Fly%2BujvJampSTW5Dvnzmi1E%2Bjr%2F%2F3%2BXmbu3Llz77nnbuece865DMu0MAy5jGtiOEZkOp8lTNeUwyLP%2FDH%2BrEH41ZTDHAtB5lkOowWMPiwayNiUwwTjE46AI5xwhFrINPXYn%2F7ENY0dbWHfZAiTZbL8ID%2FInAd5xz2NpIH4STpDGonHIJNE3OP1KG4ISaSNeBuITAyRLgIxoiEUhFAnmUpEiXSRSGqAQEw0kuyFUIb0k2gnGSApyBFi0il2SI5YLGb5MdFjXCey4mNHzQ7WwLGEdZiPPgYR64we8THZHAt%2BwnT84D%2Fx8YTpGPgheKH4CMEDVF9xBOIeP3EbQgGH29BGgpGkIxCMTCW9qUTA0Zsir%2BQUP1mt%2BP2KusevwIO6Bx%2FIaj8%2FOD5O0VNrZW2EsqZBWbO1skRiEKE0DdlKKaSVO5VAuRpqk8VQJAqY7ydxaK44YJvrO2EWjOoDBoFYzQbDNkON%2BUbiKoRkywMWWf1j4bEY2iIY1AeMgvmEz%2FkVo9v4FSc%2FaMZMrFbjl4zWLL0%2BY5FlyzNlEVYDudJohg8gPUP7kcB%2Fmn%2BG6cd%2B5PV4Q72dXCgocWJADBgUuDTwiXiGSyZo14HOEQ2lE6k0XDIEusexDzZOMXwt1Dutz%2BtqmxTvlskNWXXUQIbhaurum9GrePqm9Yaeabjkiqf%2BbUvzDOvb2Y1E%2BEX2DnemcTP%2FzLcuu7xjQXdAtjR0Lo5n4%2FHs%2FGtntMlysHt%2B29NXbH6se%2F%2FWbFcyu%2Br28H0MwzI30DYeYTLMXIA2EG8QlHpAsyS0EfEToR0a3utIxFPJ3kiIHCCrZ66b0e2xEmL1dM9YN%2FMwS5p01N5jMX%2FBLKt%2F1R83l0LyC29M6%2BiYxo%2FUNg%2FEF7c2WyyW5tYl8WnhWg2%2FhyySbD5UhnDyS7OcU0dnrFw%2BDfGdI7v4QfYIIzOMq9hFtY55gmvC7jZ2FK7sEdrn6IXBuucYhjsGdQ8z0yEbWkkczjjsE5hNAIZrPx2zOLZDmKNXcXtg7EMqidAEEWg%2BSJCBBNwxvxJfc%2FbZa%2BKKf%2BxoKZybnq5vaqpPTye7CiF%2BZFjxZ8%2F7Qij0hfOG%2FcowPA1rT1l4ymWnrKmxxqfErTVrpgwPlz1kC%2BOy8NMDz6c%2BIO38K%2Fx0xkPnLW8Kx6qGAoQdL%2BTD9V9rb%2B%2Fctn%2F%2Ftrxz8dUrZrD%2Fzk%2FferF0cNt1BzctmX2FZPXt%2FjnFCQNz4Ah%2FiKllGiCMs1w5Lkg0kiEwj6VTXCDKsX9rMpnvIj9pcDecXAIXMnqn2dTUbN6w0XQ9ue6FV%2FnnXCH7S3lPWGltVcLsH75ub3ab7A8M28caNrIeOr3o5Q0yFsYL80xaa0EY%2FUEczV7icUMY5pnelAkmUAXmHYjvFWFGxuqlSaow3OM%2B%2FiYY7%2Fl%2FhVELF4EjRqNR%2FbvRbOY%2BDUGzGR%2FOh3EqmE%2FugIQQguGt%2FeMYz%2F%2BL0cimjeZfQDI3phXMbMQsqH%2BCjwVz%2Fhf4idHovgVmB8gLvjbicDcC%2FNypP536E%2F9N%2FpuMibExdohBmNwyiaZdJGoigos7GpF222xrfnZhML%2F7Z%2BylaqP63Hr%2Bm7bdUkQ6%2F2cXqdfmvwixY%2Bs2ksXFeXcE%2BiX0Z%2BIow76DBNgjJ7TOdUK18iPsPflfQD%2BDPsZG2Aj9VmKMMJ4fYRrhIaxhTDR0Elh2vA6h%2FAE6xUb29mj3sjmL72petXjejPy%2Boel60M99tFduCI59N3221xe7apOvxs6aHs7vab1IqY2tv7q2xsHeHGml%2FcV06u%2F8S%2FxTjJ%2BJYc0bWEX0ukW6YmIbGkJRMdjJ9mYIH5QIdJF4hvRGyK7cC7ctImQRcUET99fGXOoft35GYLMQu%2Bg2smnkgZUrH8AL%2F9Si217IssJ916nv14ZrJrvdxLkQvrvtBcjgPC0NXOicO8Qf4mcxPqh3hgUw3DDfdvLJXngg7N3dN2zbPJSaed3OfZnMU7dvmznp3C3bruO%2BNmue0LFsy7S%2B6265%2BfCKFYdvvuW6vmlblnUI8xCXp37CrOZv4B9gauDBlYp7adcUXB5DNCwYImlXOJJKkAdvExXxVvKEYnCo%2B3eIskP9qrrfIYs71CccBjfXRC52udTHHdaP1A1ui%2FVvH1otbrLrpNXBsGX5B89QghDyimlvNB2KfkxZ5C9%2Fem3%2Bd1%2Bd%2F%2FIfFp2%2B2Oxn%2Fs%2B9n%2F79p39S3s8idN6g0yZObwJOgKUpNB3GyU0Ls0PbRzIRq4lcarLKOJBkLRzJQD4j2090XrbA7DW8K3jNF5hlGS5e4V2D17zgss4T20egOJte5iD0bReM9yjTxnQxCRj3c5kFzGJmGbNKmwGw39IJDJcXJZGMkaAB4jyJAKw0jt5IAuIE%2BA%2BU3cVAZZrq9zhDyBrU8oosuxcGNTzCKJfla7JjNVmuSb%2F%2BtuzN2H%2BX4vlB%2BPpdfMXXmuVsNiub1T34SFbjYw5itEvVi0K0Nt9pNJUMI7SLGRhf2xipfCYf8z5OdlGKayOucFeVPeS%2Fdbo3lBrbSMmwUiQN5%2Fed7g0Ds1s17IuZC5kNzM3MZ6EWCa0DtekdJfAxz%2BR%2FOX28sND7yRMTBcf%2B%2Bs8mQCQWHya4qBv%2FufeMoWyslPA9DtMxUknxkH%2FyfTnm2CMYzs%2BCq3r7PxY%2FMXomrvTEsRpfEGHa%2BWN8E1AHjElb7d06ddA7oK%2F%2B5Mdsv9EtPms0jv0Z5kf1FqPxWdFtfFr0kHfgDX0Y%2B5PRSG7RUj0tQr7rmfX8DH4G5W28kKeJLtmQsQkuwMP1pk16EV4sl7vrMJATfyUWo%2FGwEco4rh4XFQgaiUX9qxZHrMQqKnz%2Fc2d8b9TysYrAuXpP%2FRf%2FGr8b1qwwc5a%2BeuLa6S6sneNXToG2XrEJi4R5SGs8Sq2S3d97bsfCRaTdaLwKClRHt37mkudvXbjwVrLhuYeGhh56bvfQkHpk2CwvwClqgWwuBfndC3c8dwmstj81KkagcUgbfPY8Zje0W%2F82VPWJHmSq6pP8hPWpotc%2FEexDOK3qU%2BwngPhOCiO9MJRm8TJefjelrzoKnG2Bn%2B1NCUmPE4gHFmBN9jrTigRIpsACrc9Gstg58ULkp9467%2BGf%2FeFnD5%2F31lNrt2967dhrm7bzI%2BVT5m%2BfzKhvf2MzpICEm79Bopkn07lt1762adNr127LwVqQLdJ5%2BlpQDcvHPQtVY5knhYrK6q8%2FJsiP6EuhGZdFdaNszjvpqvc%2BPI0CdjN0AXsFOC3ZfALDJwr4q2Xq%2BGF%2BGNbsxUg5NLLIEXi8otcDQcUts0D8eQ1iVDRAMBTsYiNdRIxE09EIBJO9A2xqgERTaW86BUFn0OD2xFO97FAgFhF6OoQ7prYt4XwSeUgQHiJyDbeke9IdQntciLQ1FlJMaYcUNvZBg%2BFB1ubjlnRNvl3o6IEU2w7fdNPhm%2Fhh%2BFLysUu6%2B%2BDLHkOkrSHYEjH0tEPe7WdD3uyDgvAgK%2Fm4szFFR7ch0toUgBTdWHr7EpaWru6%2B6dmbbnqWEbV2EtxAsXiZAPTtGPSbHsotI2leoM8TePEqgSQprs7AGFf8kuOkPdZPXGb55POAW1d%2FjLST9v5YflasP6v%2FCO7%2BGNAPC2BMZWmsOjp2NNbfHwMCJD%2BLPVL%2BD%2FOYlWEEI%2F9jpPddOFkB5d1GSuKZYggmCCd7JUxD7EXAzxyirYnNDLdDZoFdx14kivkvGc3579Jm36reTTvDgBnaO6vzyQ6chQmlsMoIkIQ2%2BbBDWBud1Va4pcCn8CPqxlh%2FfgtG8IPaPH8C5wk6%2FnZDv69jurV5QhtwE0x2iqOsj9Mx8B9%2F0EaUdiPfOYYDCi%2Fq9jhWRuupMDEU0%2BCtX0sDFxv07T%2FK5niBPqN9%2BtQjgEc31NGCXFeMcCEuQBIc%2FBK4CO78u7EPYvl3yaEfK3vcb6qP1R2tI7vUjVDDUdKubsSrNjYKY1qBEa2P50SJoaXiksIoLiCwnxS6EBuBde87botNfdEWwYvF%2FR0%2Fu5yCqhGeEOR2ynSeyXjt6ka7neyye8kryBSWE52y%2BRBgogrXPZ8E1yIHoHIFUM%2BAbJhE7lbMtt8ApL%2BxmZW7PwbjAO0fAVoXQOuiSP%2FksIVdFZ0aulsamKUzwPZ%2FNYDMJRBPCxsBqLzqHyneXF6Ej9HlIFo7%2Bpg%2BjUb3unRmGpstGkm6etOuDBGA5wCMefp1gTHcdZlvPBXlOslvYTp1cd8UjYLVd%2FJ5awNrIOKLnIt9MD9qdrKrWCvA6ALm3QV9VrsPm60Q7%2BRHJHP%2B2hqfugo%2FMvI2H%2Fmqr4b9tFnKSRY1Y5Ek80Nm%2FWIhr1ikKnxGz9TWXrokf9xwujfvcOTtNTWnxd0F37Y2W79tteBqZ4G5qLCuomw%2BnSr28QESCRVLTyYKILGJOPfcnaIFOsewhRdvv%2BrWa%2FWih0vlbX6Zb75T5C0qNKVFvH1QL%2FvazSWgC2s6oWXXIuUxQelKiJbowuJDQViatLmLijg9CQBMg8WiPgiw3LEeYRmm5f%2BXdnvkDnxLLjMLxtvX74C3OlwPQqx4xwIdpPx38LrlDphiyWUWHWKAzzxurS%2FxTo%2BP5wGFak62ap1PVFFN4v%2Fy%2BxuR39WnIO7lsWfwgVsK17wxrs9K8ltIKuhkw7f%2F6dhK6gQokFKhWX3urrjk%2FrnI0pgfpGMeuQIUaEM7%2BGF5q2iMkCaMQwxxOzcvU0eXbsnS9XknXvP7Gtw5dwPXlFu2ecvSHEZgNDsU6x%2FGdXBYXyOQjzZReSedeEPY6nEv9gJR4oBQJtFO6Kd0fwC6BO4LNHDeBujB6dSNcUQC9zIv2LnAzGk99bUDrdFY%2B9yGFQtEo0GQPNv6vS2drj4%2B1jHbv3aJSMUWP%2BQTZrmbNTjU8wyG%2FiXNNpskybLcJ3CiTF5Ir%2BJYzmJwE0mSVhlxbtbmvweB3ulB6Til5UuUZydpgiFVeobhU0WaBqpJ198d%2B%2FXeNRTZ9%2F1OPfG7%2B2hwzd5W3D%2BhmyjsRcUg%2F%2BCavb%2B%2BVh2ls3L7zT%2FetOnHNxeerv313vzLVqPai4nJv%2BK1FC6040%2F4udw7sAb3laSg0XCkAAs0npBO6VJabS4Elk%2FU%2BD4gTXW%2Bj0wnrMlqNamq4tMIYB87tE10i0FR3LZNhJsb7%2FR561btmes8YBCRkhYNByRtKd55mqTas9FYhJnbRGHuOh3M4QTdgQSqmgRxuzGdSvZGcbMxNQGk5C3ebLjoXIOFM4l%2BWKHmLTJwRv9E8GWJ6dYvf%2FFmEyEGr%2Bgyrr1p5zrgkz0Cw2j94Hv8Jdx7dIVegBSNtgsqGsRQEYiIBoXwD0LNvQ5d7s5Z00QzwNhqZA0b%2BtMG1tQq5nd84uq8R0zPvX35G8uRaze4jcOHzz0w1%2BQ2BIRvf6J6Kgatnrbiem%2BCFvAxfkrndzD9MFPP1GWTUHclpASUkCNAQkpCCcCgDSUDAhDZ%2BCuEkgn8J7i9nMA7pA4lISappxILKfAeSAbIcSDuN2bJcfZILqeO5rLs0MnngSHYRdrHjmaz7JEsEPw51ZqDJDmUIOZIe34WaQeegNsJn1qz8AIpT3yCjyEih%2FxELkuJ0lEMYTLVCiWpo5oYMleMH6USyYJcD%2BuOe%2BkWKpn1Qns34iyYDjkSLvgnZXcgVQNeqINXr48m3iS7cjm8tedyY0f1QvTnHHdsrKby%2F%2BSSbPY8%2FNH6vpl%2FEsq3Ae4ZU1HC44KFiI9o7CEgab%2FRqHbj7s5KAg06s39ZP%2FzxI%2FmVuF%2FTbTSy%2B3Fb8If9%2Fcv7%2Bwt91yy8RfP1QXtW5RzQn7qIiZyuFM5QfJ5E9uVnqT85TanFx0lkP3ukBAMprvsRyi%2FC8NAJL1xbIIirSvnSj4O5netb4JxmNANHPssHAcHMHsFRgEug816gDBeMbdfiuRcghqYcm0%2BXxx%2F5IAEtN3fqFF3LzAXqwoT0PN0OVTNqxo8sxMkd5Ig6k79Zk7VxxX6gMLOZFQgvpW2RrMW1D0BDihaXQ9wVRoBxPLfpknmkeMtoB%2FqM9cRc9IqmMD2XUmdZ7GSRKPUZvChf8BoykriM2MnKYbOHX8R7cLdNCxSFFVQqoYswnlWtlFS2mNkhswVpZiQW1J%2FUKFfipHGlUkM6UKBhMz1istELIHJLMSctu3ugzfaVSOjKvUgc%2FTHK4Sdg2Wscz69leKIkkrwuuWiOe9yGYKQXRumkC3qbRcMwrvhjNXgdZk3RxAUEhuSPvn3nnd%2B%2BU%2F3vlVOmrJzCD8JLxV1OHRjrZifbcFDOuRNTGqdgQm1tSNJ2OcQ04YiEXuxtII1ECSQRoQGYioEsgCfchB4ghAtw7FfJre4WZ9hkVi9MtjuWqtdNDlpMrfEG9fOT6q21okg%2Be4As38MfGquNt7oUws6Ysarj1%2FefE%2Byst86YUVNvDdts3Pv5c8m%2FaP0C%2Bf8%2FQb%2BIMnGq09BgwN01oIOAnAdagI8mBSrqk1gxTDUBOtk2ousEtBH2z4Ir2d3f6k8PXXVlt2qN9RODxRuoJT%2Fv27wm09jRYVc%2Fe%2B%2Biyx2tyzJb%2Fn3J0htXP87eSsQaf2Ly0s6Zmxela88REy1cf4273mI3iXNJ7KxrZibOm9xm6rl4fqy%2Ft27smU8tOfdW2ucBzg2UfmOIVyLIl3kpYlwphDISTXJXsctmiDtN7fNV6zelgxwnWxsVr83Aj%2FS5ki1jL%2Fa0GC6%2B2L6Um%2BaoddlNFuj%2BbJ8mH%2FiaLh8I0%2FU51NspIEfq0dohwyFXKgm4NggwQ4rRhCOUFtxxo8XnitT4cnGfT93IS8FaT85XE3H5LMY4zIEPL1hw443wz%2B1UmhTJyJGxZzw%2BwsKkKZgUiVtKOKMEb2AKHTv61FNc01PQFwKnvsZ%2F9pPA4RKTASWahmh%2B8MxwzHxKy74IRn5LGRjsPUUwTu64UYNY38caqd7HKucZ%2FtHnODtENw%2F2UfHRMaq1UUPDJQ0OKkWCeet5fYOhII1VRz8%2B%2FElg5j4Gxur3J8o2PJ4rg%2B2d08T%2FfwEzSVbyZ9XPro95T477lRKqUSRXQnauHNsISAl27oWi6Fv9z48JMv8r%2FaMMj8onCP%2FDuDZOuN%2BGPPr%2F%2Bp7bx%2B7JlbYdppcNhzKU%2F1Px5aiaGDn%2Fs1iGMaBcleKUo%2Fv9rcxkZj7DBEKOfrayytXNLYiUdBY%2BpleQXdnscKlQcpzuWluxsieeyuXIK6SdxozitWyGOV3vOHHjguyCQ6fpIYy2JwvrQEF%2FQa9Pdf%2FQqOSqCiE%2FEE1%2FXIVKTc2tzWbHnimrEd%2BVyz311Ml3P0GVTj7PD5aDnsvCvH36alEaPMePcMegXs7x8igTu4B9v7G9vTHvhCu%2FkzIdx%2BBxC0ay9zRSvoS0F2lIxI%2BX7klU63I40gLQ3w5ep5na%2BSFnba3z5D64zv%2BQtM4n4ffG3tq4aNHGRfxgrXPMim%2B5487abL7xhdseIRn1KDl%2B7aINixdv0OD%2BJSPwKf5%2BxoP6aiTeQIDVlIhMcL1H5R9PYXvprs3fv2bO7MOplCmweuiq2JRZ1zz%2B9a%2Fv2PH1Hfz9236w%2BZrPXvWfAxlj4NLLHpq3c%2FPQ3uvmvbrjG7fe%2Bo2y%2FcLdtE6VUlXi0ASb1VLUBVSUWSU4HdvAraTyS8xzM8NxvxFkXV6pUVRiJwcgC5zEeht4rwcp7ki0k41G0qlQhG1Vzlq8alEmnFi58caB5Q9vn988MLhqyVlHvLEWjtQFeupdiocF%2FtkkOGPW2ibWaBTkeZ%2FdvPWazXfOnnvL6jkRXpi85sFzZt%2B55ZptW3bl1cCCHZPD06MhySha7UFzjcjbp8fOecFCirzAG%2FyVjBX6OFIaadSjQq1nNhyIe8tVbaaSdHlXIWKacMeuZA1uxS95zILhyrxAdsXTL6m7kNQlx2P9uZf2qhufePFFbpI6%2FOU0WcP99RrCsrwseVot5mtytpf6Y0gm9sdeyKnPQ7onyK4nXlR%2Frg7H95M1upzu89DH6pgUcikoiihJ6NJKmRxV1x%2BMJiOA3YwhDRQrWU0u%2F0rvq0VYXnyCwsLeTJYBq3dAtJDavuzyoVpzZ99Z0%2Ba0uoiFH%2FxcqgDR7rUFeOrUn6Cywb8ZeNMbhLV5ugP9l0zv9UN5b5mFkjzxUcpPJCn3V402pRxtJd2GrnLdhtVk9ZSZh9W91fCSH5B7ofxPiWL%2Bj3D%2FuwhBRdyAyozeZwvQzs79soi%2BBKSnafLviZCcfrpBpLyimfLfTyJtbyruIQKD01tUwJyKEo%2FybaxkSNFUMdMkhQoJyRBQFhnUkDQSXhTM%2B3NmY0EDM7ffLIjqWEGt8lCO6mLia3PukFnghosJD5p5SIho%2FVDkzQfLE%2BIrYoJXkD19pdP7OwG%2FvoIUtagiWiZ4PAFTHHlTVhRZ7dYmPar%2BNJ%2B8JhmR6DFK5DV1foHoLNO%2FpHrvZfmWZ15RQlwvoVDKhCWNK3CCch9lfFBuAqUgpFSShmNaPj%2Bi5%2B%2BWZfKeViJfW5HnUakVL4UCNVkA4%2BETfIqx4B5xSaP2L1yn0zn2ltPn4%2BOqZGmwwEVCaCSqG53ldtL1oLGAhdMLd09MpCCF6tD6ZnAZBY9hDaYsP0jzZ0j5ZjKsF4i1UmLuhbJMCnYJPt5VwFNvmZawXjEvLJqIH8STonZjq7BZ8gKgR20C9MDFqJAX1H64QW2NEup6qgzLP8cvppL%2FNNTOBTCJABOHeWoXzLhw4Wuy7gaBtjKr9kgKq8ZlRYBS32Lpxc8vIhpNDTfyNXWybMJbn2RyQ5EmWc2QF9wmSZ0KYCE%2BcPuYO6b15Uotj2Kd4MItLS7gtFbkTdrFND6pvEZqv5Yv7jXAus7Pg7avo7KDot50NX3CPkP%2BKps8J9%2F3mGQIteY%2FLGPC%2BL7872SPR2br5fy8MtKBMHedGuM28%2FMZmPJMrGgi3Gb1S%2BSi1%2FL%2FzrZwO9XH1ce%2Fz7ZQ1WSoY%2F%2BpMb5FT4ua0Wm%2BJf%2F298nFmChEQ%2BTi71est4mq9VYI6RsymoRJKYidElT2FGnDTZvqtfhGAFTbeqEw68GqtfmbVa%2F1IFO1%2FjdWr%2F8BDRRtQh9XNjubEm4aWVpVonpTGR7PVGc%2BKJNoBIWF7kYi4gUV3r1U6723i6TxUl3n3%2FtM27aZfKb7THiHW9VzFSwHJ05VfK6Ar7kaB0XgPPE0BSkSFKsBUpaLihEWoA9wBt8qirh2VSOkZwXEwyrxZ5jyt2rJmSo9gX7cg6jsEUGJU9z9xJPOEM3uQQxKgkh35DNATnVyrmJ3mbCNyIB%2Fyox4wH1bg2DwN7q9kov4pFqny8oSm3RQbGgJ1QQTs6ZMLilOVYJ9v6Wha3HcJ9jddsXp9YhGUXLXt%2FqMDnvLpPNTXfNa60z5%2FyjXQOMq%2BlNmwh5egpYrdfZQZV9rI47xlRkuyTjpzsmCBSWNkAXVoK8sgYWqQJWbo1RLo6QH0YW6pxqfCnRgkd%2BRiFjUQUQ7poIaYoakgXxwFd9BuuI38H1xBxXSFb%2FpBDIKQFn7YB3dB36l7sG1FLaKiBdp1KxLvfswap%2F30lnVESgNnvjbUoT6w9N%2BXoio0qcYOIM%2Bheg940YimsucQVvli9NEcft2UZwGQwLuilj1fFr1i3NP94X%2BPE7Hpvtj6lBJfJ4R6NvWiaL6MgzWHxiN66DExa%2BdAdAbMYX6HVF8A%2B7rjEZIXAVbDe7PVI9rmN69JOLV1DOSvRPxWNPZBZf%2FNf%2BNy65BhYxxxV%2B77XJ2wfQ389%2FIQPgajXbwMsuAz%2F0IaQcXJavKbRqR2IqyZruXjVC2%2Bhdee%2F5vdnYOedpmVtR3NGXldxSzDSIiBVpkGb9by89UpEPKrSLZmyFDzMab%2FwXl2CNe7s%2FqCtTvWgG5kpBmCBlSzDS%2Fr8N4uwBwohRW63JTS1y32f0TQsPfXVGEHQrV8%2FNCfiOUVirYcBbIeA2%2BiF68rQIo3B%2FS628vYESr79ehzS7Q9LEL9UXmik9XVHb1yBO3Ngvt5935%2Bk1efkV51mzzrM0LL3%2F20avnwMeKuWyOUZg2TasSqZ%2BKcZQiOn1Iu2Vh497ALUVZiCKt%2Fgh6IvTIj1ZLRjWAkpHKOKovNwp00eqPROiAbiNEKieXwMLcXhVJ1%2FuzmLP4tfxaHR59cBdJVG1kTAgl9ze9QKUEQ946Hkb%2BokJ5JRDyf54Axur1D%2BWS49cLr0tTPEu7UmXrxcSr3XNvumv4yXzInXKH4F7Tc7p17Zt%2Bt%2FqW2%2B93k063X7VW6lALxTY7i1nBXMxcxmzQbabxz%2BtJo%2BwijYaIGMNS8AoSMgAPt84DdHOoMPfjXhF%2BkuH1tZvuFQrRCN07xGcXRX9MYxYchDe5BcHj%2BZ4i%2B42WyPc8Xofi7bbZJN5nJLJ5qr6IqRtzqNlM17SpFsnkEyTWoABEjz4JXOQvzWYuwdnV5LNGOwTM5v9r4RpQ8ZXsYodks3o31JBlzbYtNotisnm22MxiwGFXam5oN1n0TA%2FhRvshvTSDwHff4nNzRo9Dum6PaJbMXzDz%2Bx%2BFkj4L4bFNBb1asqsgH7Dyh4DvbkPtf5yMDKzEwyoaESMSNS9P9gJVA3%2FRTlwoMwZvxECFWxIPNw9gi01nOHjP32esZTtmXHnxvZd8ZtakqQ7ekajbXetpNa6ocTVxJtY%2BuSe69OLz77zh5bDR3xjZMzUz6fxrz1nqrZGcHQHfPVefN%2BfiK86LeXj%2BSc5lPKy%2Bk%2FvCUI%2FDaLFYCWHr6nbXuILTIsb5imNKY%2FrCm28fSMxPhkN1XbNMNZGuqwOBhtTSxWuTk6bw0ZaG86b1hKddePOKuBvmiguYBn4T%2FyOqOyGRBt7bKUI1GjioBC8aUKwF7Q319UgcmtFGIzCJGBqwQij0ynDsfdFGc3TS3BlNfJ25xmzniMkpXXTPvCaD3ZaZvyzjmZdudBostmhb0ORZNN2sJBeed1HXkrUsywueQH%2BL0eCPxmsa5ZpgRJSDZ11yDv%2Bjmbd86vxZfc1WcZJ3UkMq1BOOOVtvu%2F%2BpB%2Ben186d3GTwWAw2jheaJs09%2F%2BLNfZft37DALyrNj1wABMuUKbODyTVnT%2FKYbJ3Tpq8IrNh92dkxOj5P%2FYpZx4%2FycyiVcDYdn4JbEoKdQi9054iBKsygLW46FRGxAb0NPNCm8BSNCPjoKcj6EAus4SuP3rB%2BcV99%2FeTF6294dA8%2BTK6v74MHVpYNRt%2FI30e8QGTOOdfGWzzxcy%2B87a7bLjw37rHw1nPzp0KyyRSeZO%2BQQhInt3dYgvycjrPOv%2BT8s1rptaP84VeywdWX2T4ysr0%2F7TLIs6%2Bx9zib56ye1dM9e%2FXsZmePY3NDs9zlnNVt4%2BWgHJbbz3Livg4P9WWgviOMm4kCRT6I8vw0NbUUEnFvOuFKoxQW1gTsvFirsF5pb7qTUCx4i7VmtToveaDxvK9uOaedVvPRpVOnNz0Q6bry7uiSdQ8t7Vy4JQKVS%2BXPplV2ts4bvCwZu%2BKzgITtxepaPRzWdpv74muvv6RO0SorX6cu%2FdqKn%2FXWnrtp%2FZragz13DUCl5myiFW2Ycvb0PtsXnU%2Btx8pvLFbUspLX68mdegwmOif%2FNPDONajTGoUh6tU56HBJCTBASVvNUB5VIiKpc9kd7kludodSFz7xQbiOmMk5dOYk56gzL6uaf7N8a6MQOHm0ae6snZpFDfuT3%2FjdYzjzwkXXIVHoXNuCfQslQZqBZjTsoHMqrkE4jaYdgkGz2ATOgB3cPkSukD01DnV3ttb1wx%2B6arPqbkcNAHoFPzKUUQ%2BqL0k97pjbZv1I%2FegC9zTFbrrlFpNdmea%2BgIgfWW3wqkcis8ky5FAcRd1If5nNZrl2FFpungc8wpoCl1BpQV%2FScS%2BzjlASyUTVv%2FAJ46gkJI4bHX4lTnloctxPZE1ckS3%2BjG2fKIjkQFyzuo8jvYQG1OrGvJPSTu%2FnSp9PHNTl4z5hK%2F8gtXVKF6gEKiglgcKiRlCESsQCV5QIlKWKpr34lt%2FwkSx%2FJCmP5%2FcBKQfl%2F5gd%2BrOS%2F%2Bp91%2F%2BYCg5CXK2W4M9fu%2B%2F6xxX%2BvnelVuldIDCG0VQTpU9Dw4pRfei%2B6zWx0MLie0gPbyrkmRU7OwT16JGeyXLHqOLqAfVN1GPlBzWtFNzj0TRTCjogtP1NjIvu5habN5Aoa1k66wGpqriVetJgiGdwDZtKhnN0y4n9sXYnsqGmZfDSR15%2B5NLBlhoDaedEm7sxmpqRija6ZEEg2EAnTiAC8IrmFbGz1q08P9PSkjl%2F5bqzYqT9hMmptEXDgTqP3Wiye%2BsD4Wir4jCeoHbbp5hRfpB7BakUIppIlPCD30dR1GtslDz8OsqbXmejFC%2Fv8wu5X2myq7SJ8Avzv9DFUJySf5uNvq4%2BTi7W9D%2FOZrLChdwxmPNiBRqVjnpK%2FaGxRCDspVYKAW9AN1JANoo8wP4BJUlGqdgw6m1qPQ2QW3%2BOfU5%2FieLS%2FNuKpDU3uf8bcAXyBal5jMR2NEAbPAZt0K3hvxHBEDlUxfIGcD%2BN2gNSNx36nfqlAYow0puatNpRz0e4W2oahKzQHsjf2c16ad%2F3t2KTtPobnX6D8C8pd0MDP%2BKx7wnXqGGlLQcvikMErm6TmfsuxJXbSAxqNjOogJLQBLiKEHAE%2BJGTS3JoEhTrz8%2FCB%2B5YlupJ58aOat8Kv4JvregxwcU5Cp8GFAFm1FyOfto6GS2m1NGTS6CPNKkbsTdCBlnN9onMho55BX8IJZtEQ35lk%2BhtwN5A0V3RCPoD%2FyXAcv6pAtbZczRUA64JmcUf4q7Q89ZHLeJVZ5D1Ps%2Ft%2B0iCT3AHVtZC7JDCXfR7OSb%2FXja5H3zQbZL1B%2BULX1BMTEk3AseSpmnKEK4T9ekMIidUCRQFfcbj7z8gNLvzF7mbhQN8h6ZbRset%2BnQWdS%2FZX3k7WpS8P9sfo0iGS64wV516pOhjI6TZ2dApgI5%2BLhxywYoWxKUrykKJsIoDsR4mSrCTg0egMPnLW%2F3Q5Nn8BZEuzqEI7HK3n0%2BzFmuO3TtWQ5WJoG9YqCD6Gc32SxnbnVPfsxvrFXK2dILl7bLthDp6glhcsfp4bYvbSmj%2FmQ94uBTw0E73x2jbNRCvC6VL6GCFDwU7eWQDcC5FY5s0slieRDwtAbRsbLXbaXAuu14e2OJw1dc6jQ3ZdY8v7rv2%2FBWZLqvFWVvvcmwZkK9f5jS4muO9yR5res4kfkRxhV03L1RfPOiPtYi8pd7jNEsOpyTwxpaY%2FyCZu%2FAmd5Or9uS3DYaeqVOhH7gZN%2F8I%2Fwi1fEuLXvyNivibjuKvN%2B1Nc01HF%2F3h%2Bef%2FsOhox8MPd5SFucPjorQwXT%2BytA8EmA5mamHNFDVhBI5pjZbQpugBNkO8MvRub8KVDKST1Wag7D3xlin1ZF7LFP%2F79nbvCXFOY%2BPUjrT7%2FotsPXXZ4exdPzuhZuL5LUXVAn7k7PbhG89uz3b41X01gbjP1xwlu5rrvvf9%2Bpbs6E%2FVu7Nk642%2FPYRaAiUBdrmO6CDTBLPQFA1ur0uXoBR1INDMkypKpoTqnSMx5GiEdTEaSHLs0Alvu%2F19%2F5QW9Rv1U1ridT22i%2B53pzumbs%2BXFFXYC%2B%2BCGsTj5JUT%2FGCgRt3n78i2n71FHG4%2Fu6X%2B%2B9%2Braya7os3ZbDmgWfXun44e%2Bu2NZKuGZ0HiF8M4TlMPR%2BEU6rPKRJ8wOU2RFUFLex3egEsz3YqEAq0cqhAAW19dBZIlVzR61tuIdTnpXH7l%2BuXrbjPUyep%2B8cl6aXKWhPHpDcXl9KiTWDNr4mBQc8Tq%2BNzK%2FOKSbsfl79o9G20R%2BbrBXYvUg0rLHhtrc4TN81TTOWSZ0gL1ZVlOYH2ery%2F7XVUjFMbzYpg7UswcqJPQwBd0LKLabJ8IaCr2otcjSkIrGwootKECaUd4XH1%2BSdazRrfddkBU98t1htvWrbjqSqjaCguxrffM%2F5zDCpBALUycmajhd%2BR6ww4SWafuZ5eU%2BtPid4lgd3gt%2Bb%2FY9rQoZNmiXYPXyRHbRs8zX%2Ff4WIFjWZJtUdSD55AP3xtXH%2BZipC0EqdBGDA4CoYEU6gRLGPU11QhkLTBiEYPiqOeQgwTCl9aok1Qr5pFf71qEeNxjy%2F8F0GoqYPv75Yh9j3x4DuJ%2BuEzHRpAq2lMqb%2BqfTdiq6kGtzfOWsv0c7lSeMXDHBDe1MT%2BLUgx0Pg%2Fp87u2UicdIvqQi8DkxhcUwUXCedMpb4NQjwY3npTmgsURJavLwCRyEcN2HfWsDVGfv%2Fu9ZUWUx%2BPYFueUKwaNvbtu%2BXps3eVWbN1GcgVrdMnWJ7WmJz9SD66EBidag0NF1Ukep0t5A7sFCWdhzvYwHv6L%2FBehXuHqfaBwBEU7hfVLcXvS4VQv%2BT%2FvaSIl7cbeMc7ekv9i8S3e1L5xxpvMGcu1EYPbKyCiijjGXcDKckm43PqU2qNWlXusZMiqF82cuVzolUHN9NNR0HZPxFPV9V0wLtvq%2Bk4DqOwVWDlzuQLVdqFiP08cRX7aRlBVfR8cb55bWe5LExnlcsDp1vAP8Q9BucPMk1Ulh4GnN0SAdxcNHv3q9ohx1Ati4S%2FtkWjIDe3hQdkUGrGRaFBiUdiTSkI41UkMuuQHP%2BEaSQYlPQTFWJF03BNPpTu5KFAdkWgDukzsZKMG0Q1TAQQglScOaP%2FdsZ8%2BfP75D%2F9Uu5Gs3FY%2F2SxPld0DHOciXI9gqjcEidXjE%2B3BLosy0OcX3T7O5g65ROGyzQ2BZs7WbZVnO5ydLe32hMwTQ4wnnKXW6XW5LAa7oaXOIHoUl0FgLQLH2by8wSTWeAx2Y5PDazK3BqZbeJZwXGPaYhX87ZNszoDdaRxotXO1nNlpdvAPFWHDm8PqEE0sZxDEqGzxisFNnuCWetPcGrObN0p23tTZwMuRVodSV8%2BLTrOV3eRvzjQZiSjaLYS1WEJe0kNsJlZu9LFun7%2B%2BwW4gRDRbaxw2nrOGm%2BxOj9cmtbp9ZqeTM1m8UXfQQCSTVSQox6pvtjot%2FFpHvIUjJovFEoYvHYV9C5Y%2FxN9OfcalvII37UEhTbTg%2FAQIaPb4Vz6j5u8%2FaViycMod%2FfkDcpu8QZbZoeBi%2FvbzP3XPsZvOubMtaPHkD9jt6%2BU2O7vqU%2F9C9SMvgrXpQNG%2FE0oJxun%2BCiElUa0IKQSUwERxOntKSV7ekcuh9VBZBBo3VUcB58ofKBHCwLyf9qFosz9Ibf8dGqwaBMjRig4SGOZ2UkWI7UiO9OfUPdxOYFApUZyfpY7mgEc5rtNGGk2H1lPhAk1Hp%2FVAMqQEHEUfEYkkUQq1JMdzsX7kklRrTrUi1wMcDjmu1YYfATj7Y%2BpGpPEBXuoQIj8rR9mgCl4C9yqmF7xnVWxGVniNqtpVmXBvQ6iwni5YQ8a1jYrXtc2J13HvgkvqWxuva1sbr%2BP2S5ceKGyBwDv2DbrToe1u6BkAJV7xnVLUaq0sJB8pFqcUIPi3yuwxi4JuLr%2BP30f3OkPQ72aO0xYo3%2FEsmO3QO5qEF8S0qQH0UsKXv0brnl9%2B8M7jF174%2BDsfvPOl1au%2FRL5%2F9DsbNnwHL2pHR1NTRxMZhJtHktOOxLxErPF6YlLvpC9YP73x%2B4ofw%2B3xVdrHcDE0dQQCmCRgvt9b35xINDf1CDcRSfJ%2BpYl%2BSf8YcurfmXP5F%2Fkj6J82jNsrkWiEuhVlgFfyNkB3S5MUzLhoNiwSCYcxQ7Ui4J0Xh7fmqRbaPa1tzujxkBRlsEHy0%2FOM4pYLPb7g9O6BQJN6l9zQ0OGyCaZz0vMTbHOzXfQ7a2tsterTcqxeInODoemdktw%2B1SbVhKwtW9ffe8VKadK0OVuC3bWzyKm5LeddsWTeorWyY9IMtUFutdu5g%2BRn533qkocdvLs2HmhU75br%2FMmWtD8zA3OP2t1ea636jEzqYxJZGAwFiDEd61oTsrRuW3%2F3pYNi3bS%2BRd%2BGjOfVpAPNd6y64Gsz1GaZleWIPoYL%2Fv9mTeQBENVEguiF1aC4YeXxFETw6QyPfn0m9g8IrMFAvKM1EI11DARnbqibHk%2FIojy5rSdgCyZi06y8sS024PeuO4MfwQ5Y9yKRZCqyYaF30vzeHlmUprR21tR0t0yz8KZY66zWuGvxVQB%2F36kP%2BK38t2Hu6NQ9SFJfw0AdpqPEK2qTMpf2VCqJwqPoJezTL824b8akoL%2Bx03nhh%2BoNo5e77psxg9Q5LzebIKD%2BfsY34f2MtB9fk9v5b8PT6tYrgv4kRPwd0q9z3gdJSJ0653KjCYPwCaR5aUY63eW48O%2Fkdo33yxX9wCiMv2QTrk8eGSI6Ag6moG9t2P%2FF7GRNlDjl0gw7pJ5aOXXqyqn8SENnXBmbSwUYLyqJjv3UmY1nKr4t80no0faXsaIEiF%2FBRaIBnItSce4OUif7W6Vm9T9H1X9Vj71BEm%2BRdmIJQST%2FZfVdudUvh9S%2FqqNvqT98g9SQ3lHibZY0mRVHooyDN%2FFHmTgzjdozKw28NwQ0hwN6BCoPKaEk3YtKwNhwRLXuk076CGoZNXDQcRwZvreTZY9EZi%2Bd0s4%2Bztv8iei04JQl6ZbDD2eHV7X4uHuFVfPrOmcs6m6Kr7hssr%2B1VZFcEZ%2FPdJkn1hOs8SXS%2FNFFgqt94PIZzZ3tdaL6Q5vo6piSzdy737pwsX1VyxUrF15iJ4uNkq%2Brbyg1Z%2BO8VsNC1UmcvORPRfxtPrfRwL2p%2FoA1eZp6Z%2FaGffoewaXcA%2FxBlKlQLfhQL%2FoPgBGP3qsA7IQS8qDVNswHKRSheDUvA3Q7MZoRcJMxlEygujn1QdyzfPfq3dEp%2FbXh5e5YXW2Ngfvza0ZF6UgFL%2FE0fTq4LBlvTE2qb%2FKuuzYSXVnjTfM1osvqMHVbm9950quIZlbqaL6YP7jk3kUtA0GnX2nvq53f3WoSsvEdDRnULgo2fN7lNZJgI8%2FVWi33c3bBZnGY05%2Bdm%2B3qc7fNmj4YGKLj2nfqFP%2Bg7jdDlxEV5XsJQZP6hYrS1l0VQr4c69Xueixp90gnZPmE5OF22j%2BSYEWHlZ0K%2FHgsh%2FZtsbh6h2DNRlvv6jJh9XaJaHCZDiUDKNTMkvb8vsqCyf3ZNdSmO0fa0Y4baJTtpbKzuVzeeSI7fCKr2Z0WypapnXJ4gnoWy3PoUIlIQ1TXdqhQJIXp9Wx5fYdpeWh2TY5D%2BYVyKd0jw3iumwi%2FBC3cEy4o83QlZnW79MrCgCjbhWXBlRZVVZZv4rIKpXC01HFlHdHLoeWVl6UVc%2FJ5uGm6CViW5mulYMk%2BHqNYr0AyUPivLg2oMs2MPqtuhHyRyiwvNJej1Br%2BfcLyoAyu8D9B7bgmzUqfFobF5nKnK4%2Bt8MPJkI%2FxHUNWk117jugWF%2BxazTAALQn6%2BUE9lhoI5ApGA%2FiuJOsrlNP28SVVuBVajXmircLel46w2bJS1Q0Ft0KDuikDFL%2F3pYrid1Q4FvofwRIo4R9h2ftSwc6jHAMqLcCql8YPHtlzGoByNXYN6v8hXnRaOhUvx0sVLCexwupGDR4NOYC7PePa5keIPACnuAdD7dEadRuTIiS6Lb7uskb381My5yjzF8lGCjBRqdwrWJCagfB3yCy7XT1i92hbcZ5Ci1FJkgYMDf6n%2BjspIsHFjJrTOdzSMuOa9DbDcj%2FnH9N9bIoGVgzHPWIQuFuYtaMRaq8eCKI0gEF6lPOZjBz3EEvaaxwSUT9U%2F8JbJZPJJLBLolH1La%2FRbF9AbC8JJjv%2FmMnssKjLRBJyqj9QXxNko0Ux%2FX79epfiXkm6fmKwF%2Fen1HLc6LxloXWKvGa5rVCVL83VuiPcDEX%2FK5pTXOxHfx6HHB0t2FI0qI2rCZFTrvPWU67zVuS%2FkTsLnc7IKhFg30e4FOkqNSfH5PtkmUy6Cpiv%2F36k2sbqCeCFNa%2BURpoY0sZoYmCgCr3qgZz6s8I0gP1bYiR%2BD79H56NOz0EVWCTy2%2FfffvSCCx59W7uRV9995eqrX8GLesOXNm360iZ%2BT%2FEl3uZqL%2BFyzSZ8XxpTiI%2FG0nkT4zznFZ0t4ipMz5v4q9ssqbdKUZt6u82knPCrt6PZwsnn0XySVnyPR1ZXAn72yx48bWJsu7apnI3Hy8bygUK5Js32qcytapqgmn95uexccj205vGgJ%2BeuOeG2SORmKZr%2FqKzcx9SFctMJdwMUFZDJITs7dnOp1EKZCxg304Cevyfya%2BvlKqv6aXK1qIj3imL%2BL6hL%2ByvUlFfE0VKZ7E8gBY3M%2F8VoJCFgizH1W6VyC76nH6b7jiibYVxUmVIEspry%2FLgZIlCeP11Z4zs%2FAwvVwtGFEut5S1JY4lfyT0N%2FevOLo%2BrUEgjcqc9IkGpQbv3iW7Co5b%2BKgjvpzYdH85PLcc4X21ouwEGl%2FS4qnUAvoSlXUUhR1eKr2VWFTB%2BGMl6FsiQsVD1R3urlAAIoSn7JQkmiVVCHSpCwDH%2FqPepXQ0Db77CJOAImohB%2BRPWr31ev5g%2FkE%2BzTa4lbvZo8xdWPffQu9yJTPCNB66s%2BzXoJt%2F0L6hSoCuBIoK8fnBGG87OoRckJpLqyWe4YbpGi50g0%2B3I3UD85Oa0fzubfoXxPLbW3FDWzigmyJeM0tQkax7PqTy80%2BUxfUHPlBZIRVNQ%2Bv0xRm8REKPoLmNr0%2BUo48v9GFbXPKylqQ2IKm00QddgyWGMROCTxdLB9nCY8P7j2DjlsV%2F%2Bmfr0C0r%2FNkeXbbpPlOTBBwT0mVz1zx9S%2FwJecBF9Wgv3p032iP2v4VSgfgW2G%2BHUEdEXU6iq4CtpLJfIN9XQG8dwa1VoO8XC2SrPDDyCOQptXgbcPvlAgBfxBoGwftQKeKFrNTASPt3pGGqDt%2FQRasn2kri%2BH6L80MJRsmVYJrAKyDItpJUy3%2F15WYIJqcJ9Q5N%2FLFJ4c3dc1URpWl9hW6mu50MUIelg4ucTPf15zs5DFo1c0VSp1tKB9jkwIyuM45kb%2BIP8gHed%2B6jO3v0KbIknzLy636E8KPTdCuUpB0wLo9JKnAO6pv0vS31EtBha%2FfJemkgLVVnd8KCk4qBTpQ5m7FbifBKrPJcq0pZAFVG%2FXbOFz%2BTcq2MLrcmV28Nmi%2FOHskh82bau0k8eWCaPijQPWQ5lUvslwVCfHkXBMIehqUgtDNLeauH1huvZTbYmw%2BluPjyWoNGEuxRLR7LK5fSyXFUyK7PURQv2v8D3XOt2NJ6liBbmPGOsakw1kbeOs%2B31Wm5qpH%2BiJWSzqdPr2O7zc2TmtnrzCig6bBd%2FvgQmzOlz0STWIlmZEQfupogOZFHUZ7EkUnMn0RrpIMqAgHRJAOjIJ3yGw1I%2FMAp9q9S3Q%2FclADNm1wEeO%2Bxbwg5OIYHZLY3ehG5lJk2xhco%2B6JWybpEVz2wrR6hZyD0QXZbeDVB%2BonmlimpkWprdAs4WEZDSQppsDlcdCBJJESIYFuAtUnC4GIF2C3Uu2Kv7L1bdz6FxtqxpG4TqQOqOUNAJ2HLvPWA2GgDy4O4vaDrtyl6P%2B1fAll%2BSyFcQ28GHqh7fvvf37udylf0fNwhzgz87Y%2Bcf5x9GnF6ygHu18sAbipWeF0YPBgp2GaKeQduxxdEr3SgbH1kvH7tvqSLhedomOvZyts2dw8acu3dY%2Ff%2BucuMtCuP%2Fe4zC4XnH3OLZ8ZuxTWxy8dJfU5dhDeKPSlJy5pn%2F%2B7u3XrJhmr9C5CuleGflGQocKnlAUaRKp0BAHV0ZwUt9VCqk6zYOgRIuMfePJzdmBdpPJ7%2F6B23%2Bf%2Bsp9NMDZevovvfYHG5dGPISQq1DojqNckchVrCcCYz%2FQ0hI0m3NKDRfkgsrnamo%2Bp0CAq1FyvC3a3Nak%2Fs5VX282x9Ufy3E39VAx6o7LpCvO2wK%2Bch9jNqpJCutcIOooKnYWtDK8gTRVYygRQfwgzKM5%2BjP2jOZdx3r32Py7rQUPOzAnoRs95NvRAR0qLGU11Taqu1bUYSzMcWjMEir067JQQHfIrLBHsrgv00%2FWavd8HRLMEEYFSW3HCSNQehnrHztKqHcDyo4VfZ6gPKCR%2BgufwA8GegxUEo4A%2Bgd0BASHiH6jYMLIsUdQJTs%2FC641KN4oCHWolCMLlMfIdtWKScjx7SM5LD9HnfmhrGI0S139UWfUnxgOXdJFW%2BAMcGjKr6eHAttHF5sUoeArYKDcxMSYcKA%2FxUDhPiEOEAPafSIUFArN0r24ynI91EPARDXvIDYyvqZaWeroBOUABQA%2FE%2BDXC7PWafDLQY2oiwpUEyj4RQtVlUp1GrM7In2p2A7VuiOW6otMiGOo5Mrp05ejVuTy6dNX%2Fk%2F7mybZQ0nUmfrbx3U4KueDnlHm5wdh8FFeKnoaKKh%2FTK18StOPhwG9Xo5mqXAxvw%2F79YQwwDR%2BnAKQQ4izVXioB84qcppWB7IqjU45z4CE17OvF1Dw%2BoTFqxtz8dxwtogBnF9MjIl%2Fin%2BK8s3hM9laIn0TiCbTAXL0T798bPXqx36p3chrv0O%2BGC9Xaj48Ecv8U8UEeBvUEsDlTepiU5OvlpeNGvpnKF0RvUooWhIjnx6GeBapXCQYTw9DNg6%2FOC3gZjp76oNTj9Kz6Jqobxb9NDqc08vcKReOpcsQV2K8InXFaXW3aI6Ofr1k48rp7CX7rx%2Bv1UKPsfvzQU0Kc83i2VdILmd2%2FyX55zT9luN2%2BCu4nKfwPcK%2FCvDVU%2BpHh8%2BLaldIf1fA5h3ndT6Fln9%2FW%2F9Ce1vndfvJtnPVO2xhm3qbafHVCN1X363UXHq9xuVD8OSD29Z8pZ5cZrern9cAdGW%2Fuib%2Fud%2BVK0L9a42r6C90kL8KzxwLQw9NkIQJL0ASU8M%2BVG0KsUdgdvpgP%2F6NqqP0%2FgHZFUfGEijZLHpiIgvV5%2FBltrj8Qd7XQd5p4P%2B7tJo30NMO6VGBwahSPMYiaaBYoLY6uEnciyhhh1Z%2FvvacG%2Frjpsvnpzs0B1Id6fmX8119l88XnOxe%2FuGrzzHcdu7UtY3%2B2vmXN5zUyj3ZcPl8p1sZSs6%2FnGXtwrV7Ka0XZdz83fwjjINpZWYw85lL8BRK4nGyIir2RiOsEyipuEcIakpGjWgBjLiHWOgj0Yi34gW1kKPxHt2Na5q%2Blwg1RdRSpFDNzosb44YJXnAfoEOpZW%2F%2F6u1lhYA6leevezbI26zNHO811M2dc5HFxpk4i1jPC0s21%2FBWW5DnPQbn2X1WK43%2FaM2n18DfSoybbNHijFpamzXI31eRibGUOxSu%2FlT96YZlq1Yt20DaSBuG6knw2eusHs5EPBfNmVvHKdaQzcDfz9ZsXmLDWGXy2U5OsYSsIn8CS12jQIyD12KKqZrLPy7mSPdICmd6WGHG8NDZkkHuE4h9TU8FpmUO%2FVjC%2FEinToFyoNDz2p9XD6g78WgQdPG7Z3R0T%2FZ5dTM9lsL8Ktek7szl2L%2BgQwGgwkZHc2g5Su7NvVqwGy2Ua4KSXUwt1X4PaM5paaEu6jQ5zVFyNabxvUksVt2T%2F4VeamYPlLtffdQsk%2B2sUTY%2FzDXl%2F05W53%2FBz9UK3p7LjapZ2ZxOm%2BUlZXrL3HHGqO8%2BwVroDaCTTnTxitMxmiAAYQzVJQH%2Bnj3oIHnPaN6Zq6sNSLjBl8tKgVr2mj%2F9CWi9dnKca8rBQBsd5R1tzVlgrl5pbnPw6kZclCr2CHxMnHohLz%2B3KRQokzALyeIKFU1TNCiayJdoHvDYe7K6mZLm8S3uJ9dojuaJ62%2FqN%2FtjQxnSnhnKPw%2BLNrLi8ZKyJ3x1YhiI1aNAtP6NzCGzYv3DmaGh%2FLvQZnt0evgIhTFV0kE%2FPYxAnOHhCQUZdCWY5JWJwMzlAGl1mpNbDU7yyGnhRMILsYhH3VRAijrPcBU8%2FCj1Y9NY6cnGVW0CjTLaz7E3epvaT%2FLtTV72Rs%2B0WVVmd0dz%2FMGTI5F0OsIviaqDlbbO5X6xT3PeXbXHRtf%2Fz%2Bfdka%2BeKPr8KF7IF4vBsT9MFPuPJMBTBMq9hQxXelQ%2Bbewnf18ap4Ib%2BmSMrtDU5zqlD8QANa5MBGh%2FOwOvSDfcV2d66mfEWsbGWmIz6nsyZDWQSmqmxDneYyvjHPmRXHZxeueyRGLZzvRioKnGto9nIPkibAJA16adcOZRQr1iAP3bUyBR7T4RgAWTKxhkCYFwshq%2B7iV9r0whk50cmRcTg4fy5x4OmmNkHndIA2%2BYuMbmE9dwGYB4KFTsvnDE6Ah47r%2FfE3AYI%2BoXADpkdlENcZ8OZEEf8FFGZNxMs6ZLpG3SUFLL7Q2kcFU%2FA%2FJsw%2BvWDa%2F7emewLaoeibaF1B9qUNnuqWK3%2BUfXYVL1v%2FomD15xxeDkPnXTOKSVcCbDGtOu0YQNpGAP7U1HU58UrqGu8xIbHtkQ3LVhb7Dx46ET3Ffcm1q0YcOizNmf3bC3VjWfAcpSv3MyTlgJ23FHQgmgvk%2Bgk8pL0mcCDOn08MDAQlf%2B%2FSlTZ1z12fnqntOhbOTL9%2FZdevbAPN%2Byby1f%2FuUtC%2Fixm8ZBo59LTXEW060hGrTDplNprWd58fwB%2Fb%2FE27BdS%2Fs7U%2BrGVCeQ46nzaw9QccnmZerGZZs3Yw9aVHt%2BKh6HN4ti6lxIhT%2FwahnZtWwzlY9QHQ2c79C%2BdxzvVDKy8GqKWQERO9YAKbpsDUTLdWV5dE8PVPjvj9pqw7ah%2FPFVtkit7aj6G5xY9mfJrCz1j1e0BcnPol4UjtrCdbahIVtd2HaURujnFJR8CuOuUUfhrGhgKKgjCYNSvCc1WKlEp8wHUaAYynFNyzZn%2B2MnYv36dbMDBTonl%2FT%2Fma5IKAyEGz%2B4eRnVtaX6tss2o34u8mWorFtuFgm4A6qK%2Fyp%2FgLEBVat5WnPDdKA574ubuFJ%2FIUfZ%2FY2Nt6mN%2BZNNTSTaeI56gKwkXerTe9DDHUw8%2FH35FY3nNN7GGuBKWhrV9ep%2B0k1WjNWVaHkW1yA%2BQHWNu8rtBw2a5YXuE40rs7%2FGA%2Bj09V3hA98yRnFPOGr8ltGlsFdD%2F7tRce3LH6Trcneuiy7K7J3khKu%2B3qUaXPWaX7T6%2FKfj9BX2eZq2XAcZT79u1ClJzUtHUqfqSMWBcZS43Ena0cUGLgpkKxB1QM%2B0Fxz10wgg6r5rltnFpH05pepUq3Y2HfYqeKRntmUFNz%2BXmcOs1H31U6cC6RTVLfCg7RNBF1UF2%2FwBgu0fFQtPEU1sSg3VcNsR7dWq3af87tUFn1l3ltXpaJxpNvtcZkH2WmMst3JqRpxUH%2BWC0E1qOGtP66s1MYv%2BVLu8%2FXFXvV%2FZbunYYBeVN64ls0ur6NzpV9xzlmQwB5qC4Tq70WC0tk8dWJXeHvkD0h9zJOM0vD86%2F1NJMaIAolctvlByferCsqOKDKceOfUu1PsmoFCamV5mCrMUOCi6V6FJosMF22AcrKJgQDVhfYh6tepp%2FlYgvnCEAbJQ1L0rOpajEmRcasMiPfxhgGoVo4rwreQpV6fUJHH2e8fa1s2c13Apl1b89a58ozdoap2sjgLN9uISl7P1DrulyeIkt0zr6JjWocoPOZsaXPb6jtqBblsgsaRre2xHi4nELm0MhG1%2Bx1SXwLpFi53b%2BaHRYo%2FIrbZtuWAKu5cSEXfybnnmUCaXGTpQr0xK2O2WWY76f%2BnAjNVf7nCZHU5XqIkTnpt6VtvsFlPXg1031g%2FVRdpkkyVpD7jnmax88QwDvg%2F66NnMRdRXTcGTmQc3cuINwN5IQqi0yzb%2BYFVHuVqI5s4ADfg5oE4ybDLd28mFSFmYvRoomsWXEdLU2Wl3GJy93ZNb%2Fd5gqmNaqJZSO1l6PVRy0nZIj%2F45EetjLguh1rLqR%2BSK0hO6NrsqcNX8zoUdjQYDJ7tb4os6%2Bi%2BY0qpY2AWlnLRDWdGFTfGY1gV0zNAtJ7pdo24se0D88AwLY%2FgZmE9iuP4V5v7CSR%2FRThaHLh%2BUeBkXwU6BC7lGOevK65udTv%2BtS%2FPfW7qj3ljTcj3b9OkbV85t8xsMj7Ddj7DGpthZKwKPvso%2Fc%2F1K9aLE12fMWLV1y1D9ua8lyJdWXr%2FbG%2BnoCFutf%2FmLILe39ITUV4igr3876fpX5g2zeB52sWnIL4fXHlgeUzOx5QfIvJQyrKQE9wHUqVq%2BPEaOrz0wVvNbJZVSfsuMzxN4l9PkedFzw9V5Dj%2BnzpgoT4ZxCxJfC5RWLc74YVHxKlExCYt0JAOMatREhHBSCAtSfod6x6Ls8HCWECLwXZ9nd5Dz1T24JUdWs6fU3%2B%2BfcnT49Qe%2BkBs%2BwdsMZgPXMp3U5S958snPP%2FEE7bvkOPCuTUDTUQ%2FUzirLhML9yPahoe1D5Fj5jWsaoveyP00PehdUAHk%2FseDVWsvDWXXXsyn%2F4wfpXc2V3%2FQxli3jl%2F5hj%2F83avSCfpTNxOEKLmTjxOEKuxgNlsQn0xgct724mhynupNW1Ph6o3RYS3%2F%2B2TJrzLlkFz%2Bip3qCHKf6eqW02QJLjBYuuj4sobhCWqa%2FYHGEHpcnumuWSOhxeaL7sOakNR6vvmo%2BYcfFA8UFXEPZf9UjyudIOyNwx%2Fi90DdsujS%2FFX2UAwvWSVK4NxaMhAGw3oowp%2Fuc8CTi7D2rBgZWwb%2F60faR7SPsEbjkXy4G0XaqhXPwe2cePjxjxuHD6ssQuR1fq6PF0E%2Bo2t1nePTn8TUmxz%2FA3crMoCc7egESuoTHYc7mYdg6etORoOhR7BBGD%2BqJopELrl4S6cJNRtEAsLP%2FOdvnJq0Wo0GolY2Et9VFB2Kf%2B4bZvVyxfOMz3WdFfSIryj6DwWghre7aQbdiDrkTL3A3vNDuDpk93HqXwam%2BbWmUJZfNn5ozKV5Pmmq8PF%2FjVY%2B2Tlk2M2RzSXKjmbQ4RZcQavEYrN%2F9rlXwtIQqzxQNMzPPfHYLvuPoO9TbT8bpGw5CQPGd%2BSyX%2FCyf0Vxjd2R9NmsunnXYa8xGHzn%2BsSfM5J0y0DZEXWWxkXjcR75KBLNLHi7XvX2G8VOrf4Ykg0AMdBESIpo7MgAfyakA6rkqpI6UjNs0px7cMV%2BD5BF49Tez1VGnYmq0WIijp985m4Sn2gJR9b07riPPFo97OYbUZbxJCpot7H%2FlpZBicglCPN7WOfJkcHqc3ElWqvvz%2F1E6bIQrG%2Btz6WkM1SM9FBTR7FSs8KyBBytSmNEoquJNFN5EQyTiCrnKDx1h58yxCepPHU5nxGoxEQeeOZi2m80DxNxncVhr6BmEfUarxejw%2BWSiHhWk19bSY7aKR5MsteblJpfTLtjimBouXsm3d3djjYM%2BwEW0El9dM%2FueVRWIsXwe43R7SgbVZqrnqoJ1X%2FkuF7pcgf8duv4q6vayV5U9zMV91GxO59UUjW8rHV6u799WzKMT7umRCXbYUKM%2BfoaCcwgaoqZUtmodV3p%2BX7akb4dnU9B9La38RPFUG2SCC90tVA4XwEFhyOpZZrUCsgWYHsczLFBBVGNtstoN1bw0Z%2BO4fYIbvZVt4EUcJEKOhHeincWqONw%2Bq6w5Go%2BWGOSR7LhKV%2BKBqbBPpfUvOf9QqkpDyVhBeyyZQGMsdA5FBUqvFMtUyGq9vjnsAJU4UcrxldP1CCaofyDkSAifoP5QwWx%2BSyUGxp75BzGAvtG7uQ38LehlyEQMeh0TeE6Bm7tYdXqdkt0uOb3kfYlNwmOdDyacOq%2FqlFo1v%2BPTmTi3E%2FglC9W11b34A22zmLzvb231Q0L2Bgg60OTW4YdstO%2BYOJnO38TtpH7zy9ymokWyA79qlVSn38HtpFlImFnhu3b4boNWXklOXV0Iwo7lQ1hrZyPFcwtjwFP7iEKSHSSJw509kh8kj6pr%2BH1jR7km9vcvqN9657vffefkv%2BfKxge1X%2B7RdjYUPIESN7gTvRkB%2FRMYtEkaVkdHApmdBPpnKmz0n1xSWFOyVIuLrinZwpoCRe6kyiVZoHX088F%2BUX4%2BWKS4iBTP0IWxGtZgOdMaV4KTayqHQF%2FVihBwTbgDXTCmKoOBJeNhwJMzEVjtjIFLuU38fPR7hqNG1JS7g%2FqRCuy3vmQ3W9Vu8qbVbP%2BSzazGRJH83MzP90Ck2m31mMjP8TiLn5uwD2Ugr2PFvPQjB5BnSJvQxGQZZEB%2BLopqzGzDbMmbkAPkZVJjeO5FzOSBKCgJze2ZS4Gemc9twrwY6u9H61iUQTcRvtdT9RW3tRxAWwFs2tcuJRnI6xjmBdWjbgFNRHMHiF1uHYBfUR%2Fut5Ug2jXAaT96%2B9RH%2FFToRwIzGbKmVJ1AZQnoabSB1yyIg7ByAridHApPMjyw0OiV6RjSbCuzwLAvFizBliWJua1tsuAgvNPbmljYbpt8lkWam7b3XZiOiKJskMOtmfScnsbPW208knwjuXrXK4Q1iKIgNyYXXDVT9C2Ye%2F78GQ5BEEXfFdde2RwauOysdJNL5AzCy84ard%2FnGAVN8alecnFdgu5Gbd5DJTL%2BhHZK0vApVy3OfU8XTSJg1TlssivsPYUlIqvn66PzrVTymCc4wgF6SDNR0pDf%2B9Gp%2BVnsUH5WtpHYsuhOaey8zdwLN47V8MTbm78g687%2BP3cx6tcAeNpjYGRgYGBk8s0%2FzBIfz2%2FzlUGeZQNQhOFCWfF0GP0%2F8P8c1jusIkAuBwMTSBQAYwQM6HjaY2BkYGAV%2Bd8KJgP%2FXWG9wwAUQQGLAYqPBl942n1TvUoDQRCe1VM8kWARjNrZGIurBAsRBIuA2vkAFsJiKTYW4guIjT5ARMgTxCLoA1hcb5OgDyGHrY7f7M65e8fpLF%2B%2B2W%2FnZ2eTmGfaIJi5I0qGDlZZcD51QzTTJirZPAI9JIwVA%2BwT8L5nOdMaV0AuMJ%2BicRHq8of6LSD18fzq8ds7xjpwBnQiSI9V5QVl6NwPvgM15NXn%2FAtWZyj3W0HjEXitOc%2FdIdbetPdFTZ%2BP6t%2BX7xU0%2Fk6GJtOe1%2FB3arN0%2Fpmz1J4UZc%2BD6ExwjD7vioeGd5HvhvU%2BR%2BDZcGZ6YBPNfAi0G97iBPwFXqph2cW8%2BD7kjMfwtinHb6kLb6Wygk3cZytSEoptGrlScdHtLPeri1JKueACMZfU1ViJG1Sq5E43dIt7SZZFl1zuRhb%2FGOs44xFVDbrJzB5tYs35OmaXTrEmkv0DajnMWQB42mNgYNCCwk0MLxheMPrhgUuY2JiUmOqY2pjWMD1hdmPOY%2B5hPsLCwWLEksSyiOUOawzrLrYiti%2FsCuxJ7Kc45DiSOPZxmnG2cG7jvMelweXDNYXrEbcBdxf3KR4OngheLd443g18fHwZfFv4NfiX8T8TEBIIEZggsEpQS7BMcJsQl5CFUI3QAWEp4RLhCyJaIldEbURXiJ4RYxEzE0sQ2yD2TzxIfJkEk4SeRJbENIkNEg8k%2FklqSGZITpE8InlL8p2UmVSG1A6pb9Jx0ltkjGSmyDySlZF1kc2RnSK7R%2FaZnJ5cmdwB%2BST5SwpuCvsUjRTLFHcoOShNU9qhzKespGyhXKV8SPmBCpOKgUqcyjSVR6omqgmqe9RE1OrUnqkHqO9R%2F6FholGgsUZzgeYZLTUtL60WbS7tKh0OnQydXTpvdGV0O3S%2F6Gnopekt0ruhz6fvpl%2Bnv0n%2Fh4GdQYvBJUMhwwTDdYYvjFSM4oxmGd0zVjK2M84w3mYiYZJgssLkkqmO6TzTF2Z2ZjVmd8ylzP3MJ5lfsRCwcLJoszhhyWXpZdlhecZKxirHapbVPesF1ndsJGwCbBbZ%2FLA1sn1jZ2XXY3fFXsM%2Bz36V%2FS8HD4cGh2OOTI51ThJOK5zeOUs4OzmXOS9wPuUi4JLgss7lm2uU6zY3NrcSty1u39zN3Mvct7l%2F8xDzMPLw88jyaPM44ynkaeEZ59niucqLyUvPKwgAn3OqOQAAAQAAARcApwARAAAAAAACAAAAAQABAAAAQAAuAAAAAHjarZK9TgJBEMf%2Fd6CRaAyRhMLqCgsbL4ciglTGRPEjSiSKlnLycXJ86CEniU%2FhM9jYWPgIFkYfwd6nsDD%2Bd1mBIIUx3mZnfzs3MzszuwDCeIYG8UUwQxmAFgxxPeeuyxrmcaNYxzTuFAewi0fFQSTxqXgM11pC8TgS2oPiCUS1d8Uh8ofiSczpYcVT5LjiCPlY8Qui%2BncOr7D02y6%2FBTCrP%2Fm%2Bb5bdTrPi2I26Z9qNGtbRQBMdXMJBGRW0YOCecxEWYoiTCvxrYBunqHPdoX2bLOyrMKlZg8thDETw5K7Itci1TXlGy0124QRZZLDFU%2FexhxztMozlosTpMH6ZPge0L%2BOKGnFKjJ4WRwppHPL0PP3SI2P9jLQwFOu3GRhDfkeyDo%2F%2FG7IHgzllZQxLdquvrdCyBVvat3seJlYo06gxapUxhU2JWnFygR03sSxnEkvcpf5Y5eibGq315TDp7fKWm8zbUVl71Aqq%2FZtNnlkWmLnQtno9ycvXYbA6W2pF3aKfCayyC0Ja7Fr%2FPW70%2FHO4YM0OKxFvzf0C1MyPjwAAeNpt1VWUU2cYRuHsgxenQt1d8%2F3JOUnqAyR1d%2FcCLQVKO22pu7tQd3d3d3d3d3cXmGzumrWy3pWLs%2FNdPDMpZaWu1783l1Lpf14MnfzO6FbqVupfGkD30iR60JNe9KYP09CXfvRnAAMZxGCGMG3pW6ZjemZgKDMyEzMzC7MyG7MzB3MyF3MzD%2FMyH%2FOzAAuyEAuzCIuyGIuzBGWCRIUqOQU16jRYkqVYmmVYluVYng6GMZwRNGmxAiuyEiuzCquyGquzBmuyFmuzDuuyHuuzARuyERuzCZuyGZuzBVuyFVuzDduyHdszklGMZgd2ZAw7MZZxjGdnJrALu9LJbuzOHkxkT%2FZib%2FZhX%2FZjfw7gQA7iYA7hUA7jcI7gSI7iaI7hWI7jeE7gRE7iZE5hEqdyGqdzBmdyFmdzDudyHudzARdyERdzCZdyGZdzBVdyFVdzDddyHddzAzdyEzdzC7dyG7dzB3dyF3dzD%2FdyH%2FfzAA%2FyEA%2FzCI%2FyGI%2FzBE%2FyFE%2FzDM%2FyHM%2FzAi%2FyEi%2FzCq%2FyGq%2FzBm%2FyFm%2FzDu%2FyHu%2FzAR%2FyER%2FzCZ%2FyGZ%2FzBV%2FyFV%2FzDd%2FyHd%2FzAz%2FyEz%2FzC7%2FyG7%2FzB3%2FyF3%2FzD%2F9mpYwsy7pl3bMeWc%2BsV9Y765NNk%2FXN%2BmX9swHZwGxQNjgb0nPkmInjR0V7Uq%2FOsaPL5Y7ylE3l8tQNN7kVt%2BrmbuHW3LrbcDvam1rtzVvdm50TxrU%2FDBvRtZUY1rV5a3jXFn550Wo%2FXDNWK3dFmh7X9LimxzU9qulRTY9qelTTo5rlKLt2wk7YiaprL%2ByFvbAX9pK9ZC%2FZS%2FaSvWQv2Uv2kr1kr2KvYq9ir2KvYq9ir2KvYq9ir2Kvaq9qr2qvaq9qr2qvaq9qr2qvai%2B3l9vL7eX2cnu5vdxebi%2B3l9sr7BV2CjuFncJOYaewU9gp7NTs1LyrZq9mr2avZq9mr2avZq9mr26vbq9ur26vbq9ur26vbq9ur26vYa9hr2GvYa9hr2GvYa%2FR7oXuQ%2Feh%2B2j%2FUU7e3C3cqc%2FV3fYdof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D92H7kP3ofvQfeg%2BdB%2B6D92H7kP3ofvQfRT29B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6j6nuG3Ya7U5q%2F0hN3nCTW3Grbu4Wrs%2FrP%2Bk%2F6T%2FpP%2Bk%2F6T%2FpP%2Bk%2B6T7pPek86TzpPOk86TzpOuk66TrpOuk66TrpOlWmPu%2F36zrpOuk66TrpOuk66TrpOvl%2FPek76TvpO%2Bk76TvpO%2Bk76TvpO%2Bk76TvpO7V9t%2BqtVs%2FOaOURU6bo6PgPt6rZbwAAAAABVFDDFwAA%29%20format%28%27woff%27%29%2Curl%28data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAAPAIAAAwBwRkZUTW0ql9wAAAD8AAAAHEdERUYBRAAEAAABGAAAACBPUy8yZ7lriQAAATgAAABgY21hcNqt44EAAAGYAAAGcmN2dCAAKAL4AAAIDAAAAARnYXNw%2F%2F8AAwAACBAAAAAIZ2x5Zn1dwm8AAAgYAACUpGhlYWQFTS%2FYAACcvAAAADZoaGVhCkQEEQAAnPQAAAAkaG10eNLHIGAAAJ0YAAADdGxvY2Fv%2B5XOAACgjAAAAjBtYXhwAWoA2AAAorwAAAAgbmFtZbMsoJsAAKLcAAADonBvc3S6o%2BU1AACmgAAACtF3ZWJmwxhUUAAAsVQAAAAGAAAAAQAAAADMPaLPAAAAANB2gXUAAAAA0HZzlwABAAAADgAAABgAAAAAAAIAAQABARYAAQAEAAAAAgAAAAMEiwGQAAUABAMMAtAAAABaAwwC0AAAAaQAMgK4AAAAAAUAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAFVLV04AQAAg%2F%2F8DwP8QAAAFFAB7AAAAAQAAAAAAAAAAAAAAIAABAAAABQAAAAMAAAAsAAAACgAAAdwAAQAAAAAEaAADAAEAAAAsAAMACgAAAdwABAGwAAAAaABAAAUAKAAgACsAoAClIAogLyBfIKwgvSISIxsl%2FCYBJvonCScP4APgCeAZ4CngOeBJ4FngYOBp4HngieCX4QnhGeEp4TnhRuFJ4VnhaeF54YnhleGZ4gbiCeIW4hniIeIn4jniSeJZ4mD4%2F%2F%2F%2FAAAAIAAqAKAApSAAIC8gXyCsIL0iEiMbJfwmASb6JwknD%2BAB4AXgEOAg4DDgQOBQ4GDgYuBw4IDgkOEB4RDhIOEw4UDhSOFQ4WDhcOGA4ZDhl%2BIA4gniEOIY4iHiI%2BIw4kDiUOJg%2BP%2F%2F%2F%2F%2Fj%2F9r%2FZv9i4Ajf5N%2B132nfWd4F3P3aHdoZ2SHZE9kOIB0gHCAWIBAgCiAEH%2F4f%2BB%2F3H%2FEf6x%2FlH3wfdh9wH2ofZB9jH10fVx9RH0sfRR9EHt4e3B7WHtUezh7NHsUevx65HrMIFQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAACjAAAAAAAAAA1AAAAIAAAACAAAAADAAAAKgAAACsAAAAEAAAAoAAAAKAAAAAGAAAApQAAAKUAAAAHAAAgAAAAIAoAAAAIAAAgLwAAIC8AAAATAAAgXwAAIF8AAAAUAAAgrAAAIKwAAAAVAAAgvQAAIL0AAAAWAAAiEgAAIhIAAAAXAAAjGwAAIxsAAAAYAAAl%2FAAAJfwAAAAZAAAmAQAAJgEAAAAaAAAm%2BgAAJvoAAAAbAAAnCQAAJwkAAAAcAAAnDwAAJw8AAAAdAADgAQAA4AMAAAAeAADgBQAA4AkAAAAhAADgEAAA4BkAAAAmAADgIAAA4CkAAAAwAADgMAAA4DkAAAA6AADgQAAA4EkAAABEAADgUAAA4FkAAABOAADgYAAA4GAAAABYAADgYgAA4GkAAABZAADgcAAA4HkAAABhAADggAAA4IkAAABrAADgkAAA4JcAAAB1AADhAQAA4QkAAAB9AADhEAAA4RkAAACGAADhIAAA4SkAAACQAADhMAAA4TkAAACaAADhQAAA4UYAAACkAADhSAAA4UkAAACrAADhUAAA4VkAAACtAADhYAAA4WkAAAC3AADhcAAA4XkAAADBAADhgAAA4YkAAADLAADhkAAA4ZUAAADVAADhlwAA4ZkAAADbAADiAAAA4gYAAADeAADiCQAA4gkAAADlAADiEAAA4hYAAADmAADiGAAA4hkAAADtAADiIQAA4iEAAADvAADiIwAA4icAAADwAADiMAAA4jkAAAD1AADiQAAA4kkAAAD%2FAADiUAAA4lkAAAEJAADiYAAA4mAAAAETAAD4%2FwAA%2BP8AAAEUAAH1EQAB9REAAAEVAAH2qgAB9qoAAAEWAAYCCgAAAAABAAABAAAAAAAAAAAAAAAAAAAAAQACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAEAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAL4AAAAAf%2F%2FAAIAAgAoAAABaAMgAAMABwAusQEALzyyBwQA7TKxBgXcPLIDAgDtMgCxAwAvPLIFBADtMrIHBgH8PLIBAgDtMjMRIRElMxEjKAFA%2Fujw8AMg%2FOAoAtAAAQBkAGQETARMAFsAAAEyFh8BHgEdATc%2BAR8BFgYPATMyFhcWFRQGDwEOASsBFx4BDwEGJi8BFRQGBwYjIiYvAS4BPQEHDgEvASY2PwEjIiYnJjU0Nj8BPgE7AScuAT8BNhYfATU0Njc2AlgPJgsLCg%2BeBxYIagcCB57gChECBgMCAQIRCuCeBwIHaggWB54PCikiDyYLCwoPngcWCGoHAgee4AoRAgYDAgECEQrgngcCB2oIFgeeDwopBEwDAgECEQrgngcCB2oIFgeeDwopIg8mCwsKD54HFghqBwIHnuAKEQIGAwIBAhEK4J4HAgdqCBYHng8KKSIPJgsLCg%2BeBxYIagcCB57gChECBgAAAAABAAAAAARMBEwAIwAAATMyFhURITIWHQEUBiMhERQGKwEiJjURISImPQE0NjMhETQ2AcLIFR0BXhUdHRX%2Boh0VyBUd%2FqIVHR0VAV4dBEwdFf6iHRXIFR3%2BohUdHRUBXh0VyBUdAV4VHQAAAAABAHAAAARABEwARQAAATMyFgcBBgchMhYPAQ4BKwEVITIWDwEOASsBFRQGKwEiJj0BISImPwE%2BATsBNSEiJj8BPgE7ASYnASY2OwEyHwEWMj8BNgM5%2BgoFCP6UBgUBDAoGBngGGAp9ARMKBgZ4BhgKfQ8LlAsP%2Fu0KBgZ4BhgKff7tCgYGeAYYCnYFBv6UCAUK%2BhkSpAgUCKQSBEwKCP6UBgwMCKAIDGQMCKAIDK4LDw8LrgwIoAgMZAwIoAgMDAYBbAgKEqQICKQSAAABAGQABQSMBK4AOwAAATIXFhcjNC4DIyIOAwchByEGFSEHIR4EMzI%2BAzUzBgcGIyInLgEnIzczNjcjNzM%2BATc2AujycDwGtSM0QDkXEys4MjAPAXtk%2FtQGAZZk%2FtQJMDlCNBUWOUA0I64eYmunznYkQgzZZHABBdpkhhQ%2BH3UErr1oaS1LMCEPCx4uTzJkMjJkSnRCKw8PIjBKK6trdZ4wqndkLzVkV4UljQAAAgB7AAAETASwAD4ARwAAASEyHgUVHAEVFA4FKwEHITIWDwEOASsBFRQGKwEiJj0BISImPwE%2BATsBNSEiJj8BPgE7ARE0NhcRMzI2NTQmIwGsAV5DakIwFgwBAQwWMEJqQ7ICASAKBgZ4BhgKigsKlQoP%2FvUKBgZ4BhgKdf71CgYGeAYYCnUPtstALS1ABLAaJD8yTyokCwsLJCpQMkAlGmQMCKAIDK8LDg8KrwwIoAgMZAwIoAgMAdsKD8j%2B1EJWVEAAAAEAyAGQBEwCvAAPAAATITIWHQEUBiMhIiY9ATQ2%2BgMgFR0dFfzgFR0dArwdFcgVHR0VyBUdAAAAAgDIAAAD6ASwACUAQQAAARUUBisBFRQGBx4BHQEzMhYdASE1NDY7ATU0NjcuAT0BIyImPQEXFRQWFx4BFAYHDgEdASE1NCYnLgE0Njc%2BAT0BA%2BgdFTJjUVFjMhUd%2FOAdFTJjUVFjMhUdyEE3HCAgHDdBAZBBNxwgIBw3QQSwlhUdZFuVIyOVW5YdFZaWFR2WW5UjI5VbZB0VlshkPGMYDDI8MgwYYzyWljxjGAwyPDIMGGM8ZAAAAAEAAAAAAAAAAAAAAAAxAAAB%2F%2FIBLATCBEEAFgAAATIWFzYzMhYVFAYjISImNTQ2NyY1NDYB9261LCwueKqqeP0ST3FVQgLYBEF3YQ6teHmtclBFaw4MGZnXAAAAAgAAAGQEsASvABoAHgAAAB4BDwEBMzIWHQEhNTQ2OwEBJyY%2BARYfATc2AyEnAwL2IAkKiAHTHhQe%2B1AeFB4B1IcKCSAkCm9wCXoBebbDBLMTIxC7%2FRYlFSoqFSUC6rcQJBQJEJSWEPwecAIWAAAAAAQAAABkBLAETAALABcAIwA3AAATITIWBwEGIicBJjYXARYUBwEGJjURNDYJATYWFREUBicBJjQHARYGIyEiJjcBNjIfARYyPwE2MhkEfgoFCP3MCBQI%2FcwIBQMBCAgI%2FvgICgoDjAEICAoKCP74CFwBbAgFCvuCCgUIAWwIFAikCBQIpAgUBEwKCP3JCAgCNwgK2v74CBQI%2FvgIBQoCJgoF%2FvABCAgFCv3aCgUIAQgIFID%2BlAgKCggBbAgIpAgIpAgAAAAD%2F%2FD%2F8AS6BLoACQANABAAAAAyHwEWFA8BJzcTAScJAQUTA%2BAmDpkNDWPWXyL9mdYCZv4f%2FrNuBLoNmQ4mDlzWYP50%2FZrWAmb8anABTwAAAAEAAAAABLAEsAAPAAABETMyFh0BITU0NjsBEQEhArz6FR384B0V%2Bv4MBLACiv3aHRUyMhUdAiYCJgAAAAEADgAIBEwEnAAfAAABJTYWFREUBgcGLgE2NzYXEQURFAYHBi4BNjc2FxE0NgFwAoUnMFNGT4gkV09IQv2oWEFPiCRXT0hCHQP5ow8eIvzBN1EXGSltchkYEAIJm%2F2iKmAVGilucRoYEQJ%2FJioAAAACAAn%2F%2BAS7BKcAHQApAAAAMh4CFQcXFAcBFgYPAQYiJwEGIycHIi4CND4BBCIOARQeATI%2BATQmAZDItoNOAQFOARMXARY7GikT%2Fu13jgUCZLaDTk6DAXKwlFZWlLCUVlYEp06DtmQCBY15%2Fu4aJRg6FBQBEk0BAU6Dtsi2g1tWlLCUVlaUsJQAAQBkAFgErwREABkAAAE%2BAh4CFRQOAwcuBDU0PgIeAQKJMHt4dVg2Q3mEqD4%2Bp4V4Qzhadnh5A7VESAUtU3ZAOXmAf7JVVbJ%2FgHk5QHZTLQVIAAAAAf%2FTAF4EewSUABgAAAETNjIXEyEyFgcFExYGJyUFBiY3EyUmNjMBl4MHFQeBAaUVBhH%2BqoIHDxH%2Bqf6qEQ8Hgv6lEQYUAyABYRMT%2Fp8RDPn%2BbxQLDPb3DAsUAZD7DBEAAv%2FTAF4EewSUABgAIgAAARM2MhcTITIWBwUTFgYnJQUGJjcTJSY2MwUjFwc3Fyc3IycBl4MHFQeBAaUVBhH%2BqoIHDxH%2Bqf6qEQ8Hgv6lEQYUAfPwxUrBw0rA6k4DIAFhExP%2BnxEM%2Bf5vFAsM9vcMCxQBkPsMEWSO4ouM5YzTAAABAAAAAASwBLAAJgAAATIWHQEUBiMVFBYXBR4BHQEUBiMhIiY9ATQ2NyU%2BAT0BIiY9ATQ2Alh8sD4mDAkBZgkMDwr7ggoPDAkBZgkMJj6wBLCwfPouaEsKFwbmBRcKXQoPDwpdChcF5gYXCktoLvp8sAAAAA0AAAAABLAETAAPABMAIwAnACsALwAzADcARwBLAE8AUwBXAAATITIWFREUBiMhIiY1ETQ2FxUzNSkBIgYVERQWMyEyNjURNCYzFTM1BRUzNSEVMzUFFTM1IRUzNQchIgYVERQWMyEyNjURNCYFFTM1IRUzNQUVMzUhFTM1GQR%2BCg8PCvuCCg8PVWQCo%2F3aCg8PCgImCg8Pc2T8GGQDIGT8GGQDIGTh%2FdoKDw8KAiYKDw%2F872QDIGT8GGQDIGQETA8K%2B%2BYKDw8KBBoKD2RkZA8K%2FqIKDw8KAV4KD2RkyGRkZGTIZGRkZGQPCv6iCg8PCgFeCg9kZGRkZMhkZGRkAAAEAAAAAARMBEwADwAfAC8APwAAEyEyFhURFAYjISImNRE0NikBMhYVERQGIyEiJjURNDYBITIWFREUBiMhIiY1ETQ2KQEyFhURFAYjISImNRE0NjIBkBUdHRX%2BcBUdHQJtAZAVHR0V%2FnAVHR39vQGQFR0dFf5wFR0dAm0BkBUdHRX%2BcBUdHQRMHRX%2BcBUdHRUBkBUdHRX%2BcBUdHRUBkBUd%2FagdFf5wFR0dFQGQFR0dFf5wFR0dFQGQFR0AAAkAAAAABEwETAAPAB8ALwA%2FAE8AXwBvAH8AjwAAEzMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2ATMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2ATMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2MsgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR389cgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR389cgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR0ETB0VyBUdHRXIFR0dFcgVHR0VyBUdHRXIFR0dFcgVHf5wHRXIFR0dFcgVHR0VyBUdHRXIFR0dFcgVHR0VyBUd%2FnAdFcgVHR0VyBUdHRXIFR0dFcgVHR0VyBUdHRXIFR0ABgAAAAAEsARMAA8AHwAvAD8ATwBfAAATMzIWHQEUBisBIiY9ATQ2KQEyFh0BFAYjISImPQE0NgEzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2ATMyFh0BFAYrASImPQE0NikBMhYdARQGIyEiJj0BNDYyyBUdHRXIFR0dAaUCvBUdHRX9RBUdHf6FyBUdHRXIFR0dAaUCvBUdHRX9RBUdHf6FyBUdHRXIFR0dAaUCvBUdHRX9RBUdHQRMHRXIFR0dFcgVHR0VyBUdHRXIFR3%2BcB0VyBUdHRXIFR0dFcgVHR0VyBUd%2FnAdFcgVHR0VyBUdHRXIFR0dFcgVHQAAAAABACYALAToBCAAFwAACQE2Mh8BFhQHAQYiJwEmND8BNjIfARYyAdECOwgUB7EICPzxBxUH%2FoAICLEHFAirBxYB3QI7CAixBxQI%2FPAICAGACBQHsQgIqwcAAQBuAG4EQgRCACMAAAEXFhQHCQEWFA8BBiInCQEGIi8BJjQ3CQEmND8BNjIXCQE2MgOIsggI%2FvUBCwgIsggVB%2F70%2FvQHFQiyCAgBC%2F71CAiyCBUHAQwBDAcVBDuzCBUH%2FvT%2B9AcVCLIICAEL%2FvUICLIIFQcBDAEMBxUIsggI%2FvUBDAcAAwAX%2F%2BsExQSZABkAJQBJAAAAMh4CFRQHARYUDwEGIicBBiMiLgI0PgEEIg4BFB4BMj4BNCYFMzIWHQEzMhYdARQGKwEVFAYrASImPQEjIiY9ATQ2OwE1NDYBmcSzgk1OASwICG0HFQj%2B1HeOYrSBTU2BAW%2BzmFhYmLOZWFj%2BvJYKD0sKDw8KSw8KlgoPSwoPDwpLDwSZTYKzYo15%2FtUIFQhsCAgBK01NgbTEs4JNWJmzmFhYmLOZIw8KSw8KlgoPSwoPDwpLDwqWCg9LCg8AAAMAF%2F%2FrBMUEmQAZACUANQAAADIeAhUUBwEWFA8BBiInAQYjIi4CND4BBCIOARQeATI%2BATQmBSEyFh0BFAYjISImPQE0NgGZxLOCTU4BLAgIbQcVCP7Ud45itIFNTYEBb7OYWFiYs5lYWP5YAV4KDw8K%2FqIKDw8EmU2Cs2KNef7VCBUIbAgIAStNTYG0xLOCTViZs5hYWJizmYcPCpYKDw8KlgoPAAAAAAIAFwAXBJkEsAAPAC0AAAEzMhYVERQGKwEiJjURNDYFNRYSFRQOAiIuAjU0EjcVDgEVFB4BMj4BNTQmAiZkFR0dFWQVHR0BD6fSW5vW6tabW9KnZ3xyxejFcnwEsB0V%2FnAVHR0VAZAVHeGmPv7ZuHXWm1tbm9Z1uAEnPqY3yHh0xXJyxXR4yAAEAGQAAASwBLAADwAfAC8APwAAATMyFhURFAYrASImNRE0NgEzMhYVERQGKwEiJjURNDYBMzIWFREUBisBIiY1ETQ2BTMyFh0BFAYrASImPQE0NgQBlgoPDwqWCg8P%2Ft6WCg8PCpYKDw%2F%2B3pYKDw8KlgoPD%2F7elgoPDwqWCg8PBLAPCvuCCg8PCgR%2BCg%2F%2BcA8K%2FRIKDw8KAu4KD%2F7UDwr%2BPgoPDwoBwgoPyA8K%2BgoPDwr6Cg8AAAAAAgAaABsElgSWAEcATwAAATIfAhYfATcWFwcXFh8CFhUUDwIGDwEXBgcnBwYPAgYjIi8CJi8BByYnNycmLwImNTQ%2FAjY%2FASc2Nxc3Nj8CNhIiBhQWMjY0AlghKSYFMS0Fhj0rUAMZDgGYBQWYAQ8YA1AwOIYFLDIFJisfISkmBTEtBYY8LFADGQ0ClwYGlwINGQNQLzqFBS0xBSYreLJ%2BfrJ%2BBJYFmAEOGQJQMDmGBSwxBiYrHiIoJgYxLAWGPSxRAxkOApcFBZcCDhkDUTA5hgUtMAYmKiAhKCYGMC0Fhj0sUAIZDgGYBf6ZfrF%2BfrEABwBkAAAEsAUUABMAFwAhACUAKQAtADEAAAEhMhYdASEyFh0BITU0NjMhNTQ2FxUhNQERFAYjISImNREXETMRMxEzETMRMxEzETMRAfQBLCk7ARMKD%2Fu0DwoBEzspASwBLDsp%2FUQpO2RkZGRkZGRkBRQ7KWQPCktLCg9kKTtkZGT%2B1PzgKTs7KQMgZP1EArz9RAK8%2FUQCvP1EArwAAQAMAAAFCATRAB8AABMBNjIXARYGKwERFAYrASImNREhERQGKwEiJjURIyImEgJsCBUHAmAIBQqvDwr6Cg%2F%2B1A8K%2BgoPrwoFAmoCYAcH%2FaAICv3BCg8PCgF3%2FokKDw8KAj8KAAIAZAAAA%2BgEsAARABcAAAERFBYzIREUBiMhIiY1ETQ2MwEjIiY9AQJYOykBLB0V%2FOAVHR0VA1L6FR0EsP5wKTv9dhUdHRUETBUd%2FnAdFfoAAwAXABcEmQSZAA8AGwAwAAAAMh4CFA4CIi4CND4BBCIOARQeATI%2BATQmBTMyFhURMzIWHQEUBisBIiY1ETQ2AePq1ptbW5vW6tabW1ubAb%2FoxXJyxejFcnL%2BfDIKD68KDw8K%2BgoPDwSZW5vW6tabW1ub1urWmztyxejFcnLF6MUNDwr%2B7Q8KMgoPDwoBXgoPAAAAAAL%2FnAAABRQEsAALAA8AACkBAyMDIQEzAzMDMwEDMwMFFP3mKfIp%2FeYBr9EVohTQ%2Fp4b4BsBkP5wBLD%2B1AEs%2FnD%2B1AEsAAAAAAIAZAAABLAEsAAVAC8AAAEzMhYVETMyFgcBBiInASY2OwERNDYBMzIWFREUBiMhIiY1ETQ2OwEyFh0BITU0NgImyBUdvxQLDf65DSYN%2FrkNCxS%2FHQJUMgoPDwr75goPDwoyCg8DhA8EsB0V%2Fj4XEP5wEBABkBAXAcIVHfzgDwr%2BogoPDwoBXgoPDwqvrwoPAAMAFwAXBJkEmQAPABsAMQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgUzMhYVETMyFgcDBiInAyY2OwERNDYB4%2BrWm1tbm9bq1ptbW5sBv%2BjFcnLF6MVycv58lgoPiRUKDd8NJg3fDQoViQ8EmVub1urWm1tbm9bq1ps7csXoxXJyxejFDQ8K%2Fu0XEP7tEBABExAXARMKDwAAAAMAFwAXBJkEmQAPABsAMQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JiUTFgYrAREUBisBIiY1ESMiJjcTNjIB4%2BrWm1tbm9bq1ptbW5sBv%2BjFcnLF6MVycv7n3w0KFYkPCpYKD4kVCg3fDSYEmVub1urWm1tbm9bq1ps7csXoxXJyxejFAf7tEBf%2B7QoPDwoBExcQARMQAAAAAAIAAAAABLAEsAAZADkAABMhMhYXExYVERQGBwYjISImJyY1EzQ3Ez4BBSEiBgcDBhY7ATIWHwEeATsBMjY%2FAT4BOwEyNicDLgHhAu4KEwO6BwgFDBn7tAweAgYBB7kDEwKX%2FdQKEgJXAgwKlgoTAiYCEwr6ChMCJgITCpYKDAJXAhIEsA4K%2FXQYGf5XDB4CBggEDRkBqRkYAowKDsgOC%2F4%2BCw4OCpgKDg4KmAoODgsBwgsOAAMAFwAXBJkEmQAPABsAJwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgUXFhQPAQYmNRE0NgHj6tabW1ub1urWm1tbmwG%2F6MVycsXoxXJy%2Fov9ERH9EBgYBJlbm9bq1ptbW5vW6tabO3LF6MVycsXoxV2%2BDCQMvgwLFQGQFQsAAQAXABcEmQSwACgAAAE3NhYVERQGIyEiJj8BJiMiDgEUHgEyPgE1MxQOAiIuAjQ%2BAjMyA7OHBwsPCv6WCwQHhW2BdMVycsXoxXKWW5vW6tabW1ub1nXABCSHBwQL%2FpYKDwsHhUxyxejFcnLFdHXWm1tbm9bq1ptbAAAAAAIAFwABBJkEsAAaADUAAAE3NhYVERQGIyEiJj8BJiMiDgEVIzQ%2BAjMyEzMUDgIjIicHBiY1ETQ2MyEyFg8BFjMyPgEDs4cHCw8L%2FpcLBAeGboF0xXKWW5vWdcDrllub1nXAnIYHCw8LAWgKBQiFboJ0xXIEJIcHBAv%2BlwsPCweGS3LFdHXWm1v9v3XWm1t2hggFCgFoCw8LB4VMcsUAAAAKAGQAAASwBLAADwAfAC8APwBPAF8AbwB%2FAI8AnwAAEyEyFhURFAYjISImNRE0NgUhIgYVERQWMyEyNjURNCYFMzIWHQEUBisBIiY9ATQ2MyEyFh0BFAYjISImPQE0NgczMhYdARQGKwEiJj0BNDYzITIWHQEUBiMhIiY9ATQ2BzMyFh0BFAYrASImPQE0NjMhMhYdARQGIyEiJj0BNDYHMzIWHQEUBisBIiY9ATQ2MyEyFh0BFAYjISImPQE0Nn0EGgoPDwr75goPDwPA%2FK4KDw8KA1IKDw%2F9CDIKDw8KMgoPD9IBwgoPDwr%2BPgoPD74yCg8PCjIKDw%2FSAcIKDw8K%2Fj4KDw%2B%2BMgoPDwoyCg8P0gHCCg8PCv4%2BCg8PvjIKDw8KMgoPD9IBwgoPDwr%2BPgoPDwSwDwr7ggoPDwoEfgoPyA8K%2FK4KDw8KA1IKD2QPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKDwAAAAACAAAAAARMBLAAGQAjAAABNTQmIyEiBh0BIyIGFREUFjMhMjY1ETQmIyE1NDY7ATIWHQEDhHVT%2FtRSdmQpOzspA4QpOzsp%2FageFMgUHgMgyFN1dlLIOyn9qCk7OykCWCk7lhUdHRWWAAIAZAAABEwETAAJADcAABMzMhYVESMRNDYFMhcWFREUBw4DIyIuAScuAiMiBwYjIicmNRE%2BATc2HgMXHgIzMjc2fTIKD2QPA8AEBRADIUNAMRwaPyonKSxHHlVLBwgGBQ4WeDsXKC4TOQQpLUUdZ1AHBEwPCvvNBDMKDzACBhH%2BWwYGO1AkDQ0ODg8PDzkFAwcPAbY3VwMCAwsGFAEODg5XCAAAAwAAAAAEsASXACEAMQBBAAAAMh4CFREUBisBIiY1ETQuASAOARURFAYrASImNRE0PgEDMzIWFREUBisBIiY1ETQ2ITMyFhURFAYrASImNRE0NgHk6N6jYw8KMgoPjeT%2B%2BuSNDwoyCg9joyqgCAwMCKAIDAwCYKAIDAwIoAgMDASXY6PedP7UCg8PCgEsf9FyctF%2F%2FtQKDw8KASx03qP9wAwI%2FjQIDAwIAcwIDAwI%2FjQIDAwIAcwIDAAAAAACAAAA0wRHA90AFQA5AAABJTYWFREUBiclJisBIiY1ETQ2OwEyBTc2Mh8BFhQPARcWFA8BBiIvAQcGIi8BJjQ%2FAScmND8BNjIXAUEBAgkMDAn%2B%2FhUZ%2BgoPDwr6GQJYeAcUByIHB3h4BwciBxQHeHgHFAciBwd3dwcHIgcUBwMurAYHCv0SCgcGrA4PCgFeCg%2BEeAcHIgcUB3h4BxQHIgcHd3cHByIHFAd4eAcUByIICAAAAAACAAAA0wNyA90AFQAvAAABJTYWFREUBiclJisBIiY1ETQ2OwEyJTMWFxYVFAcGDwEiLwEuATc2NTQnJjY%2FATYBQQECCQwMCf7%2BFRn6Cg8PCvoZAdIECgZgWgYLAwkHHQcDBkhOBgMIHQcDLqwGBwr9EgoHBqwODwoBXgoPZAEJgaGafwkBAQYXBxMIZ36EaggUBxYFAAAAAAMAAADEBGID7AAbADEASwAAATMWFxYVFAYHBgcjIi8BLgE3NjU0JicmNj8BNgUlNhYVERQGJyUmKwEiJjURNDY7ATIlMxYXFhUUBwYPASIvAS4BNzY1NCcmNj8BNgPHAwsGh0RABwoDCQcqCAIGbzs3BgIJKgf9ggECCQwMCf7%2BFRn6Cg8PCvoZAdIECgZgWgYLAwkHHQcDBkhOBgMIHQcD7AEJs9lpy1QJAQYiBhQIlrJarEcJFAYhBb6sBgcK%2FRIKBwasDg8KAV4KD2QBCYGhmn8JAQEGFwcTCGd%2BhGoIFQYWBQAAAAANAAAAAASwBLAACQAVABkAHQAhACUALQA7AD8AQwBHAEsATwAAATMVIxUhFSMRIQEjFTMVIREjESM1IQURIREhESERBSM1MwUjNTMBMxEhETM1MwEzFSMVIzUjNTM1IzUhBREhEQcjNTMFIzUzASM1MwUhNSEB9GRk%2FnBkAfQCvMjI%2FtTIZAJY%2B7QBLAGQASz84GRkArxkZP1EyP4MyGQB9MhkyGRkyAEs%2FUQBLGRkZAOEZGT%2BDGRkAfT%2B1AEsA4RkZGQCWP4MZMgBLAEsyGT%2B1AEs%2FtQBLMhkZGT%2BDP4MAfRk%2FtRkZGRkyGTI%2FtQBLMhkZGT%2B1GRkZAAAAAAJAAAAAASwBLAAAwAHAAsADwATABcAGwAfACMAADcjETMTIxEzASMRMxMjETMBIxEzASE1IRcjNTMXIzUzBSM1M2RkZMhkZAGQyMjIZGQBLMjI%2FOD%2B1AEsyGRkyGRkASzIyMgD6PwYA%2Bj8GAPo%2FBgD6PwYA%2Bj7UGRkW1tbW1sAAAIAAAAKBKYEsAANABUAAAkBFhQHAQYiJwETNDYzBCYiBhQWMjYB9AKqCAj%2BMAgUCP1WAQ8KAUM7Uzs7UzsEsP1WCBQI%2FjAICAKqAdsKD807O1Q7OwAAAAADAAAACgXSBLAADQAZACEAAAkBFhQHAQYiJwETNDYzIQEWFAcBBiIvAQkBBCYiBhQWMjYB9AKqCAj%2BMAgUCP1WAQ8KAwYCqggI%2FjAIFAg4Aaj9RP7TO1M7O1M7BLD9VggUCP4wCAgCqgHbCg%2F9VggUCP4wCAg4AaoCvM07O1Q7OwAAAAABAGQAAASwBLAAJgAAASEyFREUDwEGJjURNCYjISIPAQYWMyEyFhURFAYjISImNRE0PwE2ASwDOUsSQAgKDwr9RBkSQAgFCgK8Cg8PCvyuCg8SixIEsEv8fBkSQAgFCgO2Cg8SQAgKDwr8SgoPDwoDzxkSixIAAAABAMj%2F%2FwRMBLAACgAAEyEyFhURCQERNDb6AyAVHf4%2B%2Fj4dBLAdFfuCAbz%2BQwR%2FFR0AAAAAAwAAAAAEsASwABUARQBVAAABISIGBwMGHwEeATMhMjY%2FATYnAy4BASMiBg8BDgEjISImLwEuASsBIgYVERQWOwEyNj0BNDYzITIWHQEUFjsBMjY1ETQmASEiBg8BBhYzITI2LwEuAQM2%2FkQLEAFOBw45BhcKAcIKFwY%2BDgdTARABVpYKFgROBBYK%2FdoKFgROBBYKlgoPDwqWCg8PCgLuCg8PCpYKDw%2F%2Bsf4MChMCJgILCgJYCgsCJgITBLAPCv7TGBVsCQwMCWwVGAEtCg%2F%2BcA0JnAkNDQmcCQ0PCv12Cg8PCpYKDw8KlgoPDwoCigoP%2FagOCpgKDg4KmAoOAAAAAAQAAABkBLAETAAdACEAKQAxAAABMzIeAh8BMzIWFREUBiMhIiY1ETQ2OwE%2BBAEVMzUEIgYUFjI2NCQyFhQGIiY0AfTIOF00JAcGlik7Oyn8GCk7OymWAgknM10ByGT%2Bz76Hh76H%2Fu9WPDxWPARMKTs7FRQ7Kf2oKTs7KQJYKTsIG0U1K%2F7UZGRGh76Hh74IPFY8PFYAAAAAAgA1AAAEsASvACAAIwAACQEWFx4BHwEVITUyNi8BIQYHBh4CMxUhNTY3PgE%2FAQEDIQMCqQGBFCgSJQkK%2Fl81LBFS%2Fnk6IgsJKjIe%2FpM4HAwaBwcBj6wBVKIEr%2FwaMioTFQECQkJXLd6RWSIuHAxCQhgcDCUNDQPu%2FVoByQAAAAADAGQAAAPwBLAAJwAyADsAAAEeBhUUDgMjITU%2BATURNC4EJzUFMh4CFRQOAgclMzI2NTQuAisBETMyNjU0JisBAvEFEzUwOyodN1htbDD%2BDCk7AQYLFyEaAdc5dWM%2BHy0tEP6Pi05pESpTPnbYUFJ9Xp8CgQEHGB0zOlIuQ3VONxpZBzMoAzsYFBwLEAkHRwEpSXNDM1s6KwkxYUopOzQb%2FK5lUFqBAAABAMgAAANvBLAAGQAAARcOAQcDBhYXFSE1NjcTNjQuBCcmJzUDbQJTQgeECSxK%2Fgy6Dq0DAw8MHxUXDQYEsDkTNSj8uTEoBmFhEFIDQBEaExAJCwYHAwI5AAAAAAL%2FtQAABRQEsAAlAC8AAAEjNC4FKwERFBYfARUhNTI%2BAzURIyIOBRUjESEFIxEzByczESM3BRQyCAsZEyYYGcgyGRn%2BcAQOIhoWyBkYJhMZCwgyA%2Bj7m0tLfX1LS30DhBUgFQ4IAwH8rhYZAQJkZAEFCRUOA1IBAwgOFSAVASzI%2FOCnpwMgpwACACH%2FtQSPBLAAJQAvAAABIzQuBSsBERQWHwEVITUyPgM1ESMiDgUVIxEhEwc1IRUnNxUhNQRMMggLGRMmGBnIMhkZ%2FnAEDiIaFsgZGCYTGQsIMgPoQ6f84KenAyADhBUgFQ4IAwH9dhYZAQJkZAEFCRUOAooBAwgOFSAVASz7gn1LS319S0sABAAAAAAEsARMAA8AHwAvAD8AABMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYyAlgVHR0V%2FagVHR0VA%2BgVHR0V%2FBgVHR0VAyAVHR0V%2FOAVHR0VBEwVHR0V%2B7QVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0ABAAAAAAEsARMAA8AHwAvAD8AABMhMhYdARQGIyEiJj0BNDYDITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NgMhMhYdARQGIyEiJj0BNDb6ArwVHR0V%2FUQVHR2zBEwVHR0V%2B7QVHR3dArwVHR0V%2FUQVHR2zBEwVHR0V%2B7QVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0ABAAAAAAEsARMAA8AHwAvAD8AAAE1NDYzITIWHQEUBiMhIiYBNTQ2MyEyFh0BFAYjISImEzU0NjMhMhYdARQGIyEiJgE1NDYzITIWHQEUBiMhIiYB9B0VAlgVHR0V%2FagVHf5wHRUD6BUdHRX8GBUdyB0VAyAVHR0V%2FOAVHf7UHRUETBUdHRX7tBUdA7ZkFR0dFWQVHR3%2B6WQVHR0VZBUdHf7pZBUdHRVkFR0d%2FulkFR0dFWQVHR0AAAQAAAAABLAETAAPAB8ALwA%2FAAATITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2MgRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dBEwdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdAAgAAAAABLAETAAPAB8ALwA%2FAE8AXwBvAH8AABMzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2ATMyFh0BFAYrASImPQE0NikBMhYdARQGIyEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2KQEyFh0BFAYjISImPQE0NgEzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2MmQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR0ETB0VZBUdHRVkFR0dFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdHRVkFR0dFWQVHf7UHRVkFR0dFWQVHR0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0dFWQVHR0VZBUdAAAG%2F5wAAASwBEwAAwATACMAKgA6AEoAACEjETsCMhYdARQGKwEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2BQc1IzUzNQUhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2AZBkZJZkFR0dFWQVHR0VAfQVHR0V%2FgwVHR3%2B%2BqfIyAHCASwVHR0V%2FtQVHR0VAlgVHR0V%2FagVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR36fUtkS68dFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdAAAABgAAAAAFFARMAA8AEwAjACoAOgBKAAATMzIWHQEUBisBIiY9ATQ2ASMRMwEhMhYdARQGIyEiJj0BNDYFMxUjFSc3BSEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYyZBUdHRVkFR0dA2dkZPyuAfQVHR0V%2FgwVHR0EL8jIp6f75gEsFR0dFf7UFR0dFQJYFR0dFf2oFR0dBEwdFWQVHR0VZBUd%2B7QETP7UHRVkFR0dFWQVHchkS319rx0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0AAAAAAgAAAMgEsAPoAA8AEgAAEyEyFhURFAYjISImNRE0NgkCSwLuHywsH%2F0SHywsBIT%2B1AEsA%2BgsH%2F12HywsHwKKHyz9RAEsASwAAwAAAAAEsARMAA8AFwAfAAATITIWFREUBiMhIiY1ETQ2FxE3BScBExEEMhYUBiImNCwEWBIaGhL7qBIaGkr3ASpKASXs%2FNJwTk5wTgRMGhL8DBIaGhID9BIaZP0ftoOcAT7%2B4AH0dE5vT09vAAAAAAIA2wAFBDYEkQAWAB4AAAEyHgEVFAcOAQ8BLgQnJjU0PgIWIgYUFjI2NAKIdcZzRkWyNjYJIV5YbSk8RHOft7eCgreCBJF4ynVzj23pPz4IIWZomEiEdVijeUjDgriBgbgAAAACABcAFwSZBJkADwAXAAAAMh4CFA4CIi4CND4BAREiDgEUHgEB4%2BrWm1tbm9bq1ptbW5sBS3TFcnLFBJlbm9bq1ptbW5vW6tab%2FG8DVnLF6MVyAAACAHUAAwPfBQ8AGgA1AAABHgYVFA4DBy4DNTQ%2BBQMOAhceBBcWNj8BNiYnLgInJjc2IyYCKhVJT1dOPiUzVnB9P1SbfEokP0xXUEm8FykoAwEbITEcExUWAgYCCQkFEikMGiACCAgFD0iPdXdzdYdFR4BeRiYEBTpjl1lFh3ZzeHaQ%2Ff4hS4I6JUEnIw4IBwwQIgoYBwQQQSlZtgsBAAAAAwAAAAAEywRsAAwAKgAvAAABNz4CHgEXHgEPAiUhMhcHISIGFREUFjMhMjY9ATcRFAYjISImNRE0NgkBBzcBA%2BhsAgYUFR0OFgoFBmz9BQGQMje7%2FpApOzspAfQpO8i7o%2F5wpbm5Azj%2BlqE3AWMD9XMBAgIEDw4WKgsKc8gNuzsp%2FgwpOzsptsj%2BtKW5uaUBkKW5%2Ftf%2BljKqAWMAAgAAAAAEkwRMABsANgAAASEGByMiBhURFBYzITI2NTcVFAYjISImNRE0NgUBFhQHAQYmJzUmDgMHPgY3NT4BAV4BaaQ0wyk7OykB9Ck7yLml%2FnClubkCfwFTCAj%2BrAcLARo5ZFRYGgouOUlARioTAQsETJI2Oyn%2BDCk7OymZZ6W5uaUBkKW5G%2F7TBxUH%2Fs4GBAnLAQINFjAhO2JBNB0UBwHSCgUAAAAAAgAAAAAEnQRMAB0ANQAAASEyFwchIgYVERQWMyEyNj0BNxUUBiMhIiY1ETQ2CQE2Mh8BFhQHAQYiLwEmND8BNjIfARYyAV4BXjxDsv6jKTs7KQH0KTvIuaX%2BcKW5uQHKAYsHFQdlBwf97QcVB%2FgHB2UHFQdvCBQETBexOyn%2BDCk7OylFyNulubmlAZCluf4zAYsHB2UHFQf97AcH%2BAcVB2UHB28HAAAAAQAKAAoEpgSmADsAAAkBNjIXARYGKwEVMzU0NhcBFhQHAQYmPQEjFTMyFgcBBiInASY2OwE1IxUUBicBJjQ3ATYWHQEzNSMiJgE%2BAQgIFAgBBAcFCqrICggBCAgI%2FvgICsiqCgUH%2FvwIFAj%2B%2BAgFCq%2FICgj%2B%2BAgIAQgICsivCgUDlgEICAj%2B%2BAgKyK0KBAf%2B%2FAcVB%2F73BwQKrcgKCP74CAgBCAgKyK0KBAcBCQcVBwEEBwQKrcgKAAEAyAAAA4QETAAZAAATMzIWFREBNhYVERQGJwERFAYrASImNRE0NvpkFR0B0A8VFQ%2F%2BMB0VZBUdHQRMHRX%2BSgHFDggV%2FBgVCA4Bxf5KFR0dFQPoFR0AAAABAAAAAASwBEwAIwAAEzMyFhURATYWFREBNhYVERQGJwERFAYnAREUBisBIiY1ETQ2MmQVHQHQDxUB0A8VFQ%2F%2BMBUP%2FjAdFWQVHR0ETB0V%2FkoBxQ4IFf5KAcUOCBX8GBUIDgHF%2FkoVCA4Bxf5KFR0dFQPoFR0AAAABAJ0AGQSwBDMAFQAAAREUBicBERQGJwEmNDcBNhYVEQE2FgSwFQ%2F%2BMBUP%2FhQPDwHsDxUB0A8VBBr8GBUIDgHF%2FkoVCA4B4A4qDgHgDggV%2FkoBxQ4IAAAAAQDIABYEMwQ2AAsAABMBFhQHAQYmNRE0NvMDLhIS%2FNISGRkEMv4OCx4L%2Fg4LDhUD6BUOAAIAyABkA4QD6AAPAB8AABMzMhYVERQGKwEiJjURNDYhMzIWFREUBisBIiY1ETQ2%2BsgVHR0VyBUdHQGlyBUdHRXIFR0dA%2BgdFfzgFR0dFQMgFR0dFfzgFR0dFQMgFR0AAAEAyABkBEwD6AAPAAABERQGIyEiJjURNDYzITIWBEwdFfzgFR0dFQMgFR0DtvzgFR0dFQMgFR0dAAAAAAEAAAAZBBMEMwAVAAABETQ2FwEWFAcBBiY1EQEGJjURNDYXAfQVDwHsDw%2F%2BFA8V%2FjAPFRUPAmQBthUIDv4gDioO%2FiAOCBUBtv47DggVA%2BgVCA4AAAH%2F%2FgACBLMETwAjAAABNzIWFRMUBiMHIiY1AwEGJjUDAQYmNQM0NhcBAzQ2FwEDNDYEGGQUHgUdFWQVHQL%2BMQ4VAv4yDxUFFQ8B0gIVDwHSAh0ETgEdFfwYFR0BHRUBtf46DwkVAbX%2BOQ4JFAPoFQkP%2Fj4BthQJDv49AbYVHQAAAQEsAAAD6ARMABkAAAEzMhYVERQGKwEiJjURAQYmNRE0NhcBETQ2A1JkFR0dFWQVHf4wDxUVDwHQHQRMHRX8GBUdHRUBtv47DggVA%2BgVCA7%2BOwG2FR0AAAIAZADIBLAESAALABsAAAkBFgYjISImNwE2MgEhMhYdARQGIyEiJj0BNDYCrgH1DwkW%2B%2B4WCQ8B9Q8q%2FfcD6BUdHRX8GBUdHQQ5%2FeQPFhYPAhwP%2FUgdFWQVHR0VZBUdAAEAiP%2F8A3UESgAFAAAJAgcJAQN1%2FqABYMX92AIoA4T%2Bn%2F6fxgIoAiYAAAAAAQE7%2F%2FwEKARKAAUAAAkBJwkBNwQo%2FdnGAWH%2Bn8YCI%2F3ZxgFhAWHGAAIAFwAXBJkEmQAPADMAAAAyHgIUDgIiLgI0PgEFIyIGHQEjIgYdARQWOwEVFBY7ATI2PQEzMjY9ATQmKwE1NCYB4%2BrWm1tbm9bq1ptbW5sBfWQVHZYVHR0Vlh0VZBUdlhUdHRWWHQSZW5vW6tabW1ub1urWm7odFZYdFWQVHZYVHR0Vlh0VZBUdlhUdAAAAAAIAFwAXBJkEmQAPAB8AAAAyHgIUDgIiLgI0PgEBISIGHQEUFjMhMjY9ATQmAePq1ptbW5vW6tabW1ubAkX%2BDBUdHRUB9BUdHQSZW5vW6tabW1ub1urWm%2F5%2BHRVkFR0dFWQVHQACABcAFwSZBJkADwAzAAAAMh4CFA4CIi4CND4BBCIPAScmIg8BBhQfAQcGFB8BFjI%2FARcWMj8BNjQvATc2NC8BAePq1ptbW5vW6tabW1ubAeUZCXh4CRkJjQkJeHgJCY0JGQl4eAkZCY0JCXh4CQmNBJlbm9bq1ptbW5vW6tabrQl4eAkJjQkZCXh4CRkJjQkJeHgJCY0JGQl4eAkZCY0AAgAXABcEmQSZAA8AJAAAADIeAhQOAiIuAjQ%2BAQEnJiIPAQYUHwEWMjcBNjQvASYiBwHj6tabW1ub1urWm1tbmwEVVAcVCIsHB%2FIHFQcBdwcHiwcVBwSZW5vW6tabW1ub1urWm%2F4xVQcHiwgUCPEICAF3BxUIiwcHAAAAAAMAFwAXBJkEmQAPADsASwAAADIeAhQOAiIuAjQ%2BAQUiDgMVFDsBFjc%2BATMyFhUUBgciDgUHBhY7ATI%2BAzU0LgMTIyIGHQEUFjsBMjY9ATQmAePq1ptbW5vW6tabW1ubAT8dPEIyIRSDHgUGHR8UFw4TARkOGhITDAIBDQ6tBx4oIxgiM0Q8OpYKDw8KlgoPDwSZW5vW6tabW1ub1urWm5ELHi9PMhkFEBQQFRIXFgcIBw4UHCoZCBEQKDhcNi9IKhsJ%2FeMPCpYKDw8KlgoPAAADABcAFwSZBJkADwAfAD4AAAAyHgIUDgIiLgI0PgEFIyIGHQEUFjsBMjY9ATQmAyMiBh0BFBY7ARUjIgYdARQWMyEyNj0BNCYrARE0JgHj6tabW1ub1urWm1tbmwGWlgoPDwqWCg8PCvoKDw8KS0sKDw8KAV4KDw8KSw8EmVub1urWm1tbm9bq1ptWDwqWCg8PCpYKD%2F7UDwoyCg%2FIDwoyCg8PCjIKDwETCg8AAgAAAAAEsASwAC8AXwAAATMyFh0BHgEXMzIWHQEUBisBDgEHFRQGKwEiJj0BLgEnIyImPQE0NjsBPgE3NTQ2ExUUBisBIiY9AQ4BBzMyFh0BFAYrAR4BFzU0NjsBMhYdAT4BNyMiJj0BNDY7AS4BAg2WCg9nlxvCCg8PCsIbl2cPCpYKD2eXG8IKDw8KwhuXZw%2B5DwqWCg9EZheoCg8PCqgXZkQPCpYKD0RmF6gKDw8KqBdmBLAPCsIbl2cPCpYKD2eXG8IKDw8KwhuXZw8KlgoPZ5cbwgoP%2Fs2oCg8PCqgXZkQPCpYKD0RmF6gKDw8KqBdmRA8KlgoPRGYAAwAXABcEmQSZAA8AGwA%2FAAAAMh4CFA4CIi4CND4BBCIOARQeATI%2BATQmBxcWFA8BFxYUDwEGIi8BBwYiLwEmND8BJyY0PwE2Mh8BNzYyAePq1ptbW5vW6tabW1ubAb%2FoxXJyxejFcnKaQAcHfHwHB0AHFQd8fAcVB0AHB3x8BwdABxUHfHwHFQSZW5vW6tabW1ub1urWmztyxejFcnLF6MVaQAcVB3x8BxUHQAcHfHwHB0AHFQd8fAcVB0AHB3x8BwAAAAMAFwAXBJkEmQAPABsAMAAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgcXFhQHAQYiLwEmND8BNjIfATc2MgHj6tabW1ub1urWm1tbmwG%2F6MVycsXoxXJyg2oHB%2F7ACBQIyggIagcVB0%2FFBxUEmVub1urWm1tbm9bq1ps7csXoxXJyxejFfWoHFQf%2BvwcHywcVB2oICE%2FFBwAAAAMAFwAXBJkEmQAPABgAIQAAADIeAhQOAiIuAjQ%2BAQUiDgEVFBcBJhcBFjMyPgE1NAHj6tabW1ub1urWm1tbmwFLdMVyQQJLafX9uGhzdMVyBJlbm9bq1ptbW5vW6tabO3LFdHhpAktB0P24PnLFdHMAAAAAAQAXAFMEsAP5ABUAABMBNhYVESEyFh0BFAYjIREUBicBJjQnAgoQFwImFR0dFf3aFxD99hACRgGrDQoV%2Ft0dFcgVHf7dFQoNAasNJgAAAAABAAAAUwSZA%2FkAFQAACQEWFAcBBiY1ESEiJj0BNDYzIRE0NgJ%2FAgoQEP32EBf92hUdHRUCJhcD8f5VDSYN%2FlUNChUBIx0VyBUdASMVCgAAAAEAtwAABF0EmQAVAAAJARYGIyERFAYrASImNREhIiY3ATYyAqoBqw0KFf7dHRXIFR3%2B3RUKDQGrDSYEif32EBf92hUdHRUCJhcQAgoQAAAAAQC3ABcEXQSwABUAAAEzMhYVESEyFgcBBiInASY2MyERNDYCJsgVHQEjFQoN%2FlUNJg3%2BVQ0KFQEjHQSwHRX92hcQ%2FfYQEAIKEBcCJhUdAAABAAAAtwSZBF0AFwAACQEWFAcBBiY1EQ4DBz4ENxE0NgJ%2FAgoQEP32EBdesKWBJAUsW4fHfhcEVf5VDSYN%2FlUNChUBIwIkRHVNabGdcUYHAQYVCgACAAAAAASwBLAAFQArAAABITIWFREUBi8BBwYiLwEmND8BJyY2ASEiJjURNDYfATc2Mh8BFhQPARcWBgNSASwVHRUOXvkIFAhqBwf5Xg4I%2FiH%2B1BUdFQ5e%2BQgUCGoHB%2FleDggEsB0V%2FtQVCA5e%2BQcHaggUCPleDhX7UB0VASwVCA5e%2BQcHaggUCPleDhUAAAACAEkASQRnBGcAFQArAAABFxYUDwEXFgYjISImNRE0Nh8BNzYyASEyFhURFAYvAQcGIi8BJjQ%2FAScmNgP2agcH%2BV4OCBX%2B1BUdFQ5e%2BQgU%2FQwBLBUdFQ5e%2BQgUCGoHB%2FleDggEYGoIFAj5Xg4VHRUBLBUIDl75B%2F3xHRX%2B1BUIDl75BwdqCBQI%2BV4OFQAAAAADABcAFwSZBJkADwAfAC8AAAAyHgIUDgIiLgI0PgEFIyIGFxMeATsBMjY3EzYmAyMiBh0BFBY7ATI2PQE0JgHj6tabW1ub1urWm1tbmwGz0BQYBDoEIxQ2FCMEOgQYMZYKDw8KlgoPDwSZW5vW6tabW1ub1urWm7odFP7SFB0dFAEuFB3%2BDA8KlgoPDwqWCg8AAAAABQAAAAAEsASwAEkAVQBhAGgAbwAAATIWHwEWHwEWFxY3Nj8BNjc2MzIWHwEWHwIeATsBMhYdARQGKwEiBh0BIREjESE1NCYrASImPQE0NjsBMjY1ND8BNjc%2BBAUHBhY7ATI2LwEuAQUnJgYPAQYWOwEyNhMhIiY1ESkBERQGIyERAQQJFAUFFhbEFQ8dCAsmxBYXERUXMA0NDgQZCAEPCj0KDw8KMgoP%2FnDI%2FnAPCjIKDw8KPQsOCRkFDgIGFRYfAp2mBwQK2woKAzMDEP41sQgQAzMDCgrnCwMe%2FokKDwGQAlgPCv6JBLAEAgIKDXYNCxUJDRZ2DQoHIREQFRh7LAkLDwoyCg8PCq8BLP7UrwoPDwoyCg8GBQQwgBkUAwgWEQ55ogcKDgqVCgSqnQcECo8KDgr8cg8KAXf%2BiQoPAZAAAAAAAgAAAAwErwSmACsASQAAATYWFQYCDgQuAScmByYOAQ8BBiY1NDc%2BATc%2BAScuAT4BNz4GFyYGBw4BDwEOBAcOARY2Nz4CNz4DNz4BBI0IGgItQmxhi2KORDg9EQQRMxuZGhYqCFUYEyADCQIQOjEnUmFch3vAJQgdHyaiPT44XHRZUhcYDhItIRmKcVtGYWtbKRYEBKYDEwiy%2Ft3IlVgxEQgLCwwBAQIbG5kYEyJAJghKFRE8Hzdff4U%2FM0o1JSMbL0QJGCYvcSEhHjZST2c1ODwEJygeW0AxJUBff1UyFAABAF0AHgRyBM8ATwAAAQ4BHgQXLgc%2BATceAwYHDgQHBicmNzY3PgQuAScWDgMmJy4BJyY%2BBDcGHgM3PgEuAicmPgMCjScfCic4R0IgBBsKGAoQAwEJEg5gikggBhANPkpTPhZINx8SBgsNJysiCRZOQQoVNU1bYC9QZwICBAUWITsoCAYdJzIYHw8YIiYHDyJJYlkEz0OAZVxEOSQMBzgXOB42IzElKRIqg5Gnl0o3Z0c6IAYWCwYNAwQFIDhHXGF1OWiqb0sdBxUknF0XNTQ8PEUiNWNROBYJDS5AQVUhVZloUSkAAAAAA%2F%2FcAGoE1ARGABsAPwBRAAAAMh4FFA4FIi4FND4EBSYGFxYVFAYiJjU0NzYmBwYHDgEXHgQyPgM3NiYnJgUHDgEXFhcWNj8BNiYnJicuAQIGpJ17bk85HBw6T257naKde25POhwcOU9uewIPDwYIGbD4sBcIBw5GWg0ECxYyWl%2BDiINfWjIWCwQMWv3%2FIw8JCSU4EC0OIw4DDywtCyIERi1JXGJcSSpJXGJcSS0tSVxiXEkqSVxiXEncDwYTOT58sLB8OzcTBg9FcxAxEiRGXkQxMEVeRSQSMRF1HiQPLxJEMA0EDyIPJQ8sSRIEAAAABP%2FcAAAE1ASwABQAJwA7AEwAACEjNy4ENTQ%2BBTMyFzczEzceARUUDgMHNz4BNzYmJyYlBgcOARceBBc3LgE1NDc2JhcHDgEXFhcWNj8CJyYnLgECUJQfW6l2WSwcOU9ue51SPUEglCYvbIknUGqYUi5NdiYLBAw2%2FVFGWg0ECxIqSExoNSlrjxcIB3wjDwkJJTgQLQ4MFgMsLQsieBRhdHpiGxVJXGJcSS0Pef5StVXWNBpacm5jGq0xiD8SMRFGckVzEDESHjxRQTkNmhKnbjs3EwZwJA8vEkQwDQQPC1YELEkSBAAAAAP%2FngAABRIEqwALABgAKAAAJwE2FhcBFgYjISImJSE1NDY7ATIWHQEhAQczMhYPAQ4BKwEiJi8BJjZaAoIUOBQCghUbJfryJRsBCgFZDwqWCg8BWf5DaNAUGAQ6BCMUNhQjBDoEGGQEKh8FIfvgIEdEhEsKDw8KSwLT3x0U%2FBQdHRT8FB0AAAABAGQAFQSwBLAAKAAAADIWFREBHgEdARQGJyURFh0BFAYvAQcGJj0BNDcRBQYmPQE0NjcBETQCTHxYAWsPFhgR%2FplkGhPNzRMaZP6ZERgWDwFrBLBYPv6t%2FrsOMRQpFA0M%2Bf75XRRAFRAJgIAJEBVAFF0BB%2FkMDRQpFDEOAUUBUz4AAAARAAAAAARMBLAAHQAnACsALwAzADcAOwA%2FAEMARwBLAE8AUwBXAFsAXwBjAAABMzIWHQEzMhYdASE1NDY7ATU0NjsBMhYdASE1NDYBERQGIyEiJjURFxUzNTMVMzUzFTM1MxUzNTMVMzUFFTM1MxUzNTMVMzUzFTM1MxUzNQUVMzUzFTM1MxUzNTMVMzUzFTM1A1JkFR0yFR37tB0VMh0VZBUdAfQdAQ8dFfwYFR1kZGRkZGRkZGRk%2FHxkZGRkZGRkZGT8fGRkZGRkZGRkZASwHRUyHRWWlhUdMhUdHRUyMhUd%2FnD9EhUdHRUC7shkZGRkZGRkZGRkyGRkZGRkZGRkZGTIZGRkZGRkZGRkZAAAAAMAAAAZBXcElwAZACUANwAAARcWFA8BBiY9ASMBISImPQE0NjsBATM1NDYBBycjIiY9ATQ2MyEBFxYUDwEGJj0BIyc3FzM1NDYEb%2FkPD%2FkOFZ%2F9qP7dFR0dFdECWPEV%2FamNetEVHR0VASMDGvkPD%2FkOFfG1jXqfFQSN5g4qDuYOCBWW%2FagdFWQVHQJYlhUI%2FpiNeh0VZBUd%2Fk3mDioO5g4IFZa1jXqWFQgAAAABAAAAAASwBEwAEgAAEyEyFhURFAYjIQERIyImNRE0NmQD6Ck7Oyn9rP7QZCk7OwRMOyn9qCk7%2FtQBLDspAlgpOwAAAAMAZAAABEwEsAAJABMAPwAAEzMyFh0BITU0NiEzMhYdASE1NDYBERQOBSIuBTURIRUUFRwBHgYyPgYmNTQ9AZbIFR3%2B1B0C0cgVHf7UHQEPBhgoTGacwJxmTCgYBgEsAwcNFB8nNkI2Jx8TDwUFAQSwHRX6%2BhUdHRX6%2BhUd%2FnD%2B1ClJalZcPigoPlxWakkpASz6CRIVKyclIRsWEAgJEBccISUnKhURCPoAAAAB%2F%2F8A1ARMA8IABQAAAQcJAScBBEzG%2Fp%2F%2Bn8UCJwGbxwFh%2Fp%2FHAicAAQAAAO4ETQPcAAUAAAkCNwkBBE392v3ZxgFhAWEDFf3ZAifH%2Fp8BYQAAAAAC%2F1EAZAVfA%2BgAFAApAAABITIWFREzMhYPAQYiLwEmNjsBESElFxYGKwERIRchIiY1ESMiJj8BNjIBlALqFR2WFQgO5g4qDuYOCBWW%2FoP%2BHOYOCBWWAYHX%2FRIVHZYVCA7mDioD6B0V%2FdkVDvkPD%2FkOFQGRuPkOFf5wyB0VAiYVDvkPAAABAAYAAASeBLAAMAAAEzMyFh8BITIWBwMOASMhFyEyFhQGKwEVFAYiJj0BIRUUBiImPQEjIiYvAQMjIiY0NjheERwEJgOAGB4FZAUsIf2HMAIXFR0dFTIdKh3%2B1B0qHR8SHQYFyTYUHh4EsBYQoiUY%2FiUVK8gdKh0yFR0dFTIyFR0dFTIUCQoDwR0qHQAAAAACAAAAAASwBEwACwAPAAABFSE1MzQ2MyEyFhUFIREhBLD7UMg7KQEsKTv9RASw%2B1AD6GRkKTs7Kcj84AACAAAAAAXcBEwADAAQAAATAxEzNDYzITIWFSEVBQEhAcjIyDspASwqOgH0ASz%2B1PtQASwDIP5wAlgpOzspyGT9RAK8AAEBRQAAA2sErwAbAAABFxYGKwERMzIWDwEGIi8BJjY7AREjIiY%2FATYyAnvmDggVlpYVCA7mDioO5g4IFZaWFQgO5g4qBKD5DhX9pxUO%2BQ8P%2BQ4VAlkVDvkPAAAAAQABAUQErwNrABsAAAEXFhQPAQYmPQEhFRQGLwEmND8BNhYdASE1NDYDqPkODvkPFf2oFQ%2F5Dg75DxUCWBUDYOUPKQ%2FlDwkUl5cUCQ%2FlDykP5Q8JFZWVFQkAAAAEAAAAAASwBLAACQAZAB0AIQAAAQMuASMhIgYHAwUhIgYdARQWMyEyNj0BNCYFNTMVMzUzFQSRrAUkFP1gFCQFrAQt%2FBgpOzspA%2BgpOzv%2Bq2RkZAGQAtwXLSgV%2FR1kOylkKTs7KWQpO8hkZGRkAAAAA%2F%2BcAGQEsARMAAsAIwAxAAAAMhYVERQGIiY1ETQDJSMTFgYjIisBIiYnAj0BNDU0PgE7ASUBFSIuAz0BND4CNwRpKh0dKh1k%2FV0mLwMRFQUCVBQdBDcCCwzIAqP8GAQOIhoWFR0dCwRMHRX8rhUdHRUDUhX8mcj%2B7BAIHBUBUQ76AgQQDw36%2FtT6AQsTKRwyGigUDAEAAAACAEoAAARmBLAALAA1AAABMzIWDwEeARcTFzMyFhQGBw4EIyIuBC8BLgE0NjsBNxM%2BATcnJjYDFjMyNw4BIiYCKV4UEgYSU3oPP3YRExwaEggeZGqfTzl0XFU%2BLwwLEhocExF2Pw96UxIGEyQyNDUxDDdGOASwFRMlE39N%2FrmtHSkoBwQLHBYSCg4REg4FBAgoKR2tAUdNfhQgExr7vgYGMT09AAEAFAAUBJwEnAAXAAABNwcXBxcHFycHJwcnBzcnNyc3Jxc3FzcDIOBO6rS06k7gLZubLeBO6rS06k7gLZubA7JO4C2bmy3gTuq0tOpO4C2bmy3gTuq0tAADAAAAZASwBLAAIQAtAD0AAAEzMhYdAQchMhYdARQHAw4BKwEiJi8BIyImNRE0PwI%2BARcPAREzFzMTNSE3NQEzMhYVERQGKwEiJjURNDYCijIoPBwBSCg8He4QLBf6B0YfHz0tNxSRYA0xG2SWZIjW%2Bv4%2BMv12ZBUdHRVkFR0dBLBRLJZ9USxkLR3%2BqBghMhkZJCcBkCQbxMYcKGTU1f6JZAF3feGv%2FtQdFf4MFR0dFQH0FR0AAAAAAwAAAAAEsARMACAAMAA8AAABMzIWFxMWHQEUBiMhFh0BFAYrASImLwImNRE0NjsBNgUzMhYVERQGKwEiJjURNDYhByMRHwEzNSchNQMCWPoXLBDuHTwo%2FrgcPCgyGzENYJEUNy09fP3pZBUdHRVkFR0dAl%2BIZJZkMjIBwvoETCEY%2FqgdLWQsUXYHlixRKBzGxBskAZAnJGRkHRX%2BDBUdHRUB9BUdZP6J1dSv4X0BdwADAAAAZAUOBE8AGwA3AEcAAAElNh8BHgEPASEyFhQGKwEDDgEjISImNRE0NjcXERchEz4BOwEyNiYjISoDLgQnJj8BJwUzMhYVERQGKwEiJjURNDYBZAFrHxZuDQEMVAEuVGxuVGqDBhsP%2FqoHphwOOmQBJYMGGw%2FLFRMSFv44AgoCCQMHAwUDAQwRklb9T2QVHR0VZBUdHQNp5hAWcA0mD3lMkE7%2BrRUoog0CDRElCkj%2BCVkBUxUoMjIBAgIDBQIZFrdT5B0V%2FgwVHR0VAfQVHQAAAAP%2FnABkBLAETwAdADYARgAAAQUeBBURFAYjISImJwMjIiY0NjMhJyY2PwE2BxcWBw4FKgIjIRUzMhYXEyE3ESUFMzIWFREUBisBIiY1ETQ2AdsBbgIIFBANrAf%2Bqg8bBoNqVW1sVAEuVQsBDW4WSpIRDAIDBQMHAwkDCgH%2BJd0PHAaCASZq%2FqoCUGQVHR0VZBUdHQRP5gEFEBEXC%2F3zDaIoFQFTTpBMeQ8mDXAWrrcWGQIFAwICAWQoFf6tWQH37OQdFf4MFR0dFQH0FR0AAAADAGEAAARMBQ4AGwA3AEcAAAAyFh0BBR4BFREUBiMhIiYvAQMmPwE%2BAR8BETQXNTQmBhURHAMOBAcGLwEHEyE3ESUuAQMhMhYdARQGIyEiJj0BNDYB3pBOAVMVKKIN%2FfMRJQoJ5hAWcA0mD3nGMjIBAgIDBQIZFrdT7AH3Wf6tFSiWAfQVHR0V%2FgwVHR0FDm5UaoMGGw%2F%2BqgemHA4OAWsfFm4NAQxUAS5U1ssVExIW%2FjgCCgIJAwcDBQMBDBGSVv6tZAElgwYb%2FQsdFWQVHR0VZBUdAAP%2F%2FQAGA%2BgFFAAPAC0ASQAAASEyNj0BNCYjISIGHQEUFgEVFAYiJjURBwYmLwEmNxM%2BBDMhMhYVERQGBwEDFzc2Fx4FHAIVERQWNj0BNDY3JREnAV4B9BUdHRX%2BDBUdHQEPTpBMeQ8mDXAWEOYBBRARFwsCDQ2iKBX9iexTtxYZAgUDAgIBMjIoFQFTWQRMHRVkFR0dFWQVHfzmalRubFQBLlQMAQ1uFh8BawIIEw8Mpgf%2Bqg8bBgHP%2Fq1WkhEMAQMFAwcDCQIKAv44FhITFcsPGwaDASVkAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEBJSYGHQEhIgYdARQWMyEVFBY3JTY0AeLs1ptbW5vW7NabW1ubAob%2B7RAX%2Fu0KDw8KARMXEAETEASaW5vW7NabW1ub1uzWm%2F453w0KFYkPCpYKD4kVCg3fDSYAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgENAQYUFwUWNj0BITI2PQE0JiMhNTQmAeLs1ptbW5vW7NabW1ubASX%2B7RAQARMQFwETCg8PCv7tFwSaW5vW7NabW1ub1uzWm%2BjfDSYN3w0KFYkPCpYKD4kVCgAAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEBAyYiBwMGFjsBERQWOwEyNjURMzI2AeLs1ptbW5vW7NabW1ubAkvfDSYN3w0KFYkPCpYKD4kVCgSaW5vW7NabW1ub1uzWm%2F5AARMQEP7tEBf%2B7QoPDwoBExcAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEFIyIGFREjIgYXExYyNxM2JisBETQmAeLs1ptbW5vW7NabW1ubAZeWCg%2BJFQoN3w0mDd8NChWJDwSaW5vW7NabW1ub1uzWm7sPCv7tFxD%2B7RAQARMQFwETCg8AAAMAGAAYBJgEmAAPAJYApgAAADIeAhQOAiIuAjQ%2BASUOAwcGJgcOAQcGFgcOAQcGFgcUFgcyHgEXHgIXHgI3Fg4BFx4CFxQGFBcWNz4CNy4BJy4BJyIOAgcGJyY2NS4BJzYuAQYHBicmNzY3HgIXHgMfAT4CJyY%2BATc%2BAzcmNzIWMjY3LgMnND4CJiceAT8BNi4CJwYHFB4BFS4CJz4BNxYyPgEB5OjVm1xcm9Xo1ZtcXJsBZA8rHDoKDz0PFD8DAxMBAzEFCRwGIgEMFhkHECIvCxU%2FOR0HFBkDDRQjEwcFaHUeISQDDTAMD0UREi4oLBAzDwQBBikEAQMLGhIXExMLBhAGKBsGBxYVEwYFAgsFAwMNFwQGCQcYFgYQCCARFwkKKiFBCwQCAQMDHzcLDAUdLDgNEiEQEgg%2FKhADGgMKEgoRBJhcm9Xo1ZtcXJvV6NWbEQwRBwkCAwYFBycPCxcHInIWInYcCUcYChQECA4QBAkuHgQPJioRFRscBAcSCgwCch0kPiAIAQcHEAsBAgsLIxcBMQENCQIPHxkCFBkdHB4QBgEBBwoMGBENBAMMJSAQEhYXDQ4qFBkKEhIDCQsXJxQiBgEOCQwHAQ0DBAUcJAwSCwRnETIoAwEJCwsLJQcKDBEAAAAAAQAAAAIErwSFABYAAAE2FwUXNxYGBw4BJwEGIi8BJjQ3ASY2AvSkjv79kfsGUE08hjv9rA8rD28PDwJYIk8EhVxliuh%2BWYcrIgsW%2FawQEG4PKxACV2XJAAYAAABgBLAErAAPABMAIwAnADcAOwAAEyEyFh0BFAYjISImPQE0NgUjFTMFITIWHQEUBiMhIiY9ATQ2BSEVIQUhMhYdARQGIyEiJj0BNDYFIRUhZAPoKTs7KfwYKTs7BBHIyPwYA%2BgpOzsp%2FBgpOzsEEf4MAfT8GAPoKTs7KfwYKTs7BBH%2B1AEsBKw7KWQpOzspZCk7ZGTIOylkKTs7KWQpO2RkyDspZCk7OylkKTtkZAAAAAIAZAAABEwEsAALABEAABMhMhYUBiMhIiY0NgERBxEBIZYDhBUdHRX8fBUdHQI7yP6iA4QEsB0qHR0qHf1E%2FtTIAfQB9AAAAAMAAABkBLAEsAAXABsAJQAAATMyFh0BITIWFREhNSMVIRE0NjMhNTQ2FxUzNQEVFAYjISImPQEB9MgpOwEsKTv%2BDMj%2BDDspASw7KcgB9Dsp%2FBgpOwSwOylkOyn%2BcGRkAZApO2QpO2RkZP1EyCk7OynIAAAABAAAAAAEsASwABUAKwBBAFcAABMhMhYPARcWFA8BBiIvAQcGJjURNDYpATIWFREUBi8BBwYiLwEmND8BJyY2ARcWFA8BFxYGIyEiJjURNDYfATc2MgU3NhYVERQGIyEiJj8BJyY0PwE2MhcyASwVCA5exwcHaggUCMdeDhUdAzUBLBUdFQ5exwgUCGoHB8deDgj%2BL2oHB8deDggV%2FtQVHRUOXscIFALLXg4VHRX%2B1BUIDl7HBwdqCBQIBLAVDl7HCBQIagcHx14OCBUBLBUdHRX%2B1BUIDl7HBwdqCBQIx14OFf0maggUCMdeDhUdFQEsFQgOXscHzl4OCBX%2B1BUdFQ5exwgUCGoHBwAAAAYAAAAABKgEqAAPABsAIwA7AEMASwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JiQyFhQGIiY0JDIWFAYjIicHFhUUBiImNTQ2PwImNTQEMhYUBiImNCQyFhQGIiY0Advy3Z9fX5%2Fd8t2gXl6gAcbgv29vv%2BC%2Fb2%2F%2BLS0gIC0gAUwtICAWDg83ETNIMykfegEJ%2FoctICAtIAIdLSAgLSAEqF%2Bf3fLdoF5eoN3y3Z9Xb7%2Fgv29vv%2BC%2FBiAtISEtICAtIQqRFxwkMzMkIDEFfgEODhekIC0gIC0gIC0gIC0AAf%2FYAFoEuQS8AFsAACUBNjc2JicmIyIOAwcABw4EFx4BMzI3ATYnLgEjIgcGBwEOASY0NwA3PgEzMhceARcWBgcOBgcGIyImJyY2NwE2NzYzMhceARcWBgcBDgEnLgECIgHVWwgHdl8WGSJBMD8hIP6IDx4eLRMNBQlZN0ozAiQkEAcdEhoYDRr%2Bqw8pHA4BRyIjQS4ODyw9DQ4YIwwod26La1YOOEBGdiIwGkQB%2F0coW2tQSE5nDxE4Qv4eDyoQEAOtAdZbZWKbEQQUGjIhH%2F6JDxsdNSg3HT5CMwIkJCcQFBcMGv6uDwEcKQ4BTSIjIQEINykvYyMLKnhuiWZMBxtAOU6%2BRAH%2FSBg3ISSGV121Qv4kDwIPDyYAAAACAGQAWASvBEQAGQBEAAABPgIeAhUUDgMHLgQ1ND4CHgEFIg4DIi4DIyIGFRQeAhcWFx4EMj4DNzY3PgQ1NCYCiTB7eHVYNkN5hKg%2BPqeFeEM4WnZ4eQEjIT8yLSohJyktPyJDbxtBMjMPBw86KzEhDSIzKUAMBAgrKT8dF2oDtURIBS1TdkA5eYB%2FslVVsn%2BAeTlAdlMtBUgtJjY1JiY1NiZvTRc4SjQxDwcOPCouGBgwKEALBAkpKkQqMhNPbQACADn%2F8gR3BL4AFwAuAAAAMh8BFhUUBg8BJi8BNycBFwcvASY0NwEDNxYfARYUBwEGIi8BJjQ%2FARYfAQcXAQKru0KNQjgiHR8uEl%2F3%2FnvUaRONQkIBGxJpCgmNQkL%2B5UK6Qo1CQjcdLhJf9wGFBL5CjUJeKmsiHTUuEl%2F4%2FnvUahKNQrpCARv%2BRmkICY1CukL%2B5UJCjUK7Qjc3LxFf%2BAGFAAAAAAMAyAAAA%2BgEsAARABUAHQAAADIeAhURFAYjISImNRE0PgEHESERACIGFBYyNjQCBqqaZDo7Kf2oKTs8Zj4CWP7%2FVj09Vj0EsB4uMhX8Ryk7OykDuRUzLar9RAK8%2FRY9Vj09VgABAAAAAASwBLAAFgAACQEWFAYiLwEBEScBBRMBJyEBJyY0NjIDhgEbDx0qDiT%2B6dT%2BzP7oywEz0gEsAQsjDx0qBKH%2B5g8qHQ8j%2FvX%2B1NL%2BzcsBGAE01AEXJA4qHQAAAAADAScAEQQJBOAAMgBAAEsAAAEVHgQXIy4DJxEXHgQVFAYHFSM1JicuASczHgEXEScuBDU0PgI3NRkBDgMVFB4DFxYXET4ENC4CArwmRVI8LAKfBA0dMydAIjxQNyiym2SWVygZA4sFV0obLkJOMCAyVWg6HSoqFQ4TJhkZCWgWKTEiGBkzNwTgTgUTLD9pQiQuLBsH%2Fs0NBxMtPGQ%2Bi6oMTU8QVyhrVk1iEAFPCA4ZLzlYNkZwSCoGTf4SARIEDh02Jh0rGRQIBgPQ%2FsoCCRYgNEM0JRkAAAABAGQAZgOUBK0ASgAAATIeARUjNC4CIyIGBwYVFB4BFxYXMxUjFgYHBgc%2BATM2FjMyNxcOAyMiLgEHDgEPASc%2BBTc%2BAScjNTMmJy4CPgE3NgIxVJlemSc8OxolVBQpGxoYBgPxxQgVFS02ImIWIIwiUzUyHzY4HCAXanQmJ1YYFzcEGAcTDBEJMAwk3aYXFQcKAg4tJGEErVCLTig%2FIhIdFSw5GkowKgkFZDKCHj4yCg8BIh6TExcIASIfBAMaDAuRAxAFDQsRCjePR2QvORQrREFMIVgAAAACABn%2F%2FwSXBLAADwAfAAABMzIWDwEGIi8BJjY7AREzBRcWBisBESMRIyImPwE2MgGQlhUIDuYOKg7mDggVlsgCF%2BYOCBWWyJYVCA7mDioBLBYO%2Bg8P%2Bg4WA4QQ%2BQ4V%2FHwDhBUO%2BQ8AAAQAGf%2F%2FA%2BgEsAAHABcAGwAlAAABIzUjFSMRIQEzMhYPAQYiLwEmNjsBETMFFTM1EwczFSE1NyM1IQPoZGRkASz9qJYVCA7mDioO5g4IFZbIAZFkY8jI%2FtTIyAEsArxkZAH0%2FHwWDvoPD%2FoOFgOEZMjI%2FRL6ZJb6ZAAAAAAEABn%2F%2FwPoBLAADwAZACEAJQAAATMyFg8BBiIvASY2OwERMwUHMxUhNTcjNSERIzUjFSMRIQcVMzUBkJYVCA7mDioO5g4IFZbIAljIyP7UyMgBLGRkZAEsx2QBLBYO%2Bg8P%2Bg4WA4SW%2BmSW%2BmT7UGRkAfRkyMgAAAAEABn%2F%2FwRMBLAADwAVABsAHwAAATMyFg8BBiIvASY2OwERMwEjESM1MxMjNSMRIQcVMzUBkJYVCA7mDioO5g4IFZbIAlhkZMhkZMgBLMdkASwWDvoPD%2FoOFgOE%2FgwBkGT7UGQBkGTIyAAAAAAEABn%2F%2FwRMBLAADwAVABkAHwAAATMyFg8BBiIvASY2OwERMwEjNSMRIQcVMzUDIxEjNTMBkJYVCA7mDioO5g4IFZbIArxkyAEsx2QBZGTIASwWDvoPD%2FoOFgOE%2FgxkAZBkyMj7tAGQZAAAAAAFABn%2F%2FwSwBLAADwATABcAGwAfAAABMzIWDwEGIi8BJjY7AREzBSM1MxMhNSETITUhEyE1IQGQlhUIDuYOKg7mDggVlsgB9MjIZP7UASxk%2FnABkGT%2BDAH0ASwWDvoPD%2FoOFgOEyMj%2BDMj%2BDMj%2BDMgABQAZ%2F%2F8EsASwAA8AEwAXABsAHwAAATMyFg8BBiIvASY2OwERMwUhNSEDITUhAyE1IQMjNTMBkJYVCA7mDioO5g4IFZbIAyD%2BDAH0ZP5wAZBk%2FtQBLGTIyAEsFg76Dw%2F6DhYDhMjI%2FgzI%2FgzI%2FgzIAAIAAAAABEwETAAPAB8AAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmAV4BkKK8u6P%2BcKW5uQJn%2FgwpOzspAfQpOzsETLuj%2FnClubmlAZClucg7Kf4MKTs7KQH0KTsAAAAAAwAAAAAETARMAA8AHwArAAABITIWFREUBiMhIiY1ETQ2BSEiBhURFBYzITI2NRE0JgUXFhQPAQYmNRE0NgFeAZClubml%2FnCju7wCZP4MKTs7KQH0KTs7%2Fm%2F9ERH9EBgYBEy5pf5wpbm5pQGQo7vIOyn%2BDCk7OykB9Ck7gr4MJAy%2BDAsVAZAVCwAAAAADAAAAAARMBEwADwAfACsAAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmBSEyFg8BBiIvASY2AV4BkKO7uaX%2BcKW5uQJn%2FgwpOzspAfQpOzv%2BFQGQFQsMvgwkDL4MCwRMvKL%2BcKW5uaUBkKO7yDsp%2FgwpOzspAfQpO8gYEP0REf0QGAAAAAMAAAAABEwETAAPAB8AKwAAASEyFhURFAYjISImNRE0NgUhIgYVERQWMyEyNjURNCYFFxYGIyEiJj8BNjIBXgGQpbm5pf5wo7u5Amf%2BDCk7OykB9Ck7O%2F77vgwLFf5wFQsMvgwkBEy5pf5wo7u8ogGQpbnIOyn%2BDCk7OykB9Ck7z%2F0QGBgQ%2FREAAAAAAgAAAAAFFARMAB8ANQAAASEyFhURFAYjISImPQE0NjMhMjY1ETQmIyEiJj0BNDYHARYUBwEGJj0BIyImPQE0NjsBNTQ2AiYBkKW5uaX%2BcBUdHRUBwik7Oyn%2BPhUdHb8BRBAQ%2FrwQFvoVHR0V%2BhYETLml%2FnCluR0VZBUdOykB9Ck7HRVkFR3p%2FuQOJg7%2B5A4KFZYdFcgVHZYVCgAAAQDZAAID1wSeACMAAAEXFgcGAgclMhYHIggBBwYrAScmNz4BPwEhIicmNzYANjc2MwMZCQgDA5gCASwYEQ4B%2Fvf%2B8wQMDgkJCQUCUCcn%2FtIXCAoQSwENuwUJEASeCQoRC%2F5TBwEjEv7K%2FsUFDwgLFQnlbm4TFRRWAS%2FTBhAAAAACAAAAAAT%2BBEwAHwA1AAABITIWHQEUBiMhIgYVERQWMyEyFh0BFAYjISImNRE0NgUBFhQHAQYmPQEjIiY9ATQ2OwE1NDYBXgGQFR0dFf4%2BKTs7KQHCFR0dFf5wpbm5AvEBRBAQ%2FrwQFvoVHR0V%2BhYETB0VZBUdOyn%2BDCk7HRVkFR25pQGQpbnp%2FuQOJg7%2B5A4KFZYdFcgVHZYVCgACAAAAAASwBLAAFQAxAAABITIWFREUBi8BAQYiLwEmNDcBJyY2ASMiBhURFBYzITI2PQE3ERQGIyEiJjURNDYzIQLuAZAVHRUObf7IDykPjQ8PAThtDgj%2B75wpOzspAfQpO8i7o%2F5wpbm5pQEsBLAdFf5wFQgObf7IDw%2BNDykPAThtDhX%2B1Dsp%2FgwpOzsplMj%2B1qW5uaUBkKW5AAADAA4ADgSiBKIADwAbACMAAAAyHgIUDgIiLgI0PgEEIg4BFB4BMj4BNCYEMhYUBiImNAHh7tmdXV2d2e7ZnV1dnQHD5sJxccLmwnFx%2FnugcnKgcgSiXZ3Z7tmdXV2d2e7ZnUdxwubCcXHC5sJzcqBycqAAAAMAAAAABEwEsAAVAB8AIwAAATMyFhURMzIWBwEGIicBJjY7ARE0NgEhMhYdASE1NDYFFTM1AcLIFR31FAoO%2FoEOJw3%2BhQ0JFfod%2FoUD6BUd%2B7QdA2dkBLAdFf6iFg%2F%2BVg8PAaoPFgFeFR38fB0V%2BvoVHWQyMgAAAAMAAAAABEwErAAVAB8AIwAACQEWBisBFRQGKwEiJj0BIyImNwE%2BAQEhMhYdASE1NDYFFTM1AkcBeg4KFfQiFsgUGPoUCw4Bfw4n%2FfkD6BUd%2B7QdA2dkBJ7%2BTQ8g%2BhQeHRX6IQ8BrxAC%2FH8dFfr6FR1kMjIAAwAAAAAETARLABQAHgAiAAAJATYyHwEWFAcBBiInASY0PwE2MhcDITIWHQEhNTQ2BRUzNQGMAXEHFQeLBwf98wcVB%2F7cBweLCBUH1APoFR37tB0DZ2QC0wFxBweLCBUH%2FfMICAEjCBQIiwcH%2FdIdFfr6FR1kMjIABAAAAAAETASbAAkAGQAjACcAABM3NjIfAQcnJjQFNzYWFQMOASMFIiY%2FASc3ASEyFh0BITU0NgUVMzWHjg4qDk3UTQ4CFtIOFQIBHRX9qxUIDtCa1P49A%2BgVHfu0HQNnZAP%2Fjg4OTdRMDyqa0g4IFf2pFB4BFQ7Qm9T9Oh0V%2BvoVHWQyMgAAAAQAAAAABEwEsAAPABkAIwAnAAABBR4BFRMUBi8BByc3JyY2EwcGIi8BJjQ%2FAQEhMhYdASE1NDYFFTM1AV4CVxQeARUO0JvUm9IOCMNMDyoOjg4OTf76A%2BgVHfu0HQNnZASwAgEdFf2rFQgO0JrUmtIOFf1QTQ4Ojg4qDk3%2BWB0V%2BvoVHWQyMgACAAT%2F7ASwBK8ABQAIAAAlCQERIQkBFQEEsP4d%2Fsb%2BcQSs%2FTMCq2cBFP5xAacDHPz55gO5AAAAAAIAAABkBEwEsAAVABkAAAERFAYrAREhESMiJjURNDY7AREhETMHIzUzBEwdFZb9RJYVHR0V%2BgH0ZMhkZAPo%2FK4VHQGQ%2FnAdFQPoFB7%2B1AEsyMgAAAMAAABFBN0EsAAWABoALwAAAQcBJyYiDwEhESMiJjURNDY7AREhETMHIzUzARcWFAcBBiIvASY0PwE2Mh8BATYyBEwC%2FtVfCRkJlf7IlhUdHRX6AfRkyGRkAbBqBwf%2BXAgUCMoICGoHFQdPASkHFQPolf7VXwkJk%2F5wHRUD6BQe%2FtQBLMjI%2Fc5qBxUH%2FlsHB8sHFQdqCAhPASkHAAMAAAANBQcEsAAWABoAPgAAAREHJy4BBwEhESMiJjURNDY7AREhETMHIzUzARcWFA8BFxYUDwEGIi8BBwYiLwEmND8BJyY0PwE2Mh8BNzYyBExnhg8lEP72%2FreWFR0dFfoB9GTIZGQB9kYPD4ODDw9GDykPg4MPKQ9GDw%2BDgw8PRg8pD4ODDykD6P7zZ4YPAw7%2B9v5wHRUD6BQe%2FtQBLMjI%2FYxGDykPg4MPKQ9GDw%2BDgw8PRg8pD4ODDykPRg8Pg4MPAAADAAAAFQSXBLAAFQAZAC8AAAERISIGHQEhESMiJjURNDY7AREhETMHIzUzEzMyFh0BMzIWDwEGIi8BJjY7ATU0NgRM%2FqIVHf4MlhUdHRX6AfRkyGRklmQVHZYVCA7mDioO5g4IFZYdA%2Bj%2B1B0Vlv5wHRUD6BQe%2FtQBLMjI%2FagdFfoVDuYODuYOFfoVHQAAAAADAAAAAASXBLAAFQAZAC8AAAERJyYiBwEhESMiJjURNDY7AREhETMHIzUzExcWBisBFRQGKwEiJj0BIyImPwE2MgRMpQ4qDv75%2Fm6WFR0dFfoB9GTIZGTr5g4IFZYdFWQVHZYVCA7mDioD6P5wpQ8P%2Fvf%2BcB0VA%2BgUHv7UASzIyP2F5Q8V%2BhQeHhT6FQ%2FlDwADAAAAyASwBEwACQATABcAABMhMhYdASE1NDYBERQGIyEiJjURExUhNTIETBUd%2B1AdBJMdFfu0FR1kAZAETB0VlpYVHf7U%2FdoVHR0VAib%2B1MjIAAAGAAMAfQStBJcADwAZAB0ALQAxADsAAAEXFhQPAQYmPQEhNSE1NDYBIyImPQE0NjsBFyM1MwE3NhYdASEVIRUUBi8BJjQFIzU7AjIWHQEUBisBA6f4Dg74DhX%2BcAGQFf0vMhUdHRUyyGRk%2FoL3DhUBkP5wFQ73DwOBZGRkMxQdHRQzBI3mDioO5g4IFZbIlhUI%2FoUdFWQVHcjI%2FcvmDggVlsiWFQgO5g4qecgdFWQVHQAAAAACAGQAAASwBLAAFgBRAAABJTYWFREUBisBIiY1ES4ENRE0NiUyFh8BERQOAg8BERQGKwEiJjURLgQ1ETQ%2BAzMyFh8BETMRPAE%2BAjMyFh8BETMRND4DA14BFBklHRXIFR0EDiIaFiX%2B4RYZAgEVHR0LCh0VyBUdBA4iGhYBBwoTDRQZAgNkBQkVDxcZAQFkAQUJFQQxdBIUH%2FuuFR0dFQGNAQgbHzUeAWcfRJEZDA3%2BPhw%2FMSkLC%2F5BFR0dFQG%2FBA8uLkAcAcICBxENCxkMDf6iAV4CBxENCxkMDf6iAV4CBxENCwABAGQAAASwBEwAMwAAARUiDgMVERQWHwEVITUyNjURIREUFjMVITUyPgM1ETQmLwE1IRUiBhURIRE0JiM1BLAEDiIaFjIZGf5wSxn%2BDBlL%2FnAEDiIaFjIZGQGQSxkB9BlLBEw4AQUKFA78iBYZAQI4OA0lAYr%2BdiUNODgBBQoUDgN4FhkBAjg4DSX%2BdgGKJQ04AAAABgAAAAAETARMAAwAHAAgACQAKAA0AAABITIWHQEjBTUnITchBSEyFhURFAYjISImNRE0NhcVITUBBTUlBRUhNQUVFAYjIQchJyE3MwKjAXcVHWn%2B2cj%2BcGQBd%2F4lASwpOzsp%2FtQpOzspASwCvP5wAZD8GAEsArwdFf6JZP6JZAGQyGkD6B0VlmJiyGTIOyn%2BDCk7OykB9Ck7ZMjI%2FveFo4XGyMhm%2BBUdZGTIAAEAEAAQBJ8EnwAmAAATNzYWHwEWBg8BHgEXNz4BHwEeAQ8BBiIuBicuBTcRohEuDosOBhF3ZvyNdxEzE8ATBxGjAw0uMUxPZWZ4O0p3RjITCwED76IRBhPCFDERdo78ZXYRBA6IDi8RogEECBUgNUNjO0qZfHNVQBAAAAACAAAAAASwBEwAIwBBAAAAMh4EHwEVFAYvAS4BPQEmIAcVFAYPAQYmPQE%2BBRIyHgIfARUBHgEdARQGIyEiJj0BNDY3ATU0PgIB%2FLimdWQ%2FLAkJHRTKFB2N%2FsKNHRTKFB0DDTE7ZnTKcFImFgEBAW0OFR0V%2B7QVHRUOAW0CFiYETBUhKCgiCgrIFRgDIgMiFZIYGJIVIgMiAxgVyAQNJyQrIP7kExwcCgoy%2FtEPMhTUFR0dFdQUMg8BLzIEDSEZAAADAAAAAASwBLAADQAdACcAAAEHIScRMxUzNTMVMzUzASEyFhQGKwEXITcjIiY0NgMhMhYdASE1NDYETMj9qMjIyMjIyPyuArwVHR0VDIn8SokMFR0dswRMFR37UB0CvMjIAfTIyMjI%2FOAdKh1kZB0qHf7UHRUyMhUdAAAAAwBkAAAEsARMAAkAEwAdAAABIyIGFREhETQmASMiBhURIRE0JgEhETQ2OwEyFhUCvGQpOwEsOwFnZCk7ASw7%2FRv%2B1DspZCk7BEw7KfwYA%2BgpO%2F7UOyn9RAK8KTv84AGQKTs7KQAAAAAF%2F5wAAASwBEwADwATAB8AJQApAAATITIWFREUBiMhIiY1ETQ2FxEhEQUjFTMRITUzNSMRIQURByMRMwcRMxHIArx8sLB8%2FUR8sLAYA4T%2BDMjI%2FtTIyAEsAZBkyMhkZARMsHz%2BDHywsHwB9HywyP1EArzIZP7UZGQBLGT%2B1GQB9GT%2B1AEsAAAABf%2BcAAAEsARMAA8AEwAfACUAKQAAEyEyFhURFAYjISImNRE0NhcRIREBIzUjFSMRMxUzNTMFEQcjETMHETMRyAK8fLCwfP1EfLCwGAOE%2FgxkZGRkZGQBkGTIyGRkBEywfP4MfLCwfAH0fLDI%2FUQCvP2oyMgB9MjIZP7UZAH0ZP7UASwABP%2BcAAAEsARMAA8AEwAbACMAABMhMhYVERQGIyEiJjURNDYXESERBSMRMxUhESEFIxEzFSERIcgCvHywsHz9RHywsBgDhP4MyMj%2B1AEsAZDIyP7UASwETLB8%2Fgx8sLB8AfR8sMj9RAK8yP7UZAH0ZP7UZAH0AAAABP%2BcAAAEsARMAA8AEwAWABkAABMhMhYVERQGIyEiJjURNDYXESERAS0BDQERyAK8fLCwfP1EfLCwGAOE%2Fgz%2B1AEsAZD%2B1ARMsHz%2BDHywsHwB9HywyP1EArz%2BDJaWlpYBLAAAAAX%2FnAAABLAETAAPABMAFwAgACkAABMhMhYVERQGIyEiJjURNDYXESERAyERIQcjIgYVFBY7AQERMzI2NTQmI8gCvHywsHz9RHywsBgDhGT9RAK8ZIImOTYpgv4Mgik2OSYETLB8%2Fgx8sLB8AfR8sMj9RAK8%2FagB9GRWQUFUASz%2B1FRBQVYAAAAF%2F5wAAASwBEwADwATAB8AJQApAAATITIWFREUBiMhIiY1ETQ2FxEhEQUjFTMRITUzNSMRIQEjESM1MwMjNTPIArx8sLB8%2FUR8sLAYA4T%2BDMjI%2FtTIyAEsAZBkZMjIZGQETLB8%2Fgx8sLB8AfR8sMj9RAK8yGT%2B1GRkASz%2BDAGQZP4MZAAG%2F5wAAASwBEwADwATABkAHwAjACcAABMhMhYVERQGIyEiJjURNDYXESERBTMRIREzASMRIzUzBRUzNQEjNTPIArx8sLB8%2FUR8sLAYA4T9RMj%2B1GQCWGRkyP2oZAEsZGQETLB8%2Fgx8sLB8AfR8sMj9RAK8yP5wAfT%2BDAGQZMjIyP7UZAAF%2F5wAAASwBEwADwATABwAIgAmAAATITIWFREUBiMhIiY1ETQ2FxEhEQEHIzU3NSM1IQEjESM1MwMjNTPIArx8sLB8%2FUR8sLAYA4T%2BDMdkx8gBLAGQZGTIx2RkBEywfP4MfLCwfAH0fLDI%2FUQCvP5wyDLIlmT%2BDAGQZP4MZAAAAAMACQAJBKcEpwAPABsAJQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgchFSEVISc1NyEB4PDbnl5entvw255eXp4BxeTCcXHC5MJxcWz%2B1AEs%2FtRkZAEsBKdentvw255eXp7b8NueTHHC5MJxccLkwtDIZGTIZAAAAAAEAAkACQSnBKcADwAbACcAKwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgcVBxcVIycjFSMRIQcVMzUB4PDbnl5entvw255eXp4BxeTCcXHC5MJxcWwyZGRklmQBLMjIBKdentvw255eXp7b8NueTHHC5MJxccLkwtBkMmQyZGQBkGRkZAAAAv%2Fy%2F50EwgRBACAANgAAATIWFzYzMhYUBisBNTQmIyEiBh0BIyImNTQ2NyY1ND4BEzMyFhURMzIWDwEGIi8BJjY7ARE0NgH3brUsLC54qqp4gB0V%2FtQVHd5QcFZBAmKqepYKD4kVCg3fDSYN3w0KFYkPBEF3YQ6t8a36FR0dFfpzT0VrDhMSZKpi%2FbMPCv7tFxD0EBD0EBcBEwoPAAAAAAL%2F8v%2BcBMMEQQAcADMAAAEyFhc2MzIWFxQGBwEmIgcBIyImNTQ2NyY1ND4BExcWBisBERQGKwEiJjURIyImNzY3NjIB9m62LCsueaoBeFr%2Bhg0lDf6DCU9xVkECYqnm3w0KFYkPCpYKD4kVCg3HGBMZBEF3YQ%2BteGOkHAFoEBD%2Bk3NPRWsOExNkqWP9kuQQF%2F7tCg8PCgETFxDMGBMAAAABAGQAAARMBG0AGAAAJTUhATMBMwkBMwEzASEVIyIGHQEhNTQmIwK8AZD%2B8qr%2B8qr%2B1P7Uqv7yqv7yAZAyFR0BkB0VZGQBLAEsAU3%2Bs%2F7U%2FtRkHRUyMhUdAAAAAAEAeQAABDcEmwAvAAABMhYXHgEVFAYHFhUUBiMiJxUyFh0BITU0NjM1BiMiJjU0Ny4BNTQ2MzIXNCY1NDYCWF6TGll7OzIJaUo3LRUd%2FtQdFS03SmkELzlpSgUSAqMEm3FZBoNaPWcfHRpKaR77HRUyMhUd%2Bx5pShIUFVg1SmkCAhAFdKMAAAAGACcAFASJBJwAEQAqAEIASgBiAHsAAAEWEgIHDgEiJicmAhI3PgEyFgUiBw4BBwYWHwEWMzI3Njc2Nz4BLwEmJyYXIgcOAQcGFh8BFjMyNz4BNz4BLwEmJyYWJiIGFBYyNjciBw4BBw4BHwEWFxYzMjc%2BATc2Ji8BJhciBwYHBgcOAR8BFhcWMzI3PgE3NiYvASYD8m9PT29T2dzZU29PT29T2dzZ%2Fj0EBHmxIgQNDCQDBBcGG0dGYAsNAwkDCwccBAVQdRgEDA0iBAQWBhJROQwMAwkDCwf5Y4xjY4xjVhYGElE6CwwDCQMLBwgEBVB1GAQNDCIEjRcGG0dGYAsNAwkDCwcIBAR5sSIEDQwkAwPyb%2F7V%2FtVvU1dXU28BKwErb1NXVxwBIrF5DBYDCQEWYEZHGwMVDCMNBgSRAhh1UA0WAwkBFTpREgMVCyMMBwT6Y2OMY2MVFTpREQQVCyMMBwQCGHVQDRYDCQEkFmBGRxsDFQwjDQYEASKxeQwWAwkBAAAABQBkAAAD6ASwAAwADwAWABwAIgAAASERIzUhFSERNDYzIQEjNQMzByczNTMDISImNREFFRQGKwECvAEstP6s%2FoQPCgI%2FASzIZKLU1KJktP51Cg8DhA8KwwMg%2FoTIyALzCg%2F%2B1Mj84NTUyP4MDwoBi8jDCg8AAAAABQBkAAAD6ASwAAkADAATABoAIQAAASERCQERNDYzIQEjNRMjFSM1IzcDISImPQEpARUUBisBNQK8ASz%2Bov3aDwoCPwEsyD6iZKLUqv6dCg8BfAIIDwqbAyD9%2BAFe%2FdoERwoP%2FtTI%2FHzIyNT%2BZA8KNzcKD1AAAAAAAwAAAAAEsAP0AAgAGQAfAAABIxUzFyERIzcFMzIeAhUhFSEDETM0PgIBMwMhASEEiqJkZP7UotT9EsgbGiEOASz9qMhkDiEaAnPw8PzgASwB9AMgyGQBLNTUBBErJGT%2BogHCJCsRBP5w%2FnAB9AAAAAMAAAAABEwETAAZADIAOQAAATMyFh0BMzIWHQEUBiMhIiY9ATQ2OwE1NDYFNTIWFREUBiMhIic3ARE0NjMVFBYzITI2AQc1IzUzNQKKZBUdMhUdHRX%2B1BUdHRUyHQFzKTs7Kf2oARP2%2Fro7KVg%2BASw%2BWP201MjIBEwdFTIdFWQVHR0VZBUdMhUd%2BpY7KfzgKTsE9gFGAUQpO5Y%2BWFj95tSiZKIAAwBkAAAEvARMABkANgA9AAABMzIWHQEzMhYdARQGIyEiJj0BNDY7ATU0NgU1MhYVESMRMxQOAiMhIiY1ETQ2MxUUFjMhMjYBBzUjNTM1AcJkFR0yFR0dFf7UFR0dFTIdAXMpO8jIDiEaG%2F2oKTs7KVg%2BASw%2BWAGc1MjIBEwdFTIdFWQVHR0VZBUdMhUd%2BpY7Kf4M%2FtQkKxEEOykDICk7lj5YWP3m1KJkogAAAAP%2FogAABRYE1AALABsAHwAACQEWBiMhIiY3ATYyEyMiBhcTHgE7ATI2NxM2JgMVMzUCkgJ9FyAs%2BwQsIBcCfRZARNAUGAQ6BCMUNhQjBDoEGODIBK37sCY3NyYEUCf%2BTB0U%2FtIUHR0UAS4UHf4MZGQAAAAACQAAAAAETARMAA8AHwAvAD8ATwBfAG8AfwCPAAABMzIWHQEUBisBIiY9ATQ2EzMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2ITMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2ITMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBqfoKDw8K%2BgoPDwr6Cg8PCvoKDw8BmvoKDw8K%2BgoPD%2Fzq%2BgoPDwr6Cg8PAZr6Cg8PCvoKDw8BmvoKDw8K%2BgoPD%2Fzq%2BgoPDwr6Cg8PAZr6Cg8PCvoKDw8BmvoKDw8K%2BgoPDwRMDwqWCg8PCpYKD%2F7UDwqWCg8PCpYKDw8KlgoPDwqWCg%2F%2B1A8KlgoPDwqWCg8PCpYKDw8KlgoPDwqWCg8PCpYKD%2F7UDwqWCg8PCpYKDw8KlgoPDwqWCg8PCpYKDw8KlgoPAAAAAwAAAAAEsAUUABkAKQAzAAABMxUjFSEyFg8BBgchJi8BJjYzITUjNTM1MwEhMhYUBisBFyE3IyImNDYDITIWHQEhNTQ2ArxkZAFePjEcQiko%2FPwoKUIcMT4BXmRkyP4%2BArwVHR0VDIn8SooNFR0dswRMFR37UB0EsMhkTzeEUzMzU4Q3T2TIZPx8HSodZGQdKh3%2B1B0VMjIVHQAABAAAAAAEsAUUAAUAGQArADUAAAAyFhUjNAchFhUUByEyFg8BIScmNjMhJjU0AyEyFhQGKwEVBSElNSMiJjQ2AyEyFh0BITU0NgIwUDnCPAE6EgMBSCkHIq%2F9WrIiCikBSAOvArwVHR0VlgET%2FEoBE5YVHR2zBEwVHftQHQUUOykpjSUmCBEhFpGRFiERCCb%2BlR0qHcjIyMgdKh39qB0VMjIVHQAEAAAAAASwBJ0ABwAUACQALgAAADIWFAYiJjQTMzIWFRQXITY1NDYzASEyFhQGKwEXITcjIiY0NgMhMhYdASE1NDYCDZZqapZqty4iKyf%2BvCcrI%2F7NArwVHR0VDYr8SokMFR0dswRMFR37UB0EnWqWamqW%2Fus5Okxra0w6Of5yHSodZGQdKh3%2B1B0VMjIVHQAEAAAAAASwBRQADwAcACwANgAAATIeARUUBiImNTQ3FzcnNhMzMhYVFBchNjU0NjMBITIWFAYrARchNyMiJjQ2AyEyFh0BITU0NgJYL1szb5xvIpBvoyIfLiIrJ%2F68Jysj%2Fs0CvBUdHRUNivxKiQwVHR2zBEwVHftQHQUUa4s2Tm9vTj5Rj2%2BjGv4KOTpMa2tMOjn%2Bch0qHWRkHSod%2FtQdFTIyFR0AAAADAAAAAASwBRIAEgAiACwAAAEFFSEUHgMXIS4BNTQ%2BAjcBITIWFAYrARchNyMiJjQ2AyEyFh0BITU0NgJYASz%2B1CU%2FP00T%2Fe48PUJtj0r%2BogK8FR0dFQ2K%2FEqJDBUdHbMETBUd%2B1AdBLChizlmUT9IGVO9VFShdksE%2FH4dKh1kZB0qHf7UHRUyMhUdAAIAyAAAA%2BgFFAAPACkAAAAyFh0BHgEdASE1NDY3NTQDITIWFyMVMxUjFTMVIxUzFAYjISImNRE0NgIvUjsuNv5wNi5kAZA2XBqsyMjIyMh1U%2F5wU3V1BRQ7KU4aXDYyMjZcGk4p%2Fkc2LmRkZGRkU3V1UwGQU3UAAAMAZP%2F%2FBEwETAAPAC8AMwAAEyEyFhURFAYjISImNRE0NgMhMhYdARQGIyEXFhQGIi8BIQcGIiY0PwEhIiY9ATQ2BQchJ5YDhBUdHRX8fBUdHQQDtgoPDwr%2B5eANGiUNWP30Vw0mGg3g%2Ft8KDw8BqmQBRGQETB0V%2FgwVHR0VAfQVHf1EDwoyCg%2FgDSUbDVhYDRslDeAPCjIKD2RkZAAAAAAEAAAAAASwBEwAGQAjAC0ANwAAEyEyFh0BIzQmKwEiBhUjNCYrASIGFSM1NDYDITIWFREhETQ2ExUUBisBIiY9ASEVFAYrASImPQHIAyBTdWQ7KfopO2Q7KfopO2R1EQPoKTv7UDvxHRVkFR0D6B0VZBUdBEx1U8gpOzspKTs7KchTdf4MOyn%2B1AEsKTv%2BDDIVHR0VMjIVHR0VMgADAAEAAASpBKwADQARABsAAAkBFhQPASEBJjQ3ATYyCQMDITIWHQEhNTQ2AeACqh8fg%2F4f%2FfsgIAEnH1n%2BrAFWAS%2F%2Bq6IDIBUd%2FHwdBI39VR9ZH4MCBh9ZHwEoH%2F5u%2FqoBMAFV%2FBsdFTIyFR0AAAAAAgCPAAAEIQSwABcALwAAAQMuASMhIgYHAwYWMyEVFBYyNj0BMzI2AyE1NDY7ATU0NjsBETMRMzIWHQEzMhYVBCG9CCcV%2FnAVJwi9CBMVAnEdKh19FROo%2Fa0dFTIdFTDILxUdMhUdAocB%2BhMcHBP%2BBhMclhUdHRWWHP2MMhUdMhUdASz%2B1B0VMh0VAAAEAAAAAASwBLAADQAQAB8AIgAAASERFAYjIREBNTQ2MyEBIzUBIREUBiMhIiY1ETQ2MyEBIzUDhAEsDwr%2Bif7UDwoBdwEsyP2oASwPCv12Cg8PCgF3ASzIAyD9wQoPAk8BLFQKD%2F7UyP4M%2FcEKDw8KA7YKD%2F7UyAAC%2F5wAZAUUBEcARgBWAAABMzIeAhcWFxY2NzYnJjc%2BARYXFgcOASsBDgEPAQ4BKwEiJj8BBisBIicHDgErASImPwEmLwEuAT0BNDY7ATY3JyY2OwE2BSMiBh0BFBY7ATI2PQE0JgHkw0uOakkMEhEfQwoKGRMKBQ8XDCkCA1Y9Pgc4HCcDIhVkFRgDDDEqwxgpCwMiFWQVGAMaVCyfExwdFXwLLW8QBxXLdAFF%2BgoPDwr6Cg8PBEdBa4pJDgYKISAiJRsQCAYIDCw9P1c3fCbqFB0dFEYOCEAUHR0UnUplNQcmFTIVHVdPXw4TZV8PCjIKDw8KMgoPAAb%2FnP%2FmBRQEfgAJACQANAA8AFIAYgAAASU2Fh8BFgYPASUzMhYfASEyFh0BFAYHBQYmJyYjISImPQE0NhcjIgYdARQ7ATI2NTQmJyYEIgYUFjI2NAE3PgEeARceAT8BFxYGDwEGJi8BJjYlBwYfAR4BPwE2Jy4BJy4BAoEBpxMuDiAOAxCL%2FCtqQ0geZgM3FR0cE%2F0fFyIJKjr%2B1D5YWLlQExIqhhALIAsSAYBALS1ALf4PmBIgHhMQHC0aPzANITNQL3wpgigJASlmHyElDR0RPRMFAhQHCxADhPcICxAmDyoNeMgiNtQdFTIVJgeEBBQPQ1g%2ByD5YrBwVODMQEAtEERzJLUAtLUD%2B24ITChESEyMgAwWzPUkrRSgJL5cvfRxYGyYrDwkLNRAhFEgJDAQAAAAAAwBkAAAEOQSwAFEAYABvAAABMzIWHQEeARcWDgIPATIeBRUUDgUjFRQGKwEiJj0BIxUUBisBIiY9ASMiJj0BNDY7AREjIiY9ATQ2OwE1NDY7ATIWHQEzNTQ2AxUhMj4CNTc0LgMjARUhMj4CNTc0LgMjAnGWCg9PaAEBIC4uEBEGEjQwOiodFyI2LUAjGg8KlgoPZA8KlgoPrwoPDwpLSwoPDwqvDwqWCg9kD9cBBxwpEwsBAQsTKRz%2B%2BQFrHCkTCwEBCxMpHASwDwptIW1KLk0tHwYGAw8UKDJOLTtdPCoVCwJLCg8PCktLCg8PCksPCpYKDwJYDwqWCg9LCg8PCktLCg%2F%2B1MgVHR0LCgQOIhoW%2FnDIFR0dCwoEDiIaFgAAAwAEAAIEsASuABcAKQAsAAATITIWFREUBg8BDgEjISImJy4CNRE0NgQiDgQPARchNy4FAyMT1AMMVnokEhIdgVL9xFKCHAgYKHoCIIx9VkcrHQYGnAIwnAIIIClJVSGdwwSuelb%2BYDO3QkJXd3ZYHFrFMwGgVnqZFyYtLSUMDPPzBQ8sKDEj%2FsIBBQACAMgAAAOEBRQADwAZAAABMzIWFREUBiMhIiY1ETQ2ARUUBisBIiY9AQHblmesVCn%2BPilUrAFINhWWFTYFFKxn%2FgwpVFQpAfRnrPwY4RU2NhXhAAACAMgAAAOEBRQADwAZAAABMxQWMxEUBiMhIiY1ETQ2ARUUBisBIiY9AQHbYLOWVCn%2BPilUrAFINhWWFTYFFJaz%2FkIpVFQpAfRnrPwY4RU2NhXhAAACAAAAFAUOBBoAFAAaAAAJASUHFRcVJwc1NzU0Jj4CPwEnCQEFJTUFJQUO%2FYL%2Bhk5klpZkAQEBBQQvkwKCAVz%2Bov6iAV4BXgL%2F%2FuWqPOCWx5SVyJb6BA0GCgYDKEEBG%2F1ipqaTpaUAAAMAZAH0BLADIAAHAA8AFwAAEjIWFAYiJjQkMhYUBiImNCQyFhQGIiY0vHxYWHxYAeh8WFh8WAHofFhYfFgDIFh8WFh8WFh8WFh8WFh8WFh8AAAAAAMBkAAAArwETAAHAA8AFwAAADIWFAYiJjQSMhYUBiImNBIyFhQGIiY0Aeh8WFh8WFh8WFh8WFh8WFh8WARMWHxYWHz%2ByFh8WFh8%2FshYfFhYfAAAAAMAZABkBEwETAAPAB8ALwAAEyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2fQO2Cg8PCvxKCg8PCgO2Cg8PCvxKCg8PCgO2Cg8PCvxKCg8PBEwPCpYKDw8KlgoP%2FnAPCpYKDw8KlgoP%2FnAPCpYKDw8KlgoPAAAABAAAAAAEsASwAA8AHwAvADMAAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmBSEyFhURFAYjISImNRE0NhcVITUBXgH0ory7o%2F4Mpbm5Asv9qCk7OykCWCk7O%2F2xAfQVHR0V%2FgwVHR1HAZAEsLuj%2FgylubmlAfSlucg7Kf2oKTs7KQJYKTtkHRX%2B1BUdHRUBLBUdZMjIAAAAAAEAZABkBLAETAA7AAATITIWFAYrARUzMhYUBisBFTMyFhQGKwEVMzIWFAYjISImNDY7ATUjIiY0NjsBNSMiJjQ2OwE1IyImNDaWA%2BgVHR0VMjIVHR0VMjIVHR0VMjIVHR0V%2FBgVHR0VMjIVHR0VMjIVHR0VMjIVHR0ETB0qHcgdKh3IHSodyB0qHR0qHcgdKh3IHSodyB0qHQAAAAYBLAAFA%2BgEowAHAA0AEwAZAB8AKgAAAR4BBgcuATYBMhYVIiYlFAYjNDYBMhYVIiYlFAYjNDYDFRQGIiY9ARYzMgKKVz8%2FV1c%2FP%2F75fLB8sAK8sHyw%2FcB8sHywArywfLCwHSodKAMRBKNDsrJCQrKy%2FsCwfLB8fLB8sP7UsHywfHywfLD%2B05AVHR0VjgQAAAH%2FtQDIBJQDgQBCAAABNzYXAR4BBw4BKwEyFRQOBCsBIhE0NyYiBxYVECsBIi4DNTQzIyImJyY2NwE2HwEeAQ4BLwEHIScHBi4BNgLpRRkUASoLCAYFGg8IAQQNGyc%2FKZK4ChRUFQu4jjBJJxkHAgcPGQYGCAsBKhQaTBQVCiMUM7YDe7YsFCMKFgNuEwYS%2FtkLHw8OEw0dNkY4MhwBIBgXBAQYF%2F7gKjxTQyMNEw4PHwoBKBIHEwUjKBYGDMHBDAUWKCMAAAAAAgAAAAAEsASwACUAQwAAASM0LgUrAREUFh8BFSE1Mj4DNREjIg4FFSMRIQEjNC4DKwERFBYXMxUjNTI1ESMiDgMVIzUhBLAyCAsZEyYYGcgyGRn%2BcAQOIhoWyBkYJhMZCwgyA%2Bj9RBkIChgQEWQZDQzIMmQREBgKCBkB9AOEFSAVDggDAfyuFhkBAmRkAQUJFQ4DUgEDCA4VIBUBLP0SDxMKBQH%2BVwsNATIyGQGpAQUKEw%2BWAAAAAAMAAAAABEwErgAdACAAMAAAATUiJy4BLwEBIwEGBw4BDwEVITUiJj8BIRcWBiMVARsBARUUBiMhIiY9ATQ2MyEyFgPoGR4OFgUE%2Ft9F%2FtQSFQkfCwsBETE7EkUBJT0NISf%2B7IZ5AbEdFfwYFR0dFQPoFR0BLDIgDiIKCwLr%2FQ4jFQkTBQUyMisusKYiQTIBhwFW%2Fqr942QVHR0VZBUdHQADAAAAAASwBLAADwBHAEoAABMhMhYVERQGIyEiJjURNDYFIyIHAQYHBgcGHQEUFjMhMjY9ATQmIyInJj8BIRcWBwYjIgYdARQWMyEyNj0BNCYnIicmJyMBJhMjEzIETBUdHRX7tBUdHQJGRg0F%2FtUREhImDAsJAREIDAwINxAKCj8BCjkLEQwYCAwMCAE5CAwLCBEZGQ8B%2FuAFDsVnBLAdFfu0FR0dFQRMFR1SDP0PIBMSEAUNMggMDAgyCAwXDhmjmR8YEQwIMggMDAgyBwwBGRskAuwM%2FgUBCAAABAAAAAAEsASwAAMAEwAjACcAAAEhNSEFITIWFREUBiMhIiY1ETQ2KQEyFhURFAYjISImNRE0NhcRIREEsPtQBLD7ggGQFR0dFf5wFR0dAm0BkBUdHRX%2BcBUdHUcBLARMZMgdFfx8FR0dFQOEFR0dFf5wFR0dFQGQFR1k%2FtQBLAAEAAAAAASwBLAADwAfACMAJwAAEyEyFhURFAYjISImNRE0NgEhMhYVERQGIyEiJjURNDYXESEREyE1ITIBkBUdHRX%2BcBUdHQJtAZAVHR0V%2FnAVHR1HASzI%2B1AEsASwHRX8fBUdHRUDhBUd%2FgwdFf5wFR0dFQGQFR1k%2FtQBLP2oZAAAAAACAAAAZASwA%2BgAJwArAAATITIWFREzNTQ2MyEyFh0BMxUjFRQGIyEiJj0BIxEUBiMhIiY1ETQ2AREhETIBkBUdZB0VAZAVHWRkHRX%2BcBUdZB0V%2FnAVHR0CnwEsA%2BgdFf6ilhUdHRWWZJYVHR0Vlv6iFR0dFQMgFR3%2B1P7UASwAAAQAAAAABLAEsAADABMAFwAnAAAzIxEzFyEyFhURFAYjISImNRE0NhcRIREBITIWFREUBiMhIiY1ETQ2ZGRklgGQFR0dFf5wFR0dRwEs%2FqIDhBUdHRX8fBUdHQSwZB0V%2FnAVHR0VAZAVHWT%2B1AEs%2FgwdFf5wFR0dFQGQFR0AAAAAAgBkAAAETASwACcAKwAAATMyFhURFAYrARUhMhYVERQGIyEiJjURNDYzITUjIiY1ETQ2OwE1MwcRIRECWJYVHR0VlgHCFR0dFfx8FR0dFQFelhUdHRWWZMgBLARMHRX%2BcBUdZB0V%2FnAVHR0VAZAVHWQdFQGQFR1kyP7UASwAAAAEAAAAAASwBLAAAwATABcAJwAAISMRMwUhMhYVERQGIyEiJjURNDYXESERASEyFhURFAYjISImNRE0NgSwZGT9dgGQFR0dFf5wFR0dRwEs%2FK4DhBUdHRX8fBUdHQSwZB0V%2FnAVHR0VAZAVHWT%2B1AEs%2FgwdFf5wFR0dFQGQFR0AAAEBLAAwA28EgAAPAAAJAQYjIiY1ETQ2MzIXARYUA2H%2BEhcSDhAQDhIXAe4OAjX%2BEhcbGQPoGRsX%2FhIOKgAAAAABAUEAMgOEBH4ACwAACQE2FhURFAYnASY0AU8B7h0qKh3%2BEg4CewHuHREp%2FBgpER0B7g4qAAAAAAEAMgFBBH4DhAALAAATITIWBwEGIicBJjZkA%2BgpER3%2BEg4qDv4SHREDhCod%2FhIODgHuHSoAAAAAAQAyASwEfgNvAAsAAAkBFgYjISImNwE2MgJ7Ae4dESn8GCkRHQHuDioDYf4SHSoqHQHuDgAAAAACAAgAAASwBCgABgAKAAABFQE1LQE1ASE1IQK8%2FUwBnf5jBKj84AMgAuW2%2Fr3dwcHd%2B9jIAAAAAAIAAABkBLAEsAALADEAAAEjFTMVIREzNSM1IQEzND4FOwERFAYPARUhNSIuAzURMzIeBRUzESEEsMjI%2FtTIyAEs%2B1AyCAsZEyYYGWQyGRkBkAQOIhoWZBkYJhMZCwgy%2FOADhGRkASxkZP4MFSAVDggDAf3aFhkBAmRkAQUJFQ4CJgEDCA4VIBUBLAAAAgAAAAAETAPoACUAMQAAASM0LgUrAREUFh8BFSE1Mj4DNREjIg4FFSMRIQEjFTMVIREzNSM1IQMgMggLGRMmGBlkMhkZ%2FnAEDiIaFmQZGCYTGQsIMgMgASzIyP7UyMgBLAK8FSAVDggDAf3aFhkCAWRkAQUJFQ4CJgEDCA4VIBUBLPzgZGQBLGRkAAABAMgAZgNyBEoAEgAAATMyFgcJARYGKwEiJwEmNDcBNgK9oBAKDP4wAdAMChCgDQr%2BKQcHAdcKBEoWDP4w%2FjAMFgkB1wgUCAHXCQAAAQE%2BAGYD6ARKABIAAAEzMhcBFhQHAQYrASImNwkBJjYBU6ANCgHXBwf%2BKQoNoBAKDAHQ%2FjAMCgRKCf4pCBQI%2FikJFgwB0AHQDBYAAAEAZgDIBEoDcgASAAAAFh0BFAcBBiInASY9ATQ2FwkBBDQWCf4pCBQI%2FikJFgwB0AHQA3cKEKANCv4pBwcB1woNoBAKDP4wAdAAAAABAGYBPgRKA%2BgAEgAACQEWHQEUBicJAQYmPQE0NwE2MgJqAdcJFgz%2BMP4wDBYJAdcIFAPh%2FikKDaAQCgwB0P4wDAoQoA0KAdcHAAAAAgDZ%2F%2FkEPQSwAAUAOgAAARQGIzQ2BTMyFh8BNjc%2BAh4EBgcOBgcGIiYjIgYiJy4DLwEuAT4EHgEXJyY2A%2BiwfLD%2BVmQVJgdPBQsiKFAzRyorDwURAQQSFyozTSwNOkkLDkc3EDlfNyYHBw8GDyUqPjdGMR%2BTDA0EsHywfLDIHBPCAQIGBwcFDx81S21DBxlLR1xKQhEFBQcHGWt0bCQjP2hJNyATBwMGBcASGAAAAAACAMgAFQOEBLAAFgAaAAATITIWFREUBisBEQcGJjURIyImNRE0NhcVITX6AlgVHR0Vlv8TGpYVHR2rASwEsB0V%2FnAVHf4MsgkQFQKKHRUBkBUdZGRkAAAAAgDIABkETASwAA4AEgAAEyEyFhURBRElIREjETQ2ARU3NfoC7ic9%2FUQCWP1EZB8BDWQEsFEs%2FFt1A7Z9%2FBgEARc0%2FV1kFGQAAQAAAAECTW%2FDBF9fDzz1AB8EsAAAAADQdnOXAAAAANB2c5f%2FUf%2BcBdwFFAAAAAgAAgAAAAAAAAABAAAFFP%2BFAAAFFP9R%2FtQF3AABAAAAAAAAAAAAAAAAAAAAowG4ACgAAAAAAZAAAASwAAAEsABkBLAAAASwAAAEsABwAooAAAUUAAACigAABRQAAAGxAAABRQAAANgAAADYAAAAogAAAQQAAABIAAABBAAAAUUAAASwAGQEsAB7BLAAyASwAMgB9AAABLD%2F8gSwAAAEsAAABLD%2F8ASwAAAEsAAOBLAACQSwAGQEsP%2FTBLD%2F0wSwAAAEsAAABLAAAASwAAAEsAAABLAAJgSwAG4EsAAXBLAAFwSwABcEsABkBLAAGgSwAGQEsAAMBLAAZASwABcEsP%2BcBLAAZASwABcEsAAXBLAAAASwABcEsAAXBLAAFwSwAGQEsAAABLAAZASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAZASwAMgEsAAABLAAAASwADUEsABkBLAAyASw%2F7UEsAAhBLAAAASwAAAEsAAABLAAAASwAAAEsP%2BcBLAAAASwAAAEsAAABLAA2wSwABcEsAB1BLAAAASwAAAEsAAABLAACgSwAMgEsAAABLAAnQSwAMgEsADIBLAAyASwAAAEsP%2F%2BBLABLASwAGQEsACIBLABOwSwABcEsAAXBLAAFwSwABcEsAAXBLAAFwSwAAAEsAAXBLAAFwSwABcEsAAXBLAAAASwALcEsAC3BLAAAASwAAAEsABJBLAAFwSwAAAEsAAABLAAXQSw%2F9wEsP%2FcBLD%2FnwSwAGQEsAAABLAAAASwAAAEsABkBLD%2F%2FwSwAAAEsP9RBLAABgSwAAAEsAAABLABRQSwAAEEsAAABLD%2FnASwAEoEsAAUBLAAAASwAAAEsAAABLD%2FnASwAGEEsP%2F9BLAAFgSwABYEsAAWBLAAFgSwABgEsAAABMQAAASwAGQAAAAAAAD%2F2ABkADkAyAAAAScAZAAZABkAGQAZABkAGQAZAAAAAAAAAAAAAADZAAAAAAAOAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAMAZABkAAAAEAAAAAAAZP%2Bc%2F5z%2FnP%2Bc%2F5z%2FnP%2Bc%2F5wACQAJ%2F%2FL%2F8gBkAHkAJwBkAGQAAAAAAGT%2FogAAAAAAAAAAAAAAAADIAGQAAAABAI8AAP%2Bc%2F5wAZAAEAMgAyAAAAGQBkABkAAAAZAEs%2F7UAAAAAAAAAAAAAAAAAAABkAAABLAFBADIAMgAIAAAAAADIAT4AZgBmANkAyADIAAAAKgAqACoAKgCyAOgA6AFOAU4BTgFOAU4BTgFOAU4BTgFOAU4BTgFOAU4BpAIGAiICfgKGAqwC5ANGA24DjAPEBAgEMgRiBKIE3AVcBboGcgb0ByAHYgfKCB4IYgi%2BCTYJhAm2Cd4KKApMCpQK4gswC4oLygwIDFgNKg1eDbAODg5oDrQPKA%2BmD%2BYQEhBUEJAQqhEqEXYRthIKEjgSfBLAExoTdBPQFCoU1BU8FagVzBYEFjYWYBawFv4XUhemGAIYLhhqGJYYsBjgGP4ZKBloGZQZxBnaGe4aNhpoGrga9hteG7QcMhyUHOIdHB1EHWwdlB28HeYeLh52HsAfYh%2FSIEYgviEyIXYhuCJAIpYiuCMOIyIjOCN6I8Ij4CQCJDAkXiSWJOIlNCVgJbwmFCZ%2BJuYnUCe8J%2FgoNChwKKwpoCnMKiYqSiqEKworeiwILGgsuizsLRwtiC30LiguZi6iLtgvDi9GL34vsi%2F4MD4whDDSMRIxYDGuMegyJDJeMpoy3jMiMz4zaDO2NBg0YDSoNNI1LDWeNeg2PjZ8Ntw3GjdON5I31DgQOEI4hjjIOQo5SjmIOcw6HDpsOpo63jugO9w8GDxQPKI8%2BD0yPew%2BOj6MPtQ%2FKD9uP6o%2F%2BkBIQIBAxkECQX5CGEKoQu5DGENCQ3ZDoEPKRBBEYESuRPZFWkW2RgZGdEa0RvZHNkd2R7ZH9kgWSDJITkhqSIZIzEkSSThJXkmESapKAkouSlIAAQAAARcApwARAAAAAAACAAAAAQABAAAAQAAuAAAAAAAAABAAxgABAAAAAAATABIAAAADAAEECQAAAGoAEgADAAEECQABACgAfAADAAEECQACAA4ApAADAAEECQADAEwAsgADAAEECQAEADgA%2FgADAAEECQAFAHgBNgADAAEECQAGADYBrgADAAEECQAIABYB5AADAAEECQAJABYB%2BgADAAEECQALACQCEAADAAEECQAMACQCNAADAAEECQATACQCWAADAAEECQDIABYCfAADAAEECQDJADACkgADAAEECdkDABoCwnd3dy5nbHlwaGljb25zLmNvbQBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMQA0ACAAYgB5ACAASgBhAG4AIABLAG8AdgBhAHIAaQBrAC4AIABBAGwAbAAgAHIAaQBnAGgAdABzACAAcgBlAHMAZQByAHYAZQBkAC4ARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAFIAZQBnAHUAbABhAHIAMQAuADAAMAA5ADsAVQBLAFcATgA7AEcATABZAFAASABJAEMATwBOAFMASABhAGwAZgBsAGkAbgBnAHMALQBSAGUAZwB1AGwAYQByAEcATABZAFAASABJAEMATwBOAFMAIABIAGEAbABmAGwAaQBuAGcAcwAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAOQA7AFAAUwAgADAAMAAxAC4AMAAwADkAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA3ADAAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA1ADgAMwAyADkARwBMAFkAUABIAEkAQwBPAE4AUwBIAGEAbABmAGwAaQBuAGcAcwAtAFIAZQBnAHUAbABhAHIASgBhAG4AIABLAG8AdgBhAHIAaQBrAEoAYQBuACAASwBvAHYAYQByAGkAawB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQBXAGUAYgBmAG8AbgB0ACAAMQAuADAAVwBlAGQAIABPAGMAdAAgADIAOQAgADAANgA6ADMANgA6ADAANwAgADIAMAAxADQARgBvAG4AdAAgAFMAcQB1AGkAcgByAGUAbAAAAAIAAAAAAAD%2FtQAyAAAAAAAAAAAAAAAAAAAAAAAAAAABFwAAAQIBAwADAA0ADgEEAJYBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMA7wEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE%2BAT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG%2FAcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B3wHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB%2BgH7AfwB%2FQH%2BAf8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgZnbHlwaDEGZ2x5cGgyB3VuaTAwQTAHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMkYHdW5pMjA1RgRFdXJvB3VuaTIwQkQHdW5pMjMxQgd1bmkyNUZDB3VuaTI2MDEHdW5pMjZGQQd1bmkyNzA5B3VuaTI3MEYHdW5pRTAwMQd1bmlFMDAyB3VuaUUwMDMHdW5pRTAwNQd1bmlFMDA2B3VuaUUwMDcHdW5pRTAwOAd1bmlFMDA5B3VuaUUwMTAHdW5pRTAxMQd1bmlFMDEyB3VuaUUwMTMHdW5pRTAxNAd1bmlFMDE1B3VuaUUwMTYHdW5pRTAxNwd1bmlFMDE4B3VuaUUwMTkHdW5pRTAyMAd1bmlFMDIxB3VuaUUwMjIHdW5pRTAyMwd1bmlFMDI0B3VuaUUwMjUHdW5pRTAyNgd1bmlFMDI3B3VuaUUwMjgHdW5pRTAyOQd1bmlFMDMwB3VuaUUwMzEHdW5pRTAzMgd1bmlFMDMzB3VuaUUwMzQHdW5pRTAzNQd1bmlFMDM2B3VuaUUwMzcHdW5pRTAzOAd1bmlFMDM5B3VuaUUwNDAHdW5pRTA0MQd1bmlFMDQyB3VuaUUwNDMHdW5pRTA0NAd1bmlFMDQ1B3VuaUUwNDYHdW5pRTA0Nwd1bmlFMDQ4B3VuaUUwNDkHdW5pRTA1MAd1bmlFMDUxB3VuaUUwNTIHdW5pRTA1Mwd1bmlFMDU0B3VuaUUwNTUHdW5pRTA1Ngd1bmlFMDU3B3VuaUUwNTgHdW5pRTA1OQd1bmlFMDYwB3VuaUUwNjIHdW5pRTA2Mwd1bmlFMDY0B3VuaUUwNjUHdW5pRTA2Ngd1bmlFMDY3B3VuaUUwNjgHdW5pRTA2OQd1bmlFMDcwB3VuaUUwNzEHdW5pRTA3Mgd1bmlFMDczB3VuaUUwNzQHdW5pRTA3NQd1bmlFMDc2B3VuaUUwNzcHdW5pRTA3OAd1bmlFMDc5B3VuaUUwODAHdW5pRTA4MQd1bmlFMDgyB3VuaUUwODMHdW5pRTA4NAd1bmlFMDg1B3VuaUUwODYHdW5pRTA4Nwd1bmlFMDg4B3VuaUUwODkHdW5pRTA5MAd1bmlFMDkxB3VuaUUwOTIHdW5pRTA5Mwd1bmlFMDk0B3VuaUUwOTUHdW5pRTA5Ngd1bmlFMDk3B3VuaUUxMDEHdW5pRTEwMgd1bmlFMTAzB3VuaUUxMDQHdW5pRTEwNQd1bmlFMTA2B3VuaUUxMDcHdW5pRTEwOAd1bmlFMTA5B3VuaUUxMTAHdW5pRTExMQd1bmlFMTEyB3VuaUUxMTMHdW5pRTExNAd1bmlFMTE1B3VuaUUxMTYHdW5pRTExNwd1bmlFMTE4B3VuaUUxMTkHdW5pRTEyMAd1bmlFMTIxB3VuaUUxMjIHdW5pRTEyMwd1bmlFMTI0B3VuaUUxMjUHdW5pRTEyNgd1bmlFMTI3B3VuaUUxMjgHdW5pRTEyOQd1bmlFMTMwB3VuaUUxMzEHdW5pRTEzMgd1bmlFMTMzB3VuaUUxMzQHdW5pRTEzNQd1bmlFMTM2B3VuaUUxMzcHdW5pRTEzOAd1bmlFMTM5B3VuaUUxNDAHdW5pRTE0MQd1bmlFMTQyB3VuaUUxNDMHdW5pRTE0NAd1bmlFMTQ1B3VuaUUxNDYHdW5pRTE0OAd1bmlFMTQ5B3VuaUUxNTAHdW5pRTE1MQd1bmlFMTUyB3VuaUUxNTMHdW5pRTE1NAd1bmlFMTU1B3VuaUUxNTYHdW5pRTE1Nwd1bmlFMTU4B3VuaUUxNTkHdW5pRTE2MAd1bmlFMTYxB3VuaUUxNjIHdW5pRTE2Mwd1bmlFMTY0B3VuaUUxNjUHdW5pRTE2Ngd1bmlFMTY3B3VuaUUxNjgHdW5pRTE2OQd1bmlFMTcwB3VuaUUxNzEHdW5pRTE3Mgd1bmlFMTczB3VuaUUxNzQHdW5pRTE3NQd1bmlFMTc2B3VuaUUxNzcHdW5pRTE3OAd1bmlFMTc5B3VuaUUxODAHdW5pRTE4MQd1bmlFMTgyB3VuaUUxODMHdW5pRTE4NAd1bmlFMTg1B3VuaUUxODYHdW5pRTE4Nwd1bmlFMTg4B3VuaUUxODkHdW5pRTE5MAd1bmlFMTkxB3VuaUUxOTIHdW5pRTE5Mwd1bmlFMTk0B3VuaUUxOTUHdW5pRTE5Nwd1bmlFMTk4B3VuaUUxOTkHdW5pRTIwMAd1bmlFMjAxB3VuaUUyMDIHdW5pRTIwMwd1bmlFMjA0B3VuaUUyMDUHdW5pRTIwNgd1bmlFMjA5B3VuaUUyMTAHdW5pRTIxMQd1bmlFMjEyB3VuaUUyMTMHdW5pRTIxNAd1bmlFMjE1B3VuaUUyMTYHdW5pRTIxOAd1bmlFMjE5B3VuaUUyMjEHdW5pRTIyMwd1bmlFMjI0B3VuaUUyMjUHdW5pRTIyNgd1bmlFMjI3B3VuaUUyMzAHdW5pRTIzMQd1bmlFMjMyB3VuaUUyMzMHdW5pRTIzNAd1bmlFMjM1B3VuaUUyMzYHdW5pRTIzNwd1bmlFMjM4B3VuaUUyMzkHdW5pRTI0MAd1bmlFMjQxB3VuaUUyNDIHdW5pRTI0Mwd1bmlFMjQ0B3VuaUUyNDUHdW5pRTI0Ngd1bmlFMjQ3B3VuaUUyNDgHdW5pRTI0OQd1bmlFMjUwB3VuaUUyNTEHdW5pRTI1Mgd1bmlFMjUzB3VuaUUyNTQHdW5pRTI1NQd1bmlFMjU2B3VuaUUyNTcHdW5pRTI1OAd1bmlFMjU5B3VuaUUyNjAHdW5pRjhGRgZ1MUY1MTEGdTFGNkFBAAAAAAFUUMMXAAA%3D%29%20format%28%27truetype%27%29%2Curl%28data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI%2FPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE%2BPC9tZXRhZGF0YT4KPGRlZnM%2BCjxmb250IGlkPSJnbHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXIiIGhvcml6LWFkdi14PSIxMjAwIiA%2BCjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMjAwIiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTI0MCIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjUwMCIgLz4KPGdseXBoIGhvcml6LWFkdi14PSIwIiAvPgo8Z2x5cGggaG9yaXotYWR2LXg9IjQwMCIgLz4KPGdseXBoIHVuaWNvZGU9IiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSIqIiBkPSJNNjAwIDExMDBxMTUgMCAzNCAtMS41dDMwIC0zLjVsMTEgLTFxMTAgLTIgMTcuNSAtMTAuNXQ3LjUgLTE4LjV2LTIyNGwxNTggMTU4cTcgNyAxOCA4dDE5IC02bDEwNiAtMTA2cTcgLTggNiAtMTl0LTggLTE4bC0xNTggLTE1OGgyMjRxMTAgMCAxOC41IC03LjV0MTAuNSAtMTcuNXE2IC00MSA2IC03NXEwIC0xNSAtMS41IC0zNHQtMy41IC0zMGwtMSAtMTFxLTIgLTEwIC0xMC41IC0xNy41dC0xOC41IC03LjVoLTIyNGwxNTggLTE1OCBxNyAtNyA4IC0xOHQtNiAtMTlsLTEwNiAtMTA2cS04IC03IC0xOSAtNnQtMTggOGwtMTU4IDE1OHYtMjI0cTAgLTEwIC03LjUgLTE4LjV0LTE3LjUgLTEwLjVxLTQxIC02IC03NSAtNnEtMTUgMCAtMzQgMS41dC0zMCAzLjVsLTExIDFxLTEwIDIgLTE3LjUgMTAuNXQtNy41IDE4LjV2MjI0bC0xNTggLTE1OHEtNyAtNyAtMTggLTh0LTE5IDZsLTEwNiAxMDZxLTcgOCAtNiAxOXQ4IDE4bDE1OCAxNThoLTIyNHEtMTAgMCAtMTguNSA3LjUgdC0xMC41IDE3LjVxLTYgNDEgLTYgNzVxMCAxNSAxLjUgMzR0My41IDMwbDEgMTFxMiAxMCAxMC41IDE3LjV0MTguNSA3LjVoMjI0bC0xNTggMTU4cS03IDcgLTggMTh0NiAxOWwxMDYgMTA2cTggNyAxOSA2dDE4IC04bDE1OCAtMTU4djIyNHEwIDEwIDcuNSAxOC41dDE3LjUgMTAuNXE0MSA2IDc1IDZ6IiAvPgo8Z2x5cGggdW5pY29kZT0iKyIgZD0iTTQ1MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMzUwaDM1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zNTB2LTM1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYzNTBoLTM1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNSBoMzUwdjM1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4YTA7IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4YTU7IiBkPSJNODI1IDExMDBoMjUwcTEwIDAgMTIuNSAtNXQtNS41IC0xM2wtMzY0IC0zNjRxLTYgLTYgLTExIC0xOGgyNjhxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMjV2LTEwMGgyNzVxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMjV2LTE3NHEwIC0xMSAtNy41IC0xOC41dC0xOC41IC03LjVoLTE0OHEtMTEgMCAtMTguNSA3LjV0LTcuNSAxOC41djE3NCBoLTI3NXEtMTAgMCAtMTMgNnQzIDE0bDEyMCAxNjBxNiA4IDE4IDE0dDIyIDZoMTI1djEwMGgtMjc1cS0xMCAwIC0xMyA2dDMgMTRsMTIwIDE2MHE2IDggMTggMTR0MjIgNmgxMThxLTUgMTIgLTExIDE4bC0zNjQgMzY0cS04IDggLTUuNSAxM3QxMi41IDVoMjUwcTI1IDAgNDMgLTE4bDE2NCAtMTY0cTggLTggMTggLTh0MTggOGwxNjQgMTY0cTE4IDE4IDQzIDE4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDA7IiBob3Jpei1hZHYteD0iNjUwIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwMTsiIGhvcml6LWFkdi14PSIxMzAwIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwMjsiIGhvcml6LWFkdi14PSI2NTAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDAzOyIgaG9yaXotYWR2LXg9IjEzMDAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDA0OyIgaG9yaXotYWR2LXg9IjQzMyIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDU7IiBob3Jpei1hZHYteD0iMzI1IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwNjsiIGhvcml6LWFkdi14PSIyMTYiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDA3OyIgaG9yaXotYWR2LXg9IjIxNiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDg7IiBob3Jpei1hZHYteD0iMTYyIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwOTsiIGhvcml6LWFkdi14PSIyNjAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDBhOyIgaG9yaXotYWR2LXg9IjcyIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAyZjsiIGhvcml6LWFkdi14PSIyNjAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDVmOyIgaG9yaXotYWR2LXg9IjMyNSIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwYWM7IiBkPSJNNzQ0IDExOThxMjQyIDAgMzU0IC0xODlxNjAgLTEwNCA2NiAtMjA5aC0xODFxMCA0NSAtMTcuNSA4Mi41dC00My41IDYxLjV0LTU4IDQwLjV0LTYwLjUgMjR0LTUxLjUgNy41cS0xOSAwIC00MC41IC01LjV0LTQ5LjUgLTIwLjV0LTUzIC0zOHQtNDkgLTYyLjV0LTM5IC04OS41aDM3OWwtMTAwIC0xMDBoLTMwMHEtNiAtNTAgLTYgLTEwMGg0MDZsLTEwMCAtMTAwaC0zMDBxOSAtNzQgMzMgLTEzMnQ1Mi41IC05MXQ2MS41IC01NC41dDU5IC0yOSB0NDcgLTcuNXEyMiAwIDUwLjUgNy41dDYwLjUgMjQuNXQ1OCA0MXQ0My41IDYxdDE3LjUgODBoMTc0cS0zMCAtMTcxIC0xMjggLTI3OHEtMTA3IC0xMTcgLTI3NCAtMTE3cS0yMDYgMCAtMzI0IDE1OHEtMzYgNDggLTY5IDEzM3QtNDUgMjA0aC0yMTdsMTAwIDEwMGgxMTJxMSA0NyA2IDEwMGgtMjE4bDEwMCAxMDBoMTM0cTIwIDg3IDUxIDE1My41dDYyIDEwMy41cTExNyAxNDEgMjk3IDE0MXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMGJkOyIgZD0iTTQyOCAxMjAwaDM1MHE2NyAwIDEyMCAtMTN0ODYgLTMxdDU3IC00OS41dDM1IC01Ni41dDE3IC02NC41dDYuNSAtNjAuNXQwLjUgLTU3di0xNi41di0xNi41cTAgLTM2IC0wLjUgLTU3dC02LjUgLTYxdC0xNyAtNjV0LTM1IC01N3QtNTcgLTUwLjV0LTg2IC0zMS41dC0xMjAgLTEzaC0xNzhsLTIgLTEwMGgyODhxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMzh2LTE3NXEwIC0xMSAtNS41IC0xOCB0LTE1LjUgLTdoLTE0OXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE3NWgtMjY3cS0xMCAwIC0xMyA2dDMgMTRsMTIwIDE2MHE2IDggMTggMTR0MjIgNmgxMTd2MTAwaC0yNjdxLTEwIDAgLTEzIDZ0MyAxNGwxMjAgMTYwcTYgOCAxOCAxNHQyMiA2aDExN3Y0NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNjAwIDEwMDB2LTMwMGgyMDNxNjQgMCA4Ni41IDMzdDIyLjUgMTE5cTAgODQgLTIyLjUgMTE2dC04Ni41IDMyaC0yMDN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjIxMjsiIGQ9Ik0yNTAgNzAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjMxYjsiIGQ9Ik0xMDAwIDEyMDB2LTE1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTEwMHEwIC05MSAtNDkuNSAtMTY1LjV0LTEzMC41IC0xMDkuNXE4MSAtMzUgMTMwLjUgLTEwOS41dDQ5LjUgLTE2NS41di0xNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTE1MGgtODAwdjE1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2MTUwcTAgOTEgNDkuNSAxNjUuNXQxMzAuNSAxMDkuNXEtODEgMzUgLTEzMC41IDEwOS41IHQtNDkuNSAxNjUuNXYxMDBoLTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxNTBoODAwek00MDAgMTAwMHYtMTAwcTAgLTYwIDMyLjUgLTEwOS41dDg3LjUgLTczLjVxMjggLTEyIDQ0IC0zN3QxNiAtNTV0LTE2IC01NXQtNDQgLTM3cS01NSAtMjQgLTg3LjUgLTczLjV0LTMyLjUgLTEwOS41di0xNTBoNDAwdjE1MHEwIDYwIC0zMi41IDEwOS41dC04Ny41IDczLjVxLTI4IDEyIC00NCAzN3QtMTYgNTV0MTYgNTV0NDQgMzcgcTU1IDI0IDg3LjUgNzMuNXQzMi41IDEwOS41djEwMGgtNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDI1ZmM7IiBob3Jpei1hZHYteD0iNTAwIiBkPSJNMCAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDI2MDE7IiBkPSJNNTAzIDEwODlxMTEwIDAgMjAwLjUgLTU5LjV0MTM0LjUgLTE1Ni41cTQ0IDE0IDkwIDE0cTEyMCAwIDIwNSAtODYuNXQ4NSAtMjA2LjVxMCAtMTIxIC04NSAtMjA3LjV0LTIwNSAtODYuNWgtNzUwcS03OSAwIC0xMzUuNSA1N3QtNTYuNSAxMzdxMCA2OSA0Mi41IDEyMi41dDEwOC41IDY3LjVxLTIgMTIgLTIgMzdxMCAxNTMgMTA4IDI2MC41dDI2MCAxMDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyNmZhOyIgZD0iTTc3NCAxMTkzLjVxMTYgLTkuNSAyMC41IC0yN3QtNS41IC0zMy41bC0xMzYgLTE4N2w0NjcgLTc0NmgzMHEyMCAwIDM1IC0xOC41dDE1IC0zOS41di00MmgtMTIwMHY0MnEwIDIxIDE1IDM5LjV0MzUgMTguNWgzMGw0NjggNzQ2bC0xMzUgMTgzcS0xMCAxNiAtNS41IDM0dDIwLjUgMjh0MzQgNS41dDI4IC0yMC41bDExMSAtMTQ4bDExMiAxNTBxOSAxNiAyNyAyMC41dDM0IC01ek02MDAgMjAwaDM3N2wtMTgyIDExMmwtMTk1IDUzNHYtNjQ2eiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyNzA5OyIgZD0iTTI1IDExMDBoMTE1MHExMCAwIDEyLjUgLTV0LTUuNSAtMTNsLTU2NCAtNTY3cS04IC04IC0xOCAtOHQtMTggOGwtNTY0IDU2N3EtOCA4IC01LjUgMTN0MTIuNSA1ek0xOCA4ODJsMjY0IC0yNjRxOCAtOCA4IC0xOHQtOCAtMThsLTI2NCAtMjY0cS04IC04IC0xMyAtNS41dC01IDEyLjV2NTUwcTAgMTAgNSAxMi41dDEzIC01LjV6TTkxOCA2MThsMjY0IDI2NHE4IDggMTMgNS41dDUgLTEyLjV2LTU1MHEwIC0xMCAtNSAtMTIuNXQtMTMgNS41IGwtMjY0IDI2NHEtOCA4IC04IDE4dDggMTh6TTgxOCA0ODJsMzY0IC0zNjRxOCAtOCA1LjUgLTEzdC0xMi41IC01aC0xMTUwcS0xMCAwIC0xMi41IDV0NS41IDEzbDM2NCAzNjRxOCA4IDE4IDh0MTggLThsMTY0IC0xNjRxOCAtOCAxOCAtOHQxOCA4bDE2NCAxNjRxOCA4IDE4IDh0MTggLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjcwZjsiIGQ9Ik0xMDExIDEyMTBxMTkgMCAzMyAtMTNsMTUzIC0xNTNxMTMgLTE0IDEzIC0zM3QtMTMgLTMzbC05OSAtOTJsLTIxNCAyMTRsOTUgOTZxMTMgMTQgMzIgMTR6TTEwMTMgODAwbC02MTUgLTYxNGwtMjE0IDIxNGw2MTQgNjE0ek0zMTcgOTZsLTMzMyAtMTEybDExMCAzMzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMTsiIGQ9Ik03MDAgNjUwdi01NTBoMjUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtODAwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgyNTB2NTUwbC01MDAgNTUwaDEyMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMjsiIGQ9Ik0zNjggMTAxN2w2NDUgMTYzcTM5IDE1IDYzIDB0MjQgLTQ5di04MzFxMCAtNTUgLTQxLjUgLTk1LjV0LTExMS41IC02My41cS03OSAtMjUgLTE0NyAtNC41dC04NiA3NXQyNS41IDExMS41dDEyMi41IDgycTcyIDI0IDEzOCA4djUyMWwtNjAwIC0xNTV2LTYwNnEwIC00MiAtNDQgLTkwdC0xMDkgLTY5cS03OSAtMjYgLTE0NyAtNS41dC04NiA3NS41dDI1LjUgMTExLjV0MTIyLjUgODIuNXE3MiAyNCAxMzggN3Y2MzlxMCAzOCAxNC41IDU5IHQ1My41IDM0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDM7IiBkPSJNNTAwIDExOTFxMTAwIDAgMTkxIC0zOXQxNTYuNSAtMTA0LjV0MTA0LjUgLTE1Ni41dDM5IC0xOTFsLTEgLTJsMSAtNXEwIC0xNDEgLTc4IC0yNjJsMjc1IC0yNzRxMjMgLTI2IDIyLjUgLTQ0LjV0LTIyLjUgLTQyLjVsLTU5IC01OHEtMjYgLTIwIC00Ni41IC0yMHQtMzkuNSAyMGwtMjc1IDI3NHEtMTE5IC03NyAtMjYxIC03N2wtNSAxbC0yIC0xcS0xMDAgMCAtMTkxIDM5dC0xNTYuNSAxMDQuNXQtMTA0LjUgMTU2LjV0LTM5IDE5MSB0MzkgMTkxdDEwNC41IDE1Ni41dDE1Ni41IDEwNC41dDE5MSAzOXpNNTAwIDEwMjJxLTg4IDAgLTE2MiAtNDN0LTExNyAtMTE3dC00MyAtMTYydDQzIC0xNjJ0MTE3IC0xMTd0MTYyIC00M3QxNjIgNDN0MTE3IDExN3Q0MyAxNjJ0LTQzIDE2MnQtMTE3IDExN3QtMTYyIDQzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDU7IiBkPSJNNjQ5IDk0OXE0OCA2OCAxMDkuNSAxMDR0MTIxLjUgMzguNXQxMTguNSAtMjB0MTAyLjUgLTY0dDcxIC0xMDAuNXQyNyAtMTIzcTAgLTU3IC0zMy41IC0xMTcuNXQtOTQgLTEyNC41dC0xMjYuNSAtMTI3LjV0LTE1MCAtMTUyLjV0LTE0NiAtMTc0cS02MiA4NSAtMTQ1LjUgMTc0dC0xNTAgMTUyLjV0LTEyNi41IDEyNy41dC05My41IDEyNC41dC0zMy41IDExNy41cTAgNjQgMjggMTIzdDczIDEwMC41dDEwNCA2NHQxMTkgMjAgdDEyMC41IC0zOC41dDEwNC41IC0xMDR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNjsiIGQ9Ik00MDcgODAwbDEzMSAzNTNxNyAxOSAxNy41IDE5dDE3LjUgLTE5bDEyOSAtMzUzaDQyMXEyMSAwIDI0IC04LjV0LTE0IC0yMC41bC0zNDIgLTI0OWwxMzAgLTQwMXE3IC0yMCAtMC41IC0yNS41dC0yNC41IDYuNWwtMzQzIDI0NmwtMzQyIC0yNDdxLTE3IC0xMiAtMjQuNSAtNi41dC0wLjUgMjUuNWwxMzAgNDAwbC0zNDcgMjUxcS0xNyAxMiAtMTQgMjAuNXQyMyA4LjVoNDI5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDc7IiBkPSJNNDA3IDgwMGwxMzEgMzUzcTcgMTkgMTcuNSAxOXQxNy41IC0xOWwxMjkgLTM1M2g0MjFxMjEgMCAyNCAtOC41dC0xNCAtMjAuNWwtMzQyIC0yNDlsMTMwIC00MDFxNyAtMjAgLTAuNSAtMjUuNXQtMjQuNSA2LjVsLTM0MyAyNDZsLTM0MiAtMjQ3cS0xNyAtMTIgLTI0LjUgLTYuNXQtMC41IDI1LjVsMTMwIDQwMGwtMzQ3IDI1MXEtMTcgMTIgLTE0IDIwLjV0MjMgOC41aDQyOXpNNDc3IDcwMGgtMjQwbDE5NyAtMTQybC03NCAtMjI2IGwxOTMgMTM5bDE5NSAtMTQwbC03NCAyMjlsMTkyIDE0MGgtMjM0bC03OCAyMTF6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwODsiIGQ9Ik02MDAgMTIwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTI1MHEwIC00NiAtMzEgLTk4dC02OSAtNTJ2LTc1cTAgLTEwIDYgLTIxLjV0MTUgLTE3LjVsMzU4IC0yMzBxOSAtNSAxNSAtMTYuNXQ2IC0yMS41di05M3EwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTExNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5M3EwIDEwIDYgMjEuNXQxNSAxNi41bDM1OCAyMzBxOSA2IDE1IDE3LjV0NiAyMS41djc1cS0zOCAwIC02OSA1MiB0LTMxIDk4djI1MHEwIDEyNCA4OCAyMTJ0MjEyIDg4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDk7IiBkPSJNMjUgMTEwMGgxMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTA1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTExNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxMDUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEwMCAxMDAwdi0xMDBoMTAwdjEwMGgtMTAwek04NzUgMTAwMGgtNTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMzUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoNTUwIHExMCAwIDE3LjUgNy41dDcuNSAxNy41djM1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6TTEwMDAgMTAwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwIDgwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwMCA4MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMDAgNjAwdi0xMDBoMTAwdjEwMGgtMTAwek04NzUgNTAwaC01NTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di0zNTBxMCAtMTAgNy41IC0xNy41IHQxNy41IC03LjVoNTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MzUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXpNMTAwIDQwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCAyMDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTA7IiBkPSJNNTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek02NTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCA1MDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMTsiIGQ9Ik01MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTEwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNODUwIDcwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAzMDBoMjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTg1MCAzMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41IHQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMjsiIGQ9Ik01MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAxMTAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC03MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNDUwIDcwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAzMDBoNzAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC03MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMzsiIGQ9Ik00NjUgNDc3bDU3MSA1NzFxOCA4IDE4IDh0MTcgLThsMTc3IC0xNzdxOCAtNyA4IC0xN3QtOCAtMThsLTc4MyAtNzg0cS03IC04IC0xNy41IC04dC0xNy41IDhsLTM4NCAzODRxLTggOCAtOCAxOHQ4IDE3bDE3NyAxNzdxNyA4IDE3IDh0MTggLThsMTcxIC0xNzFxNyAtNyAxOCAtN3QxOCA3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTQ7IiBkPSJNOTA0IDEwODNsMTc4IC0xNzlxOCAtOCA4IC0xOC41dC04IC0xNy41bC0yNjcgLTI2OGwyNjcgLTI2OHE4IC03IDggLTE3LjV0LTggLTE4LjVsLTE3OCAtMTc4cS04IC04IC0xOC41IC04dC0xNy41IDhsLTI2OCAyNjdsLTI2OCAtMjY3cS03IC04IC0xNy41IC04dC0xOC41IDhsLTE3OCAxNzhxLTggOCAtOCAxOC41dDggMTcuNWwyNjcgMjY4bC0yNjcgMjY4cS04IDcgLTggMTcuNXQ4IDE4LjVsMTc4IDE3OHE4IDggMTguNSA4dDE3LjUgLTggbDI2OCAtMjY3bDI2OCAyNjhxNyA3IDE3LjUgN3QxOC41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTU7IiBkPSJNNTA3IDExNzdxOTggMCAxODcuNSAtMzguNXQxNTQuNSAtMTAzLjV0MTAzLjUgLTE1NC41dDM4LjUgLTE4Ny41cTAgLTE0MSAtNzggLTI2MmwzMDAgLTI5OXE4IC04IDggLTE4LjV0LTggLTE4LjVsLTEwOSAtMTA4cS03IC04IC0xNy41IC04dC0xOC41IDhsLTMwMCAyOTlxLTExOSAtNzcgLTI2MSAtNzdxLTk4IDAgLTE4OCAzOC41dC0xNTQuNSAxMDN0LTEwMyAxNTQuNXQtMzguNSAxODh0MzguNSAxODcuNXQxMDMgMTU0LjUgdDE1NC41IDEwMy41dDE4OCAzOC41ek01MDYuNSAxMDIzcS04OS41IDAgLTE2NS41IC00NHQtMTIwIC0xMjAuNXQtNDQgLTE2NnQ0NCAtMTY1LjV0MTIwIC0xMjB0MTY1LjUgLTQ0dDE2NiA0NHQxMjAuNSAxMjB0NDQgMTY1LjV0LTQ0IDE2NnQtMTIwLjUgMTIwLjV0LTE2NiA0NHpNNDI1IDkwMGgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di03NWg3NXExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41IHQtMTcuNSAtNy41aC03NXYtNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY3NWgtNzVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWg3NXY3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTY7IiBkPSJNNTA3IDExNzdxOTggMCAxODcuNSAtMzguNXQxNTQuNSAtMTAzLjV0MTAzLjUgLTE1NC41dDM4LjUgLTE4Ny41cTAgLTE0MSAtNzggLTI2MmwzMDAgLTI5OXE4IC04IDggLTE4LjV0LTggLTE4LjVsLTEwOSAtMTA4cS03IC04IC0xNy41IC04dC0xOC41IDhsLTMwMCAyOTlxLTExOSAtNzcgLTI2MSAtNzdxLTk4IDAgLTE4OCAzOC41dC0xNTQuNSAxMDN0LTEwMyAxNTQuNXQtMzguNSAxODh0MzguNSAxODcuNXQxMDMgMTU0LjUgdDE1NC41IDEwMy41dDE4OCAzOC41ek01MDYuNSAxMDIzcS04OS41IDAgLTE2NS41IC00NHQtMTIwIC0xMjAuNXQtNDQgLTE2NnQ0NCAtMTY1LjV0MTIwIC0xMjB0MTY1LjUgLTQ0dDE2NiA0NHQxMjAuNSAxMjB0NDQgMTY1LjV0LTQ0IDE2NnQtMTIwLjUgMTIwLjV0LTE2NiA0NHpNMzI1IDgwMGgzNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0zNTBxLTEwIDAgLTE3LjUgNy41IHQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNzsiIGQ9Ik01NTAgMTIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04MDAgOTc1djE2NnExNjcgLTYyIDI3MiAtMjA5LjV0MTA1IC0zMzEuNXEwIC0xMTcgLTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNSB0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHEwIDE4NCAxMDUgMzMxLjV0MjcyIDIwOS41di0xNjZxLTEwMyAtNTUgLTE2NSAtMTU1dC02MiAtMjIwcTAgLTExNiA1NyAtMjE0LjV0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXEwIDEyMCAtNjIgMjIwdC0xNjUgMTU1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTg7IiBkPSJNMTAyNSAxMjAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTExNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxMTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTcyNSA4MDBoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NzUwIHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek00MjUgNTAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTQ1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djQ1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek0xMjUgMzAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTI1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41IHYyNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDE5OyIgZD0iTTYwMCAxMTc0cTMzIDAgNzQgLTVsMzggLTE1Mmw1IC0xcTQ5IC0xNCA5NCAtMzlsNSAtMmwxMzQgODBxNjEgLTQ4IDEwNCAtMTA1bC04MCAtMTM0bDMgLTVxMjUgLTQ0IDM5IC05M2wxIC02bDE1MiAtMzhxNSAtNDMgNSAtNzNxMCAtMzQgLTUgLTc0bC0xNTIgLTM4bC0xIC02cS0xNSAtNDkgLTM5IC05M2wtMyAtNWw4MCAtMTM0cS00OCAtNjEgLTEwNCAtMTA1bC0xMzQgODFsLTUgLTNxLTQ0IC0yNSAtOTQgLTM5bC01IC0ybC0zOCAtMTUxIHEtNDMgLTUgLTc0IC01cS0zMyAwIC03NCA1bC0zOCAxNTFsLTUgMnEtNDkgMTQgLTk0IDM5bC01IDNsLTEzNCAtODFxLTYwIDQ4IC0xMDQgMTA1bDgwIDEzNGwtMyA1cS0yNSA0NSAtMzggOTNsLTIgNmwtMTUxIDM4cS02IDQyIC02IDc0cTAgMzMgNiA3M2wxNTEgMzhsMiA2cTEzIDQ4IDM4IDkzbDMgNWwtODAgMTM0cTQ3IDYxIDEwNSAxMDVsMTMzIC04MGw1IDJxNDUgMjUgOTQgMzlsNSAxbDM4IDE1MnE0MyA1IDc0IDV6TTYwMCA4MTUgcS04OSAwIC0xNTIgLTYzdC02MyAtMTUxLjV0NjMgLTE1MS41dDE1MiAtNjN0MTUyIDYzdDYzIDE1MS41dC02MyAxNTEuNXQtMTUyIDYzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMjA7IiBkPSJNNTAwIDEzMDBoMzAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di0xMDBoMjc1cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzVoLTExMDB2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNzV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNNTAwIDEyMDB2LTEwMGgzMDB2MTAwaC0zMDB6TTExMDAgOTAwdi04MDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTcwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjUgdjgwMGg5MDB6TTMwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTUwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTcwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTkwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMTsiIGQ9Ik0xOCA2MThsNjIwIDYwOHE4IDcgMTguNSA3dDE3LjUgLTdsNjA4IC02MDhxOCAtOCA1LjUgLTEzdC0xMi41IC01aC0xNzV2LTU3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM3NWgtMzAwdi0zNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1NzVoLTE3NXEtMTAgMCAtMTIuNSA1dDUuNSAxM3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDIyOyIgZD0iTTYwMCAxMjAwdi00MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDMwMHYtNjUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djExMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ1MHpNMTAwMCA4MDBoLTI1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMjM7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTYwMCAxMDI3cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjUgdDE1NS41IC0xNTUuNXQyMTQuNSAtNTd0MjE0LjUgNTd0MTU1LjUgMTU1LjV0NTcgMjE0LjV0LTU3IDIxNC41dC0xNTUuNSAxNTUuNXQtMjE0LjUgNTd6TTUyNSA5MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0yNzVoMTc1cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI0OyIgZD0iTTEzMDAgMGgtNTM4bC00MSA0MDBoLTI0MmwtNDEgLTQwMGgtNTM4bDQzMSAxMjAwaDIwOWwtMjEgLTMwMGgxNjJsLTIwIDMwMGgyMDh6TTUxNSA4MDBsLTI3IC0zMDBoMjI0bC0yNyAzMDBoLTE3MHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI1OyIgZD0iTTU1MCAxMjAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDUwaDE5MXEyMCAwIDI1LjUgLTExLjV0LTcuNSAtMjcuNWwtMzI3IC00MDBxLTEzIC0xNiAtMzIgLTE2dC0zMiAxNmwtMzI3IDQwMHEtMTMgMTYgLTcuNSAyNy41dDI1LjUgMTEuNWgxOTF2NDUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTEyNSA0MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0zNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41IGgtMTA1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTc1aDkwMHYxNzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI2OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek01MjUgOTAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTI3NWgxMzdxMjEgMCAyNiAtMTEuNXQtOCAtMjcuNWwtMjIzIC0yNzVxLTEzIC0xNiAtMzIgLTE2dC0zMiAxNmwtMjIzIDI3NXEtMTMgMTYgLTggMjcuNXQyNiAxMS41aDEzN3YyNzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNzsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNjAwIDEwMjdxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41dDU3IC0yMTQuNSB0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXQtNTcgMjE0LjV0LTE1NS41IDE1NS41dC0yMTQuNSA1N3pNNjMyIDkxNGwyMjMgLTI3NXExMyAtMTYgOCAtMjcuNXQtMjYgLTExLjVoLTEzN3YtMjc1cTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2Mjc1aC0xMzdxLTIxIDAgLTI2IDExLjV0OCAyNy41bDIyMyAyNzVxMTMgMTYgMzIgMTYgdDMyIC0xNnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI4OyIgZD0iTTIyNSAxMjAwaDc1MHExMCAwIDE5LjUgLTd0MTIuNSAtMTdsMTg2IC02NTJxNyAtMjQgNyAtNDl2LTQyNXEwIC0xMiAtNCAtMjd0LTkgLTE3cS0xMiAtNiAtMzcgLTZoLTExMDBxLTEyIDAgLTI3IDR0LTE3IDhxLTYgMTMgLTYgMzhsMSA0MjVxMCAyNSA3IDQ5bDE4NSA2NTJxMyAxMCAxMi41IDE3dDE5LjUgN3pNODc4IDEwMDBoLTU1NnEtMTAgMCAtMTkgLTd0LTExIC0xOGwtODcgLTQ1MHEtMiAtMTEgNCAtMTh0MTYgLTdoMTUwIHExMCAwIDE5LjUgLTd0MTEuNSAtMTdsMzggLTE1MnEyIC0xMCAxMS41IC0xN3QxOS41IC03aDI1MHExMCAwIDE5LjUgN3QxMS41IDE3bDM4IDE1MnEyIDEwIDExLjUgMTd0MTkuNSA3aDE1MHExMCAwIDE2IDd0NCAxOGwtODcgNDUwcS0yIDExIC0xMSAxOHQtMTkgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI5OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek01NDAgODIwbDI1MyAtMTkwcTE3IC0xMiAxNyAtMzB0LTE3IC0zMGwtMjUzIC0xOTBxLTE2IC0xMiAtMjggLTYuNXQtMTIgMjYuNXY0MDBxMCAyMSAxMiAyNi41dDI4IC02LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMDsiIGQ9Ik05NDcgMTA2MGwxMzUgMTM1cTcgNyAxMi41IDV0NS41IC0xM3YtMzYycTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMzYycS0xMSAwIC0xMyA1LjV0NSAxMi41bDEzMyAxMzNxLTEwOSA3NiAtMjM4IDc2cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjV0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNWgxNTBxMCAtMTE3IC00NS41IC0yMjQgdC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXExOTIgMCAzNDcgLTExN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDMxOyIgZD0iTTk0NyAxMDYwbDEzNSAxMzVxNyA3IDEyLjUgNXQ1LjUgLTEzdi0zNjFxMCAtMTEgLTcuNSAtMTguNXQtMTguNSAtNy41aC0zNjFxLTExIDAgLTEzIDUuNXQ1IDEyLjVsMTM0IDEzNHEtMTEwIDc1IC0yMzkgNzVxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41aC0xNTBxMCAxMTcgNDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXExOTIgMCAzNDcgLTExN3pNMTAyNyA2MDBoMTUwIHEwIC0xMTcgLTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41cS0xOTIgMCAtMzQ4IDExOGwtMTM0IC0xMzRxLTcgLTggLTEyLjUgLTUuNXQtNS41IDEyLjV2MzYwcTAgMTEgNy41IDE4LjV0MTguNSA3LjVoMzYwcTEwIDAgMTIuNSAtNS41dC01LjUgLTEyLjVsLTEzMyAtMTMzcTExMCAtNzYgMjQwIC03NnExMTYgMCAyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDMyOyIgZD0iTTEyNSAxMjAwaDEwNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTA1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djExNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMTA3NSAxMDAwaC04NTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di04NTBxMCAtMTAgNy41IC0xNy41dDE3LjUgLTcuNWg4NTBxMTAgMCAxNy41IDcuNXQ3LjUgMTcuNXY4NTAgcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXpNMzI1IDkwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01MjUgOTAwaDQ1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNDUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTAgcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTMyNSA3MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNTI1IDcwMGg0NTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTQ1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwIHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek0zMjUgNTAwaDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTUyNSA1MDBoNDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC00NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMzI1IDMwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01MjUgMzAwaDQ1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNDUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTAgcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMzsiIGQ9Ik05MDAgODAwdjIwMHEwIDgzIC01OC41IDE0MS41dC0xNDEuNSA1OC41aC0zMDBxLTgyIDAgLTE0MSAtNTl0LTU5IC0xNDF2LTIwMGgtMTAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di02MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDkwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2NjAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41aC0xMDB6TTQwMCA4MDB2MTUwcTAgMjEgMTUgMzUuNXQzNSAxNC41aDIwMCBxMjAgMCAzNSAtMTQuNXQxNSAtMzUuNXYtMTUwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNDsiIGQ9Ik0xMjUgMTEwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTEwNzVoLTEwMHYxMDc1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEwNzUgMTA1MnE0IDAgOSAtMnExNiAtNiAxNiAtMjN2LTQyMXEwIC02IC0zIC0xMnEtMzMgLTU5IC02Ni41IC05OXQtNjUuNSAtNTh0LTU2LjUgLTI0LjV0LTUyLjUgLTYuNXEtMjYgMCAtNTcuNSA2LjV0LTUyLjUgMTMuNXQtNjAgMjFxLTQxIDE1IC02MyAyMi41dC01Ny41IDE1dC02NS41IDcuNSBxLTg1IDAgLTE2MCAtNTdxLTcgLTUgLTE1IC01cS02IDAgLTExIDNxLTE0IDcgLTE0IDIydjQzOHEyMiA1NSA4MiA5OC41dDExOSA0Ni41cTIzIDIgNDMgMC41dDQzIC03dDMyLjUgLTguNXQzOCAtMTN0MzIuNSAtMTFxNDEgLTE0IDYzLjUgLTIxdDU3IC0xNHQ2My41IC03cTEwMyAwIDE4MyA4N3E3IDggMTggOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDM1OyIgZD0iTTYwMCAxMTc1cTExNiAwIDIyNyAtNDkuNXQxOTIuNSAtMTMxdDEzMSAtMTkyLjV0NDkuNSAtMjI3di0zMDBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djMwMHEwIDEyNyAtNzAuNSAyMzEuNXQtMTg0LjUgMTYxLjV0LTI0NSA1N3QtMjQ1IC01N3QtMTg0LjUgLTE2MS41dC03MC41IC0yMzEuNXYtMzAwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTAgcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MzAwcTAgMTE2IDQ5LjUgMjI3dDEzMSAxOTIuNXQxOTIuNSAxMzF0MjI3IDQ5LjV6TTIyMCA1MDBoMTYwcTggMCAxNCAtNnQ2IC0xNHYtNDYwcTAgLTggLTYgLTE0dC0xNCAtNmgtMTYwcS04IDAgLTE0IDZ0LTYgMTR2NDYwcTAgOCA2IDE0dDE0IDZ6TTgyMCA1MDBoMTYwcTggMCAxNCAtNnQ2IC0xNHYtNDYwcTAgLTggLTYgLTE0dC0xNCAtNmgtMTYwcS04IDAgLTE0IDZ0LTYgMTR2NDYwIHEwIDggNiAxNHQxNCA2eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMzY7IiBkPSJNMzIxIDgxNGwyNTggMTcycTkgNiAxNSAyLjV0NiAtMTMuNXYtNzUwcTAgLTEwIC02IC0xMy41dC0xNSAyLjVsLTI1OCAxNzJxLTIxIDE0IC00NiAxNGgtMjUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MzUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMjUwcTI1IDAgNDYgMTR6TTkwMCA2NjhsMTIwIDEyMHE3IDcgMTcgN3QxNyAtN2wzNCAtMzRxNyAtNyA3IC0xN3QtNyAtMTdsLTEyMCAtMTIwbDEyMCAtMTIwcTcgLTcgNyAtMTcgdC03IC0xN2wtMzQgLTM0cS03IC03IC0xNyAtN3QtMTcgN2wtMTIwIDExOWwtMTIwIC0xMTlxLTcgLTcgLTE3IC03dC0xNyA3bC0zNCAzNHEtNyA3IC03IDE3dDcgMTdsMTE5IDEyMGwtMTE5IDEyMHEtNyA3IC03IDE3dDcgMTdsMzQgMzRxNyA4IDE3IDh0MTcgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNzsiIGQ9Ik0zMjEgODE0bDI1OCAxNzJxOSA2IDE1IDIuNXQ2IC0xMy41di03NTBxMCAtMTAgLTYgLTEzLjV0LTE1IDIuNWwtMjU4IDE3MnEtMjEgMTQgLTQ2IDE0aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNTBxMjUgMCA0NiAxNHpNNzY2IDkwMGg0cTEwIC0xIDE2IC0xMHE5NiAtMTI5IDk2IC0yOTBxMCAtMTU0IC05MCAtMjgxcS02IC05IC0xNyAtMTBsLTMgLTFxLTkgMCAtMTYgNiBsLTI5IDIzcS03IDcgLTguNSAxNi41dDQuNSAxNy41cTcyIDEwMyA3MiAyMjlxMCAxMzIgLTc4IDIzOHEtNiA4IC00LjUgMTh0OS41IDE3bDI5IDIycTcgNSAxNSA1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMzg7IiBkPSJNOTY3IDEwMDRoM3ExMSAtMSAxNyAtMTBxMTM1IC0xNzkgMTM1IC0zOTZxMCAtMTA1IC0zNCAtMjA2LjV0LTk4IC0xODUuNXEtNyAtOSAtMTcgLTEwaC0zcS05IDAgLTE2IDZsLTQyIDM0cS04IDYgLTkgMTZ0NSAxOHExMTEgMTUwIDExMSAzMjhxMCA5MCAtMjkuNSAxNzZ0LTg0LjUgMTU3cS02IDkgLTUgMTl0MTAgMTZsNDIgMzNxNyA1IDE1IDV6TTMyMSA4MTRsMjU4IDE3MnE5IDYgMTUgMi41dDYgLTEzLjV2LTc1MHEwIC0xMCAtNiAtMTMuNSB0LTE1IDIuNWwtMjU4IDE3MnEtMjEgMTQgLTQ2IDE0aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNTBxMjUgMCA0NiAxNHpNNzY2IDkwMGg0cTEwIC0xIDE2IC0xMHE5NiAtMTI5IDk2IC0yOTBxMCAtMTU0IC05MCAtMjgxcS02IC05IC0xNyAtMTBsLTMgLTFxLTkgMCAtMTYgNmwtMjkgMjNxLTcgNyAtOC41IDE2LjV0NC41IDE3LjVxNzIgMTAzIDcyIDIyOXEwIDEzMiAtNzggMjM4IHEtNiA4IC00LjUgMTguNXQ5LjUgMTYuNWwyOSAyMnE3IDUgMTUgNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDM5OyIgZD0iTTUwMCA5MDBoMTAwdi0xMDBoLTEwMHYtMTAwaC00MDB2LTEwMGgtMTAwdjYwMGg1MDB2LTMwMHpNMTIwMCA3MDBoLTIwMHYtMTAwaDIwMHYtMjAwaC0zMDB2MzAwaC0yMDB2MzAwaC0xMDB2MjAwaDYwMHYtNTAwek0xMDAgMTEwMHYtMzAwaDMwMHYzMDBoLTMwMHpNODAwIDExMDB2LTMwMGgzMDB2MzAwaC0zMDB6TTMwMCA5MDBoLTEwMHYxMDBoMTAwdi0xMDB6TTEwMDAgOTAwaC0xMDB2MTAwaDEwMHYtMTAwek0zMDAgNTAwaDIwMHYtNTAwIGgtNTAwdjUwMGgyMDB2MTAwaDEwMHYtMTAwek04MDAgMzAwaDIwMHYtMTAwaC0xMDB2LTEwMGgtMjAwdjEwMGgtMTAwdjEwMGgxMDB2MjAwaC0yMDB2MTAwaDMwMHYtMzAwek0xMDAgNDAwdi0zMDBoMzAwdjMwMGgtMzAwek0zMDAgMjAwaC0xMDB2MTAwaDEwMHYtMTAwek0xMjAwIDIwMGgtMTAwdjEwMGgxMDB2LTEwMHpNNzAwIDBoLTEwMHYxMDBoMTAwdi0xMDB6TTEyMDAgMGgtMzAwdjEwMGgzMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQwOyIgZD0iTTEwMCAyMDBoLTEwMHYxMDAwaDEwMHYtMTAwMHpNMzAwIDIwMGgtMTAwdjEwMDBoMTAwdi0xMDAwek03MDAgMjAwaC0yMDB2MTAwMGgyMDB2LTEwMDB6TTkwMCAyMDBoLTEwMHYxMDAwaDEwMHYtMTAwMHpNMTIwMCAyMDBoLTIwMHYxMDAwaDIwMHYtMTAwMHpNNDAwIDBoLTMwMHYxMDBoMzAwdi0xMDB6TTYwMCAwaC0xMDB2OTFoMTAwdi05MXpNODAwIDBoLTEwMHY5MWgxMDB2LTkxek0xMTAwIDBoLTIwMHY5MWgyMDB2LTkxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNDE7IiBkPSJNNTAwIDEyMDBsNjgyIC02ODJxOCAtOCA4IC0xOHQtOCAtMThsLTQ2NCAtNDY0cS04IC04IC0xOCAtOHQtMTggOGwtNjgyIDY4MmwxIDQ3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDQ3NHpNMzE5LjUgMTAyNC41cS0yOS41IDI5LjUgLTcxIDI5LjV0LTcxIC0yOS41dC0yOS41IC03MS41dDI5LjUgLTcxLjV0NzEgLTI5LjV0NzEgMjkuNXQyOS41IDcxLjV0LTI5LjUgNzEuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQyOyIgZD0iTTUwMCAxMjAwbDY4MiAtNjgycTggLTggOCAtMTh0LTggLTE4bC00NjQgLTQ2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTY4MiA2ODJsMSA0NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWg0NzR6TTgwMCAxMjAwbDY4MiAtNjgycTggLTggOCAtMTh0LTggLTE4bC00NjQgLTQ2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTU2IDU2bDQyNCA0MjZsLTcwMCA3MDBoMTUwek0zMTkuNSAxMDI0LjVxLTI5LjUgMjkuNSAtNzEgMjkuNXQtNzEgLTI5LjUgdC0yOS41IC03MS41dDI5LjUgLTcxLjV0NzEgLTI5LjV0NzEgMjkuNXQyOS41IDcxLjV0LTI5LjUgNzEuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQzOyIgZD0iTTMwMCAxMjAwaDgyNXE3NSAwIDc1IC03NXYtOTAwcTAgLTI1IC0xOCAtNDNsLTY0IC02NHEtOCAtOCAtMTMgLTUuNXQtNSAxMi41djk1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjVoLTcwMHEtMjUgMCAtNDMgLTE4bC02NCAtNjRxLTggLTggLTUuNSAtMTN0MTIuNSAtNWg3MDBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di05NTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC04NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5NzUgcTAgMjUgMTggNDNsMTM5IDEzOXExOCAxOCA0MyAxOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ0OyIgZD0iTTI1MCAxMjAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTE1MGwtNDUwIDQ0NGwtNDUwIC00NDV2MTE1MXEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NTsiIGQ9Ik04MjIgMTIwMGgtNDQ0cS0xMSAwIC0xOSAtNy41dC05IC0xNy41bC03OCAtMzAxcS03IC0yNCA3IC00NWw1NyAtMTA4cTYgLTkgMTcuNSAtMTV0MjEuNSAtNmg0NTBxMTAgMCAyMS41IDZ0MTcuNSAxNWw2MiAxMDhxMTQgMjEgNyA0NWwtODMgMzAxcS0xIDEwIC05IDE3LjV0LTE5IDcuNXpNMTE3NSA4MDBoLTE1MHEtMTAgMCAtMjEgLTYuNXQtMTUgLTE1LjVsLTc4IC0xNTZxLTQgLTkgLTE1IC0xNS41dC0yMSAtNi41aC01NTAgcS0xMCAwIC0yMSA2LjV0LTE1IDE1LjVsLTc4IDE1NnEtNCA5IC0xNSAxNS41dC0yMSA2LjVoLTE1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTY1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDc1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41IHQ3LjUgMTcuNXY2NTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41ek04NTAgMjAwaC01MDBxLTEwIDAgLTE5LjUgLTd0LTExLjUgLTE3bC0zOCAtMTUycS0yIC0xMCAzLjUgLTE3dDE1LjUgLTdoNjAwcTEwIDAgMTUuNSA3dDMuNSAxN2wtMzggMTUycS0yIDEwIC0xMS41IDE3dC0xOS41IDd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NjsiIGQ9Ik01MDAgMTEwMGgyMDBxNTYgMCAxMDIuNSAtMjAuNXQ3Mi41IC01MHQ0NCAtNTl0MjUgLTUwLjVsNiAtMjBoMTUwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di02MDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTEwMDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djYwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMTUwcTIgOCA2LjUgMjEuNXQyNCA0OHQ0NSA2MXQ3MiA0OHQxMDIuNSAyMS41ek05MDAgODAwdi0xMDAgaDEwMHYxMDBoLTEwMHpNNjAwIDczMHEtOTUgMCAtMTYyLjUgLTY3LjV0LTY3LjUgLTE2Mi41dDY3LjUgLTE2Mi41dDE2Mi41IC02Ny41dDE2Mi41IDY3LjV0NjcuNSAxNjIuNXQtNjcuNSAxNjIuNXQtMTYyLjUgNjcuNXpNNjAwIDYwM3E0MyAwIDczIC0zMHQzMCAtNzN0LTMwIC03M3QtNzMgLTMwdC03MyAzMHQtMzAgNzN0MzAgNzN0NzMgMzB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NzsiIGQ9Ik02ODEgMTE5OWwzODUgLTk5OHEyMCAtNTAgNjAgLTkycTE4IC0xOSAzNi41IC0yOS41dDI3LjUgLTExLjVsMTAgLTJ2LTY2aC00MTd2NjZxNTMgMCA3NSA0My41dDUgODguNWwtODIgMjIyaC0zOTFxLTU4IC0xNDUgLTkyIC0yMzRxLTExIC0zNCAtNi41IC01N3QyNS41IC0zN3Q0NiAtMjB0NTUgLTZ2LTY2aC0zNjV2NjZxNTYgMjQgODQgNTJxMTIgMTIgMjUgMzAuNXQyMCAzMS41bDcgMTNsMzk5IDEwMDZoOTN6TTQxNiA1MjFoMzQwIGwtMTYyIDQ1N3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ4OyIgZD0iTTc1MyA2NDFxNSAtMSAxNC41IC00LjV0MzYgLTE1LjV0NTAuNSAtMjYuNXQ1My41IC00MHQ1MC41IC01NC41dDM1LjUgLTcwdDE0LjUgLTg3cTAgLTY3IC0yNy41IC0xMjUuNXQtNzEuNSAtOTcuNXQtOTguNSAtNjYuNXQtMTA4LjUgLTQwLjV0LTEwMiAtMTNoLTUwMHY4OXE0MSA3IDcwLjUgMzIuNXQyOS41IDY1LjV2ODI3cTAgMjQgLTAuNSAzNHQtMy41IDI0dC04LjUgMTkuNXQtMTcgMTMuNXQtMjggMTIuNXQtNDIuNSAxMS41djcxIGw0NzEgLTFxNTcgMCAxMTUuNSAtMjAuNXQxMDggLTU3dDgwLjUgLTk0dDMxIC0xMjQuNXEwIC01MSAtMTUuNSAtOTYuNXQtMzggLTc0LjV0LTQ1IC01MC41dC0zOC41IC0zMC41ek00MDAgNzAwaDEzOXE3OCAwIDEzMC41IDQ4LjV0NTIuNSAxMjIuNXEwIDQxIC04LjUgNzAuNXQtMjkuNSA1NS41dC02Mi41IDM5LjV0LTEwMy41IDEzLjVoLTExOHYtMzUwek00MDAgMjAwaDIxNnE4MCAwIDEyMSA1MC41dDQxIDEzMC41cTAgOTAgLTYyLjUgMTU0LjUgdC0xNTYuNSA2NC41aC0xNTl2LTQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ5OyIgZD0iTTg3NyAxMjAwbDIgLTU3cS04MyAtMTkgLTExNiAtNDUuNXQtNDAgLTY2LjVsLTEzMiAtODM5cS05IC00OSAxMyAtNjl0OTYgLTI2di05N2gtNTAwdjk3cTE4NiAxNiAyMDAgOThsMTczIDgzMnEzIDE3IDMgMzB0LTEuNSAyMi41dC05IDE3LjV0LTEzLjUgMTIuNXQtMjEuNSAxMHQtMjYgOC41dC0zMy41IDEwcS0xMyAzIC0xOSA1djU3aDQyNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDUwOyIgZD0iTTEzMDAgOTAwaC01MHEwIDIxIC00IDM3dC05LjUgMjYuNXQtMTggMTcuNXQtMjIgMTF0LTI4LjUgNS41dC0zMSAydC0zNyAwLjVoLTIwMHYtODUwcTAgLTIyIDI1IC0zNC41dDUwIC0xMy41bDI1IC0ydi0xMDBoLTQwMHYxMDBxNCAwIDExIDAuNXQyNCAzdDMwIDd0MjQgMTV0MTEgMjQuNXY4NTBoLTIwMHEtMjUgMCAtMzcgLTAuNXQtMzEgLTJ0LTI4LjUgLTUuNXQtMjIgLTExdC0xOCAtMTcuNXQtOS41IC0yNi41dC00IC0zN2gtNTB2MzAwIGgxMDAwdi0zMDB6TTE3NSAxMDAwaC03NXYtODAwaDc1bC0xMjUgLTE2N2wtMTI1IDE2N2g3NXY4MDBoLTc1bDEyNSAxNjd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MTsiIGQ9Ik0xMTAwIDkwMGgtNTBxMCAyMSAtNCAzN3QtOS41IDI2LjV0LTE4IDE3LjV0LTIyIDExdC0yOC41IDUuNXQtMzEgMnQtMzcgMC41aC0yMDB2LTY1MHEwIC0yMiAyNSAtMzQuNXQ1MCAtMTMuNWwyNSAtMnYtMTAwaC00MDB2MTAwcTQgMCAxMSAwLjV0MjQgM3QzMCA3dDI0IDE1dDExIDI0LjV2NjUwaC0yMDBxLTI1IDAgLTM3IC0wLjV0LTMxIC0ydC0yOC41IC01LjV0LTIyIC0xMXQtMTggLTE3LjV0LTkuNSAtMjYuNXQtNCAtMzdoLTUwdjMwMCBoMTAwMHYtMzAwek0xMTY3IDUwbC0xNjcgLTEyNXY3NWgtODAwdi03NWwtMTY3IDEyNWwxNjcgMTI1di03NWg4MDB2NzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MjsiIGQ9Ik01MCAxMTAwaDYwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDgwMGgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA1MDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTgwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMjAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MzsiIGQ9Ik0yNTAgMTEwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMjUwIDUwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCAyMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDU0OyIgZD0iTTUwMCA5NTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg2MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXpNMTAwIDY1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41ek0zMDAgMzUwdjEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTgwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTAgNTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDU1OyIgZD0iTTUwIDExMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMjAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1NjsiIGQ9Ik01MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTM1MCAxMTAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMzUwIDgwMGg4MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTM1MCA1MDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zNTAgMjAwaDgwMCBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNTc7IiBkPSJNNDAwIDBoLTEwMHYxMTAwaDEwMHYtMTEwMHpNNTUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTUwIDgwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMjY3IDU1MGwtMTY3IC0xMjV2NzVoLTIwMHYxMDBoMjAwdjc1ek01NTAgNTAwaDMwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTU1MCAyMDBoNjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1ODsiIGQ9Ik01MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTkwMCAwaC0xMDB2MTEwMGgxMDB2LTExMDB6TTUwIDgwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTEwMCA2MDBoMjAwdi0xMDBoLTIwMHYtNzVsLTE2NyAxMjVsMTY3IDEyNXYtNzV6TTUwIDUwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCAyMDBoNjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1OTsiIGQ9Ik03NSAxMDAwaDc1MHEzMSAwIDUzIC0yMnQyMiAtNTN2LTY1MHEwIC0zMSAtMjIgLTUzdC01MyAtMjJoLTc1MHEtMzEgMCAtNTMgMjJ0LTIyIDUzdjY1MHEwIDMxIDIyIDUzdDUzIDIyek0xMjAwIDMwMGwtMzAwIDMwMGwzMDAgMzAwdi02MDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA2MDsiIGQ9Ik00NCAxMTAwaDExMTJxMTggMCAzMSAtMTN0MTMgLTMxdi0xMDEycTAgLTE4IC0xMyAtMzF0LTMxIC0xM2gtMTExMnEtMTggMCAtMzEgMTN0LTEzIDMxdjEwMTJxMCAxOCAxMyAzMXQzMSAxM3pNMTAwIDEwMDB2LTczN2wyNDcgMTgybDI5OCAtMTMxbC03NCAxNTZsMjkzIDMxOGwyMzYgLTI4OHY1MDBoLTEwMDB6TTM0MiA4ODRxNTYgMCA5NSAtMzl0MzkgLTk0LjV0LTM5IC05NXQtOTUgLTM5LjV0LTk1IDM5LjV0LTM5IDk1dDM5IDk0LjUgdDk1IDM5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjI7IiBkPSJNNjQ4IDExNjlxMTE3IDAgMjE2IC02MHQxNTYuNSAtMTYxdDU3LjUgLTIxOHEwIC0xMTUgLTcwIC0yNThxLTY5IC0xMDkgLTE1OCAtMjI1LjV0LTE0MyAtMTc5LjVsLTU0IC02MnEtOSA4IC0yNS41IDI0LjV0LTYzLjUgNjcuNXQtOTEgMTAzdC05OC41IDEyOHQtOTUuNSAxNDhxLTYwIDEzMiAtNjAgMjQ5cTAgODggMzQgMTY5LjV0OTEuNSAxNDJ0MTM3IDk2LjV0MTY2LjUgMzZ6TTY1Mi41IDk3NHEtOTEuNSAwIC0xNTYuNSAtNjUgdC02NSAtMTU3dDY1IC0xNTYuNXQxNTYuNSAtNjQuNXQxNTYuNSA2NC41dDY1IDE1Ni41dC02NSAxNTd0LTE1Ni41IDY1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjM7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTYwMCAxNzN2ODU0cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjUgdDE1NS41IC0xNTUuNXQyMTQuNSAtNTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA2NDsiIGQ9Ik01NTQgMTI5NXEyMSAtNzIgNTcuNSAtMTQzLjV0NzYgLTEzMHQ4MyAtMTE4dDgyLjUgLTExN3Q3MCAtMTE2dDQ5LjUgLTEyNnQxOC41IC0xMzYuNXEwIC03MSAtMjUuNSAtMTM1dC02OC41IC0xMTF0LTk5IC04MnQtMTE4LjUgLTU0dC0xMjUuNSAtMjNxLTg0IDUgLTE2MS41IDM0dC0xMzkuNSA3OC41dC05OSAxMjV0LTM3IDE2NC41cTAgNjkgMTggMTM2LjV0NDkuNSAxMjYuNXQ2OS41IDExNi41dDgxLjUgMTE3LjV0ODMuNSAxMTkgdDc2LjUgMTMxdDU4LjUgMTQzek0zNDQgNzEwcS0yMyAtMzMgLTQzLjUgLTcwLjV0LTQwLjUgLTEwMi41dC0xNyAtMTIzcTEgLTM3IDE0LjUgLTY5LjV0MzAgLTUydDQxIC0zN3QzOC41IC0yNC41dDMzIC0xNXEyMSAtNyAzMiAtMXQxMyAyMmw2IDM0cTIgMTAgLTIuNSAyMnQtMTMuNSAxOXEtNSA0IC0xNCAxMnQtMjkuNSA0MC41dC0zMi41IDczLjVxLTI2IDg5IDYgMjcxcTIgMTEgLTYgMTFxLTggMSAtMTUgLTEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjU7IiBkPSJNMTAwMCAxMDEzbDEwOCAxMTVxMiAxIDUgMnQxMyAydDIwLjUgLTF0MjUgLTkuNXQyOC41IC0yMS41cTIyIC0yMiAyNyAtNDN0MCAtMzJsLTYgLTEwbC0xMDggLTExNXpNMzUwIDExMDBoNDAwcTUwIDAgMTA1IC0xM2wtMTg3IC0xODdoLTM2OHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwcTAgLTQxIDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41djE4MmwyMDAgMjAwdi0zMzIgcTAgLTE2NSAtOTMuNSAtMjU3LjV0LTI1Ni41IC05Mi41aC00MDBxLTE2NSAwIC0yNTcuNSA5Mi41dC05Mi41IDI1Ny41djQwMHEwIDE2NSA5Mi41IDI1Ny41dDI1Ny41IDkyLjV6TTEwMDkgODAzbC0zNjIgLTM2MmwtMTYxIC01MGw1NSAxNzBsMzU1IDM1NXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY2OyIgZD0iTTM1MCAxMTAwaDM2MXEtMTY0IC0xNDYgLTIxNiAtMjAwaC0xOTVxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNWwyMDAgMTUzdi0xMDNxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXogTTgyNCAxMDczbDMzOSAtMzAxcTggLTcgOCAtMTcuNXQtOCAtMTcuNWwtMzQwIC0zMDZxLTcgLTYgLTEyLjUgLTR0LTYuNSAxMXYyMDNxLTI2IDEgLTU0LjUgMHQtNzguNSAtNy41dC05MiAtMTcuNXQtODYgLTM1dC03MCAtNTdxMTAgNTkgMzMgMTA4dDUxLjUgODEuNXQ2NSA1OC41dDY4LjUgNDAuNXQ2NyAyNC41dDU2IDEzLjV0NDAgNC41djIxMHExIDEwIDYuNSAxMi41dDEzLjUgLTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY3OyIgZD0iTTM1MCAxMTAwaDM1MHE2MCAwIDEyNyAtMjNsLTE3OCAtMTc3aC0zNDlxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNXY2OWwyMDAgMjAwdi0yMTlxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXogTTY0MyA2MzlsMzk1IDM5NXE3IDcgMTcuNSA3dDE3LjUgLTdsMTAxIC0xMDFxNyAtNyA3IC0xNy41dC03IC0xNy41bC01MzEgLTUzMnEtNyAtNyAtMTcuNSAtN3QtMTcuNSA3bC0yNDggMjQ4cS03IDcgLTcgMTcuNXQ3IDE3LjVsMTAxIDEwMXE3IDcgMTcuNSA3dDE3LjUgLTdsMTExIC0xMTFxOCAtNyAxOCAtN3QxOCA3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjg7IiBkPSJNMzE4IDkxOGwyNjQgMjY0cTggOCAxOCA4dDE4IC04bDI2MCAtMjY0cTcgLTggNC41IC0xM3QtMTIuNSAtNWgtMTcwdi0yMDBoMjAwdjE3M3EwIDEwIDUgMTJ0MTMgLTVsMjY0IC0yNjBxOCAtNyA4IC0xNy41dC04IC0xNy41bC0yNjQgLTI2NXEtOCAtNyAtMTMgLTV0LTUgMTJ2MTczaC0yMDB2LTIwMGgxNzBxMTAgMCAxMi41IC01dC00LjUgLTEzbC0yNjAgLTI2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTI2NCAyNjRxLTggOCAtNS41IDEzIHQxMi41IDVoMTc1djIwMGgtMjAwdi0xNzNxMCAtMTAgLTUgLTEydC0xMyA1bC0yNjQgMjY1cS04IDcgLTggMTcuNXQ4IDE3LjVsMjY0IDI2MHE4IDcgMTMgNXQ1IC0xMnYtMTczaDIwMHYyMDBoLTE3NXEtMTAgMCAtMTIuNSA1dDUuNSAxM3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY5OyIgZD0iTTI1MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDM4bDQ2NCA0NTNxMTUgMTQgMjUuNSAxMHQxMC41IC0yNXYtMTAwMHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ2NCA0NTN2LTQzOHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDcwOyIgZD0iTTUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MzhsNDY0IDQ1M3ExNSAxNCAyNS41IDEwdDEwLjUgLTI1di00MzhsNDY0IDQ1M3ExNSAxNCAyNS41IDEwdDEwLjUgLTI1di0xMDAwcTAgLTIxIC0xMC41IC0yNXQtMjUuNSAxMGwtNDY0IDQ1M3YtNDM4cTAgLTIxIC0xMC41IC0yNXQtMjUuNSAxMGwtNDY0IDQ1M3YtNDM4cTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXYxMDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDcxOyIgZD0iTTEyMDAgMTA1MHYtMTAwMHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ2NCA0NTN2LTQzOHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ5MiA0ODBxLTE1IDE0IC0xNSAzNXQxNSAzNWw0OTIgNDgwcTE1IDE0IDI1LjUgMTB0MTAuNSAtMjV2LTQzOGw0NjQgNDUzcTE1IDE0IDI1LjUgMTB0MTAuNSAtMjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3MjsiIGQ9Ik0yNDMgMTA3NGw4MTQgLTQ5OHExOCAtMTEgMTggLTI2dC0xOCAtMjZsLTgxNCAtNDk4cS0xOCAtMTEgLTMwLjUgLTR0LTEyLjUgMjh2MTAwMHEwIDIxIDEyLjUgMjh0MzAuNSAtNHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDczOyIgZD0iTTI1MCAxMDAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtODAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCAxMDAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtODAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNzQ7IiBkPSJNMTEwMCA5NTB2LTgwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY4MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDc1OyIgZD0iTTUwMCA2MTJ2NDM4cTAgMjEgMTAuNSAyNXQyNS41IC0xMGw0OTIgLTQ4MHExNSAtMTQgMTUgLTM1dC0xNSAtMzVsLTQ5MiAtNDgwcS0xNSAtMTQgLTI1LjUgLTEwdC0xMC41IDI1djQzOGwtNDY0IC00NTNxLTE1IC0xNCAtMjUuNSAtMTB0LTEwLjUgMjV2MTAwMHEwIDIxIDEwLjUgMjV0MjUuNSAtMTB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3NjsiIGQ9Ik0xMDQ4IDExMDJsMTAwIDFxMjAgMCAzNSAtMTQuNXQxNSAtMzUuNWw1IC0xMDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41bC0xMDAgLTFxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41bC0yIDQzN2wtNDYzIC00NTRxLTE0IC0xNSAtMjQuNSAtMTAuNXQtMTAuNSAyNS41bC0yIDQzN2wtNDYyIC00NTVxLTE1IC0xNCAtMjUuNSAtOS41dC0xMC41IDI0LjVsLTUgMTAwMHEwIDIxIDEwLjUgMjUuNXQyNS41IC0xMC41bDQ2NiAtNDUwIGwtMiA0MzhxMCAyMCAxMC41IDI0LjV0MjUuNSAtOS41bDQ2NiAtNDUxbC0yIDQzOHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3NzsiIGQ9Ik04NTAgMTEwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDM4bC00NjQgLTQ1M3EtMTUgLTE0IC0yNS41IC0xMHQtMTAuNSAyNXYxMDAwcTAgMjEgMTAuNSAyNXQyNS41IC0xMGw0NjQgLTQ1M3Y0MzhxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNzg7IiBkPSJNNjg2IDEwODFsNTAxIC01NDBxMTUgLTE1IDEwLjUgLTI2dC0yNi41IC0xMWgtMTA0MnEtMjIgMCAtMjYuNSAxMXQxMC41IDI2bDUwMSA1NDBxMTUgMTUgMzYgMTV0MzYgLTE1ek0xNTAgNDAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDc5OyIgZD0iTTg4NSA5MDBsLTM1MiAtMzUzbDM1MiAtMzUzbC0xOTcgLTE5OGwtNTUyIDU1Mmw1NTIgNTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwODA7IiBkPSJNMTA2NCA1NDdsLTU1MSAtNTUxbC0xOTggMTk4bDM1MyAzNTNsLTM1MyAzNTNsMTk4IDE5OHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDgxOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02NTAgOTAwaC0xMDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUgLTM1LjV2LTE1MGgtMTUwIHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMTAwcTAgLTIxIDE0LjUgLTM1LjV0MzUuNSAtMTQuNWgxNTB2LTE1MHEwIC0yMSAxNC41IC0zNS41dDM1LjUgLTE0LjVoMTAwcTIxIDAgMzUuNSAxNC41dDE0LjUgMzUuNXYxNTBoMTUwcTIxIDAgMzUuNSAxNC41dDE0LjUgMzUuNXYxMDBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTE1MHYxNTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4MjsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNODUwIDcwMGgtNTAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDBxMCAtMjEgMTQuNSAtMzUuNSB0MzUuNSAtMTQuNWg1MDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDgzOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek03NDEuNSA5MTNxLTEyLjUgMCAtMjEuNSAtOWwtMTIwIC0xMjBsLTEyMCAxMjBxLTkgOSAtMjEuNSA5IHQtMjEuNSAtOWwtMTQxIC0xNDFxLTkgLTkgLTkgLTIxLjV0OSAtMjEuNWwxMjAgLTEyMGwtMTIwIC0xMjBxLTkgLTkgLTkgLTIxLjV0OSAtMjEuNWwxNDEgLTE0MXE5IC05IDIxLjUgLTl0MjEuNSA5bDEyMCAxMjBsMTIwIC0xMjBxOSAtOSAyMS41IC05dDIxLjUgOWwxNDEgMTQxcTkgOSA5IDIxLjV0LTkgMjEuNWwtMTIwIDEyMGwxMjAgMTIwcTkgOSA5IDIxLjV0LTkgMjEuNWwtMTQxIDE0MXEtOSA5IC0yMS41IDl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4NDsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNTQ2IDYyM2wtODQgODVxLTcgNyAtMTcuNSA3dC0xOC41IC03bC0xMzkgLTEzOXEtNyAtOCAtNyAtMTh0NyAtMTggbDI0MiAtMjQxcTcgLTggMTcuNSAtOHQxNy41IDhsMzc1IDM3NXE3IDcgNyAxNy41dC03IDE4LjVsLTEzOSAxMzlxLTcgNyAtMTcuNSA3dC0xNy41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwODU7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTU4OCA5NDFxLTI5IDAgLTU5IC01LjV0LTYzIC0yMC41dC01OCAtMzguNXQtNDEuNSAtNjN0LTE2LjUgLTg5LjUgcTAgLTI1IDIwIC0yNWgxMzFxMzAgLTUgMzUgMTFxNiAyMCAyMC41IDI4dDQ1LjUgOHEyMCAwIDMxLjUgLTEwLjV0MTEuNSAtMjguNXEwIC0yMyAtNyAtMzR0LTI2IC0xOHEtMSAwIC0xMy41IC00dC0xOS41IC03LjV0LTIwIC0xMC41dC0yMiAtMTd0LTE4LjUgLTI0dC0xNS41IC0zNXQtOCAtNDZxLTEgLTggNS41IC0xNi41dDIwLjUgLTguNWgxNzNxNyAwIDIyIDh0MzUgMjh0MzcuNSA0OHQyOS41IDc0dDEyIDEwMHEwIDQ3IC0xNyA4MyB0LTQyLjUgNTd0LTU5LjUgMzQuNXQtNjQgMTh0LTU5IDQuNXpNNjc1IDQwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MTUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDg2OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02NzUgMTAwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNSB0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djE1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6TTY3NSA3MDBoLTI1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoNzV2LTIwMGgtNzVxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di01MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDM1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djUwcTAgMTAgLTcuNSAxNy41IHQtMTcuNSA3LjVoLTc1djI3NXEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4NzsiIGQ9Ik01MjUgMTIwMGgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xOTRxMTAzIC0yNyAxNzguNSAtMTAyLjV0MTAyLjUgLTE3OC41aDE5NHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE5NHEtMjcgLTEwMyAtMTAyLjUgLTE3OC41dC0xNzguNSAtMTAyLjV2LTE5NHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE5NCBxLTEwMyAyNyAtMTc4LjUgMTAyLjV0LTEwMi41IDE3OC41aC0xOTRxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxOTRxMjcgMTAzIDEwMi41IDE3OC41dDE3OC41IDEwMi41djE5NHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek03MDAgODkzdi0xNjhxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNjhxLTY4IC0yMyAtMTE5IC03NCB0LTc0IC0xMTloMTY4cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTY4cTIzIC02OCA3NCAtMTE5dDExOSAtNzR2MTY4cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTY4cTY4IDIzIDExOSA3NHQ3NCAxMTloLTE2OHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDE2OCBxLTIzIDY4IC03NCAxMTl0LTExOSA3NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDg4OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek03NTkgODIzbDY0IC02NHE3IC03IDcgLTE3LjV0LTcgLTE3LjVsLTEyNCAtMTI0bDEyNCAtMTI0cTcgLTcgNyAtMTcuNXQtNyAtMTcuNWwtNjQgLTY0cS03IC03IC0xNy41IC03dC0xNy41IDdsLTEyNCAxMjRsLTEyNCAtMTI0cS03IC03IC0xNy41IC03dC0xNy41IDdsLTY0IDY0IHEtNyA3IC03IDE3LjV0NyAxNy41bDEyNCAxMjRsLTEyNCAxMjRxLTcgNyAtNyAxNy41dDcgMTcuNWw2NCA2NHE3IDcgMTcuNSA3dDE3LjUgLTdsMTI0IC0xMjRsMTI0IDEyNHE3IDcgMTcuNSA3dDE3LjUgLTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4OTsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNjAwIDEwMjdxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41dDU3IC0yMTQuNSB0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXQtNTcgMjE0LjV0LTE1NS41IDE1NS41dC0yMTQuNSA1N3pNNzgyIDc4OGwxMDYgLTEwNnE3IC03IDcgLTE3LjV0LTcgLTE3LjVsLTMyMCAtMzIxcS04IC03IC0xOCAtN3QtMTggN2wtMjAyIDIwM3EtOCA3IC04IDE3LjV0OCAxNy41bDEwNiAxMDZxNyA4IDE3LjUgOHQxNy41IC04bDc5IC03OWwxOTcgMTk3cTcgNyAxNy41IDd0MTcuNSAtN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDkwOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjVxMCAtMTIwIDY1IC0yMjUgbDU4NyA1ODdxLTEwNSA2NSAtMjI1IDY1ek05NjUgODE5bC01ODQgLTU4NHExMDQgLTYyIDIxOSAtNjJxMTE2IDAgMjE0LjUgNTd0MTU1LjUgMTU1LjV0NTcgMjE0LjVxMCAxMTUgLTYyIDIxOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDkxOyIgZD0iTTM5IDU4Mmw1MjIgNDI3cTE2IDEzIDI3LjUgOHQxMS41IC0yNnYtMjkxaDU1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC01NTB2LTI5MXEwIC0yMSAtMTEuNSAtMjZ0LTI3LjUgOGwtNTIyIDQyN3EtMTYgMTMgLTE2IDMydDE2IDMyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwOTI7IiBkPSJNNjM5IDEwMDlsNTIyIC00MjdxMTYgLTEzIDE2IC0zMnQtMTYgLTMybC01MjIgLTQyN3EtMTYgLTEzIC0yNy41IC04dC0xMS41IDI2djI5MWgtNTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDU1MHYyOTFxMCAyMSAxMS41IDI2dDI3LjUgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA5MzsiIGQ9Ik02ODIgMTE2MWw0MjcgLTUyMnExMyAtMTYgOCAtMjcuNXQtMjYgLTExLjVoLTI5MXYtNTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djU1MGgtMjkxcS0yMSAwIC0yNiAxMS41dDggMjcuNWw0MjcgNTIycTEzIDE2IDMyIDE2dDMyIC0xNnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk0OyIgZD0iTTU1MCAxMjAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTUwaDI5MXEyMSAwIDI2IC0xMS41dC04IC0yNy41bC00MjcgLTUyMnEtMTMgLTE2IC0zMiAtMTZ0LTMyIDE2bC00MjcgNTIycS0xMyAxNiAtOCAyNy41dDI2IDExLjVoMjkxdjU1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA5NTsiIGQ9Ik02MzkgMTEwOWw1MjIgLTQyN3ExNiAtMTMgMTYgLTMydC0xNiAtMzJsLTUyMiAtNDI3cS0xNiAtMTMgLTI3LjUgLTh0LTExLjUgMjZ2MjkxcS05NCAtMiAtMTgyIC0yMHQtMTcwLjUgLTUydC0xNDcgLTkyLjV0LTEwMC41IC0xMzUuNXE1IDEwNSAyNyAxOTMuNXQ2Ny41IDE2N3QxMTMgMTM1dDE2NyA5MS41dDIyNS41IDQydjI2MnEwIDIxIDExLjUgMjZ0MjcuNSAtOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk2OyIgZD0iTTg1MCAxMjAwaDMwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMzAwcTAgLTIxIC0xMC41IC0yNXQtMjQuNSAxMGwtOTQgOTRsLTI0OSAtMjQ5cS04IC03IC0xOCAtN3QtMTggN2wtMTA2IDEwNnEtNyA4IC03IDE4dDcgMThsMjQ5IDI0OWwtOTQgOTRxLTE0IDE0IC0xMCAyNC41dDI1IDEwLjV6TTM1MCAwaC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djMwMHEwIDIxIDEwLjUgMjV0MjQuNSAtMTBsOTQgLTk0bDI0OSAyNDkgcTggNyAxOCA3dDE4IC03bDEwNiAtMTA2cTcgLTggNyAtMTh0LTcgLTE4bC0yNDkgLTI0OWw5NCAtOTRxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk3OyIgZD0iTTEwMTQgMTEyMGwxMDYgLTEwNnE3IC04IDcgLTE4dC03IC0xOGwtMjQ5IC0yNDlsOTQgLTk0cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTMwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MzAwcTAgMjEgMTAuNSAyNXQyNC41IC0xMGw5NCAtOTRsMjQ5IDI0OXE4IDcgMTggN3QxOCAtN3pNMjUwIDYwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTk0IDk0IGwtMjQ5IC0yNDlxLTggLTcgLTE4IC03dC0xOCA3bC0xMDYgMTA2cS03IDggLTcgMTh0NyAxOGwyNDkgMjQ5bC05NCA5NHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAxOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek03MDQgOTAwaC0yMDhxLTIwIDAgLTMyIC0xNC41dC04IC0zNC41bDU4IC0zMDJxNCAtMjAgMjEuNSAtMzQuNSB0MzcuNSAtMTQuNWg1NHEyMCAwIDM3LjUgMTQuNXQyMS41IDM0LjVsNTggMzAycTQgMjAgLTggMzQuNXQtMzIgMTQuNXpNNjc1IDQwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MTUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAyOyIgZD0iTTI2MCAxMjAwcTkgMCAxOSAtMnQxNSAtNGw1IC0ycTIyIC0xMCA0NCAtMjNsMTk2IC0xMThxMjEgLTEzIDM2IC0yNHEyOSAtMjEgMzcgLTEycTExIDEzIDQ5IDM1bDE5NiAxMThxMjIgMTMgNDUgMjNxMTcgNyAzOCA3cTIzIDAgNDcgLTE2LjV0MzcgLTMzLjVsMTMgLTE2cTE0IC0yMSAxOCAtNDVsMjUgLTEyM2w4IC00NHExIC05IDguNSAtMTQuNXQxNy41IC01LjVoNjFxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MCBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTE3NWgtNDAwdjMwMGgtMjAwdi0zMDBoLTQwMHYxNzVxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNjFxMTEgMCAxOCAzdDcgOHEwIDQgOSA1MmwyNSAxMjhxNSAyNSAxOSA0NXEyIDMgNSA3dDEzLjUgMTV0MjEuNSAxOS41dDI2LjUgMTUuNSB0MjkuNSA3ek05MTUgMTA3OWwtMTY2IC0xNjJxLTcgLTcgLTUgLTEydDEyIC01aDIxOXExMCAwIDE1IDd0MiAxN2wtNTEgMTQ5cS0zIDEwIC0xMSAxMnQtMTUgLTZ6TTQ2MyA5MTdsLTE3NyAxNTdxLTggNyAtMTYgNXQtMTEgLTEybC01MSAtMTQzcS0zIC0xMCAyIC0xN3QxNSAtN2gyMzFxMTEgMCAxMi41IDV0LTUuNSAxMnpNNTAwIDBoLTM3NXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM3NWg0MDB2LTQwMHpNMTEwMCA0MDB2LTM3NSBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0zNzV2NDAwaDQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAzOyIgZD0iTTExNjUgMTE5MHE4IDMgMjEgLTYuNXQxMyAtMTcuNXEtMiAtMTc4IC0yNC41IC0zMjMuNXQtNTUuNSAtMjQ1LjV0LTg3IC0xNzQuNXQtMTAyLjUgLTExOC41dC0xMTggLTY4LjV0LTExOC41IC0zM3QtMTIwIC00LjV0LTEwNSA5LjV0LTkwIDE2LjVxLTYxIDEyIC03OCAxMXEtNCAxIC0xMi41IDB0LTM0IC0xNC41dC01Mi41IC00MC41bC0xNTMgLTE1M3EtMjYgLTI0IC0zNyAtMTQuNXQtMTEgNDMuNXEwIDY0IDQyIDEwMnE4IDggNTAuNSA0NSB0NjYuNSA1OHExOSAxNyAzNSA0N3QxMyA2MXEtOSA1NSAtMTAgMTAyLjV0NyAxMTF0MzcgMTMwdDc4IDEyOS41cTM5IDUxIDgwIDg4dDg5LjUgNjMuNXQ5NC41IDQ1dDExMy41IDM2dDEyOSAzMXQxNTcuNSAzN3QxODIgNDcuNXpNMTExNiAxMDk4cS04IDkgLTIyLjUgLTN0LTQ1LjUgLTUwcS0zOCAtNDcgLTExOSAtMTAzLjV0LTE0MiAtODkuNWwtNjIgLTMzcS01NiAtMzAgLTEwMiAtNTd0LTEwNCAtNjh0LTEwMi41IC04MC41dC04NS41IC05MSB0LTY0IC0xMDQuNXEtMjQgLTU2IC0zMSAtODZ0MiAtMzJ0MzEuNSAxNy41dDU1LjUgNTkuNXEyNSAzMCA5NCA3NS41dDEyNS41IDc3LjV0MTQ3LjUgODFxNzAgMzcgMTE4LjUgNjl0MTAyIDc5LjV0OTkgMTExdDg2LjUgMTQ4LjVxMjIgNTAgMjQgNjB0LTYgMTl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNDsiIGQ9Ik02NTMgMTIzMXEtMzkgLTY3IC01NC41IC0xMzF0LTEwLjUgLTExNC41dDI0LjUgLTk2LjV0NDcuNSAtODB0NjMuNSAtNjIuNXQ2OC41IC00Ni41dDY1IC0zMHEtNCA3IC0xNy41IDM1dC0xOC41IDM5LjV0LTE3IDM5LjV0LTE3IDQzdC0xMyA0MnQtOS41IDQ0LjV0LTIgNDJ0NCA0M3QxMy41IDM5dDIzIDM4LjVxOTYgLTQyIDE2NSAtMTA3LjV0MTA1IC0xMzh0NTIgLTE1NnQxMyAtMTU5dC0xOSAtMTQ5LjVxLTEzIC01NSAtNDQgLTEwNi41IHQtNjggLTg3dC03OC41IC02NC41dC03Mi41IC00NXQtNTMgLTIycS03MiAtMjIgLTEyNyAtMTFxLTMxIDYgLTEzIDE5cTYgMyAxNyA3cTEzIDUgMzIuNSAyMXQ0MSA0NHQzOC41IDYzLjV0MjEuNSA4MS41dC02LjUgOTQuNXQtNTAgMTA3dC0xMDQgMTE1LjVxMTAgLTEwNCAtMC41IC0xODl0LTM3IC0xNDAuNXQtNjUgLTkzdC04NCAtNTJ0LTkzLjUgLTExdC05NSAyNC41cS04MCAzNiAtMTMxLjUgMTE0dC01My41IDE3MXEtMiAyMyAwIDQ5LjUgdDQuNSA1Mi41dDEzLjUgNTZ0MjcuNSA2MHQ0NiA2NC41dDY5LjUgNjguNXEtOCAtNTMgLTUgLTEwMi41dDE3LjUgLTkwdDM0IC02OC41dDQ0LjUgLTM5dDQ5IC0ycTMxIDEzIDM4LjUgMzZ0LTQuNSA1NXQtMjkgNjQuNXQtMzYgNzV0LTI2IDc1LjVxLTE1IDg1IDIgMTYxLjV0NTMuNSAxMjguNXQ4NS41IDkyLjV0OTMuNSA2MXQ4MS41IDI1LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNTsiIGQ9Ik02MDAgMTA5NHE4MiAwIDE2MC41IC0yMi41dDE0MCAtNTl0MTE2LjUgLTgyLjV0OTQuNSAtOTV0NjggLTk1dDQyLjUgLTgyLjV0MTQgLTU3LjV0LTE0IC01Ny41dC00MyAtODIuNXQtNjguNSAtOTV0LTk0LjUgLTk1dC0xMTYuNSAtODIuNXQtMTQwIC01OXQtMTU5LjUgLTIyLjV0LTE1OS41IDIyLjV0LTE0MCA1OXQtMTE2LjUgODIuNXQtOTQuNSA5NXQtNjguNSA5NXQtNDMgODIuNXQtMTQgNTcuNXQxNCA1Ny41dDQyLjUgODIuNXQ2OCA5NSB0OTQuNSA5NXQxMTYuNSA4Mi41dDE0MCA1OXQxNjAuNSAyMi41ek04ODggODI5cS0xNSAxNSAtMTggMTJ0NSAtMjJxMjUgLTU3IDI1IC0xMTlxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4dC0yMTIgODh0LTg4IDIxMnEwIDU5IDIzIDExNHE4IDE5IDQuNSAyMnQtMTcuNSAtMTJxLTcwIC02OSAtMTYwIC0xODRxLTEzIC0xNiAtMTUgLTQwLjV0OSAtNDIuNXEyMiAtMzYgNDcgLTcxdDcwIC04MnQ5Mi41IC04MXQxMTMgLTU4LjV0MTMzLjUgLTI0LjUgdDEzMy41IDI0dDExMyA1OC41dDkyLjUgODEuNXQ3MCA4MS41dDQ3IDcwLjVxMTEgMTggOSA0Mi41dC0xNCA0MS41cS05MCAxMTcgLTE2MyAxODl6TTQ0OCA3MjdsLTM1IC0zNnEtMTUgLTE1IC0xOS41IC0zOC41dDQuNSAtNDEuNXEzNyAtNjggOTMgLTExNnExNiAtMTMgMzguNSAtMTF0MzYuNSAxN2wzNSAzNHExNCAxNSAxMi41IDMzLjV0LTE2LjUgMzMuNXEtNDQgNDQgLTg5IDExN3EtMTEgMTggLTI4IDIwdC0zMiAtMTJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNjsiIGQ9Ik01OTIgMGgtMTQ4bDMxIDEyMHEtOTEgMjAgLTE3NS41IDY4LjV0LTE0My41IDEwNi41dC0xMDMuNSAxMTl0LTY2LjUgMTEwdC0yMiA3NnEwIDIxIDE0IDU3LjV0NDIuNSA4Mi41dDY4IDk1dDk0LjUgOTV0MTE2LjUgODIuNXQxNDAgNTl0MTYwLjUgMjIuNXE2MSAwIDEyNiAtMTVsMzIgMTIxaDE0OHpNOTQ0IDc3MGw0NyAxODFxMTA4IC04NSAxNzYuNSAtMTkydDY4LjUgLTE1OXEwIC0yNiAtMTkuNSAtNzF0LTU5LjUgLTEwMnQtOTMgLTExMiB0LTEyOSAtMTA0LjV0LTE1OCAtNzUuNWw0NiAxNzNxNzcgNDkgMTM2IDExN3Q5NyAxMzFxMTEgMTggOSA0Mi41dC0xNCA0MS41cS01NCA3MCAtMTA3IDEzMHpNMzEwIDgyNHEtNzAgLTY5IC0xNjAgLTE4NHEtMTMgLTE2IC0xNSAtNDAuNXQ5IC00Mi41cTE4IC0zMCAzOSAtNjB0NTcgLTcwLjV0NzQgLTczdDkwIC02MXQxMDUgLTQxLjVsNDEgMTU0cS0xMDcgMTggLTE3OC41IDEwMS41dC03MS41IDE5My41cTAgNTkgMjMgMTE0cTggMTkgNC41IDIyIHQtMTcuNSAtMTJ6TTQ0OCA3MjdsLTM1IC0zNnEtMTUgLTE1IC0xOS41IC0zOC41dDQuNSAtNDEuNXEzNyAtNjggOTMgLTExNnExNiAtMTMgMzguNSAtMTF0MzYuNSAxN2wxMiAxMWwyMiA4NmwtMyA0cS00NCA0NCAtODkgMTE3cS0xMSAxOCAtMjggMjB0LTMyIC0xMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTA3OyIgZD0iTS05MCAxMDBsNjQyIDEwNjZxMjAgMzEgNDggMjguNXQ0OCAtMzUuNWw2NDIgLTEwNTZxMjEgLTMyIDcuNSAtNjcuNXQtNTAuNSAtMzUuNWgtMTI5NHEtMzcgMCAtNTAuNSAzNHQ3LjUgNjZ6TTE1NSAyMDBoMzQ1djc1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzVoMzQ1bC00NDUgNzIzek00OTYgNzAwaDIwOHEyMCAwIDMyIC0xNC41dDggLTM0LjVsLTU4IC0yNTIgcS00IC0yMCAtMjEuNSAtMzQuNXQtMzcuNSAtMTQuNWgtNTRxLTIwIDAgLTM3LjUgMTQuNXQtMjEuNSAzNC41bC01OCAyNTJxLTQgMjAgOCAzNC41dDMyIDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwODsiIGQ9Ik02NTAgMTIwMHE2MiAwIDEwNiAtNDR0NDQgLTEwNnYtMzM5bDM2MyAtMzI1cTE1IC0xNCAyNiAtMzguNXQxMSAtNDQuNXYtNDFxMCAtMjAgLTEyIC0yNi41dC0yOSA1LjVsLTM1OSAyNDl2LTI2M3ExMDAgLTkzIDEwMCAtMTEzdi02NHEwIC0yMSAtMTMgLTI5dC0zMiAxbC0yMDUgMTI4bC0yMDUgLTEyOHEtMTkgLTkgLTMyIC0xdC0xMyAyOXY2NHEwIDIwIDEwMCAxMTN2MjYzbC0zNTkgLTI0OXEtMTcgLTEyIC0yOSAtNS41dC0xMiAyNi41djQxIHEwIDIwIDExIDQ0LjV0MjYgMzguNWwzNjMgMzI1djMzOXEwIDYyIDQ0IDEwNnQxMDYgNDR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwOTsiIGQ9Ik04NTAgMTIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwaDUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoLTExMDB2MTUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGg1MDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMTAwIDgwMHYtNzUwcTAgLTIxIC0xNC41IC0zNS41IHQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NzUwaDExMDB6TTEwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTMwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTUwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTcwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTkwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTMwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTUwMCA0MDAgdi0xMDBoMTAwdjEwMGgtMTAwek03MDAgNDAwdi0xMDBoMTAwdjEwMGgtMTAwek05MDAgNDAwdi0xMDBoMTAwdjEwMGgtMTAwek0xMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek0zMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek01MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek03MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek05MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTA7IiBkPSJNMTEzNSAxMTY1bDI0OSAtMjMwcTE1IC0xNCAxNSAtMzV0LTE1IC0zNWwtMjQ5IC0yMzBxLTE0IC0xNCAtMjQuNSAtMTB0LTEwLjUgMjV2MTUwaC0xNTlsLTYwMCAtNjAwaC0yOTFxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjA5bDYwMCA2MDBoMjQxdjE1MHEwIDIxIDEwLjUgMjV0MjQuNSAtMTB6TTUyMiA4MTlsLTE0MSAtMTQxbC0xMjIgMTIyaC0yMDlxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDI5MXpNMTEzNSA1NjVsMjQ5IC0yMzBxMTUgLTE0IDE1IC0zNXQtMTUgLTM1bC0yNDkgLTIzMHEtMTQgLTE0IC0yNC41IC0xMHQtMTAuNSAyNXYxNTBoLTI0MWwtMTgxIDE4MWwxNDEgMTQxbDEyMiAtMTIyaDE1OXYxNTBxMCAyMSAxMC41IDI1dDI0LjUgLTEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTE7IiBkPSJNMTAwIDExMDBoMTAwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNjAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC01OTZsLTMwNCAtMzAwdjMwMGgtMTAwcS00MSAwIC03MC41IDI5LjV0LTI5LjUgNzAuNXY2MDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTI7IiBkPSJNMTUwIDEyMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yNTBoLTMwMHYyNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTIwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTI1MGgtMzAwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTExMDAgODAwdi0zMDBxMCAtNDEgLTMgLTc3LjV0LTE1IC04OS41dC0zMiAtOTZ0LTU4IC04OXQtODkgLTc3dC0xMjkgLTUxdC0xNzQgLTIwdC0xNzQgMjAgdC0xMjkgNTF0LTg5IDc3dC01OCA4OXQtMzIgOTZ0LTE1IDg5LjV0LTMgNzcuNXYzMDBoMzAwdi0yNTB2LTI3di00Mi41dDEuNSAtNDF0NSAtMzh0MTAgLTM1dDE2LjUgLTMwdDI1LjUgLTI0LjV0MzUgLTE5dDQ2LjUgLTEydDYwIC00dDYwIDQuNXQ0Ni41IDEyLjV0MzUgMTkuNXQyNSAyNS41dDE3IDMwLjV0MTAgMzV0NSAzOHQyIDQwLjV0LTAuNSA0MnYyNXYyNTBoMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTM7IiBkPSJNMTEwMCA0MTFsLTE5OCAtMTk5bC0zNTMgMzUzbC0zNTMgLTM1M2wtMTk3IDE5OWw1NTEgNTUxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTQ7IiBkPSJNMTEwMSA3ODlsLTU1MCAtNTUxbC01NTEgNTUxbDE5OCAxOTlsMzUzIC0zNTNsMzUzIDM1M3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTE1OyIgZD0iTTQwNCAxMDAwaDc0NnEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTUxaDE1MHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNWwtMjMwIC0yNDlxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI0OXEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNWgxNTB2NDAxaC0zODF6TTEzNSA5ODRsMjMwIC0yNDlxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNWgtMTUwdi00MDBoMzg1bDIxNSAtMjAwaC03NTBxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXY1NTBoLTE1MHEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIzMCAyNDlxMTQgMTUgMzUgMTV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTY7IiBkPSJNNTYgMTIwMGg5NHExNyAwIDMxIC0xMXQxOCAtMjdsMzggLTE2Mmg4OTZxMjQgMCAzOSAtMTguNXQxMCAtNDIuNWwtMTAwIC00NzVxLTUgLTIxIC0yNyAtNDIuNXQtNTUgLTIxLjVoLTYzM2w0OCAtMjAwaDUzNXEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41dC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1MGgtMzAwdi01MCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjV0LTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaC0zMXEtMTggMCAtMzIuNSAxMHQtMjAuNSAxOWwtNSAxMGwtMjAxIDk2MWgtNTRxLTIwIDAgLTM1IDE0LjV0LTE1IDM1LjV0MTUgMzUuNXQzNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTc7IiBkPSJNMTIwMCAxMDAwdi0xMDBoLTEyMDB2MTAwaDIwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMzAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41aDUwMHpNMCA4MDBoMTIwMHYtODAwaC0xMjAwdjgwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTE4OyIgZD0iTTIwMCA4MDBsLTIwMCAtNDAwdjYwMGgyMDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41aDMwMHE0MiAwIDcxIC0yOS41dDI5IC03MC41aDUwMHYtMjAwaC0xMDAwek0xNTAwIDcwMGwtMzAwIC03MDBoLTEyMDBsMzAwIDcwMGgxMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTk7IiBkPSJNNjM1IDExODRsMjMwIC0yNDlxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNWgtMTUwdi02MDFoMTUwcTIxIDAgMjUgLTEwLjV0LTEwIC0yNC41bC0yMzAgLTI0OXEtMTQgLTE1IC0zNSAtMTV0LTM1IDE1bC0yMzAgMjQ5cS0xNCAxNCAtMTAgMjQuNXQyNSAxMC41aDE1MHY2MDFoLTE1MHEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIzMCAyNDlxMTQgMTUgMzUgMTV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMjA7IiBkPSJNOTM2IDg2NGwyNDkgLTIyOXExNCAtMTUgMTQgLTM1LjV0LTE0IC0zNS41bC0yNDkgLTIyOXEtMTUgLTE1IC0yNS41IC0xMC41dC0xMC41IDI0LjV2MTUxaC02MDB2LTE1MXEwIC0yMCAtMTAuNSAtMjQuNXQtMjUuNSAxMC41bC0yNDkgMjI5cS0xNCAxNSAtMTQgMzUuNXQxNCAzNS41bDI0OSAyMjlxMTUgMTUgMjUuNSAxMC41dDEwLjUgLTI1LjV2LTE0OWg2MDB2MTQ5cTAgMjEgMTAuNSAyNS41dDI1LjUgLTEwLjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMTsiIGQ9Ik0xMTY5IDQwMGwtMTcyIDczMnEtNSAyMyAtMjMgNDUuNXQtMzggMjIuNWgtNjcycS0yMCAwIC0zOCAtMjB0LTIzIC00MWwtMTcyIC03MzloMTEzOHpNMTEwMCAzMDBoLTEwMDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTEwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoMTAwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2MTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41ek04MDAgMTAwdjEwMGgxMDB2LTEwMGgtMTAwIHpNMTAwMCAxMDB2MTAwaDEwMHYtMTAwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMjsiIGQ9Ik0xMTUwIDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTg1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNXQtMzUuNSAxNC41dC0xNC41IDM1LjV2ODUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTAwMCAyMDBsLTY3NSAyMDBoLTM4bDQ3IC0yNzZxMyAtMTYgLTUuNSAtMjB0LTI5LjUgLTRoLTdoLTg0cS0yMCAwIC0zNC41IDE0dC0xOC41IDM1cS01NSAzMzcgLTU1IDM1MXYyNTB2NnEwIDE2IDEgMjMuNXQ2LjUgMTQgdDE3LjUgNi41aDIwMGw2NzUgMjUwdi04NTB6TTAgNzUwdi0yNTBxLTQgMCAtMTEgMC41dC0yNCA2dC0zMCAxNXQtMjQgMzB0LTExIDQ4LjV2NTBxMCAyNiAxMC41IDQ2dDI1IDMwdDI5IDE2dDI1LjUgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTIzOyIgZD0iTTU1MyAxMjAwaDk0cTIwIDAgMjkgLTEwLjV0MyAtMjkuNWwtMTggLTM3cTgzIC0xOSAxNDQgLTgyLjV0NzYgLTE0MC41bDYzIC0zMjdsMTE4IC0xNzNoMTdxMTkgMCAzMyAtMTQuNXQxNCAtMzV0LTEzIC00MC41dC0zMSAtMjdxLTggLTQgLTIzIC05LjV0LTY1IC0xOS41dC0xMDMgLTI1dC0xMzIuNSAtMjB0LTE1OC41IC05cS01NyAwIC0xMTUgNXQtMTA0IDEydC04OC41IDE1LjV0LTczLjUgMTcuNXQtNTQuNSAxNnQtMzUuNSAxMmwtMTEgNCBxLTE4IDggLTMxIDI4dC0xMyA0MC41dDE0IDM1dDMzIDE0LjVoMTdsMTE4IDE3M2w2MyAzMjdxMTUgNzcgNzYgMTQwdDE0NCA4M2wtMTggMzJxLTYgMTkgMy41IDMydDI4LjUgMTN6TTQ5OCAxMTBxNTAgLTYgMTAyIC02cTUzIDAgMTAyIDZxLTEyIC00OSAtMzkuNSAtNzkuNXQtNjIuNSAtMzAuNXQtNjMgMzAuNXQtMzkgNzkuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTI0OyIgZD0iTTgwMCA5NDZsMjI0IDc4bC03OCAtMjI0bDIzNCAtNDVsLTE4MCAtMTU1bDE4MCAtMTU1bC0yMzQgLTQ1bDc4IC0yMjRsLTIyNCA3OGwtNDUgLTIzNGwtMTU1IDE4MGwtMTU1IC0xODBsLTQ1IDIzNGwtMjI0IC03OGw3OCAyMjRsLTIzNCA0NWwxODAgMTU1bC0xODAgMTU1bDIzNCA0NWwtNzggMjI0bDIyNCAtNzhsNDUgMjM0bDE1NSAtMTgwbDE1NSAxODB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyNTsiIGQ9Ik02NTAgMTIwMGg1MHE0MCAwIDcwIC00MC41dDMwIC04NC41di0xNTBsLTI4IC0xMjVoMzI4cTQwIDAgNzAgLTQwLjV0MzAgLTg0LjV2LTEwMHEwIC00NSAtMjkgLTc0bC0yMzggLTM0NHEtMTYgLTI0IC0zOCAtNDAuNXQtNDUgLTE2LjVoLTI1MHEtNyAwIC00MiAyNXQtNjYgNTBsLTMxIDI1aC02MXEtNDUgMCAtNzIuNSAxOHQtMjcuNSA1N3Y0MDBxMCAzNiAyMCA2M2wxNDUgMTk2bDk2IDE5OHExMyAyOCAzNy41IDQ4dDUxLjUgMjB6IE02NTAgMTEwMGwtMTAwIC0yMTJsLTE1MCAtMjEzdi0zNzVoMTAwbDEzNiAtMTAwaDIxNGwyNTAgMzc1djEyNWgtNDUwbDUwIDIyNXYxNzVoLTUwek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTI2OyIgZD0iTTYwMCAxMTAwaDI1MHEyMyAwIDQ1IC0xNi41dDM4IC00MC41bDIzOCAtMzQ0cTI5IC0yOSAyOSAtNzR2LTEwMHEwIC00NCAtMzAgLTg0LjV0LTcwIC00MC41aC0zMjhxMjggLTExOCAyOCAtMTI1di0xNTBxMCAtNDQgLTMwIC04NC41dC03MCAtNDAuNWgtNTBxLTI3IDAgLTUxLjUgMjB0LTM3LjUgNDhsLTk2IDE5OGwtMTQ1IDE5NnEtMjAgMjcgLTIwIDYzdjQwMHEwIDM5IDI3LjUgNTd0NzIuNSAxOGg2MXExMjQgMTAwIDEzOSAxMDB6IE01MCAxMDAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTYzNiAxMDAwbC0xMzYgLTEwMGgtMTAwdi0zNzVsMTUwIC0yMTNsMTAwIC0yMTJoNTB2MTc1bC01MCAyMjVoNDUwdjEyNWwtMjUwIDM3NWgtMjE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMjc7IiBkPSJNMzU2IDg3M2wzNjMgMjMwcTMxIDE2IDUzIC02bDExMCAtMTEycTEzIC0xMyAxMy41IC0zMnQtMTEuNSAtMzRsLTg0IC0xMjFoMzAycTg0IDAgMTM4IC0zOHQ1NCAtMTEwdC01NSAtMTExdC0xMzkgLTM5aC0xMDZsLTEzMSAtMzM5cS02IC0yMSAtMTkuNSAtNDF0LTI4LjUgLTIwaC0zNDJxLTcgMCAtOTAgODF0LTgzIDk0djUyNXEwIDE3IDE0IDM1LjV0MjggMjguNXpNNDAwIDc5MnYtNTAzbDEwMCAtODloMjkzbDEzMSAzMzkgcTYgMjEgMTkuNSA0MXQyOC41IDIwaDIwM3EyMSAwIDMwLjUgMjV0MC41IDUwdC0zMSAyNWgtNDU2aC03aC02aC01LjV0LTYgMC41dC01IDEuNXQtNSAydC00IDIuNXQtNCA0dC0yLjUgNC41cS0xMiAyNSA1IDQ3bDE0NiAxODNsLTg2IDgzek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NTAwIHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyODsiIGQ9Ik00NzUgMTEwM2wzNjYgLTIzMHEyIC0xIDYgLTMuNXQxNCAtMTAuNXQxOCAtMTYuNXQxNC41IC0yMHQ2LjUgLTIyLjV2LTUyNXEwIC0xMyAtODYgLTk0dC05MyAtODFoLTM0MnEtMTUgMCAtMjguNSAyMHQtMTkuNSA0MWwtMTMxIDMzOWgtMTA2cS04NSAwIC0xMzkuNSAzOXQtNTQuNSAxMTF0NTQgMTEwdDEzOCAzOGgzMDJsLTg1IDEyMXEtMTEgMTUgLTEwLjUgMzR0MTMuNSAzMmwxMTAgMTEycTIyIDIyIDUzIDZ6TTM3MCA5NDVsMTQ2IC0xODMgcTE3IC0yMiA1IC00N3EtMiAtMiAtMy41IC00LjV0LTQgLTR0LTQgLTIuNXQtNSAtMnQtNSAtMS41dC02IC0wLjVoLTZoLTYuNWgtNmgtNDc1di0xMDBoMjIxcTE1IDAgMjkgLTIwdDIwIC00MWwxMzAgLTMzOWgyOTRsMTA2IDg5djUwM2wtMzQyIDIzNnpNMTA1MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjUgdjUwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyOTsiIGQ9Ik01NTAgMTI5NHE3MiAwIDExMSAtNTV0MzkgLTEzOXYtMTA2bDMzOSAtMTMxcTIxIC02IDQxIC0xOS41dDIwIC0yOC41di0zNDJxMCAtNyAtODEgLTkwdC05NCAtODNoLTUyNXEtMTcgMCAtMzUuNSAxNHQtMjguNSAyOGwtOSAxNGwtMjMwIDM2M3EtMTYgMzEgNiA1M2wxMTIgMTEwcTEzIDEzIDMyIDEzLjV0MzQgLTExLjVsMTIxIC04NHYzMDJxMCA4NCAzOCAxMzh0MTEwIDU0ek02MDAgOTcydjIwM3EwIDIxIC0yNSAzMC41dC01MCAwLjUgdC0yNSAtMzF2LTQ1NnYtN3YtNnYtNS41dC0wLjUgLTZ0LTEuNSAtNXQtMiAtNXQtMi41IC00dC00IC00dC00LjUgLTIuNXEtMjUgLTEyIC00NyA1bC0xODMgMTQ2bC04MyAtODZsMjM2IC0zMzloNTAzbDg5IDEwMHYyOTNsLTMzOSAxMzFxLTIxIDYgLTQxIDE5LjV0LTIwIDI4LjV6TTQ1MCAyMDBoNTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTUwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMDsiIGQ9Ik0zNTAgMTEwMGg1MDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNWgtNTAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41ek02MDAgMzA2di0xMDZxMCAtODQgLTM5IC0xMzl0LTExMSAtNTV0LTExMCA1NHQtMzggMTM4djMwMmwtMTIxIC04NHEtMTUgLTEyIC0zNCAtMTEuNXQtMzIgMTMuNWwtMTEyIDExMCBxLTIyIDIyIC02IDUzbDIzMCAzNjNxMSAyIDMuNSA2dDEwLjUgMTMuNXQxNi41IDE3dDIwIDEzLjV0MjIuNSA2aDUyNXExMyAwIDk0IC04M3Q4MSAtOTB2LTM0MnEwIC0xNSAtMjAgLTI4LjV0LTQxIC0xOS41ek0zMDggOTAwbC0yMzYgLTMzOWw4MyAtODZsMTgzIDE0NnEyMiAxNyA0NyA1cTIgLTEgNC41IC0yLjV0NCAtNHQyLjUgLTR0MiAtNXQxLjUgLTV0MC41IC02di01LjV2LTZ2LTd2LTQ1NnEwIC0yMiAyNSAtMzF0NTAgMC41dDI1IDMwLjUgdjIwM3EwIDE1IDIwIDI4LjV0NDEgMTkuNWwzMzkgMTMxdjI5M2wtODkgMTAwaC01MDN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMTsiIGQ9Ik02MDAgMTE3OHExMTggMCAyMjUgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNXQtNDUuNSAtMjI1dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjUgLTQ1LjV0LTIyNSA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjV0NDUuNSAyMjV0MTIzIDE4NC41dDE4NC41IDEyM3QyMjUgNDUuNXpNOTE0IDYzMmwtMjc1IDIyM3EtMTYgMTMgLTI3LjUgOHQtMTEuNSAtMjZ2LTEzN2gtMjc1IHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTE1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDI3NXYtMTM3cTAgLTIxIDExLjUgLTI2dDI3LjUgOGwyNzUgMjIzcTE2IDEzIDE2IDMydC0xNiAzMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTMyOyIgZD0iTTYwMCAxMTc4cTExOCAwIDIyNSAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI1dC00NS41IC0yMjV0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNSAtNDUuNXQtMjI1IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNXQ0NS41IDIyNXQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNSA0NS41ek01NjEgODU1bC0yNzUgLTIyM3EtMTYgLTEzIC0xNiAtMzJ0MTYgLTMybDI3NSAtMjIzcTE2IC0xMyAyNy41IC04IHQxMS41IDI2djEzN2gyNzVxMTAgMCAxNy41IDcuNXQ3LjUgMTcuNXYxNTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41aC0yNzV2MTM3cTAgMjEgLTExLjUgMjZ0LTI3LjUgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMzsiIGQ9Ik02MDAgMTE3OHExMTggMCAyMjUgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNXQtNDUuNSAtMjI1dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjUgLTQ1LjV0LTIyNSA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjV0NDUuNSAyMjV0MTIzIDE4NC41dDE4NC41IDEyM3QyMjUgNDUuNXpNODU1IDYzOWwtMjIzIDI3NXEtMTMgMTYgLTMyIDE2dC0zMiAtMTZsLTIyMyAtMjc1cS0xMyAtMTYgLTggLTI3LjUgdDI2IC0xMS41aDEzN3YtMjc1cTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2Mjc1aDEzN3EyMSAwIDI2IDExLjV0LTggMjcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM0OyIgZD0iTTYwMCAxMTc4cTExOCAwIDIyNSAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI1dC00NS41IC0yMjV0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNSAtNDUuNXQtMjI1IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNXQ0NS41IDIyNXQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNSA0NS41ek02NzUgOTAwaC0xNTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di0yNzVoLTEzN3EtMjEgMCAtMjYgLTExLjUgdDggLTI3LjVsMjIzIC0yNzVxMTMgLTE2IDMyIC0xNnQzMiAxNmwyMjMgMjc1cTEzIDE2IDggMjcuNXQtMjYgMTEuNWgtMTM3djI3NXEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzNTsiIGQ9Ik02MDAgMTE3NnExMTYgMCAyMjIuNSAtNDZ0MTg0IC0xMjMuNXQxMjMuNSAtMTg0dDQ2IC0yMjIuNXQtNDYgLTIyMi41dC0xMjMuNSAtMTg0dC0xODQgLTEyMy41dC0yMjIuNSAtNDZ0LTIyMi41IDQ2dC0xODQgMTIzLjV0LTEyMy41IDE4NHQtNDYgMjIyLjV0NDYgMjIyLjV0MTIzLjUgMTg0dDE4NCAxMjMuNXQyMjIuNSA0NnpNNjI3IDExMDFxLTE1IC0xMiAtMzYuNSAtMjAuNXQtMzUuNSAtMTJ0LTQzIC04dC0zOSAtNi41IHEtMTUgLTMgLTQ1LjUgMHQtNDUuNSAtMnEtMjAgLTcgLTUxLjUgLTI2LjV0LTM0LjUgLTM0LjVxLTMgLTExIDYuNSAtMjIuNXQ4LjUgLTE4LjVxLTMgLTM0IC0yNy41IC05MXQtMjkuNSAtNzlxLTkgLTM0IDUgLTkzdDggLTg3cTAgLTkgMTcgLTQ0LjV0MTYgLTU5LjVxMTIgMCAyMyAtNXQyMy41IC0xNXQxOS41IC0xNHExNiAtOCAzMyAtMTV0NDAuNSAtMTV0MzQuNSAtMTJxMjEgLTkgNTIuNSAtMzJ0NjAgLTM4dDU3LjUgLTExIHE3IC0xNSAtMyAtMzR0LTIyLjUgLTQwdC05LjUgLTM4cTEzIC0yMSAyMyAtMzQuNXQyNy41IC0yNy41dDM2LjUgLTE4cTAgLTcgLTMuNSAtMTZ0LTMuNSAtMTR0NSAtMTdxMTA0IC0yIDIyMSAxMTJxMzAgMjkgNDYuNSA0N3QzNC41IDQ5dDIxIDYzcS0xMyA4IC0zNyA4LjV0LTM2IDcuNXEtMTUgNyAtNDkuNSAxNXQtNTEuNSAxOXEtMTggMCAtNDEgLTAuNXQtNDMgLTEuNXQtNDIgLTYuNXQtMzggLTE2LjVxLTUxIC0zNSAtNjYgLTEyIHEtNCAxIC0zLjUgMjUuNXQwLjUgMjUuNXEtNiAxMyAtMjYuNSAxNy41dC0yNC41IDYuNXExIDE1IC0wLjUgMzAuNXQtNyAyOHQtMTguNSAxMS41dC0zMSAtMjFxLTIzIC0yNSAtNDIgNHEtMTkgMjggLTggNThxNiAxNiAyMiAyMnE2IC0xIDI2IC0xLjV0MzMuNSAtNHQxOS41IC0xMy41cTcgLTEyIDE4IC0yNHQyMS41IC0yMC41dDIwIC0xNXQxNS41IC0xMC41bDUgLTNxMiAxMiA3LjUgMzAuNXQ4IDM0LjV0LTAuNSAzMnEtMyAxOCAzLjUgMjkgdDE4IDIyLjV0MTUuNSAyNC41cTYgMTQgMTAuNSAzNXQ4IDMxdDE1LjUgMjIuNXQzNCAyMi41cS02IDE4IDEwIDM2cTggMCAyNCAtMS41dDI0LjUgLTEuNXQyMCA0LjV0MjAuNSAxNS41cS0xMCAyMyAtMzEgNDIuNXQtMzcuNSAyOS41dC00OSAyN3QtNDMuNSAyM3EwIDEgMiA4dDMgMTEuNXQxLjUgMTAuNXQtMSA5LjV0LTQuNSA0LjVxMzEgLTEzIDU4LjUgLTE0LjV0MzguNSAyLjVsMTIgNXE1IDI4IC05LjUgNDZ0LTM2LjUgMjR0LTUwIDE1IHQtNDEgMjBxLTE4IC00IC0zNyAwek02MTMgOTk0cTAgLTE3IDggLTQydDE3IC00NXQ5IC0yM3EtOCAxIC0zOS41IDUuNXQtNTIuNSAxMHQtMzcgMTYuNXEzIDExIDE2IDI5LjV0MTYgMjUuNXExMCAtMTAgMTkgLTEwdDE0IDZ0MTMuNSAxNC41dDE2LjUgMTIuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM2OyIgZD0iTTc1NiAxMTU3cTE2NCA5MiAzMDYgLTlsLTI1OSAtMTM4bDE0NSAtMjMybDI1MSAxMjZxNiAtODkgLTM0IC0xNTYuNXQtMTE3IC0xMTAuNXEtNjAgLTM0IC0xMjcgLTM5LjV0LTEyNiAxNi41bC01OTYgLTU5NnEtMTUgLTE2IC0zNi41IC0xNnQtMzYuNSAxNmwtMTExIDExMHEtMTUgMTUgLTE1IDM2LjV0MTUgMzcuNWw2MDAgNTk5cS0zNCAxMDEgNS41IDIwMS41dDEzNS41IDE1NC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMzc7IiBob3Jpei1hZHYteD0iMTIyMCIgZD0iTTEwMCAxMTk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNMTEwMCAxMDk2aC0yMDB2LTEwMGgyMDB2MTAwek0xMDAgNzk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMCBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djEwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTExMDAgNjk2aC01MDB2LTEwMGg1MDB2MTAwek0xMDAgMzk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNMTEwMCAyOTZoLTMwMHYtMTAwaDMwMHYxMDB6ICIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMzg7IiBkPSJNMTUwIDEyMDBoOTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41dC0xNC41IC0zNS41dC0zNS41IC0xNC41aC05MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTcwMCA1MDB2LTMwMGwtMjAwIC0yMDB2NTAwbC0zNTAgNTAwaDkwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM5OyIgZD0iTTUwMCAxMjAwaDIwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtMTAwaDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNDAwaC01MDB2MTAwaC0yMDB2LTEwMGgtNTAwdjQwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMzAwdjEwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTUwMCAxMTAwdi0xMDBoMjAwdjEwMGgtMjAwek0xMjAwIDQwMHYtMjAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC0xMDAwIHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MjAwaDEyMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0MDsiIGQ9Ik01MCAxMjAwaDMwMHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNWwtOTQgLTk0bDE5OSAtMTk5cTcgLTggNyAtMTh0LTcgLTE4bC0xMDYgLTEwNnEtOCAtNyAtMTggLTd0LTE4IDdsLTE5OSAxOTlsLTk0IC05NHEtMTQgLTE0IC0yNC41IC0xMHQtMTAuNSAyNXYzMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTIwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTk0IDk0IGwtMTk5IC0xOTlxLTggLTcgLTE4IC03dC0xOCA3bC0xMDYgMTA2cS03IDggLTcgMTh0NyAxOGwxOTkgMTk5bC05NCA5NHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXpNMzY0IDQ3MGwxMDYgLTEwNnE3IC04IDcgLTE4dC03IC0xOGwtMTk5IC0xOTlsOTQgLTk0cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTMwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MzAwcTAgMjEgMTAuNSAyNXQyNC41IC0xMGw5NCAtOTRsMTk5IDE5OSBxOCA3IDE4IDd0MTggLTd6TTEwNzEgMjcxbDk0IDk0cTE0IDE0IDI0LjUgMTB0MTAuNSAtMjV2LTMwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0yNSAxMC41dDEwIDI0LjVsOTQgOTRsLTE5OSAxOTlxLTcgOCAtNyAxOHQ3IDE4bDEwNiAxMDZxOCA3IDE4IDd0MTggLTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0MTsiIGQ9Ik01OTYgMTE5MnExMjEgMCAyMzEuNSAtNDcuNXQxOTAgLTEyN3QxMjcgLTE5MHQ0Ny41IC0yMzEuNXQtNDcuNSAtMjMxLjV0LTEyNyAtMTkwLjV0LTE5MCAtMTI3dC0yMzEuNSAtNDd0LTIzMS41IDQ3dC0xOTAuNSAxMjd0LTEyNyAxOTAuNXQtNDcgMjMxLjV0NDcgMjMxLjV0MTI3IDE5MHQxOTAuNSAxMjd0MjMxLjUgNDcuNXpNNTk2IDEwMTBxLTExMiAwIC0yMDcuNSAtNTUuNXQtMTUxIC0xNTF0LTU1LjUgLTIwNy41dDU1LjUgLTIwNy41IHQxNTEgLTE1MXQyMDcuNSAtNTUuNXQyMDcuNSA1NS41dDE1MSAxNTF0NTUuNSAyMDcuNXQtNTUuNSAyMDcuNXQtMTUxIDE1MXQtMjA3LjUgNTUuNXpNNDU0LjUgOTA1cTIyLjUgMCAzOC41IC0xNnQxNiAtMzguNXQtMTYgLTM5dC0zOC41IC0xNi41dC0zOC41IDE2LjV0LTE2IDM5dDE2IDM4LjV0MzguNSAxNnpNNzU0LjUgOTA1cTIyLjUgMCAzOC41IC0xNnQxNiAtMzguNXQtMTYgLTM5dC0zOCAtMTYuNXEtMTQgMCAtMjkgMTBsLTU1IC0xNDUgcTE3IC0yMyAxNyAtNTFxMCAtMzYgLTI1LjUgLTYxLjV0LTYxLjUgLTI1LjV0LTYxLjUgMjUuNXQtMjUuNSA2MS41cTAgMzIgMjAuNSA1Ni41dDUxLjUgMjkuNWwxMjIgMTI2bDEgMXEtOSAxNCAtOSAyOHEwIDIzIDE2IDM5dDM4LjUgMTZ6TTM0NS41IDcwOXEyMi41IDAgMzguNSAtMTZ0MTYgLTM4LjV0LTE2IC0zOC41dC0zOC41IC0xNnQtMzguNSAxNnQtMTYgMzguNXQxNiAzOC41dDM4LjUgMTZ6TTg1NC41IDcwOXEyMi41IDAgMzguNSAtMTYgdDE2IC0zOC41dC0xNiAtMzguNXQtMzguNSAtMTZ0LTM4LjUgMTZ0LTE2IDM4LjV0MTYgMzguNXQzOC41IDE2eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDI7IiBkPSJNNTQ2IDE3M2w0NjkgNDcwcTkxIDkxIDk5IDE5MnE3IDk4IC01MiAxNzUuNXQtMTU0IDk0LjVxLTIyIDQgLTQ3IDRxLTM0IDAgLTY2LjUgLTEwdC01Ni41IC0yM3QtNTUuNSAtMzh0LTQ4IC00MS41dC00OC41IC00Ny41cS0zNzYgLTM3NSAtMzkxIC0zOTBxLTMwIC0yNyAtNDUgLTQxLjV0LTM3LjUgLTQxdC0zMiAtNDYuNXQtMTYgLTQ3LjV0LTEuNSAtNTYuNXE5IC02MiA1My41IC05NXQ5OS41IC0zM3E3NCAwIDEyNSA1MWw1NDggNTQ4IHEzNiAzNiAyMCA3NXEtNyAxNiAtMjEuNSAyNnQtMzIuNSAxMHEtMjYgMCAtNTAgLTIzcS0xMyAtMTIgLTM5IC0zOGwtMzQxIC0zMzhxLTE1IC0xNSAtMzUuNSAtMTUuNXQtMzQuNSAxMy41dC0xNCAzNC41dDE0IDM0LjVxMzI3IDMzMyAzNjEgMzY3cTM1IDM1IDY3LjUgNTEuNXQ3OC41IDE2LjVxMTQgMCAyOSAtMXE0NCAtOCA3NC41IC0zNS41dDQzLjUgLTY4LjVxMTQgLTQ3IDIgLTk2LjV0LTQ3IC04NC41cS0xMiAtMTEgLTMyIC0zMiB0LTc5LjUgLTgxdC0xMTQuNSAtMTE1dC0xMjQuNSAtMTIzLjV0LTEyMyAtMTE5LjV0LTk2LjUgLTg5dC01NyAtNDVxLTU2IC0yNyAtMTIwIC0yN3EtNzAgMCAtMTI5IDMydC05MyA4OXEtNDggNzggLTM1IDE3M3Q4MSAxNjNsNTExIDUxMXE3MSA3MiAxMTEgOTZxOTEgNTUgMTk4IDU1cTgwIDAgMTUyIC0zM3E3OCAtMzYgMTI5LjUgLTEwM3Q2Ni41IC0xNTRxMTcgLTkzIC0xMSAtMTgzLjV0LTk0IC0xNTYuNWwtNDgyIC00NzYgcS0xNSAtMTUgLTM2IC0xNnQtMzcgMTR0LTE3LjUgMzR0MTQuNSAzNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTQzOyIgZD0iTTY0OSA5NDlxNDggNjggMTA5LjUgMTA0dDEyMS41IDM4LjV0MTE4LjUgLTIwdDEwMi41IC02NHQ3MSAtMTAwLjV0MjcgLTEyM3EwIC01NyAtMzMuNSAtMTE3LjV0LTk0IC0xMjQuNXQtMTI2LjUgLTEyNy41dC0xNTAgLTE1Mi41dC0xNDYgLTE3NHEtNjIgODUgLTE0NS41IDE3NHQtMTUwIDE1Mi41dC0xMjYuNSAxMjcuNXQtOTMuNSAxMjQuNXQtMzMuNSAxMTcuNXEwIDY0IDI4IDEyM3Q3MyAxMDAuNXQxMDQgNjR0MTE5IDIwIHQxMjAuNSAtMzguNXQxMDQuNSAtMTA0ek04OTYgOTcycS0zMyAwIC02NC41IC0xOXQtNTYuNSAtNDZ0LTQ3LjUgLTUzLjV0LTQzLjUgLTQ1LjV0LTM3LjUgLTE5dC0zNiAxOXQtNDAgNDUuNXQtNDMgNTMuNXQtNTQgNDZ0LTY1LjUgMTlxLTY3IDAgLTEyMi41IC01NS41dC01NS41IC0xMzIuNXEwIC0yMyAxMy41IC01MXQ0NiAtNjV0NTcuNSAtNjN0NzYgLTc1bDIyIC0yMnExNSAtMTQgNDQgLTQ0dDUwLjUgLTUxdDQ2IC00NHQ0MSAtMzV0MjMgLTEyIHQyMy41IDEydDQyLjUgMzZ0NDYgNDR0NTIuNSA1MnQ0NCA0M3E0IDQgMTIgMTNxNDMgNDEgNjMuNSA2MnQ1MiA1NXQ0NiA1NXQyNiA0NnQxMS41IDQ0cTAgNzkgLTUzIDEzMy41dC0xMjAgNTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTQ0OyIgZD0iTTc3Ni41IDEyMTRxOTMuNSAwIDE1OS41IC02NmwxNDEgLTE0MXE2NiAtNjYgNjYgLTE2MHEwIC00MiAtMjggLTk1LjV0LTYyIC04Ny41bC0yOSAtMjlxLTMxIDUzIC03NyA5OWwtMTggMThsOTUgOTVsLTI0NyAyNDhsLTM4OSAtMzg5bDIxMiAtMjEybC0xMDUgLTEwNmwtMTkgMThsLTE0MSAxNDFxLTY2IDY2IC02NiAxNTl0NjYgMTU5bDI4MyAyODNxNjUgNjYgMTU4LjUgNjZ6TTYwMCA3MDZsMTA1IDEwNXExMCAtOCAxOSAtMTdsMTQxIC0xNDEgcTY2IC02NiA2NiAtMTU5dC02NiAtMTU5bC0yODMgLTI4M3EtNjYgLTY2IC0xNTkgLTY2dC0xNTkgNjZsLTE0MSAxNDFxLTY2IDY2IC02NiAxNTkuNXQ2NiAxNTkuNWw1NSA1NXEyOSAtNTUgNzUgLTEwMmwxOCAtMTdsLTk1IC05NWwyNDcgLTI0OGwzODkgMzg5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDU7IiBkPSJNNjAzIDEyMDBxODUgMCAxNjIgLTE1dDEyNyAtMzh0NzkgLTQ4dDI5IC00NnYtOTUzcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC02MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djk1M3EwIDIxIDMwIDQ2LjV0ODEgNDh0MTI5IDM3LjV0MTYzIDE1ek0zMDAgMTAwMHYtNzAwaDYwMHY3MDBoLTYwMHpNNjAwIDI1NHEtNDMgMCAtNzMuNSAtMzAuNXQtMzAuNSAtNzMuNXQzMC41IC03My41dDczLjUgLTMwLjV0NzMuNSAzMC41IHQzMC41IDczLjV0LTMwLjUgNzMuNXQtNzMuNSAzMC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDY7IiBkPSJNOTAyIDExODVsMjgzIC0yODJxMTUgLTE1IDE1IC0zNnQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNXQtMzUgMTVsLTM2IDM1bC0yNzkgLTI2N3YtMzAwbC0yMTIgMjEwbC0zMDggLTMwN2wtMjgwIC0yMDNsMjAzIDI4MGwzMDcgMzA4bC0yMTAgMjEyaDMwMGwyNjcgMjc5bC0zNSAzNnEtMTUgMTQgLTE1IDM1dDE0LjUgMzUuNXQzNS41IDE0LjV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDg7IiBkPSJNNzAwIDEyNDh2LTc4cTM4IC01IDcyLjUgLTE0LjV0NzUuNSAtMzEuNXQ3MSAtNTMuNXQ1MiAtODR0MjQgLTExOC41aC0xNTlxLTQgMzYgLTEwLjUgNTl0LTIxIDQ1dC00MCAzNS41dC02NC41IDIwLjV2LTMwN2w2NCAtMTNxMzQgLTcgNjQgLTE2LjV0NzAgLTMydDY3LjUgLTUyLjV0NDcuNSAtODB0MjAgLTExMnEwIC0xMzkgLTg5IC0yMjR0LTI0NCAtOTd2LTc3aC0xMDB2NzlxLTE1MCAxNiAtMjM3IDEwM3EtNDAgNDAgLTUyLjUgOTMuNSB0LTE1LjUgMTM5LjVoMTM5cTUgLTc3IDQ4LjUgLTEyNnQxMTcuNSAtNjV2MzM1bC0yNyA4cS00NiAxNCAtNzkgMjYuNXQtNzIgMzZ0LTYzIDUydC00MCA3Mi41dC0xNiA5OHEwIDcwIDI1IDEyNnQ2Ny41IDkydDk0LjUgNTd0MTEwIDI3djc3aDEwMHpNNjAwIDc1NHYyNzRxLTI5IC00IC01MCAtMTF0LTQyIC0yMS41dC0zMS41IC00MS41dC0xMC41IC02NXEwIC0yOSA3IC01MC41dDE2LjUgLTM0dDI4LjUgLTIyLjV0MzEuNSAtMTR0MzcuNSAtMTAgcTkgLTMgMTMgLTR6TTcwMCA1NDd2LTMxMHEyMiAyIDQyLjUgNi41dDQ1IDE1LjV0NDEuNSAyN3QyOSA0MnQxMiA1OS41dC0xMi41IDU5LjV0LTM4IDQ0LjV0LTUzIDMxdC02Ni41IDI0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0OTsiIGQ9Ik01NjEgMTE5N3E4NCAwIDE2MC41IC00MHQxMjMuNSAtMTA5LjV0NDcgLTE0Ny41aC0xNTNxMCA0MCAtMTkuNSA3MS41dC00OS41IDQ4LjV0LTU5LjUgMjZ0LTU1LjUgOXEtMzcgMCAtNzkgLTE0LjV0LTYyIC0zNS41cS00MSAtNDQgLTQxIC0xMDFxMCAtMjYgMTMuNSAtNjN0MjYuNSAtNjF0MzcgLTY2cTYgLTkgOSAtMTRoMjQxdi0xMDBoLTE5N3E4IC01MCAtMi41IC0xMTV0LTMxLjUgLTk1cS00NSAtNjIgLTk5IC0xMTIgcTM0IDEwIDgzIDE3LjV0NzEgNy41cTMyIDEgMTAyIC0xNnQxMDQgLTE3cTgzIDAgMTM2IDMwbDUwIC0xNDdxLTMxIC0xOSAtNTggLTMwLjV0LTU1IC0xNS41dC00MiAtNC41dC00NiAtMC41cS0yMyAwIC03NiAxN3QtMTExIDMyLjV0LTk2IDExLjVxLTM5IC0zIC04MiAtMTZ0LTY3IC0yNWwtMjMgLTExbC01NSAxNDVxNCAzIDE2IDExdDE1LjUgMTAuNXQxMyA5dDE1LjUgMTJ0MTQuNSAxNHQxNy41IDE4LjVxNDggNTUgNTQgMTI2LjUgdC0zMCAxNDIuNWgtMjIxdjEwMGgxNjZxLTIzIDQ3IC00NCAxMDRxLTcgMjAgLTEyIDQxLjV0LTYgNTUuNXQ2IDY2LjV0MjkuNSA3MC41dDU4LjUgNzFxOTcgODggMjYzIDg4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTA7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTkzNSAxMTg0bDIzMCAtMjQ5cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTE1MHYtOTAwaC0yMDB2OTAwaC0xNTBxLTIxIDAgLTI1IDEwLjV0MTAgMjQuNWwyMzAgMjQ5cTE0IDE1IDM1IDE1dDM1IC0xNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTUxOyIgZD0iTTEwMDAgNzAwaC0xMDB2MTAwaC0xMDB2LTEwMGgtMTAwdjUwMGgzMDB2LTUwMHpNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTgwMSAxMTAwdi0yMDBoMTAwdjIwMGgtMTAwek0xMDAwIDM1MGwtMjAwIC0yNTBoMjAwdi0xMDBoLTMwMHYxNTBsMjAwIDI1MGgtMjAwdjEwMGgzMDB2LTE1MHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE1MjsiIGQ9Ik00MDAgMzAwaDE1MHEyMSAwIDI1IC0xMXQtMTAgLTI1bC0yMzAgLTI1MHEtMTQgLTE1IC0zNSAtMTV0LTM1IDE1bC0yMzAgMjUwcS0xNCAxNCAtMTAgMjV0MjUgMTFoMTUwdjkwMGgyMDB2LTkwMHpNMTAwMCAxMDUwbC0yMDAgLTI1MGgyMDB2LTEwMGgtMzAwdjE1MGwyMDAgMjUwaC0yMDB2MTAwaDMwMHYtMTUwek0xMDAwIDBoLTEwMHYxMDBoLTEwMHYtMTAwaC0xMDB2NTAwaDMwMHYtNTAwek04MDEgNDAwdi0yMDBoMTAwdjIwMGgtMTAweiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTUzOyIgZD0iTTQwMCAzMDBoMTUwcTIxIDAgMjUgLTExdC0xMCAtMjVsLTIzMCAtMjUwcS0xNCAtMTUgLTM1IC0xNXQtMzUgMTVsLTIzMCAyNTBxLTE0IDE0IC0xMCAyNXQyNSAxMWgxNTB2OTAwaDIwMHYtOTAwek0xMDAwIDcwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNMTEwMCAwaC0xMDB2MTAwaC0yMDB2NDAwaDMwMHYtNTAwek05MDEgNDAwdi0yMDBoMTAwdjIwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTQ7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTExMDAgNzAwaC0xMDB2MTAwaC0yMDB2NDAwaDMwMHYtNTAwek05MDEgMTEwMHYtMjAwaDEwMHYyMDBoLTEwMHpNMTAwMCAwaC0xMDB2NDAwaC0xMDB2MTAwaDIwMHYtNTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTU7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTkwMCAxMDAwaC0yMDB2MjAwaDIwMHYtMjAwek0xMDAwIDcwMGgtMzAwdjIwMGgzMDB2LTIwMHpNMTEwMCA0MDBoLTQwMHYyMDBoNDAwdi0yMDB6TTEyMDAgMTAwaC01MDB2MjAwaDUwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTY7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTEyMDAgMTAwMGgtNTAwdjIwMGg1MDB2LTIwMHpNMTEwMCA3MDBoLTQwMHYyMDBoNDAwdi0yMDB6TTEwMDAgNDAwaC0zMDB2MjAwaDMwMHYtMjAwek05MDAgMTAwaC0yMDB2MjAwaDIwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTc7IiBkPSJNMzUwIDExMDBoNDAwcTE2MiAwIDI1NiAtOTMuNXQ5NCAtMjU2LjV2LTQwMHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNDAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY0MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41ek04MDAgOTAwaC01MDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNSB2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTg7IiBkPSJNMzUwIDExMDBoNDAwcTE2NSAwIDI1Ny41IC05Mi41dDkyLjUgLTI1Ny41di00MDBxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTYzIDAgLTI1Ni41IDkyLjV0LTkzLjUgMjU3LjV2NDAwcTAgMTYzIDk0IDI1Ni41dDI1NiA5My41ek04MDAgOTAwaC01MDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNSB2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41ek00NDAgNzcwbDI1MyAtMTkwcTE3IC0xMiAxNyAtMzB0LTE3IC0zMGwtMjUzIC0xOTBxLTE2IC0xMiAtMjggLTYuNXQtMTIgMjYuNXY0MDBxMCAyMSAxMiAyNi41dDI4IC02LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE1OTsiIGQ9Ik0zNTAgMTEwMGg0MDBxMTYzIDAgMjU2LjUgLTk0dDkzLjUgLTI1NnYtNDAwcTAgLTE2NSAtOTIuNSAtMjU3LjV0LTI1Ny41IC05Mi41aC00MDBxLTE2NSAwIC0yNTcuNSA5Mi41dC05Mi41IDI1Ny41djQwMHEwIDE2MyA5Mi41IDI1Ni41dDI1Ny41IDkzLjV6TTgwMCA5MDBoLTUwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwcTAgLTQxIDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41IHY1MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjV6TTM1MCA3MDBoNDAwcTIxIDAgMjYuNSAtMTJ0LTYuNSAtMjhsLTE5MCAtMjUzcS0xMiAtMTcgLTMwIC0xN3QtMzAgMTdsLTE5MCAyNTNxLTEyIDE2IC02LjUgMjh0MjYuNSAxMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYwOyIgZD0iTTM1MCAxMTAwaDQwMHExNjUgMCAyNTcuNSAtOTIuNXQ5Mi41IC0yNTcuNXYtNDAwcTAgLTE2MyAtOTIuNSAtMjU2LjV0LTI1Ny41IC05My41aC00MDBxLTE2MyAwIC0yNTYuNSA5NHQtOTMuNSAyNTZ2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXpNODAwIDkwMGgtNTAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di01MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjUgdjUwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNNTgwIDY5M2wxOTAgLTI1M3ExMiAtMTYgNi41IC0yOHQtMjYuNSAtMTJoLTQwMHEtMjEgMCAtMjYuNSAxMnQ2LjUgMjhsMTkwIDI1M3ExMiAxNyAzMCAxN3QzMCAtMTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE2MTsiIGQ9Ik01NTAgMTEwMGg0MDBxMTY1IDAgMjU3LjUgLTkyLjV0OTIuNSAtMjU3LjV2LTQwMHEwIC0xNjUgLTkyLjUgLTI1Ny41dC0yNTcuNSAtOTIuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ1MHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41aC00NTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zMzggODY3bDMyNCAtMjg0cTE2IC0xNCAxNiAtMzN0LTE2IC0zM2wtMzI0IC0yODRxLTE2IC0xNCAtMjcgLTl0LTExIDI2djE1MGgtMjUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDI1MHYxNTBxMCAyMSAxMSAyNnQyNyAtOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYyOyIgZD0iTTc5MyAxMTgybDkgLTlxOCAtMTAgNSAtMjdxLTMgLTExIC03OSAtMjI1LjV0LTc4IC0yMjEuNWwzMDAgMXEyNCAwIDMyLjUgLTE3LjV0LTUuNSAtMzUuNXEtMSAwIC0xMzMuNSAtMTU1dC0yNjcgLTMxMi41dC0xMzguNSAtMTYyLjVxLTEyIC0xNSAtMjYgLTE1aC05bC05IDhxLTkgMTEgLTQgMzJxMiA5IDQyIDEyMy41dDc5IDIyNC41bDM5IDExMGgtMzAycS0yMyAwIC0zMSAxOXEtMTAgMjEgNiA0MXE3NSA4NiAyMDkuNSAyMzcuNSB0MjI4IDI1N3Q5OC41IDExMS41cTkgMTYgMjUgMTZoOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYzOyIgZD0iTTM1MCAxMTAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00NTBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNDUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwIHEwIDE2NSA5Mi41IDI1Ny41dDI1Ny41IDkyLjV6TTkzOCA4NjdsMzI0IC0yODRxMTYgLTE0IDE2IC0zM3QtMTYgLTMzbC0zMjQgLTI4NHEtMTYgLTE0IC0yNyAtOXQtMTEgMjZ2MTUwaC0yNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjUwdjE1MHEwIDIxIDExIDI2dDI3IC05eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjQ7IiBkPSJNNzUwIDEyMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTEwLjUgLTI1dC0yNC41IDEwbC0xMDkgMTA5bC0zMTIgLTMxMnEtMTUgLTE1IC0zNS41IC0xNXQtMzUuNSAxNWwtMTQxIDE0MXEtMTUgMTUgLTE1IDM1LjV0MTUgMzUuNWwzMTIgMzEybC0xMDkgMTA5cS0xNCAxNCAtMTAgMjQuNXQyNSAxMC41ek00NTYgOTAwaC0xNTZxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMCBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2MTQ4bDIwMCAyMDB2LTI5OHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNDAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY0MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41aDMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTY1OyIgZD0iTTYwMCAxMTg2cTExOSAwIDIyNy41IC00Ni41dDE4NyAtMTI1dDEyNSAtMTg3dDQ2LjUgLTIyNy41dC00Ni41IC0yMjcuNXQtMTI1IC0xODd0LTE4NyAtMTI1dC0yMjcuNSAtNDYuNXQtMjI3LjUgNDYuNXQtMTg3IDEyNXQtMTI1IDE4N3QtNDYuNSAyMjcuNXQ0Ni41IDIyNy41dDEyNSAxODd0MTg3IDEyNXQyMjcuNSA0Ni41ek02MDAgMTAyMnEtMTE1IDAgLTIxMiAtNTYuNXQtMTUzLjUgLTE1My41dC01Ni41IC0yMTJ0NTYuNSAtMjEyIHQxNTMuNSAtMTUzLjV0MjEyIC01Ni41dDIxMiA1Ni41dDE1My41IDE1My41dDU2LjUgMjEydC01Ni41IDIxMnQtMTUzLjUgMTUzLjV0LTIxMiA1Ni41ek02MDAgNzk0cTgwIDAgMTM3IC01N3Q1NyAtMTM3dC01NyAtMTM3dC0xMzcgLTU3dC0xMzcgNTd0LTU3IDEzN3Q1NyAxMzd0MTM3IDU3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjY7IiBkPSJNNDUwIDEyMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0zNTBoMjQ1cTIwIDAgMjUgLTExdC05IC0yNmwtMzgzIC00MjZxLTE0IC0xNSAtMzMuNSAtMTV0LTMyLjUgMTVsLTM3OSA0MjZxLTEzIDE1IC04LjUgMjZ0MjUuNSAxMWgyNTB2MzUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTI1MGgtMTEwMHYyNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiBNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE2NzsiIGQ9Ik01ODMgMTE4MmwzNzggLTQzNXExNCAtMTUgOSAtMzF0LTI2IC0xNmgtMjQ0di0yNTBxMCAtMjAgLTE3IC0zNXQtMzkgLTE1aC0yMDBxLTIwIDAgLTMyIDE0LjV0LTEyIDM1LjV2MjUwaC0yNTBxLTIwIDAgLTI1LjUgMTYuNXQ4LjUgMzEuNWwzODMgNDMxcTE0IDE2IDMzLjUgMTd0MzMuNSAtMTR6TTUwIDMwMGgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXogTTkwMCAyMDB2LTUwaDEwMHY1MGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjg7IiBkPSJNMzk2IDcyM2wzNjkgMzY5cTcgNyAxNy41IDd0MTcuNSAtN2wxMzkgLTEzOXE3IC04IDcgLTE4LjV0LTcgLTE3LjVsLTUyNSAtNTI1cS03IC04IC0xNy41IC04dC0xNy41IDhsLTI5MiAyOTFxLTcgOCAtNyAxOHQ3IDE4bDEzOSAxMzlxOCA3IDE4LjUgN3QxNy41IC03ek01MCAzMDBoMTAwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjUwaC0xMTAwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTkwMCAyMDB2LTUwaDEwMHY1MCBoLTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTY5OyIgZD0iTTEzNSAxMDIzbDE0MiAxNDJxMTQgMTQgMzUgMTR0MzUgLTE0bDc3IC03N2wtMjEyIC0yMTJsLTc3IDc2cS0xNCAxNSAtMTQgMzZ0MTQgMzV6TTY1NSA4NTVsMjEwIDIxMHExNCAxNCAyNC41IDEwdDEwLjUgLTI1bC0yIC01OTlxLTEgLTIwIC0xNS41IC0zNXQtMzUuNSAtMTVsLTU5NyAtMXEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIwOCAyMDhsLTE1NCAxNTVsMjEyIDIxMnpNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjUgdi0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3MDsiIGQ9Ik0zNTAgMTIwMGw1OTkgLTJxMjAgLTEgMzUgLTE1LjV0MTUgLTM1LjVsMSAtNTk3cTAgLTIxIC0xMC41IC0yNXQtMjQuNSAxMGwtMjA4IDIwOGwtMTU1IC0xNTRsLTIxMiAyMTJsMTU1IDE1NGwtMjEwIDIxMHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXpNNTI0IDUxMmwtNzYgLTc3cS0xNSAtMTQgLTM2IC0xNHQtMzUgMTRsLTE0MiAxNDJxLTE0IDE0IC0xNCAzNXQxNCAzNWw3NyA3N3pNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41IHQxNC41IC0zNS41di0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3MTsiIGQ9Ik0xMjAwIDEwM2wtNDgzIDI3NmwtMzE0IC0zOTl2NDIzaC0zOTlsMTE5NiA3OTZ2LTEwOTZ6TTQ4MyA0MjR2LTIzMGw2ODMgOTUzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzI7IiBkPSJNMTEwMCAxMDAwdi04NTBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTE1MHY0MDBoLTcwMHYtNDAwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMDBxMCAyMCAxNC41IDM1dDM1LjUgMTVoMjUwdi0zMDBoNTAwdjMwMGgxMDB6TTcwMCAxMDAwaC0xMDB2MjAwaDEwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzM7IiBkPSJNMTEwMCAxMDAwbC0yIC0xNDlsLTI5OSAtMjk5bC05NSA5NXEtOSA5IC0yMS41IDl0LTIxLjUgLTlsLTE0OSAtMTQ3aC0zMTJ2LTQwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwek03MDAgMTAwMGgtMTAwdjIwMGgxMDB2LTIwMHpNMTEzMiA2MzhsMTA2IC0xMDZxNyAtNyA3IC0xNy41dC03IC0xNy41bC00MjAgLTQyMXEtOCAtNyAtMTggLTcgdC0xOCA3bC0yMDIgMjAzcS04IDcgLTggMTcuNXQ4IDE3LjVsMTA2IDEwNnE3IDggMTcuNSA4dDE3LjUgLThsNzkgLTc5bDI5NyAyOTdxNyA3IDE3LjUgN3QxNy41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzQ7IiBkPSJNMTEwMCAxMDAwdi0yNjlsLTEwMyAtMTAzbC0xMzQgMTM0cS0xNSAxNSAtMzMuNSAxNi41dC0zNC41IC0xMi41bC0yNjYgLTI2NmgtMzI5di00MDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwMHEwIDIwIDE0LjUgMzV0MzUuNSAxNWgyNTB2LTMwMGg1MDB2MzAwaDEwMHpNNzAwIDEwMDBoLTEwMHYyMDBoMTAwdi0yMDB6TTEyMDIgNTcybDcwIC03MHExNSAtMTUgMTUgLTM1LjV0LTE1IC0zNS41bC0xMzEgLTEzMSBsMTMxIC0xMzFxMTUgLTE1IDE1IC0zNS41dC0xNSAtMzUuNWwtNzAgLTcwcS0xNSAtMTUgLTM1LjUgLTE1dC0zNS41IDE1bC0xMzEgMTMxbC0xMzEgLTEzMXEtMTUgLTE1IC0zNS41IC0xNXQtMzUuNSAxNWwtNzAgNzBxLTE1IDE1IC0xNSAzNS41dDE1IDM1LjVsMTMxIDEzMWwtMTMxIDEzMXEtMTUgMTUgLTE1IDM1LjV0MTUgMzUuNWw3MCA3MHExNSAxNSAzNS41IDE1dDM1LjUgLTE1bDEzMSAtMTMxbDEzMSAxMzFxMTUgMTUgMzUuNSAxNSB0MzUuNSAtMTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NTsiIGQ9Ik0xMTAwIDEwMDB2LTMwMGgtMzUwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xNTBoLTUwMHYtNDAwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMDBxMCAyMCAxNC41IDM1dDM1LjUgMTVoMjUwdi0zMDBoNTAwdjMwMGgxMDB6TTcwMCAxMDAwaC0xMDB2MjAwaDEwMHYtMjAwek04NTAgNjAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjUwaDE1MHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNSBsLTIzMCAtMjMwcS0xNCAtMTQgLTM1IC0xNHQtMzUgMTRsLTIzMCAyMzBxLTE0IDE0IC0xMCAyNC41dDI1IDEwLjVoMTUwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NjsiIGQ9Ik0xMTAwIDEwMDB2LTQwMGwtMTY1IDE2NXEtMTQgMTUgLTM1IDE1dC0zNSAtMTVsLTI2MyAtMjY1aC00MDJ2LTQwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwek03MDAgMTAwMGgtMTAwdjIwMGgxMDB2LTIwMHpNOTM1IDU2NWwyMzAgLTIyOXExNCAtMTUgMTAgLTI1LjV0LTI1IC0xMC41aC0xNTB2LTI1MHEwIC0yMCAtMTQuNSAtMzUgdC0zNS41IC0xNWgtMTAwcS0yMSAwIC0zNS41IDE1dC0xNC41IDM1djI1MGgtMTUwcS0yMSAwIC0yNSAxMC41dDEwIDI1LjVsMjMwIDIyOXExNCAxNSAzNSAxNXQzNSAtMTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NzsiIGQ9Ik01MCAxMTAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTE1MGgtMTIwMHYxNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMjAwIDgwMHYtNTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1NTBoMTIwMHpNMTAwIDUwMHYtMjAwaDQwMHYyMDBoLTQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTc4OyIgZD0iTTkzNSAxMTY1bDI0OCAtMjMwcTE0IC0xNCAxNCAtMzV0LTE0IC0zNWwtMjQ4IC0yMzBxLTE0IC0xNCAtMjQuNSAtMTB0LTEwLjUgMjV2MTUwaC00MDB2MjAwaDQwMHYxNTBxMCAyMSAxMC41IDI1dDI0LjUgLTEwek0yMDAgODAwaC01MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHYtMjAwek00MDAgODAwaC0xMDB2MjAwaDEwMHYtMjAwek0xOCA0MzVsMjQ3IDIzMCBxMTQgMTQgMjQuNSAxMHQxMC41IC0yNXYtMTUwaDQwMHYtMjAwaC00MDB2LTE1MHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTI0NyAyMzBxLTE1IDE0IC0xNSAzNXQxNSAzNXpNOTAwIDMwMGgtMTAwdjIwMGgxMDB2LTIwMHpNMTAwMCA1MDBoNTFxMjAgMCAzNC41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzQuNSAtMTQuNWgtNTF2MjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzk7IiBkPSJNODYyIDEwNzNsMjc2IDExNnEyNSAxOCA0My41IDh0MTguNSAtNDF2LTExMDZxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2Mzk3cS00IDEgLTExIDV0LTI0IDE3LjV0LTMwIDI5dC0yNCA0MnQtMTEgNTYuNXYzNTlxMCAzMSAxOC41IDY1dDQzLjUgNTJ6TTU1MCAxMjAwcTIyIDAgMzQuNSAtMTIuNXQxNC41IC0yNC41bDEgLTEzdi00NTBxMCAtMjggLTEwLjUgLTU5LjUgdC0yNSAtNTZ0LTI5IC00NXQtMjUuNSAtMzEuNWwtMTAgLTExdi00NDdxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDQ3cS00IDQgLTExIDExLjV0LTI0IDMwLjV0LTMwIDQ2dC0yNCA1NXQtMTEgNjB2NDUwcTAgMiAwLjUgNS41dDQgMTJ0OC41IDE1dDE0LjUgMTJ0MjIuNSA1LjVxMjAgMCAzMi41IC0xMi41dDE0LjUgLTI0LjVsMyAtMTN2LTM1MGgxMDB2MzUwdjUuNXQyLjUgMTIgdDcgMTV0MTUgMTJ0MjUuNSA1LjVxMjMgMCAzNS41IC0xMi41dDEzLjUgLTI0LjVsMSAtMTN2LTM1MGgxMDB2MzUwcTAgMiAwLjUgNS41dDMgMTJ0NyAxNXQxNSAxMnQyNC41IDUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTgwOyIgZD0iTTEyMDAgMTEwMHYtNTZxLTQgMCAtMTEgLTAuNXQtMjQgLTN0LTMwIC03LjV0LTI0IC0xNXQtMTEgLTI0di04ODhxMCAtMjIgMjUgLTM0LjV0NTAgLTEzLjVsMjUgLTJ2LTU2aC00MDB2NTZxNzUgMCA4Ny41IDYuNXQxMi41IDQzLjV2Mzk0aC01MDB2LTM5NHEwIC0zNyAxMi41IC00My41dDg3LjUgLTYuNXYtNTZoLTQwMHY1NnE0IDAgMTEgMC41dDI0IDN0MzAgNy41dDI0IDE1dDExIDI0djg4OHEwIDIyIC0yNSAzNC41dC01MCAxMy41IGwtMjUgMnY1Nmg0MDB2LTU2cS03NSAwIC04Ny41IC02LjV0LTEyLjUgLTQzLjV2LTM5NGg1MDB2Mzk0cTAgMzcgLTEyLjUgNDMuNXQtODcuNSA2LjV2NTZoNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODE7IiBkPSJNNjc1IDEwMDBoMzc1cTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoLTEwNWwtMjk1IC05OHY5OGwtMjAwIDIwMGgtNDAwbDEwMCAxMDBoMzc1ek0xMDAgOTAwaDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNTAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC0zMDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djUwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTEwMCA4MDB2LTIwMGgzMDB2MjAwIGgtMzAwek0xMTAwIDUzNWwtNDAwIC0xMzN2MTYzbDQwMCAxMzN2LTE2M3pNMTAwIDUwMHYtMjAwaDMwMHYyMDBoLTMwMHpNMTEwMCAzOTh2LTI0OHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzc1bC0xMDAgLTEwMGgtMzc1bC0xMDAgMTAwaDQwMGwyMDAgMjAwaDEwNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTgyOyIgZD0iTTE3IDEwMDdsMTYyIDE2MnExNyAxNyA0MCAxNHQzNyAtMjJsMTM5IC0xOTRxMTQgLTIwIDExIC00NC41dC0yMCAtNDEuNWwtMTE5IC0xMThxMTAyIC0xNDIgMjI4IC0yNjh0MjY3IC0yMjdsMTE5IDExOHExNyAxNyA0Mi41IDE5dDQ0LjUgLTEybDE5MiAtMTM2cTE5IC0xNCAyMi41IC0zNy41dC0xMy41IC00MC41bC0xNjMgLTE2MnEtMyAtMSAtOS41IC0xdC0yOS41IDJ0LTQ3LjUgNnQtNjIuNSAxNC41dC03Ny41IDI2LjV0LTkwIDQyLjUgdC0xMDEuNSA2MHQtMTExIDgzdC0xMTkgMTA4LjVxLTc0IDc0IC0xMzMuNSAxNTAuNXQtOTQuNSAxMzguNXQtNjAgMTE5LjV0LTM0LjUgMTAwdC0xNSA3NC41dC00LjUgNDh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4MzsiIGQ9Ik02MDAgMTEwMHE5MiAwIDE3NSAtMTAuNXQxNDEuNSAtMjd0MTA4LjUgLTM2LjV0ODEuNSAtNDB0NTMuNSAtMzd0MzEgLTI3bDkgLTEwdi0yMDBxMCAtMjEgLTE0LjUgLTMzdC0zNC41IC05bC0yMDIgMzRxLTIwIDMgLTM0LjUgMjB0LTE0LjUgMzh2MTQ2cS0xNDEgMjQgLTMwMCAyNHQtMzAwIC0yNHYtMTQ2cTAgLTIxIC0xNC41IC0zOHQtMzQuNSAtMjBsLTIwMiAtMzRxLTIwIC0zIC0zNC41IDl0LTE0LjUgMzN2MjAwcTMgNCA5LjUgMTAuNSB0MzEgMjZ0NTQgMzcuNXQ4MC41IDM5LjV0MTA5IDM3LjV0MTQxIDI2LjV0MTc1IDEwLjV6TTYwMCA3OTVxNTYgMCA5NyAtOS41dDYwIC0yMy41dDMwIC0yOHQxMiAtMjRsMSAtMTB2LTUwbDM2NSAtMzAzcTE0IC0xNSAyNC41IC00MHQxMC41IC00NXYtMjEycTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMTJxMCAyMCAxMC41IDQ1dDI0LjUgNDBsMzY1IDMwM3Y1MCBxMCA0IDEgMTAuNXQxMiAyM3QzMCAyOXQ2MCAyMi41dDk3IDEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODQ7IiBkPSJNMTEwMCA3MDBsLTIwMCAtMjAwaC02MDBsLTIwMCAyMDB2NTAwaDIwMHYtMjAwaDIwMHYyMDBoMjAwdi0yMDBoMjAwdjIwMGgyMDB2LTUwMHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEybDEzNyAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNSB0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODU7IiBkPSJNNzAwIDExMDBoLTEwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtMTAwMGgzMDB2MTAwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNMTEwMCA4MDBoLTEwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNzAwaDMwMHY3MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjV6TTQwMCAwaC0zMDB2NDAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNWgxMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTQwMHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4NjsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDcwMGgtMjAwdi0xMDBoMjAwdi0zMDBoLTMwMHYxMDBoMjAwdjEwMGgtMjAwdjMwMGgzMDB2LTEwMHpNOTAwIDcwMHYtMzAwbC0xMDAgLTEwMGgtMjAwdjUwMGgyMDB6IE03MDAgNzAwdi0zMDBoMTAwdjMwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODc7IiBkPSJNMjAwIDExMDBoNzAwcTEyNCAwIDIxMiAtODh0ODggLTIxMnYtNTAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OGgtNzAwcS0xMjQgMCAtMjEyIDg4dC04OCAyMTJ2NTAwcTAgMTI0IDg4IDIxMnQyMTIgODh6TTEwMCA5MDB2LTcwMGg5MDB2NzAwaC05MDB6TTUwMCAzMDBoLTEwMHYyMDBoLTEwMHYtMjAwaC0xMDB2NTAwaDEwMHYtMjAwaDEwMHYyMDBoMTAwdi01MDB6TTkwMCA3MDB2LTMwMGwtMTAwIC0xMDBoLTIwMHY1MDBoMjAweiBNNzAwIDcwMHYtMzAwaDEwMHYzMDBoLTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTg4OyIgZD0iTTIwMCAxMTAwaDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEydjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek0xMDAgOTAwdi03MDBoOTAwdjcwMGgtOTAwek01MDAgNzAwaC0yMDB2LTMwMGgyMDB2LTEwMGgtMzAwdjUwMGgzMDB2LTEwMHpNOTAwIDcwMGgtMjAwdi0zMDBoMjAwdi0xMDBoLTMwMHY1MDBoMzAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4OTsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDQwMGwtMzAwIDE1MGwzMDAgMTUwdi0zMDB6TTkwMCA1NTBsLTMwMCAtMTUwdjMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTkwOyIgZD0iTTIwMCAxMTAwaDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEydjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek0xMDAgOTAwdi03MDBoOTAwdjcwMGgtOTAwek05MDAgMzAwaC03MDB2NTAwaDcwMHYtNTAwek04MDAgNzAwaC0xMzBxLTM4IDAgLTY2LjUgLTQzdC0yOC41IC0xMDh0MjcgLTEwN3Q2OCAtNDJoMTMwdjMwMHpNMzAwIDcwMHYtMzAwIGgxMzBxNDEgMCA2OCA0MnQyNyAxMDd0LTI4LjUgMTA4dC02Ni41IDQzaC0xMzB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MTsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDcwMGgtMjAwdi0xMDBoMjAwdi0zMDBoLTMwMHYxMDBoMjAwdjEwMGgtMjAwdjMwMGgzMDB2LTEwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHogTTcwMCAzMDBoLTEwMHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MjsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNMzAwIDcwMGgyMDB2LTQwMGgtMzAwdjUwMGgxMDB2LTEwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNMzAwIDYwMHYtMjAwaDEwMHYyMDBoLTEwMHogTTcwMCAzMDBoLTEwMHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MzsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDUwMGwtMTk5IC0yMDBoLTEwMHY1MGwxOTkgMjAwdjE1MGgtMjAwdjEwMGgzMDB2LTMwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNNzAxIDMwMGgtMTAwIHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5NDsiIGQ9Ik02MDAgMTE5MXExMjAgMCAyMjkuNSAtNDd0MTg4LjUgLTEyNnQxMjYgLTE4OC41dDQ3IC0yMjkuNXQtNDcgLTIyOS41dC0xMjYgLTE4OC41dC0xODguNSAtMTI2dC0yMjkuNSAtNDd0LTIyOS41IDQ3dC0xODguNSAxMjZ0LTEyNiAxODguNXQtNDcgMjI5LjV0NDcgMjI5LjV0MTI2IDE4OC41dDE4OC41IDEyNnQyMjkuNSA0N3pNNjAwIDEwMjFxLTExNCAwIC0yMTEgLTU2LjV0LTE1My41IC0xNTMuNXQtNTYuNSAtMjExdDU2LjUgLTIxMSB0MTUzLjUgLTE1My41dDIxMSAtNTYuNXQyMTEgNTYuNXQxNTMuNSAxNTMuNXQ1Ni41IDIxMXQtNTYuNSAyMTF0LTE1My41IDE1My41dC0yMTEgNTYuNXpNODAwIDcwMGgtMzAwdi0yMDBoMzAwdi0xMDBoLTMwMGwtMTAwIDEwMHYyMDBsMTAwIDEwMGgzMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTk1OyIgZD0iTTYwMCAxMTkxcTEyMCAwIDIyOS41IC00N3QxODguNSAtMTI2dDEyNiAtMTg4LjV0NDcgLTIyOS41dC00NyAtMjI5LjV0LTEyNiAtMTg4LjV0LTE4OC41IC0xMjZ0LTIyOS41IC00N3QtMjI5LjUgNDd0LTE4OC41IDEyNnQtMTI2IDE4OC41dC00NyAyMjkuNXQ0NyAyMjkuNXQxMjYgMTg4LjV0MTg4LjUgMTI2dDIyOS41IDQ3ek02MDAgMTAyMXEtMTE0IDAgLTIxMSAtNTYuNXQtMTUzLjUgLTE1My41dC01Ni41IC0yMTF0NTYuNSAtMjExIHQxNTMuNSAtMTUzLjV0MjExIC01Ni41dDIxMSA1Ni41dDE1My41IDE1My41dDU2LjUgMjExdC01Ni41IDIxMXQtMTUzLjUgMTUzLjV0LTIxMSA1Ni41ek04MDAgNzAwdi0xMDBsLTUwIC01MGwxMDAgLTEwMHYtNTBoLTEwMGwtMTAwIDEwMGgtMTUwdi0xMDBoLTEwMHY0MDBoMzAwek01MDAgNzAwdi0xMDBoMjAwdjEwMGgtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxOTc7IiBkPSJNNTAzIDEwODlxMTEwIDAgMjAwLjUgLTU5LjV0MTM0LjUgLTE1Ni41cTQ0IDE0IDkwIDE0cTEyMCAwIDIwNSAtODYuNXQ4NSAtMjA3dC04NSAtMjA3dC0yMDUgLTg2LjVoLTEyOHYyNTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTMwMHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMjUwaC0yMjJxLTgwIDAgLTEzNiA1Ny41dC01NiAxMzYuNXEwIDY5IDQzIDEyMi41dDEwOCA2Ny41cS0yIDE5IC0yIDM3cTAgMTAwIDQ5IDE4NSB0MTM0IDEzNHQxODUgNDl6TTUyNSA1MDBoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMjc1aDEzN3EyMSAwIDI2IC0xMS41dC04IC0yNy41bC0yMjMgLTI0NHEtMTMgLTE2IC0zMiAtMTZ0LTMyIDE2bC0yMjMgMjQ0cS0xMyAxNiAtOCAyNy41dDI2IDExLjVoMTM3djI3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxOTg7IiBkPSJNNTAyIDEwODlxMTEwIDAgMjAxIC01OS41dDEzNSAtMTU2LjVxNDMgMTUgODkgMTVxMTIxIDAgMjA2IC04Ni41dDg2IC0yMDYuNXEwIC05OSAtNjAgLTE4MXQtMTUwIC0xMTBsLTM3OCAzNjBxLTEzIDE2IC0zMS41IDE2dC0zMS41IC0xNmwtMzgxIC0zNjVoLTlxLTc5IDAgLTEzNS41IDU3LjV0LTU2LjUgMTM2LjVxMCA2OSA0MyAxMjIuNXQxMDggNjcuNXEtMiAxOSAtMiAzOHEwIDEwMCA0OSAxODQuNXQxMzMuNSAxMzR0MTg0LjUgNDkuNXogTTYzMiA0NjdsMjIzIC0yMjhxMTMgLTE2IDggLTI3LjV0LTI2IC0xMS41aC0xMzd2LTI3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djI3NWgtMTM3cS0yMSAwIC0yNiAxMS41dDggMjcuNXExOTkgMjA0IDIyMyAyMjhxMTkgMTkgMzEuNSAxOXQzMi41IC0xOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTk5OyIgZD0iTTcwMCAxMDB2MTAwaDQwMGwtMjcwIDMwMGgxNzBsLTI3MCAzMDBoMTcwbC0zMDAgMzMzbC0zMDAgLTMzM2gxNzBsLTI3MCAtMzAwaDE3MGwtMjcwIC0zMDBoNDAwdi0xMDBoLTUwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di01MGg0MDB2NTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDA7IiBkPSJNNjAwIDExNzlxOTQgMCAxNjcuNSAtNTYuNXQ5OS41IC0xNDUuNXE4OSAtNiAxNTAuNSAtNzEuNXQ2MS41IC0xNTUuNXEwIC02MSAtMjkuNSAtMTEyLjV0LTc5LjUgLTgyLjVxOSAtMjkgOSAtNTVxMCAtNzQgLTUyLjUgLTEyNi41dC0xMjYuNSAtNTIuNXEtNTUgMCAtMTAwIDMwdi0yNTFxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwaC0zMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41djI1MXEtNDUgLTMwIC0xMDAgLTMwIHEtNzQgMCAtMTI2LjUgNTIuNXQtNTIuNSAxMjYuNXEwIDE4IDQgMzhxLTQ3IDIxIC03NS41IDY1dC0yOC41IDk3cTAgNzQgNTIuNSAxMjYuNXQxMjYuNSA1Mi41cTUgMCAyMyAtMnEwIDIgLTEgMTB0LTEgMTNxMCAxMTYgODEuNSAxOTcuNXQxOTcuNSA4MS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDE7IiBkPSJNMTAxMCAxMDEwcTExMSAtMTExIDE1MC41IC0yNjAuNXQwIC0yOTl0LTE1MC41IC0yNjAuNXEtODMgLTgzIC0xOTEuNSAtMTI2LjV0LTIxOC41IC00My41dC0yMTguNSA0My41dC0xOTEuNSAxMjYuNXEtMTExIDExMSAtMTUwLjUgMjYwLjV0MCAyOTl0MTUwLjUgMjYwLjVxODMgODMgMTkxLjUgMTI2LjV0MjE4LjUgNDMuNXQyMTguNSAtNDMuNXQxOTEuNSAtMTI2LjV6TTQ3NiAxMDY1cS00IDAgLTggLTFxLTEyMSAtMzQgLTIwOS41IC0xMjIuNSB0LTEyMi41IC0yMDkuNXEtNCAtMTIgMi41IC0yM3QxOC41IC0xNGwzNiAtOXEzIC0xIDcgLTFxMjMgMCAyOSAyMnEyNyA5NiA5OCAxNjZxNzAgNzEgMTY2IDk4cTExIDMgMTcuNSAxMy41dDMuNSAyMi41bC05IDM1cS0zIDEzIC0xNCAxOXEtNyA0IC0xNSA0ek01MTIgOTIwcS00IDAgLTkgLTJxLTgwIC0yNCAtMTM4LjUgLTgyLjV0LTgyLjUgLTEzOC41cS00IC0xMyAyIC0yNHQxOSAtMTRsMzQgLTlxNCAtMSA4IC0xcTIyIDAgMjggMjEgcTE4IDU4IDU4LjUgOTguNXQ5Ny41IDU4LjVxMTIgMyAxOCAxMy41dDMgMjEuNWwtOSAzNXEtMyAxMiAtMTQgMTlxLTcgNCAtMTUgNHpNNzE5LjUgNzE5LjVxLTQ5LjUgNDkuNSAtMTE5LjUgNDkuNXQtMTE5LjUgLTQ5LjV0LTQ5LjUgLTExOS41dDQ5LjUgLTExOS41dDExOS41IC00OS41dDExOS41IDQ5LjV0NDkuNSAxMTkuNXQtNDkuNSAxMTkuNXpNODU1IDU1MXEtMjIgMCAtMjggLTIxcS0xOCAtNTggLTU4LjUgLTk4LjV0LTk4LjUgLTU3LjUgcS0xMSAtNCAtMTcgLTE0LjV0LTMgLTIxLjVsOSAtMzVxMyAtMTIgMTQgLTE5cTcgLTQgMTUgLTRxNCAwIDkgMnE4MCAyNCAxMzguNSA4Mi41dDgyLjUgMTM4LjVxNCAxMyAtMi41IDI0dC0xOC41IDE0bC0zNCA5cS00IDEgLTggMXpNMTAwMCA1MTVxLTIzIDAgLTI5IC0yMnEtMjcgLTk2IC05OCAtMTY2cS03MCAtNzEgLTE2NiAtOThxLTExIC0zIC0xNy41IC0xMy41dC0zLjUgLTIyLjVsOSAtMzVxMyAtMTMgMTQgLTE5cTcgLTQgMTUgLTQgcTQgMCA4IDFxMTIxIDM0IDIwOS41IDEyMi41dDEyMi41IDIwOS41cTQgMTIgLTIuNSAyM3QtMTguNSAxNGwtMzYgOXEtMyAxIC03IDF6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwMjsiIGQ9Ik03MDAgODAwaDMwMHYtMzgwaC0xODB2MjAwaC0zNDB2LTIwMGgtMzgwdjc1NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDU3NXYtNDAwek0xMDAwIDkwMGgtMjAwdjIwMHpNNzAwIDMwMGgxNjJsLTIxMiAtMjEybC0yMTIgMjEyaDE2MnYyMDBoMTAwdi0yMDB6TTUyMCAwaC0zOTVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzOTV6TTEwMDAgMjIwdi0xOTVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xOTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwMzsiIGQ9Ik03MDAgODAwaDMwMHYtNTIwbC0zNTAgMzUwbC01NTAgLTU1MHYxMDk1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNTc1di00MDB6TTEwMDAgOTAwaC0yMDB2MjAwek04NjIgMjAwaC0xNjJ2LTIwMGgtMTAwdjIwMGgtMTYybDIxMiAyMTJ6TTQ4MCAwaC0zNTVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1NWgzODB2LTgwek0xMDAwIDgwdi01NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1NXY4MGgxODB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwNDsiIGQ9Ik0xMTYyIDgwMGgtMTYydi0yMDBoMTAwbDEwMCAtMTAwaC0zMDB2MzAwaC0xNjJsMjEyIDIxMnpNMjAwIDgwMGgyMDBxMjcgMCA0MCAtMnQyOS41IC0xMC41dDIzLjUgLTMwdDcgLTU3LjVoMzAwdi0xMDBoLTYwMGwtMjAwIC0zNTB2NDUwaDEwMHEwIDM2IDcgNTcuNXQyMy41IDMwdDI5LjUgMTAuNXQ0MCAyek04MDAgNDAwaDI0MGwtMjQwIC00MDBoLTgwMGwzMDAgNTAwaDUwMHYtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDU7IiBkPSJNNjUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMDAwIDg1MHYxNTBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTgwMCBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTYwMHEtMSAwIC0yMCA0bDI0NiAyNDZsLTMyNiAzMjZ2MzI0cTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXYtMTUwcTAgLTYyIDQ0IC0xMDZ0MTA2IC00NGgzMDBxNjIgMCAxMDYgNDR0NDQgMTA2ek00MTIgMjUwbC0yMTIgLTIxMnYxNjJoLTIwMHYxMDBoMjAwdjE2MnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjA2OyIgZD0iTTQ1MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDUwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNODAwIDg1MHYxNTBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTUwMCBoLTIwMHYtMzAwaDIwMHEwIC0zNiAtNyAtNTcuNXQtMjMuNSAtMzB0LTI5LjUgLTEwLjV0LTQwIC0yaC02MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djgwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV2LTE1MHEwIC02MiA0NCAtMTA2dDEwNiAtNDRoMzAwcTYyIDAgMTA2IDQ0dDQ0IDEwNnpNMTIxMiAyNTBsLTIxMiAtMjEydjE2MmgtMjAwdjEwMGgyMDB2MTYyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDk7IiBkPSJNNjU4IDExOTdsNjM3IC0xMTA0cTIzIC0zOCA3IC02NS41dC02MCAtMjcuNWgtMTI3NnEtNDQgMCAtNjAgMjcuNXQ3IDY1LjVsNjM3IDExMDRxMjIgMzkgNTQgMzl0NTQgLTM5ek03MDQgODAwaC0yMDhxLTIwIDAgLTMyIC0xNC41dC04IC0zNC41bDU4IC0zMDJxNCAtMjAgMjEuNSAtMzQuNXQzNy41IC0xNC41aDU0cTIwIDAgMzcuNSAxNC41dDIxLjUgMzQuNWw1OCAzMDJxNCAyMCAtOCAzNC41dC0zMiAxNC41ek01MDAgMzAwdi0xMDBoMjAwIHYxMDBoLTIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjEwOyIgZD0iTTQyNSAxMTAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek00MjUgODAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41IHQxNy41IDcuNXpNODI1IDgwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMjUgNTAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDI1IDUwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNODI1IDUwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNSB2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTI1IDIwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDI1IDIwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41IHQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTgyNSAyMDBoMjUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMjUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxMTsiIGQ9Ik03MDAgMTIwMGgxMDB2LTIwMGgtMTAwdi0xMDBoMzUwcTYyIDAgODYuNSAtMzkuNXQtMy41IC05NC41bC02NiAtMTMycS00MSAtODMgLTgxIC0xMzRoLTc3MnEtNDAgNTEgLTgxIDEzNGwtNjYgMTMycS0yOCA1NSAtMy41IDk0LjV0ODYuNSAzOS41aDM1MHYxMDBoLTEwMHYyMDBoMTAwdjEwMGgyMDB2LTEwMHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEybDEzNyAtMTAwIGgtOTUwbDEzOCAxMDBoLTEzcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41ek01MCAxMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMTI7IiBkPSJNNjAwIDEzMDBxNDAgMCA2OC41IC0yOS41dDI4LjUgLTcwLjVoLTE5NHEwIDQxIDI4LjUgNzAuNXQ2OC41IDI5LjV6TTQ0MyAxMTAwaDMxNHExOCAtMzcgMTggLTc1cTAgLTggLTMgLTI1aDMyOHE0MSAwIDQ0LjUgLTE2LjV0LTMwLjUgLTM4LjVsLTE3NSAtMTQ1aC02NzhsLTE3OCAxNDVxLTM0IDIyIC0yOSAzOC41dDQ2IDE2LjVoMzI4cS0zIDE3IC0zIDI1cTAgMzggMTggNzV6TTI1MCA3MDBoNzAwcTIxIDAgMzUuNSAtMTQuNSB0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTUwdi0yMDBsMjc1IC0yMDBoLTk1MGwyNzUgMjAwdjIwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41ek01MCAxMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMTM7IiBkPSJNNjAwIDExODFxNzUgMCAxMjggLTUzdDUzIC0xMjh0LTUzIC0xMjh0LTEyOCAtNTN0LTEyOCA1M3QtNTMgMTI4dDUzIDEyOHQxMjggNTN6TTYwMiA3OThoNDZxMzQgMCA1NS41IC0yOC41dDIxLjUgLTg2LjVxMCAtNzYgMzkgLTE4M2gtMzI0cTM5IDEwNyAzOSAxODNxMCA1OCAyMS41IDg2LjV0NTYuNSAyOC41aDQ1ek0yNTAgNDAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTMgbDEzOCAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNDsiIGQ9Ik02MDAgMTMwMHE0NyAwIDkyLjUgLTUzLjV0NzEgLTEyM3QyNS41IC0xMjMuNXEwIC03OCAtNTUuNSAtMTMzLjV0LTEzMy41IC01NS41dC0xMzMuNSA1NS41dC01NS41IDEzMy41cTAgNjIgMzQgMTQzbDE0NCAtMTQzbDExMSAxMTFsLTE2MyAxNjNxMzQgMjYgNjMgMjZ6TTYwMiA3OThoNDZxMzQgMCA1NS41IC0yOC41dDIxLjUgLTg2LjVxMCAtNzYgMzkgLTE4M2gtMzI0cTM5IDEwNyAzOSAxODNxMCA1OCAyMS41IDg2LjV0NTYuNSAyOC41aDQ1IHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEzbDEzOCAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNTsiIGQ9Ik02MDAgMTIwMGwzMDAgLTE2MXYtMTM5aC0zMDBxMCAtNTcgMTguNSAtMTA4dDUwIC05MS41dDYzIC03MnQ3MCAtNjcuNXQ1Ny41IC02MWgtNTMwcS02MCA4MyAtOTAuNSAxNzcuNXQtMzAuNSAxNzguNXQzMyAxNjQuNXQ4Ny41IDEzOS41dDEyNiA5Ni41dDE0NS41IDQxLjV2LTk4ek0yNTAgNDAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTNsMTM4IC0xMDBoLTk1MGwxMzcgMTAwIGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNjsiIGQ9Ik02MDAgMTMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNzhxNDYgLTI2IDczIC03MnQyNyAtMTAwdi01MGgtNDAwdjUwcTAgNTQgMjcgMTAwdDczIDcydjc4cTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNNDAwIDgwMGg0MDBxNTQgMCAxMDAgLTI3dDcyIC03M2gtMTcydi0xMDBoMjAwdi0xMDBoLTIwMHYtMTAwaDIwMHYtMTAwaC0yMDB2LTEwMGgyMDBxMCAtODMgLTU4LjUgLTE0MS41dC0xNDEuNSAtNTguNWgtNDAwIHEtODMgMCAtMTQxLjUgNTguNXQtNTguNSAxNDEuNXY0MDBxMCA4MyA1OC41IDE0MS41dDE0MS41IDU4LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxODsiIGQ9Ik0xNTAgMTEwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtOTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMjUgNDAwaDk1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMjgzbDIyNCAtMjI0cTEzIC0xMyAxMyAtMzEuNXQtMTMgLTMyIHQtMzEuNSAtMTMuNXQtMzEuNSAxM2wtODggODhoLTUyNGwtODcgLTg4cS0xMyAtMTMgLTMyIC0xM3QtMzIgMTMuNXQtMTMgMzJ0MTMgMzEuNWwyMjQgMjI0aC0yODlxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01NDEgMzAwbC0xMDAgLTEwMGgzMjRsLTEwMCAxMDBoLTEyNHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjE5OyIgZD0iTTIwMCAxMTAwaDgwMHE4MyAwIDE0MS41IC01OC41dDU4LjUgLTE0MS41di0yMDBoLTEwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNWgtMjUwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41aC0xMDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjVoLTI1MHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNWgtMTAwdjIwMHEwIDgzIDU4LjUgMTQxLjV0MTQxLjUgNTguNXpNMTAwIDYwMGgxMDAwcTQxIDAgNzAuNSAtMjkuNSB0MjkuNSAtNzAuNXYtMzAwaC0xMjAwdjMwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTMwMCAxMDB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaDIwMHpNMTEwMCAxMDB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaDIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjIxOyIgZD0iTTQ4MCAxMTY1bDY4MiAtNjgzcTMxIC0zMSAzMSAtNzUuNXQtMzEgLTc1LjVsLTEzMSAtMTMxaC00ODFsLTUxNyA1MThxLTMyIDMxIC0zMiA3NS41dDMyIDc1LjVsMjk1IDI5NnEzMSAzMSA3NS41IDMxdDc2LjUgLTMxek0xMDggNzk0bDM0MiAtMzQybDMwMyAzMDRsLTM0MSAzNDF6TTI1MCAxMDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtOTAwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjIzOyIgZD0iTTEwNTcgNjQ3bC0xODkgNTA2cS04IDE5IC0yNy41IDMzdC00MC41IDE0aC00MDBxLTIxIDAgLTQwLjUgLTE0dC0yNy41IC0zM2wtMTg5IC01MDZxLTggLTE5IDEuNSAtMzN0MzAuNSAtMTRoNjI1di0xNTBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41dDM1LjUgMTQuNXQxNC41IDM1LjV2MTUwaDEyNXEyMSAwIDMwLjUgMTR0MS41IDMzek04OTcgMGgtNTk1djUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHY1MCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ4djMwMGgyMDB2LTMwMGg0N3EyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMjQ7IiBkPSJNOTAwIDgwMGgzMDB2LTU3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTM3NXY1OTFsLTMwMCAzMDB2ODRxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgzNzV2LTQwMHpNMTIwMCA5MDBoLTIwMHYyMDB6TTQwMCA2MDBoMzAwdi01NzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC02NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5NTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgzNzV2LTQwMHpNNzAwIDcwMGgtMjAwdjIwMHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIyNTsiIGQ9Ik00ODQgMTA5NWgxOTVxNzUgMCAxNDYgLTMyLjV0MTI0IC04NnQ4OS41IC0xMjIuNXQ0OC41IC0xNDJxMTggLTE0IDM1IC0yMHEzMSAtMTAgNjQuNSA2LjV0NDMuNSA0OC41cTEwIDM0IC0xNSA3MXEtMTkgMjcgLTkgNDNxNSA4IDEyLjUgMTF0MTkgLTF0MjMuNSAtMTZxNDEgLTQ0IDM5IC0xMDVxLTMgLTYzIC00NiAtMTA2LjV0LTEwNCAtNDMuNWgtNjJxLTcgLTU1IC0zNSAtMTE3dC01NiAtMTAwbC0zOSAtMjM0cS0zIC0yMCAtMjAgLTM0LjUgdC0zOCAtMTQuNWgtMTAwcS0yMSAwIC0zMyAxNC41dC05IDM0LjVsMTIgNzBxLTQ5IC0xNCAtOTEgLTE0aC0xOTVxLTI0IDAgLTY1IDhsLTExIC02NHEtMyAtMjAgLTIwIC0zNC41dC0zOCAtMTQuNWgtMTAwcS0yMSAwIC0zMyAxNC41dC05IDM0LjVsMjYgMTU3cS04NCA3NCAtMTI4IDE3NWwtMTU5IDUzcS0xOSA3IC0zMyAyNnQtMTQgNDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEyNHExMSA4NyA1NiAxNjZsLTExMSA5NSBxLTE2IDE0IC0xMi41IDIzLjV0MjQuNSA5LjVoMjAzcTExNiAxMDEgMjUwIDEwMXpNNjc1IDEwMDBoLTI1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMjUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2NTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMjY7IiBkPSJNNjQxIDkwMGw0MjMgMjQ3cTE5IDggNDIgMi41dDM3IC0yMS41bDMyIC0zOHExNCAtMTUgMTIuNSAtMzZ0LTE3LjUgLTM0bC0xMzkgLTEyMGgtMzkwek01MCAxMTAwaDEwNnE2NyAwIDEwMyAtMTd0NjYgLTcxbDEwMiAtMjEyaDgyM3EyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBxMCAtMjEgLTE0IC00MHQtMzMgLTI2bC03MzcgLTEzMnEtMjMgLTQgLTQwIDZ0LTI2IDI1cS00MiA2NyAtMTAwIDY3aC0zMDBxLTYyIDAgLTEwNiA0NCB0LTQ0IDEwNnYyMDBxMCA2MiA0NCAxMDZ0MTA2IDQ0ek0xNzMgOTI4aC04MHEtMTkgMCAtMjggLTE0dC05IC0zNXYtNTZxMCAtNTEgNDIgLTUxaDEzNHExNiAwIDIxLjUgOHQ1LjUgMjRxMCAxMSAtMTYgNDV0LTI3IDUxcS0xOCAyOCAtNDMgMjh6TTU1MCA3MjdxLTMyIDAgLTU0LjUgLTIyLjV0LTIyLjUgLTU0LjV0MjIuNSAtNTQuNXQ1NC41IC0yMi41dDU0LjUgMjIuNXQyMi41IDU0LjV0LTIyLjUgNTQuNXQtNTQuNSAyMi41ek0xMzAgMzg5IGwxNTIgMTMwcTE4IDE5IDM0IDI0dDMxIC0zLjV0MjQuNSAtMTcuNXQyNS41IC0yOHEyOCAtMzUgNTAuNSAtNTF0NDguNSAtMTNsNjMgNWw0OCAtMTc5cTEzIC02MSAtMy41IC05Ny41dC02Ny41IC03OS41bC04MCAtNjlxLTQ3IC00MCAtMTA5IC0zNS41dC0xMDMgNTEuNWwtMTMwIDE1MXEtNDAgNDcgLTM1LjUgMTA5LjV0NTEuNSAxMDIuNXpNMzgwIDM3N2wtMTAyIC04OHEtMzEgLTI3IDIgLTY1bDM3IC00M3ExMyAtMTUgMjcuNSAtMTkuNSB0MzEuNSA2LjVsNjEgNTNxMTkgMTYgMTQgNDlxLTIgMjAgLTEyIDU2dC0xNyA0NXEtMTEgMTIgLTE5IDE0dC0yMyAtOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjI3OyIgZD0iTTYyNSAxMjAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTEwOXE3OSAtMzMgMTMxIC04Ny41dDUzIC0xMjguNXExIC00NiAtMTUgLTg0LjV0LTM5IC02MXQtNDYgLTM4dC0zOSAtMjEuNWwtMTcgLTZxNiAwIDE1IC0xLjV0MzUgLTl0NTAgLTE3LjV0NTMgLTMwdDUwIC00NXQzNS41IC02NHQxNC41IC04NHEwIC01OSAtMTEuNSAtMTA1LjV0LTI4LjUgLTc2LjV0LTQ0IC01MXQtNDkuNSAtMzEuNXQtNTQuNSAtMTZ0LTQ5LjUgLTYuNSB0LTQzLjUgLTF2LTc1cTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NzVoLTEwMHYtNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY3NWgtMTc1cS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNzV2NjAwaC03NXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxNzV2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di03NWgxMDB2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDAwIDkwMHYtMjAwaDI2M3EyOCAwIDQ4LjUgMTAuNXQzMCAyNXQxNSAyOXQ1LjUgMjUuNWwxIDEwcTAgNCAtMC41IDExdC02IDI0dC0xNSAzMHQtMzAgMjR0LTQ4LjUgMTFoLTI2M3pNNDAwIDUwMHYtMjAwaDM2M3EyOCAwIDQ4LjUgMTAuNSB0MzAgMjV0MTUgMjl0NS41IDI1LjVsMSAxMHEwIDQgLTAuNSAxMXQtNiAyNHQtMTUgMzB0LTMwIDI0dC00OC41IDExaC0zNjN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzMDsiIGQ9Ik0yMTIgMTE5OGg3ODBxODYgMCAxNDcgLTYxdDYxIC0xNDd2LTQxNnEwIC01MSAtMTggLTE0Mi41dC0zNiAtMTU3LjVsLTE4IC02NnEtMjkgLTg3IC05My41IC0xNDYuNXQtMTQ2LjUgLTU5LjVoLTU3MnEtODIgMCAtMTQ3IDU5dC05MyAxNDdxLTggMjggLTIwIDczdC0zMiAxNDMuNXQtMjAgMTQ5LjV2NDE2cTAgODYgNjEgMTQ3dDE0NyA2MXpNNjAwIDEwNDVxLTcwIDAgLTEzMi41IC0xMS41dC0xMDUuNSAtMzAuNXQtNzguNSAtNDEuNSB0LTU3IC00NXQtMzYgLTQxdC0yMC41IC0zMC41bC02IC0xMmwxNTYgLTI0M2g1NjBsMTU2IDI0M3EtMiA1IC02IDEyLjV0LTIwIDI5LjV0LTM2LjUgNDJ0LTU3IDQ0LjV0LTc5IDQydC0xMDUgMjkuNXQtMTMyLjUgMTJ6TTc2MiA3MDNoLTE1N2wxOTUgMjYxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzE7IiBkPSJNNDc1IDEzMDBoMTUwcTEwMyAwIDE4OSAtODZ0ODYgLTE4OXYtNTAwcTAgLTQxIC00MiAtODN0LTgzIC00MmgtNDUwcS00MSAwIC04MyA0MnQtNDIgODN2NTAwcTAgMTAzIDg2IDE4OXQxODkgODZ6TTcwMCAzMDB2LTIyNXEwIC0yMSAtMjcgLTQ4dC00OCAtMjdoLTE1MHEtMjEgMCAtNDggMjd0LTI3IDQ4djIyNWgzMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzMjsiIGQ9Ik00NzUgMTMwMGg5NnEwIC0xNTAgODkuNSAtMjM5LjV0MjM5LjUgLTg5LjV2LTQ0NnEwIC00MSAtNDIgLTgzdC04MyAtNDJoLTQ1MHEtNDEgMCAtODMgNDJ0LTQyIDgzdjUwMHEwIDEwMyA4NiAxODl0MTg5IDg2ek03MDAgMzAwdi0yMjVxMCAtMjEgLTI3IC00OHQtNDggLTI3aC0xNTBxLTIxIDAgLTQ4IDI3dC0yNyA0OHYyMjVoMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzM7IiBkPSJNMTI5NCA3NjdsLTYzOCAtMjgzbC0zNzggMTcwbC03OCAtNjB2LTIyNGwxMDAgLTE1MHYtMTk5bC0xNTAgMTQ4bC0xNTAgLTE0OXYyMDBsMTAwIDE1MHYyNTBxMCA0IC0wLjUgMTAuNXQwIDkuNXQxIDh0MyA4dDYuNSA2bDQ3IDQwbC0xNDcgNjVsNjQyIDI4M3pNMTAwMCAzODBsLTM1MCAtMTY2bC0zNTAgMTY2djE0N2wzNTAgLTE2NWwzNTAgMTY1di0xNDd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzNDsiIGQ9Ik0yNTAgODAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek02NTAgODAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek0xMDUwIDgwMHE2MiAwIDEwNiAtNDR0NDQgLTEwNnQtNDQgLTEwNnQtMTA2IC00NHQtMTA2IDQ0dC00NCAxMDZ0NDQgMTA2dDEwNiA0NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjM1OyIgZD0iTTU1MCAxMTAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek01NTAgNzAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek01NTAgMzAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzY7IiBkPSJNMTI1IDExMDBoOTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtOTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEyNSA3MDBoOTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtOTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjUgdDE3LjUgNy41ek0xMjUgMzAwaDk1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTk1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzc7IiBkPSJNMzUwIDEyMDBoNTAwcTE2MiAwIDI1NiAtOTMuNXQ5NCAtMjU2LjV2LTUwMHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNTAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY1MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41ek05MDAgMTAwMGgtNjAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di02MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDYwMHE0MSAwIDcwLjUgMjkuNSB0MjkuNSA3MC41djYwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNMzUwIDkwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYzMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek00MDAgODAwdi0yMDBoNDAwdjIwMGgtNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzg7IiBkPSJNMTUwIDExMDBoMTAwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNSB0LTM1LjUgLTE0LjVoLTEwMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2MjAwaC01MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV0MTQuNSAzNS41dDM1LjUgMTQuNWg1MHYyMDBoLTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41aDUwdjIwMGgtNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzOTsiIGQ9Ik02NTAgMTE4N3E4NyAtNjcgMTE4LjUgLTE1NnQwIC0xNzh0LTExOC41IC0xNTVxLTg3IDY2IC0xMTguNSAxNTV0MCAxNzh0MTE4LjUgMTU2ek0zMDAgODAwcTEyNCAwIDIxMiAtODh0ODggLTIxMnEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0xMDAwIDgwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhxMCAxMjQgODggMjEydDIxMiA4OHpNMzAwIDUwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnogTTEwMDAgNTAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek03MDAgMTk5di0xNDRxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjV0LTM1LjUgMTQuNXQtMTQuNSAzNS41djE0MnE0MCAtNCA0MyAtNHExNyAwIDU3IDZ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0MDsiIGQ9Ik03NDUgODc4bDY5IDE5cTI1IDYgNDUgLTEybDI5OCAtMjk1cTExIC0xMSAxNSAtMjYuNXQtMiAtMzAuNXEtNSAtMTQgLTE4IC0yMy41dC0yOCAtOS41aC04cTEgMCAxIC0xM3EwIC0yOSAtMiAtNTZ0LTguNSAtNjJ0LTIwIC02M3QtMzMgLTUzdC01MSAtMzl0LTcyLjUgLTE0aC0xNDZxLTE4NCAwIC0xODQgMjg4cTAgMjQgMTAgNDdxLTIwIDQgLTYyIDR0LTYzIC00cTExIC0yNCAxMSAtNDdxMCAtMjg4IC0xODQgLTI4OGgtMTQyIHEtNDggMCAtODQuNSAyMXQtNTYgNTF0LTMyIDcxLjV0LTE2IDc1dC0zLjUgNjguNXEwIDEzIDIgMTNoLTdxLTE1IDAgLTI3LjUgOS41dC0xOC41IDIzLjVxLTYgMTUgLTIgMzAuNXQxNSAyNS41bDI5OCAyOTZxMjAgMTggNDYgMTFsNzYgLTE5cTIwIC01IDMwLjUgLTIyLjV0NS41IC0zNy41dC0yMi41IC0zMXQtMzcuNSAtNWwtNTEgMTJsLTE4MiAtMTkzaDg5MWwtMTgyIDE5M2wtNDQgLTEycS0yMCAtNSAtMzcuNSA2dC0yMi41IDMxdDYgMzcuNSB0MzEgMjIuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQxOyIgZD0iTTEyMDAgOTAwaC01MHEwIDIxIC00IDM3dC05LjUgMjYuNXQtMTggMTcuNXQtMjIgMTF0LTI4LjUgNS41dC0zMSAydC0zNyAwLjVoLTIwMHYtODUwcTAgLTIyIDI1IC0zNC41dDUwIC0xMy41bDI1IC0ydi0xMDBoLTQwMHYxMDBxNCAwIDExIDAuNXQyNCAzdDMwIDd0MjQgMTV0MTEgMjQuNXY4NTBoLTIwMHEtMjUgMCAtMzcgLTAuNXQtMzEgLTJ0LTI4LjUgLTUuNXQtMjIgLTExdC0xOCAtMTcuNXQtOS41IC0yNi41dC00IC0zN2gtNTB2MzAwIGgxMDAwdi0zMDB6TTUwMCA0NTBoLTI1cTAgMTUgLTQgMjQuNXQtOSAxNC41dC0xNyA3LjV0LTIwIDN0LTI1IDAuNWgtMTAwdi00MjVxMCAtMTEgMTIuNSAtMTcuNXQyNS41IC03LjVoMTJ2LTUwaC0yMDB2NTBxNTAgMCA1MCAyNXY0MjVoLTEwMHEtMTcgMCAtMjUgLTAuNXQtMjAgLTN0LTE3IC03LjV0LTkgLTE0LjV0LTQgLTI0LjVoLTI1djE1MGg1MDB2LTE1MHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQyOyIgZD0iTTEwMDAgMzAwdjUwcS0yNSAwIC01NSAzMnEtMTQgMTQgLTI1IDMxdC0xNiAyN2wtNCAxMWwtMjg5IDc0N2gtNjlsLTMwMCAtNzU0cS0xOCAtMzUgLTM5IC01NnEtOSAtOSAtMjQuNSAtMTguNXQtMjYuNSAtMTQuNWwtMTEgLTV2LTUwaDI3M3Y1MHEtNDkgMCAtNzguNSAyMS41dC0xMS41IDY3LjVsNjkgMTc2aDI5M2w2MSAtMTY2cTEzIC0zNCAtMy41IC02Ni41dC01NS41IC0zMi41di01MGgzMTJ6TTQxMiA2OTFsMTM0IDM0MmwxMjEgLTM0MiBoLTI1NXpNMTEwMCAxNTB2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNDM7IiBkPSJNNTAgMTIwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNjExIDExMThoLTcwcS0xMyAwIC0xOCAtMTJsLTI5OSAtNzUzcS0xNyAtMzIgLTM1IC01MXEtMTggLTE4IC01NiAtMzRxLTEyIC01IC0xMiAtMTh2LTUwcTAgLTggNS41IC0xNHQxNC41IC02IGgyNzNxOCAwIDE0IDZ0NiAxNHY1MHEwIDggLTYgMTR0LTE0IDZxLTU1IDAgLTcxIDIzcS0xMCAxNCAwIDM5bDYzIDE2M2gyNjZsNTcgLTE1M3ExMSAtMzEgLTYgLTU1cS0xMiAtMTcgLTM2IC0xN3EtOCAwIC0xNCAtNnQtNiAtMTR2LTUwcTAgLTggNiAtMTR0MTQgLTZoMzEzcTggMCAxNCA2dDYgMTR2NTBxMCA3IC01LjUgMTN0LTEzLjUgN3EtMTcgMCAtNDIgMjVxLTI1IDI3IC00MCA2M2gtMWwtMjg4IDc0OHEtNSAxMiAtMTkgMTJ6TTYzOSA2MTEgaC0xOTdsMTAzIDI2NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ0OyIgZD0iTTEyMDAgMTEwMGgtMTIwMHYxMDBoMTIwMHYtMTAwek01MCAxMDAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtOTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djkwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCAxMDAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDAgcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek03MDAgOTAwdi0zMDBoMzAwdjMwMGgtMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNDU7IiBkPSJNNTAgMTIwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTkwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY5MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek02NTAgNzAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek03MDAgNjAwdi0zMDBoMzAwdjMwMGgtMzAwek0xMjAwIDBoLTEyMDB2MTAwaDEyMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ2OyIgZD0iTTUwIDEwMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0zNTBoMTAwdjE1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoMTAwdi0xMDBoLTEwMHYtMTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djE1MGgtMTAwdi0zNTBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTcwMCA3MDB2LTMwMGgzMDB2MzAwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0NzsiIGQ9Ik0xMDAgMGgtMTAwdjEyMDBoMTAwdi0xMjAwek0yNTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zMDAgMTAwMHYtMzAwaDMwMHYzMDBoLTMwMHpNMjUwIDUwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTkwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ4OyIgZD0iTTYwMCAxMTAwaDE1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xNTB2LTEwMGg0NTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtOTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDM1MHYxMDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41IHQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMTUwdjEwMGgxMDB2LTEwMHpNNDAwIDEwMDB2LTMwMGgzMDB2MzAwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0OTsiIGQ9Ik0xMjAwIDBoLTEwMHYxMjAwaDEwMHYtMTIwMHpNNTUwIDExMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNjAwIDEwMDB2LTMwMGgzMDB2MzAwaC0zMDB6TTUwIDUwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTkwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUwOyIgZD0iTTg2NSA1NjVsLTQ5NCAtNDk0cS0yMyAtMjMgLTQxIC0yM3EtMTQgMCAtMjIgMTMuNXQtOCAzOC41djEwMDBxMCAyNSA4IDM4LjV0MjIgMTMuNXExOCAwIDQxIC0yM2w0OTQgLTQ5NHExNCAtMTQgMTQgLTM1dC0xNCAtMzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI1MTsiIGQ9Ik0zMzUgNjM1bDQ5NCA0OTRxMjkgMjkgNTAgMjAuNXQyMSAtNDkuNXYtMTAwMHEwIC00MSAtMjEgLTQ5LjV0LTUwIDIwLjVsLTQ5NCA0OTRxLTE0IDE0IC0xNCAzNXQxNCAzNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUyOyIgZD0iTTEwMCA5MDBoMTAwMHE0MSAwIDQ5LjUgLTIxdC0yMC41IC01MGwtNDk0IC00OTRxLTE0IC0xNCAtMzUgLTE0dC0zNSAxNGwtNDk0IDQ5NHEtMjkgMjkgLTIwLjUgNTB0NDkuNSAyMXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUzOyIgZD0iTTYzNSA4NjVsNDk0IC00OTRxMjkgLTI5IDIwLjUgLTUwdC00OS41IC0yMWgtMTAwMHEtNDEgMCAtNDkuNSAyMXQyMC41IDUwbDQ5NCA0OTRxMTQgMTQgMzUgMTR0MzUgLTE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNTQ7IiBkPSJNNzAwIDc0MXYtMTgybC02OTIgLTMyM3YyMjFsNDEzIDE5M2wtNDEzIDE5M3YyMjF6TTEyMDAgMGgtODAwdjIwMGg4MDB2LTIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU1OyIgZD0iTTEyMDAgOTAwaC0yMDB2LTEwMGgyMDB2LTEwMGgtMzAwdjMwMGgyMDB2MTAwaC0yMDB2MTAwaDMwMHYtMzAwek0wIDcwMGg1MHEwIDIxIDQgMzd0OS41IDI2LjV0MTggMTcuNXQyMiAxMXQyOC41IDUuNXQzMSAydDM3IDAuNWgxMDB2LTU1MHEwIC0yMiAtMjUgLTM0LjV0LTUwIC0xMy41bC0yNSAtMnYtMTAwaDQwMHYxMDBxLTQgMCAtMTEgMC41dC0yNCAzdC0zMCA3dC0yNCAxNXQtMTEgMjQuNXY1NTBoMTAwcTI1IDAgMzcgLTAuNXQzMSAtMiB0MjguNSAtNS41dDIyIC0xMXQxOCAtMTcuNXQ5LjUgLTI2LjV0NCAtMzdoNTB2MzAwaC04MDB2LTMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU2OyIgZD0iTTgwMCA3MDBoLTUwcTAgMjEgLTQgMzd0LTkuNSAyNi41dC0xOCAxNy41dC0yMiAxMXQtMjguNSA1LjV0LTMxIDJ0LTM3IDAuNWgtMTAwdi01NTBxMCAtMjIgMjUgLTM0LjV0NTAgLTE0LjVsMjUgLTF2LTEwMGgtNDAwdjEwMHE0IDAgMTEgMC41dDI0IDN0MzAgN3QyNCAxNXQxMSAyNC41djU1MGgtMTAwcS0yNSAwIC0zNyAtMC41dC0zMSAtMnQtMjguNSAtNS41dC0yMiAtMTF0LTE4IC0xNy41dC05LjUgLTI2LjV0LTQgLTM3aC01MHYzMDAgaDgwMHYtMzAwek0xMTAwIDIwMGgtMjAwdi0xMDBoMjAwdi0xMDBoLTMwMHYzMDBoMjAwdjEwMGgtMjAwdjEwMGgzMDB2LTMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU3OyIgZD0iTTcwMSAxMDk4aDE2MHExNiAwIDIxIC0xMXQtNyAtMjNsLTQ2NCAtNDY0bDQ2NCAtNDY0cTEyIC0xMiA3IC0yM3QtMjEgLTExaC0xNjBxLTEzIDAgLTIzIDlsLTQ3MSA0NzFxLTcgOCAtNyAxOHQ3IDE4bDQ3MSA0NzFxMTAgOSAyMyA5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNTg7IiBkPSJNMzM5IDEwOThoMTYwcTEzIDAgMjMgLTlsNDcxIC00NzFxNyAtOCA3IC0xOHQtNyAtMThsLTQ3MSAtNDcxcS0xMCAtOSAtMjMgLTloLTE2MHEtMTYgMCAtMjEgMTF0NyAyM2w0NjQgNDY0bC00NjQgNDY0cS0xMiAxMiAtNyAyM3QyMSAxMXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU5OyIgZD0iTTEwODcgODgycTExIC01IDExIC0yMXYtMTYwcTAgLTEzIC05IC0yM2wtNDcxIC00NzFxLTggLTcgLTE4IC03dC0xOCA3bC00NzEgNDcxcS05IDEwIC05IDIzdjE2MHEwIDE2IDExIDIxdDIzIC03bDQ2NCAtNDY0bDQ2NCA0NjRxMTIgMTIgMjMgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjYwOyIgZD0iTTYxOCA5OTNsNDcxIC00NzFxOSAtMTAgOSAtMjN2LTE2MHEwIC0xNiAtMTEgLTIxdC0yMyA3bC00NjQgNDY0bC00NjQgLTQ2NHEtMTIgLTEyIC0yMyAtN3QtMTEgMjF2MTYwcTAgMTMgOSAyM2w0NzEgNDcxcTggNyAxOCA3dDE4IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGY4ZmY7IiBkPSJNMTAwMCAxMjAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek00NTAgMTAwMGgxMDBxMjEgMCA0MCAtMTR0MjYgLTMzbDc5IC0xOTRxNSAxIDE2IDNxMzQgNiA1NCA5LjV0NjAgN3Q2NS41IDF0NjEgLTEwdDU2LjUgLTIzdDQyLjUgLTQydDI5IC02NHQ1IC05MnQtMTkuNSAtMTIxLjVxLTEgLTcgLTMgLTE5LjV0LTExIC01MHQtMjAuNSAtNzN0LTMyLjUgLTgxLjV0LTQ2LjUgLTgzdC02NCAtNzAgdC04Mi41IC01MHEtMTMgLTUgLTQyIC01dC02NS41IDIuNXQtNDcuNSAyLjVxLTE0IDAgLTQ5LjUgLTMuNXQtNjMgLTMuNXQtNDMuNSA3cS01NyAyNSAtMTA0LjUgNzguNXQtNzUgMTExLjV0LTQ2LjUgMTEydC0yNiA5MGwtNyAzNXEtMTUgNjMgLTE4IDExNXQ0LjUgODguNXQyNiA2NHQzOS41IDQzLjV0NTIgMjUuNXQ1OC41IDEzdDYyLjUgMnQ1OS41IC00LjV0NTUuNSAtOGwtMTQ3IDE5MnEtMTIgMTggLTUuNSAzMHQyNy41IDEyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDFmNTExOyIgZD0iTTI1MCAxMjAwaDYwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xNTB2LTUwMGwtMjU1IC0xNzhxLTE5IC05IC0zMiAtMXQtMTMgMjl2NjUwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQwMCAxMTAwdi0xMDBoMzAwdjEwMGgtMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDFmNmFhOyIgZD0iTTI1MCAxMjAwaDc1MHEzOSAwIDY5LjUgLTQwLjV0MzAuNSAtODQuNXYtOTMzbC03MDAgLTExN3Y5NTBsNjAwIDEyNWgtNzAwdi0xMDAwaC0xMDB2MTAyNXEwIDIzIDE1LjUgNDl0MzQuNSAyNnpNNTAwIDUyNXYtMTAwbDEwMCAyMHYxMDB6IiAvPgo8L2ZvbnQ%2BCjwvZGVmcz48L3N2Zz4g%29%20format%28%27svg%27%29%7D%2Eglyphicon%7Bposition%3Arelative%3Btop%3A1px%3Bdisplay%3Ainline%2Dblock%3Bfont%2Dfamily%3A%27Glyphicons%20Halflings%27%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%3B%2Dwebkit%2Dfont%2Dsmoothing%3Aantialiased%3B%2Dmoz%2Dosx%2Dfont%2Dsmoothing%3Agrayscale%7D%2Eglyphicon%2Dasterisk%3Abefore%7Bcontent%3A%22%5C002a%22%7D%2Eglyphicon%2Dplus%3Abefore%7Bcontent%3A%22%5C002b%22%7D%2Eglyphicon%2Deuro%3Abefore%2C%2Eglyphicon%2Deur%3Abefore%7Bcontent%3A%22%5C20ac%22%7D%2Eglyphicon%2Dminus%3Abefore%7Bcontent%3A%22%5C2212%22%7D%2Eglyphicon%2Dcloud%3Abefore%7Bcontent%3A%22%5C2601%22%7D%2Eglyphicon%2Denvelope%3Abefore%7Bcontent%3A%22%5C2709%22%7D%2Eglyphicon%2Dpencil%3Abefore%7Bcontent%3A%22%5C270f%22%7D%2Eglyphicon%2Dglass%3Abefore%7Bcontent%3A%22%5Ce001%22%7D%2Eglyphicon%2Dmusic%3Abefore%7Bcontent%3A%22%5Ce002%22%7D%2Eglyphicon%2Dsearch%3Abefore%7Bcontent%3A%22%5Ce003%22%7D%2Eglyphicon%2Dheart%3Abefore%7Bcontent%3A%22%5Ce005%22%7D%2Eglyphicon%2Dstar%3Abefore%7Bcontent%3A%22%5Ce006%22%7D%2Eglyphicon%2Dstar%2Dempty%3Abefore%7Bcontent%3A%22%5Ce007%22%7D%2Eglyphicon%2Duser%3Abefore%7Bcontent%3A%22%5Ce008%22%7D%2Eglyphicon%2Dfilm%3Abefore%7Bcontent%3A%22%5Ce009%22%7D%2Eglyphicon%2Dth%2Dlarge%3Abefore%7Bcontent%3A%22%5Ce010%22%7D%2Eglyphicon%2Dth%3Abefore%7Bcontent%3A%22%5Ce011%22%7D%2Eglyphicon%2Dth%2Dlist%3Abefore%7Bcontent%3A%22%5Ce012%22%7D%2Eglyphicon%2Dok%3Abefore%7Bcontent%3A%22%5Ce013%22%7D%2Eglyphicon%2Dremove%3Abefore%7Bcontent%3A%22%5Ce014%22%7D%2Eglyphicon%2Dzoom%2Din%3Abefore%7Bcontent%3A%22%5Ce015%22%7D%2Eglyphicon%2Dzoom%2Dout%3Abefore%7Bcontent%3A%22%5Ce016%22%7D%2Eglyphicon%2Doff%3Abefore%7Bcontent%3A%22%5Ce017%22%7D%2Eglyphicon%2Dsignal%3Abefore%7Bcontent%3A%22%5Ce018%22%7D%2Eglyphicon%2Dcog%3Abefore%7Bcontent%3A%22%5Ce019%22%7D%2Eglyphicon%2Dtrash%3Abefore%7Bcontent%3A%22%5Ce020%22%7D%2Eglyphicon%2Dhome%3Abefore%7Bcontent%3A%22%5Ce021%22%7D%2Eglyphicon%2Dfile%3Abefore%7Bcontent%3A%22%5Ce022%22%7D%2Eglyphicon%2Dtime%3Abefore%7Bcontent%3A%22%5Ce023%22%7D%2Eglyphicon%2Droad%3Abefore%7Bcontent%3A%22%5Ce024%22%7D%2Eglyphicon%2Ddownload%2Dalt%3Abefore%7Bcontent%3A%22%5Ce025%22%7D%2Eglyphicon%2Ddownload%3Abefore%7Bcontent%3A%22%5Ce026%22%7D%2Eglyphicon%2Dupload%3Abefore%7Bcontent%3A%22%5Ce027%22%7D%2Eglyphicon%2Dinbox%3Abefore%7Bcontent%3A%22%5Ce028%22%7D%2Eglyphicon%2Dplay%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce029%22%7D%2Eglyphicon%2Drepeat%3Abefore%7Bcontent%3A%22%5Ce030%22%7D%2Eglyphicon%2Drefresh%3Abefore%7Bcontent%3A%22%5Ce031%22%7D%2Eglyphicon%2Dlist%2Dalt%3Abefore%7Bcontent%3A%22%5Ce032%22%7D%2Eglyphicon%2Dlock%3Abefore%7Bcontent%3A%22%5Ce033%22%7D%2Eglyphicon%2Dflag%3Abefore%7Bcontent%3A%22%5Ce034%22%7D%2Eglyphicon%2Dheadphones%3Abefore%7Bcontent%3A%22%5Ce035%22%7D%2Eglyphicon%2Dvolume%2Doff%3Abefore%7Bcontent%3A%22%5Ce036%22%7D%2Eglyphicon%2Dvolume%2Ddown%3Abefore%7Bcontent%3A%22%5Ce037%22%7D%2Eglyphicon%2Dvolume%2Dup%3Abefore%7Bcontent%3A%22%5Ce038%22%7D%2Eglyphicon%2Dqrcode%3Abefore%7Bcontent%3A%22%5Ce039%22%7D%2Eglyphicon%2Dbarcode%3Abefore%7Bcontent%3A%22%5Ce040%22%7D%2Eglyphicon%2Dtag%3Abefore%7Bcontent%3A%22%5Ce041%22%7D%2Eglyphicon%2Dtags%3Abefore%7Bcontent%3A%22%5Ce042%22%7D%2Eglyphicon%2Dbook%3Abefore%7Bcontent%3A%22%5Ce043%22%7D%2Eglyphicon%2Dbookmark%3Abefore%7Bcontent%3A%22%5Ce044%22%7D%2Eglyphicon%2Dprint%3Abefore%7Bcontent%3A%22%5Ce045%22%7D%2Eglyphicon%2Dcamera%3Abefore%7Bcontent%3A%22%5Ce046%22%7D%2Eglyphicon%2Dfont%3Abefore%7Bcontent%3A%22%5Ce047%22%7D%2Eglyphicon%2Dbold%3Abefore%7Bcontent%3A%22%5Ce048%22%7D%2Eglyphicon%2Ditalic%3Abefore%7Bcontent%3A%22%5Ce049%22%7D%2Eglyphicon%2Dtext%2Dheight%3Abefore%7Bcontent%3A%22%5Ce050%22%7D%2Eglyphicon%2Dtext%2Dwidth%3Abefore%7Bcontent%3A%22%5Ce051%22%7D%2Eglyphicon%2Dalign%2Dleft%3Abefore%7Bcontent%3A%22%5Ce052%22%7D%2Eglyphicon%2Dalign%2Dcenter%3Abefore%7Bcontent%3A%22%5Ce053%22%7D%2Eglyphicon%2Dalign%2Dright%3Abefore%7Bcontent%3A%22%5Ce054%22%7D%2Eglyphicon%2Dalign%2Djustify%3Abefore%7Bcontent%3A%22%5Ce055%22%7D%2Eglyphicon%2Dlist%3Abefore%7Bcontent%3A%22%5Ce056%22%7D%2Eglyphicon%2Dindent%2Dleft%3Abefore%7Bcontent%3A%22%5Ce057%22%7D%2Eglyphicon%2Dindent%2Dright%3Abefore%7Bcontent%3A%22%5Ce058%22%7D%2Eglyphicon%2Dfacetime%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce059%22%7D%2Eglyphicon%2Dpicture%3Abefore%7Bcontent%3A%22%5Ce060%22%7D%2Eglyphicon%2Dmap%2Dmarker%3Abefore%7Bcontent%3A%22%5Ce062%22%7D%2Eglyphicon%2Dadjust%3Abefore%7Bcontent%3A%22%5Ce063%22%7D%2Eglyphicon%2Dtint%3Abefore%7Bcontent%3A%22%5Ce064%22%7D%2Eglyphicon%2Dedit%3Abefore%7Bcontent%3A%22%5Ce065%22%7D%2Eglyphicon%2Dshare%3Abefore%7Bcontent%3A%22%5Ce066%22%7D%2Eglyphicon%2Dcheck%3Abefore%7Bcontent%3A%22%5Ce067%22%7D%2Eglyphicon%2Dmove%3Abefore%7Bcontent%3A%22%5Ce068%22%7D%2Eglyphicon%2Dstep%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce069%22%7D%2Eglyphicon%2Dfast%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce070%22%7D%2Eglyphicon%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce071%22%7D%2Eglyphicon%2Dplay%3Abefore%7Bcontent%3A%22%5Ce072%22%7D%2Eglyphicon%2Dpause%3Abefore%7Bcontent%3A%22%5Ce073%22%7D%2Eglyphicon%2Dstop%3Abefore%7Bcontent%3A%22%5Ce074%22%7D%2Eglyphicon%2Dforward%3Abefore%7Bcontent%3A%22%5Ce075%22%7D%2Eglyphicon%2Dfast%2Dforward%3Abefore%7Bcontent%3A%22%5Ce076%22%7D%2Eglyphicon%2Dstep%2Dforward%3Abefore%7Bcontent%3A%22%5Ce077%22%7D%2Eglyphicon%2Deject%3Abefore%7Bcontent%3A%22%5Ce078%22%7D%2Eglyphicon%2Dchevron%2Dleft%3Abefore%7Bcontent%3A%22%5Ce079%22%7D%2Eglyphicon%2Dchevron%2Dright%3Abefore%7Bcontent%3A%22%5Ce080%22%7D%2Eglyphicon%2Dplus%2Dsign%3Abefore%7Bcontent%3A%22%5Ce081%22%7D%2Eglyphicon%2Dminus%2Dsign%3Abefore%7Bcontent%3A%22%5Ce082%22%7D%2Eglyphicon%2Dremove%2Dsign%3Abefore%7Bcontent%3A%22%5Ce083%22%7D%2Eglyphicon%2Dok%2Dsign%3Abefore%7Bcontent%3A%22%5Ce084%22%7D%2Eglyphicon%2Dquestion%2Dsign%3Abefore%7Bcontent%3A%22%5Ce085%22%7D%2Eglyphicon%2Dinfo%2Dsign%3Abefore%7Bcontent%3A%22%5Ce086%22%7D%2Eglyphicon%2Dscreenshot%3Abefore%7Bcontent%3A%22%5Ce087%22%7D%2Eglyphicon%2Dremove%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce088%22%7D%2Eglyphicon%2Dok%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce089%22%7D%2Eglyphicon%2Dban%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce090%22%7D%2Eglyphicon%2Darrow%2Dleft%3Abefore%7Bcontent%3A%22%5Ce091%22%7D%2Eglyphicon%2Darrow%2Dright%3Abefore%7Bcontent%3A%22%5Ce092%22%7D%2Eglyphicon%2Darrow%2Dup%3Abefore%7Bcontent%3A%22%5Ce093%22%7D%2Eglyphicon%2Darrow%2Ddown%3Abefore%7Bcontent%3A%22%5Ce094%22%7D%2Eglyphicon%2Dshare%2Dalt%3Abefore%7Bcontent%3A%22%5Ce095%22%7D%2Eglyphicon%2Dresize%2Dfull%3Abefore%7Bcontent%3A%22%5Ce096%22%7D%2Eglyphicon%2Dresize%2Dsmall%3Abefore%7Bcontent%3A%22%5Ce097%22%7D%2Eglyphicon%2Dexclamation%2Dsign%3Abefore%7Bcontent%3A%22%5Ce101%22%7D%2Eglyphicon%2Dgift%3Abefore%7Bcontent%3A%22%5Ce102%22%7D%2Eglyphicon%2Dleaf%3Abefore%7Bcontent%3A%22%5Ce103%22%7D%2Eglyphicon%2Dfire%3Abefore%7Bcontent%3A%22%5Ce104%22%7D%2Eglyphicon%2Deye%2Dopen%3Abefore%7Bcontent%3A%22%5Ce105%22%7D%2Eglyphicon%2Deye%2Dclose%3Abefore%7Bcontent%3A%22%5Ce106%22%7D%2Eglyphicon%2Dwarning%2Dsign%3Abefore%7Bcontent%3A%22%5Ce107%22%7D%2Eglyphicon%2Dplane%3Abefore%7Bcontent%3A%22%5Ce108%22%7D%2Eglyphicon%2Dcalendar%3Abefore%7Bcontent%3A%22%5Ce109%22%7D%2Eglyphicon%2Drandom%3Abefore%7Bcontent%3A%22%5Ce110%22%7D%2Eglyphicon%2Dcomment%3Abefore%7Bcontent%3A%22%5Ce111%22%7D%2Eglyphicon%2Dmagnet%3Abefore%7Bcontent%3A%22%5Ce112%22%7D%2Eglyphicon%2Dchevron%2Dup%3Abefore%7Bcontent%3A%22%5Ce113%22%7D%2Eglyphicon%2Dchevron%2Ddown%3Abefore%7Bcontent%3A%22%5Ce114%22%7D%2Eglyphicon%2Dretweet%3Abefore%7Bcontent%3A%22%5Ce115%22%7D%2Eglyphicon%2Dshopping%2Dcart%3Abefore%7Bcontent%3A%22%5Ce116%22%7D%2Eglyphicon%2Dfolder%2Dclose%3Abefore%7Bcontent%3A%22%5Ce117%22%7D%2Eglyphicon%2Dfolder%2Dopen%3Abefore%7Bcontent%3A%22%5Ce118%22%7D%2Eglyphicon%2Dresize%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce119%22%7D%2Eglyphicon%2Dresize%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce120%22%7D%2Eglyphicon%2Dhdd%3Abefore%7Bcontent%3A%22%5Ce121%22%7D%2Eglyphicon%2Dbullhorn%3Abefore%7Bcontent%3A%22%5Ce122%22%7D%2Eglyphicon%2Dbell%3Abefore%7Bcontent%3A%22%5Ce123%22%7D%2Eglyphicon%2Dcertificate%3Abefore%7Bcontent%3A%22%5Ce124%22%7D%2Eglyphicon%2Dthumbs%2Dup%3Abefore%7Bcontent%3A%22%5Ce125%22%7D%2Eglyphicon%2Dthumbs%2Ddown%3Abefore%7Bcontent%3A%22%5Ce126%22%7D%2Eglyphicon%2Dhand%2Dright%3Abefore%7Bcontent%3A%22%5Ce127%22%7D%2Eglyphicon%2Dhand%2Dleft%3Abefore%7Bcontent%3A%22%5Ce128%22%7D%2Eglyphicon%2Dhand%2Dup%3Abefore%7Bcontent%3A%22%5Ce129%22%7D%2Eglyphicon%2Dhand%2Ddown%3Abefore%7Bcontent%3A%22%5Ce130%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dright%3Abefore%7Bcontent%3A%22%5Ce131%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dleft%3Abefore%7Bcontent%3A%22%5Ce132%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dup%3Abefore%7Bcontent%3A%22%5Ce133%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Ddown%3Abefore%7Bcontent%3A%22%5Ce134%22%7D%2Eglyphicon%2Dglobe%3Abefore%7Bcontent%3A%22%5Ce135%22%7D%2Eglyphicon%2Dwrench%3Abefore%7Bcontent%3A%22%5Ce136%22%7D%2Eglyphicon%2Dtasks%3Abefore%7Bcontent%3A%22%5Ce137%22%7D%2Eglyphicon%2Dfilter%3Abefore%7Bcontent%3A%22%5Ce138%22%7D%2Eglyphicon%2Dbriefcase%3Abefore%7Bcontent%3A%22%5Ce139%22%7D%2Eglyphicon%2Dfullscreen%3Abefore%7Bcontent%3A%22%5Ce140%22%7D%2Eglyphicon%2Ddashboard%3Abefore%7Bcontent%3A%22%5Ce141%22%7D%2Eglyphicon%2Dpaperclip%3Abefore%7Bcontent%3A%22%5Ce142%22%7D%2Eglyphicon%2Dheart%2Dempty%3Abefore%7Bcontent%3A%22%5Ce143%22%7D%2Eglyphicon%2Dlink%3Abefore%7Bcontent%3A%22%5Ce144%22%7D%2Eglyphicon%2Dphone%3Abefore%7Bcontent%3A%22%5Ce145%22%7D%2Eglyphicon%2Dpushpin%3Abefore%7Bcontent%3A%22%5Ce146%22%7D%2Eglyphicon%2Dusd%3Abefore%7Bcontent%3A%22%5Ce148%22%7D%2Eglyphicon%2Dgbp%3Abefore%7Bcontent%3A%22%5Ce149%22%7D%2Eglyphicon%2Dsort%3Abefore%7Bcontent%3A%22%5Ce150%22%7D%2Eglyphicon%2Dsort%2Dby%2Dalphabet%3Abefore%7Bcontent%3A%22%5Ce151%22%7D%2Eglyphicon%2Dsort%2Dby%2Dalphabet%2Dalt%3Abefore%7Bcontent%3A%22%5Ce152%22%7D%2Eglyphicon%2Dsort%2Dby%2Dorder%3Abefore%7Bcontent%3A%22%5Ce153%22%7D%2Eglyphicon%2Dsort%2Dby%2Dorder%2Dalt%3Abefore%7Bcontent%3A%22%5Ce154%22%7D%2Eglyphicon%2Dsort%2Dby%2Dattributes%3Abefore%7Bcontent%3A%22%5Ce155%22%7D%2Eglyphicon%2Dsort%2Dby%2Dattributes%2Dalt%3Abefore%7Bcontent%3A%22%5Ce156%22%7D%2Eglyphicon%2Dunchecked%3Abefore%7Bcontent%3A%22%5Ce157%22%7D%2Eglyphicon%2Dexpand%3Abefore%7Bcontent%3A%22%5Ce158%22%7D%2Eglyphicon%2Dcollapse%2Ddown%3Abefore%7Bcontent%3A%22%5Ce159%22%7D%2Eglyphicon%2Dcollapse%2Dup%3Abefore%7Bcontent%3A%22%5Ce160%22%7D%2Eglyphicon%2Dlog%2Din%3Abefore%7Bcontent%3A%22%5Ce161%22%7D%2Eglyphicon%2Dflash%3Abefore%7Bcontent%3A%22%5Ce162%22%7D%2Eglyphicon%2Dlog%2Dout%3Abefore%7Bcontent%3A%22%5Ce163%22%7D%2Eglyphicon%2Dnew%2Dwindow%3Abefore%7Bcontent%3A%22%5Ce164%22%7D%2Eglyphicon%2Drecord%3Abefore%7Bcontent%3A%22%5Ce165%22%7D%2Eglyphicon%2Dsave%3Abefore%7Bcontent%3A%22%5Ce166%22%7D%2Eglyphicon%2Dopen%3Abefore%7Bcontent%3A%22%5Ce167%22%7D%2Eglyphicon%2Dsaved%3Abefore%7Bcontent%3A%22%5Ce168%22%7D%2Eglyphicon%2Dimport%3Abefore%7Bcontent%3A%22%5Ce169%22%7D%2Eglyphicon%2Dexport%3Abefore%7Bcontent%3A%22%5Ce170%22%7D%2Eglyphicon%2Dsend%3Abefore%7Bcontent%3A%22%5Ce171%22%7D%2Eglyphicon%2Dfloppy%2Ddisk%3Abefore%7Bcontent%3A%22%5Ce172%22%7D%2Eglyphicon%2Dfloppy%2Dsaved%3Abefore%7Bcontent%3A%22%5Ce173%22%7D%2Eglyphicon%2Dfloppy%2Dremove%3Abefore%7Bcontent%3A%22%5Ce174%22%7D%2Eglyphicon%2Dfloppy%2Dsave%3Abefore%7Bcontent%3A%22%5Ce175%22%7D%2Eglyphicon%2Dfloppy%2Dopen%3Abefore%7Bcontent%3A%22%5Ce176%22%7D%2Eglyphicon%2Dcredit%2Dcard%3Abefore%7Bcontent%3A%22%5Ce177%22%7D%2Eglyphicon%2Dtransfer%3Abefore%7Bcontent%3A%22%5Ce178%22%7D%2Eglyphicon%2Dcutlery%3Abefore%7Bcontent%3A%22%5Ce179%22%7D%2Eglyphicon%2Dheader%3Abefore%7Bcontent%3A%22%5Ce180%22%7D%2Eglyphicon%2Dcompressed%3Abefore%7Bcontent%3A%22%5Ce181%22%7D%2Eglyphicon%2Dearphone%3Abefore%7Bcontent%3A%22%5Ce182%22%7D%2Eglyphicon%2Dphone%2Dalt%3Abefore%7Bcontent%3A%22%5Ce183%22%7D%2Eglyphicon%2Dtower%3Abefore%7Bcontent%3A%22%5Ce184%22%7D%2Eglyphicon%2Dstats%3Abefore%7Bcontent%3A%22%5Ce185%22%7D%2Eglyphicon%2Dsd%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce186%22%7D%2Eglyphicon%2Dhd%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce187%22%7D%2Eglyphicon%2Dsubtitles%3Abefore%7Bcontent%3A%22%5Ce188%22%7D%2Eglyphicon%2Dsound%2Dstereo%3Abefore%7Bcontent%3A%22%5Ce189%22%7D%2Eglyphicon%2Dsound%2Ddolby%3Abefore%7Bcontent%3A%22%5Ce190%22%7D%2Eglyphicon%2Dsound%2D5%2D1%3Abefore%7Bcontent%3A%22%5Ce191%22%7D%2Eglyphicon%2Dsound%2D6%2D1%3Abefore%7Bcontent%3A%22%5Ce192%22%7D%2Eglyphicon%2Dsound%2D7%2D1%3Abefore%7Bcontent%3A%22%5Ce193%22%7D%2Eglyphicon%2Dcopyright%2Dmark%3Abefore%7Bcontent%3A%22%5Ce194%22%7D%2Eglyphicon%2Dregistration%2Dmark%3Abefore%7Bcontent%3A%22%5Ce195%22%7D%2Eglyphicon%2Dcloud%2Ddownload%3Abefore%7Bcontent%3A%22%5Ce197%22%7D%2Eglyphicon%2Dcloud%2Dupload%3Abefore%7Bcontent%3A%22%5Ce198%22%7D%2Eglyphicon%2Dtree%2Dconifer%3Abefore%7Bcontent%3A%22%5Ce199%22%7D%2Eglyphicon%2Dtree%2Ddeciduous%3Abefore%7Bcontent%3A%22%5Ce200%22%7D%2Eglyphicon%2Dcd%3Abefore%7Bcontent%3A%22%5Ce201%22%7D%2Eglyphicon%2Dsave%2Dfile%3Abefore%7Bcontent%3A%22%5Ce202%22%7D%2Eglyphicon%2Dopen%2Dfile%3Abefore%7Bcontent%3A%22%5Ce203%22%7D%2Eglyphicon%2Dlevel%2Dup%3Abefore%7Bcontent%3A%22%5Ce204%22%7D%2Eglyphicon%2Dcopy%3Abefore%7Bcontent%3A%22%5Ce205%22%7D%2Eglyphicon%2Dpaste%3Abefore%7Bcontent%3A%22%5Ce206%22%7D%2Eglyphicon%2Dalert%3Abefore%7Bcontent%3A%22%5Ce209%22%7D%2Eglyphicon%2Dequalizer%3Abefore%7Bcontent%3A%22%5Ce210%22%7D%2Eglyphicon%2Dking%3Abefore%7Bcontent%3A%22%5Ce211%22%7D%2Eglyphicon%2Dqueen%3Abefore%7Bcontent%3A%22%5Ce212%22%7D%2Eglyphicon%2Dpawn%3Abefore%7Bcontent%3A%22%5Ce213%22%7D%2Eglyphicon%2Dbishop%3Abefore%7Bcontent%3A%22%5Ce214%22%7D%2Eglyphicon%2Dknight%3Abefore%7Bcontent%3A%22%5Ce215%22%7D%2Eglyphicon%2Dbaby%2Dformula%3Abefore%7Bcontent%3A%22%5Ce216%22%7D%2Eglyphicon%2Dtent%3Abefore%7Bcontent%3A%22%5C26fa%22%7D%2Eglyphicon%2Dblackboard%3Abefore%7Bcontent%3A%22%5Ce218%22%7D%2Eglyphicon%2Dbed%3Abefore%7Bcontent%3A%22%5Ce219%22%7D%2Eglyphicon%2Dapple%3Abefore%7Bcontent%3A%22%5Cf8ff%22%7D%2Eglyphicon%2Derase%3Abefore%7Bcontent%3A%22%5Ce221%22%7D%2Eglyphicon%2Dhourglass%3Abefore%7Bcontent%3A%22%5C231b%22%7D%2Eglyphicon%2Dlamp%3Abefore%7Bcontent%3A%22%5Ce223%22%7D%2Eglyphicon%2Dduplicate%3Abefore%7Bcontent%3A%22%5Ce224%22%7D%2Eglyphicon%2Dpiggy%2Dbank%3Abefore%7Bcontent%3A%22%5Ce225%22%7D%2Eglyphicon%2Dscissors%3Abefore%7Bcontent%3A%22%5Ce226%22%7D%2Eglyphicon%2Dbitcoin%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dbtc%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dxbt%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dyen%3Abefore%7Bcontent%3A%22%5C00a5%22%7D%2Eglyphicon%2Djpy%3Abefore%7Bcontent%3A%22%5C00a5%22%7D%2Eglyphicon%2Druble%3Abefore%7Bcontent%3A%22%5C20bd%22%7D%2Eglyphicon%2Drub%3Abefore%7Bcontent%3A%22%5C20bd%22%7D%2Eglyphicon%2Dscale%3Abefore%7Bcontent%3A%22%5Ce230%22%7D%2Eglyphicon%2Dice%2Dlolly%3Abefore%7Bcontent%3A%22%5Ce231%22%7D%2Eglyphicon%2Dice%2Dlolly%2Dtasted%3Abefore%7Bcontent%3A%22%5Ce232%22%7D%2Eglyphicon%2Deducation%3Abefore%7Bcontent%3A%22%5Ce233%22%7D%2Eglyphicon%2Doption%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce234%22%7D%2Eglyphicon%2Doption%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce235%22%7D%2Eglyphicon%2Dmenu%2Dhamburger%3Abefore%7Bcontent%3A%22%5Ce236%22%7D%2Eglyphicon%2Dmodal%2Dwindow%3Abefore%7Bcontent%3A%22%5Ce237%22%7D%2Eglyphicon%2Doil%3Abefore%7Bcontent%3A%22%5Ce238%22%7D%2Eglyphicon%2Dgrain%3Abefore%7Bcontent%3A%22%5Ce239%22%7D%2Eglyphicon%2Dsunglasses%3Abefore%7Bcontent%3A%22%5Ce240%22%7D%2Eglyphicon%2Dtext%2Dsize%3Abefore%7Bcontent%3A%22%5Ce241%22%7D%2Eglyphicon%2Dtext%2Dcolor%3Abefore%7Bcontent%3A%22%5Ce242%22%7D%2Eglyphicon%2Dtext%2Dbackground%3Abefore%7Bcontent%3A%22%5Ce243%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dtop%3Abefore%7Bcontent%3A%22%5Ce244%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dbottom%3Abefore%7Bcontent%3A%22%5Ce245%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce246%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dleft%3Abefore%7Bcontent%3A%22%5Ce247%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce248%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dright%3Abefore%7Bcontent%3A%22%5Ce249%22%7D%2Eglyphicon%2Dtriangle%2Dright%3Abefore%7Bcontent%3A%22%5Ce250%22%7D%2Eglyphicon%2Dtriangle%2Dleft%3Abefore%7Bcontent%3A%22%5Ce251%22%7D%2Eglyphicon%2Dtriangle%2Dbottom%3Abefore%7Bcontent%3A%22%5Ce252%22%7D%2Eglyphicon%2Dtriangle%2Dtop%3Abefore%7Bcontent%3A%22%5Ce253%22%7D%2Eglyphicon%2Dconsole%3Abefore%7Bcontent%3A%22%5Ce254%22%7D%2Eglyphicon%2Dsuperscript%3Abefore%7Bcontent%3A%22%5Ce255%22%7D%2Eglyphicon%2Dsubscript%3Abefore%7Bcontent%3A%22%5Ce256%22%7D%2Eglyphicon%2Dmenu%2Dleft%3Abefore%7Bcontent%3A%22%5Ce257%22%7D%2Eglyphicon%2Dmenu%2Dright%3Abefore%7Bcontent%3A%22%5Ce258%22%7D%2Eglyphicon%2Dmenu%2Ddown%3Abefore%7Bcontent%3A%22%5Ce259%22%7D%2Eglyphicon%2Dmenu%2Dup%3Abefore%7Bcontent%3A%22%5Ce260%22%7D%2A%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%2A%3Abefore%2C%2A%3Aafter%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7Dhtml%7Bfont%2Dsize%3A10px%3B%2Dwebkit%2Dtap%2Dhighlight%2Dcolor%3Argba%280%2C0%2C0%2C0%29%7Dbody%7Bfont%2Dfamily%3A%22Source%20Sans%20Pro%22%2C%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23ffffff%7Dinput%2Cbutton%2Cselect%2Ctextarea%7Bfont%2Dfamily%3Ainherit%3Bfont%2Dsize%3Ainherit%3Bline%2Dheight%3Ainherit%7Da%7Bcolor%3A%23158cba%3Btext%2Ddecoration%3Anone%7Da%3Ahover%2Ca%3Afocus%7Bcolor%3A%23158cba%3Btext%2Ddecoration%3Aunderline%7Da%3Afocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7Dfigure%7Bmargin%3A0%7Dimg%7Bvertical%2Dalign%3Amiddle%7D%2Eimg%2Dresponsive%2C%2Ethumbnail%3Eimg%2C%2Ethumbnail%20a%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Ea%3Eimg%7Bdisplay%3Ablock%3Bmax%2Dwidth%3A100%25%3Bheight%3Aauto%7D%2Eimg%2Drounded%7Bborder%2Dradius%3A5px%7D%2Eimg%2Dthumbnail%7Bpadding%3A4px%3Bline%2Dheight%3A1%2E42857143%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23eeeeee%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3Btransition%3Aall%20%2E2s%20ease%2Din%2Dout%3Bdisplay%3Ainline%2Dblock%3Bmax%2Dwidth%3A100%25%3Bheight%3Aauto%7D%2Eimg%2Dcircle%7Bborder%2Dradius%3A50%25%7Dhr%7Bmargin%2Dtop%3A20px%3Bmargin%2Dbottom%3A20px%3Bborder%3A0%3Bborder%2Dtop%3A1px%20solid%20%23eeeeee%7D%2Esr%2Donly%7Bposition%3Aabsolute%3Bwidth%3A1px%3Bheight%3A1px%3Bmargin%3A%2D1px%3Bpadding%3A0%3Boverflow%3Ahidden%3Bclip%3Arect%280%2C%200%2C%200%2C%200%29%3Bborder%3A0%7D%2Esr%2Donly%2Dfocusable%3Aactive%2C%2Esr%2Donly%2Dfocusable%3Afocus%7Bposition%3Astatic%3Bwidth%3Aauto%3Bheight%3Aauto%3Bmargin%3A0%3Boverflow%3Avisible%3Bclip%3Aauto%7D%5Brole%3D%22button%22%5D%7Bcursor%3Apointer%7Dh1%2Ch2%2Ch3%2Ch4%2Ch5%2Ch6%2C%2Eh1%2C%2Eh2%2C%2Eh3%2C%2Eh4%2C%2Eh5%2C%2Eh6%7Bfont%2Dfamily%3Ainherit%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%2E1%3Bcolor%3A%23333333%7Dh1%20small%2Ch2%20small%2Ch3%20small%2Ch4%20small%2Ch5%20small%2Ch6%20small%2C%2Eh1%20small%2C%2Eh2%20small%2C%2Eh3%20small%2C%2Eh4%20small%2C%2Eh5%20small%2C%2Eh6%20small%2Ch1%20%2Esmall%2Ch2%20%2Esmall%2Ch3%20%2Esmall%2Ch4%20%2Esmall%2Ch5%20%2Esmall%2Ch6%20%2Esmall%2C%2Eh1%20%2Esmall%2C%2Eh2%20%2Esmall%2C%2Eh3%20%2Esmall%2C%2Eh4%20%2Esmall%2C%2Eh5%20%2Esmall%2C%2Eh6%20%2Esmall%7Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%3Bcolor%3A%23999999%7Dh1%2C%2Eh1%2Ch2%2C%2Eh2%2Ch3%2C%2Eh3%7Bmargin%2Dtop%3A20px%3Bmargin%2Dbottom%3A10px%7Dh1%20small%2C%2Eh1%20small%2Ch2%20small%2C%2Eh2%20small%2Ch3%20small%2C%2Eh3%20small%2Ch1%20%2Esmall%2C%2Eh1%20%2Esmall%2Ch2%20%2Esmall%2C%2Eh2%20%2Esmall%2Ch3%20%2Esmall%2C%2Eh3%20%2Esmall%7Bfont%2Dsize%3A65%25%7Dh4%2C%2Eh4%2Ch5%2C%2Eh5%2Ch6%2C%2Eh6%7Bmargin%2Dtop%3A10px%3Bmargin%2Dbottom%3A10px%7Dh4%20small%2C%2Eh4%20small%2Ch5%20small%2C%2Eh5%20small%2Ch6%20small%2C%2Eh6%20small%2Ch4%20%2Esmall%2C%2Eh4%20%2Esmall%2Ch5%20%2Esmall%2C%2Eh5%20%2Esmall%2Ch6%20%2Esmall%2C%2Eh6%20%2Esmall%7Bfont%2Dsize%3A75%25%7Dh1%2C%2Eh1%7Bfont%2Dsize%3A36px%7Dh2%2C%2Eh2%7Bfont%2Dsize%3A30px%7Dh3%2C%2Eh3%7Bfont%2Dsize%3A24px%7Dh4%2C%2Eh4%7Bfont%2Dsize%3A18px%7Dh5%2C%2Eh5%7Bfont%2Dsize%3A14px%7Dh6%2C%2Eh6%7Bfont%2Dsize%3A12px%7Dp%7Bmargin%3A0%200%2010px%7D%2Elead%7Bmargin%2Dbottom%3A20px%3Bfont%2Dsize%3A16px%3Bfont%2Dweight%3A300%3Bline%2Dheight%3A1%2E4%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Elead%7Bfont%2Dsize%3A21px%7D%7Dsmall%2C%2Esmall%7Bfont%2Dsize%3A85%25%7Dmark%2C%2Emark%7Bbackground%2Dcolor%3A%23ff851b%3Bpadding%3A%2E2em%7D%2Etext%2Dleft%7Btext%2Dalign%3Aleft%7D%2Etext%2Dright%7Btext%2Dalign%3Aright%7D%2Etext%2Dcenter%7Btext%2Dalign%3Acenter%7D%2Etext%2Djustify%7Btext%2Dalign%3Ajustify%7D%2Etext%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7D%2Etext%2Dlowercase%7Btext%2Dtransform%3Alowercase%7D%2Etext%2Duppercase%7Btext%2Dtransform%3Auppercase%7D%2Etext%2Dcapitalize%7Btext%2Dtransform%3Acapitalize%7D%2Etext%2Dmuted%7Bcolor%3A%23999999%7D%2Etext%2Dprimary%7Bcolor%3A%23158cba%7Da%2Etext%2Dprimary%3Ahover%2Ca%2Etext%2Dprimary%3Afocus%7Bcolor%3A%23106a8c%7D%2Etext%2Dsuccess%7Bcolor%3A%23ffffff%7Da%2Etext%2Dsuccess%3Ahover%2Ca%2Etext%2Dsuccess%3Afocus%7Bcolor%3A%23e6e6e6%7D%2Etext%2Dinfo%7Bcolor%3A%23ffffff%7Da%2Etext%2Dinfo%3Ahover%2Ca%2Etext%2Dinfo%3Afocus%7Bcolor%3A%23e6e6e6%7D%2Etext%2Dwarning%7Bcolor%3A%23ffffff%7Da%2Etext%2Dwarning%3Ahover%2Ca%2Etext%2Dwarning%3Afocus%7Bcolor%3A%23e6e6e6%7D%2Etext%2Ddanger%7Bcolor%3A%23ffffff%7Da%2Etext%2Ddanger%3Ahover%2Ca%2Etext%2Ddanger%3Afocus%7Bcolor%3A%23e6e6e6%7D%2Ebg%2Dprimary%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23158cba%7Da%2Ebg%2Dprimary%3Ahover%2Ca%2Ebg%2Dprimary%3Afocus%7Bbackground%2Dcolor%3A%23106a8c%7D%2Ebg%2Dsuccess%7Bbackground%2Dcolor%3A%2328b62c%7Da%2Ebg%2Dsuccess%3Ahover%2Ca%2Ebg%2Dsuccess%3Afocus%7Bbackground%2Dcolor%3A%231f8c22%7D%2Ebg%2Dinfo%7Bbackground%2Dcolor%3A%2375caeb%7Da%2Ebg%2Dinfo%3Ahover%2Ca%2Ebg%2Dinfo%3Afocus%7Bbackground%2Dcolor%3A%2348b9e5%7D%2Ebg%2Dwarning%7Bbackground%2Dcolor%3A%23ff851b%7Da%2Ebg%2Dwarning%3Ahover%2Ca%2Ebg%2Dwarning%3Afocus%7Bbackground%2Dcolor%3A%23e76b00%7D%2Ebg%2Ddanger%7Bbackground%2Dcolor%3A%23ff4136%7Da%2Ebg%2Ddanger%3Ahover%2Ca%2Ebg%2Ddanger%3Afocus%7Bbackground%2Dcolor%3A%23ff1103%7D%2Epage%2Dheader%7Bpadding%2Dbottom%3A9px%3Bmargin%3A40px%200%2020px%3Bborder%2Dbottom%3A1px%20solid%20%23eeeeee%7Dul%2Col%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A10px%7Dul%20ul%2Col%20ul%2Cul%20ol%2Col%20ol%7Bmargin%2Dbottom%3A0%7D%2Elist%2Dunstyled%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Elist%2Dinline%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%3Bmargin%2Dleft%3A%2D5px%7D%2Elist%2Dinline%3Eli%7Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A5px%3Bpadding%2Dright%3A5px%7Ddl%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A20px%7Ddt%2Cdd%7Bline%2Dheight%3A1%2E42857143%7Ddt%7Bfont%2Dweight%3Abold%7Ddd%7Bmargin%2Dleft%3A0%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Edl%2Dhorizontal%20dt%7Bfloat%3Aleft%3Bwidth%3A160px%3Bclear%3Aleft%3Btext%2Dalign%3Aright%3Boverflow%3Ahidden%3Btext%2Doverflow%3Aellipsis%3Bwhite%2Dspace%3Anowrap%7D%2Edl%2Dhorizontal%20dd%7Bmargin%2Dleft%3A180px%7D%7Dabbr%5Btitle%5D%2Cabbr%5Bdata%2Doriginal%2Dtitle%5D%7Bcursor%3Ahelp%3Bborder%2Dbottom%3A1px%20dotted%20%23999999%7D%2Einitialism%7Bfont%2Dsize%3A90%25%3Btext%2Dtransform%3Auppercase%7Dblockquote%7Bpadding%3A10px%2020px%3Bmargin%3A0%200%2020px%3Bfont%2Dsize%3A17%2E5px%3Bborder%2Dleft%3A5px%20solid%20%23eeeeee%7Dblockquote%20p%3Alast%2Dchild%2Cblockquote%20ul%3Alast%2Dchild%2Cblockquote%20ol%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%7Dblockquote%20footer%2Cblockquote%20small%2Cblockquote%20%2Esmall%7Bdisplay%3Ablock%3Bfont%2Dsize%3A80%25%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23999999%7Dblockquote%20footer%3Abefore%2Cblockquote%20small%3Abefore%2Cblockquote%20%2Esmall%3Abefore%7Bcontent%3A%27%5C2014%20%5C00A0%27%7D%2Eblockquote%2Dreverse%2Cblockquote%2Epull%2Dright%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A0%3Bborder%2Dright%3A5px%20solid%20%23eeeeee%3Bborder%2Dleft%3A0%3Btext%2Dalign%3Aright%7D%2Eblockquote%2Dreverse%20footer%3Abefore%2Cblockquote%2Epull%2Dright%20footer%3Abefore%2C%2Eblockquote%2Dreverse%20small%3Abefore%2Cblockquote%2Epull%2Dright%20small%3Abefore%2C%2Eblockquote%2Dreverse%20%2Esmall%3Abefore%2Cblockquote%2Epull%2Dright%20%2Esmall%3Abefore%7Bcontent%3A%27%27%7D%2Eblockquote%2Dreverse%20footer%3Aafter%2Cblockquote%2Epull%2Dright%20footer%3Aafter%2C%2Eblockquote%2Dreverse%20small%3Aafter%2Cblockquote%2Epull%2Dright%20small%3Aafter%2C%2Eblockquote%2Dreverse%20%2Esmall%3Aafter%2Cblockquote%2Epull%2Dright%20%2Esmall%3Aafter%7Bcontent%3A%27%5C00A0%20%5C2014%27%7Daddress%7Bmargin%2Dbottom%3A20px%3Bfont%2Dstyle%3Anormal%3Bline%2Dheight%3A1%2E42857143%7Dcode%2Ckbd%2Cpre%2Csamp%7Bfont%2Dfamily%3Amonospace%7Dcode%7Bpadding%3A2px%204px%3Bfont%2Dsize%3A90%25%3Bcolor%3A%23c7254e%3Bbackground%2Dcolor%3A%23f9f2f4%3Bborder%2Dradius%3A4px%7Dkbd%7Bpadding%3A2px%204px%3Bfont%2Dsize%3A90%25%3Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23333333%3Bborder%2Dradius%3A2px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%7Dkbd%20kbd%7Bpadding%3A0%3Bfont%2Dsize%3A100%25%3Bfont%2Dweight%3Abold%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7Dpre%7Bdisplay%3Ablock%3Bpadding%3A9%2E5px%3Bmargin%3A0%200%2010px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E42857143%3Bword%2Dbreak%3Abreak%2Dall%3Bword%2Dwrap%3Abreak%2Dword%3Bcolor%3A%23333333%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%3A1px%20solid%20%23cccccc%3Bborder%2Dradius%3A4px%7Dpre%20code%7Bpadding%3A0%3Bfont%2Dsize%3Ainherit%3Bcolor%3Ainherit%3Bwhite%2Dspace%3Apre%2Dwrap%3Bbackground%2Dcolor%3Atransparent%3Bborder%2Dradius%3A0%7D%2Epre%2Dscrollable%7Bmax%2Dheight%3A340px%3Boverflow%2Dy%3Ascroll%7D%2Econtainer%7Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%3Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Econtainer%7Bwidth%3A750px%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Econtainer%7Bwidth%3A970px%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Econtainer%7Bwidth%3A1170px%7D%7D%2Econtainer%2Dfluid%7Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%3Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%2Erow%7Bmargin%2Dleft%3A%2D15px%3Bmargin%2Dright%3A%2D15px%7D%2Ecol%2Dxs%2D1%2C%2Ecol%2Dsm%2D1%2C%2Ecol%2Dmd%2D1%2C%2Ecol%2Dlg%2D1%2C%2Ecol%2Dxs%2D2%2C%2Ecol%2Dsm%2D2%2C%2Ecol%2Dmd%2D2%2C%2Ecol%2Dlg%2D2%2C%2Ecol%2Dxs%2D3%2C%2Ecol%2Dsm%2D3%2C%2Ecol%2Dmd%2D3%2C%2Ecol%2Dlg%2D3%2C%2Ecol%2Dxs%2D4%2C%2Ecol%2Dsm%2D4%2C%2Ecol%2Dmd%2D4%2C%2Ecol%2Dlg%2D4%2C%2Ecol%2Dxs%2D5%2C%2Ecol%2Dsm%2D5%2C%2Ecol%2Dmd%2D5%2C%2Ecol%2Dlg%2D5%2C%2Ecol%2Dxs%2D6%2C%2Ecol%2Dsm%2D6%2C%2Ecol%2Dmd%2D6%2C%2Ecol%2Dlg%2D6%2C%2Ecol%2Dxs%2D7%2C%2Ecol%2Dsm%2D7%2C%2Ecol%2Dmd%2D7%2C%2Ecol%2Dlg%2D7%2C%2Ecol%2Dxs%2D8%2C%2Ecol%2Dsm%2D8%2C%2Ecol%2Dmd%2D8%2C%2Ecol%2Dlg%2D8%2C%2Ecol%2Dxs%2D9%2C%2Ecol%2Dsm%2D9%2C%2Ecol%2Dmd%2D9%2C%2Ecol%2Dlg%2D9%2C%2Ecol%2Dxs%2D10%2C%2Ecol%2Dsm%2D10%2C%2Ecol%2Dmd%2D10%2C%2Ecol%2Dlg%2D10%2C%2Ecol%2Dxs%2D11%2C%2Ecol%2Dsm%2D11%2C%2Ecol%2Dmd%2D11%2C%2Ecol%2Dlg%2D11%2C%2Ecol%2Dxs%2D12%2C%2Ecol%2Dsm%2D12%2C%2Ecol%2Dmd%2D12%2C%2Ecol%2Dlg%2D12%7Bposition%3Arelative%3Bmin%2Dheight%3A1px%3Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%2Ecol%2Dxs%2D1%2C%2Ecol%2Dxs%2D2%2C%2Ecol%2Dxs%2D3%2C%2Ecol%2Dxs%2D4%2C%2Ecol%2Dxs%2D5%2C%2Ecol%2Dxs%2D6%2C%2Ecol%2Dxs%2D7%2C%2Ecol%2Dxs%2D8%2C%2Ecol%2Dxs%2D9%2C%2Ecol%2Dxs%2D10%2C%2Ecol%2Dxs%2D11%2C%2Ecol%2Dxs%2D12%7Bfloat%3Aleft%7D%2Ecol%2Dxs%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dxs%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dxs%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dxs%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dxs%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dxs%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dxs%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dxs%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dxs%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dxs%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dxs%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dxs%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dxs%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dxs%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dxs%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dxs%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dxs%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dxs%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dxs%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dxs%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dxs%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dxs%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dxs%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dxs%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dxs%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dxs%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D0%7Bmargin%2Dleft%3A0%25%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Ecol%2Dsm%2D1%2C%2Ecol%2Dsm%2D2%2C%2Ecol%2Dsm%2D3%2C%2Ecol%2Dsm%2D4%2C%2Ecol%2Dsm%2D5%2C%2Ecol%2Dsm%2D6%2C%2Ecol%2Dsm%2D7%2C%2Ecol%2Dsm%2D8%2C%2Ecol%2Dsm%2D9%2C%2Ecol%2Dsm%2D10%2C%2Ecol%2Dsm%2D11%2C%2Ecol%2Dsm%2D12%7Bfloat%3Aleft%7D%2Ecol%2Dsm%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dsm%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dsm%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dsm%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dsm%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dsm%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dsm%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dsm%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dsm%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dsm%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dsm%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dsm%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dsm%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dsm%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dsm%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dsm%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dsm%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dsm%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dsm%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dsm%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dsm%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dsm%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dsm%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dsm%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dsm%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dsm%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D0%7Bmargin%2Dleft%3A0%25%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Ecol%2Dmd%2D1%2C%2Ecol%2Dmd%2D2%2C%2Ecol%2Dmd%2D3%2C%2Ecol%2Dmd%2D4%2C%2Ecol%2Dmd%2D5%2C%2Ecol%2Dmd%2D6%2C%2Ecol%2Dmd%2D7%2C%2Ecol%2Dmd%2D8%2C%2Ecol%2Dmd%2D9%2C%2Ecol%2Dmd%2D10%2C%2Ecol%2Dmd%2D11%2C%2Ecol%2Dmd%2D12%7Bfloat%3Aleft%7D%2Ecol%2Dmd%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dmd%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dmd%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dmd%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dmd%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dmd%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dmd%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dmd%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dmd%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dmd%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dmd%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dmd%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dmd%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dmd%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dmd%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dmd%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dmd%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dmd%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dmd%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dmd%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dmd%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dmd%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dmd%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dmd%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dmd%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dmd%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D0%7Bmargin%2Dleft%3A0%25%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Ecol%2Dlg%2D1%2C%2Ecol%2Dlg%2D2%2C%2Ecol%2Dlg%2D3%2C%2Ecol%2Dlg%2D4%2C%2Ecol%2Dlg%2D5%2C%2Ecol%2Dlg%2D6%2C%2Ecol%2Dlg%2D7%2C%2Ecol%2Dlg%2D8%2C%2Ecol%2Dlg%2D9%2C%2Ecol%2Dlg%2D10%2C%2Ecol%2Dlg%2D11%2C%2Ecol%2Dlg%2D12%7Bfloat%3Aleft%7D%2Ecol%2Dlg%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dlg%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dlg%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dlg%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dlg%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dlg%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dlg%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dlg%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dlg%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dlg%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dlg%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dlg%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dlg%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dlg%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dlg%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dlg%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dlg%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dlg%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dlg%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dlg%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dlg%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dlg%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dlg%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dlg%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dlg%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dlg%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D0%7Bmargin%2Dleft%3A0%25%7D%7Dtable%7Bbackground%2Dcolor%3Atransparent%7Dcaption%7Bpadding%2Dtop%3A8px%3Bpadding%2Dbottom%3A8px%3Bcolor%3A%23999999%3Btext%2Dalign%3Aleft%7Dth%7B%7D%2Etable%7Bwidth%3A100%25%3Bmax%2Dwidth%3A100%25%3Bmargin%2Dbottom%3A20px%7D%2Etable%3Ethead%3Etr%3Eth%2C%2Etable%3Etbody%3Etr%3Eth%2C%2Etable%3Etfoot%3Etr%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2C%2Etable%3Etbody%3Etr%3Etd%2C%2Etable%3Etfoot%3Etr%3Etd%7Bpadding%3A8px%3Bline%2Dheight%3A1%2E42857143%3Bvertical%2Dalign%3Atop%3Bborder%2Dtop%3A1px%20solid%20%23eeeeee%7D%2Etable%3Ethead%3Etr%3Eth%7Bvertical%2Dalign%3Abottom%3Bborder%2Dbottom%3A2px%20solid%20%23eeeeee%7D%2Etable%3Ecaption%2Bthead%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ecolgroup%2Bthead%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ecaption%2Bthead%3Etr%3Afirst%2Dchild%3Etd%2C%2Etable%3Ecolgroup%2Bthead%3Etr%3Afirst%2Dchild%3Etd%2C%2Etable%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%3Etd%7Bborder%2Dtop%3A0%7D%2Etable%3Etbody%2Btbody%7Bborder%2Dtop%3A2px%20solid%20%23eeeeee%7D%2Etable%20%2Etable%7Bbackground%2Dcolor%3A%23ffffff%7D%2Etable%2Dcondensed%3Ethead%3Etr%3Eth%2C%2Etable%2Dcondensed%3Etbody%3Etr%3Eth%2C%2Etable%2Dcondensed%3Etfoot%3Etr%3Eth%2C%2Etable%2Dcondensed%3Ethead%3Etr%3Etd%2C%2Etable%2Dcondensed%3Etbody%3Etr%3Etd%2C%2Etable%2Dcondensed%3Etfoot%3Etr%3Etd%7Bpadding%3A5px%7D%2Etable%2Dbordered%7Bborder%3A1px%20solid%20%23eeeeee%7D%2Etable%2Dbordered%3Ethead%3Etr%3Eth%2C%2Etable%2Dbordered%3Etbody%3Etr%3Eth%2C%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%2C%2Etable%2Dbordered%3Ethead%3Etr%3Etd%2C%2Etable%2Dbordered%3Etbody%3Etr%3Etd%2C%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%7Bborder%3A1px%20solid%20%23eeeeee%7D%2Etable%2Dbordered%3Ethead%3Etr%3Eth%2C%2Etable%2Dbordered%3Ethead%3Etr%3Etd%7Bborder%2Dbottom%2Dwidth%3A2px%7D%2Etable%2Dstriped%3Etbody%3Etr%3Anth%2Dof%2Dtype%28odd%29%7Bbackground%2Dcolor%3A%23f9f9f9%7D%2Etable%2Dhover%3Etbody%3Etr%3Ahover%7Bbackground%2Dcolor%3A%23f5f5f5%7Dtable%20col%5Bclass%2A%3D%22col%2D%22%5D%7Bposition%3Astatic%3Bfloat%3Anone%3Bdisplay%3Atable%2Dcolumn%7Dtable%20td%5Bclass%2A%3D%22col%2D%22%5D%2Ctable%20th%5Bclass%2A%3D%22col%2D%22%5D%7Bposition%3Astatic%3Bfloat%3Anone%3Bdisplay%3Atable%2Dcell%7D%2Etable%3Ethead%3Etr%3Etd%2Eactive%2C%2Etable%3Etbody%3Etr%3Etd%2Eactive%2C%2Etable%3Etfoot%3Etr%3Etd%2Eactive%2C%2Etable%3Ethead%3Etr%3Eth%2Eactive%2C%2Etable%3Etbody%3Etr%3Eth%2Eactive%2C%2Etable%3Etfoot%3Etr%3Eth%2Eactive%2C%2Etable%3Ethead%3Etr%2Eactive%3Etd%2C%2Etable%3Etbody%3Etr%2Eactive%3Etd%2C%2Etable%3Etfoot%3Etr%2Eactive%3Etd%2C%2Etable%3Ethead%3Etr%2Eactive%3Eth%2C%2Etable%3Etbody%3Etr%2Eactive%3Eth%2C%2Etable%3Etfoot%3Etr%2Eactive%3Eth%7Bbackground%2Dcolor%3A%23f5f5f5%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Eactive%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Eactive%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Eactive%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Eactive%2C%2Etable%2Dhover%3Etbody%3Etr%2Eactive%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23e8e8e8%7D%2Etable%3Ethead%3Etr%3Etd%2Esuccess%2C%2Etable%3Etbody%3Etr%3Etd%2Esuccess%2C%2Etable%3Etfoot%3Etr%3Etd%2Esuccess%2C%2Etable%3Ethead%3Etr%3Eth%2Esuccess%2C%2Etable%3Etbody%3Etr%3Eth%2Esuccess%2C%2Etable%3Etfoot%3Etr%3Eth%2Esuccess%2C%2Etable%3Ethead%3Etr%2Esuccess%3Etd%2C%2Etable%3Etbody%3Etr%2Esuccess%3Etd%2C%2Etable%3Etfoot%3Etr%2Esuccess%3Etd%2C%2Etable%3Ethead%3Etr%2Esuccess%3Eth%2C%2Etable%3Etbody%3Etr%2Esuccess%3Eth%2C%2Etable%3Etfoot%3Etr%2Esuccess%3Eth%7Bbackground%2Dcolor%3A%2328b62c%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Esuccess%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Esuccess%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Esuccess%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Esuccess%2C%2Etable%2Dhover%3Etbody%3Etr%2Esuccess%3Ahover%3Eth%7Bbackground%2Dcolor%3A%2323a127%7D%2Etable%3Ethead%3Etr%3Etd%2Einfo%2C%2Etable%3Etbody%3Etr%3Etd%2Einfo%2C%2Etable%3Etfoot%3Etr%3Etd%2Einfo%2C%2Etable%3Ethead%3Etr%3Eth%2Einfo%2C%2Etable%3Etbody%3Etr%3Eth%2Einfo%2C%2Etable%3Etfoot%3Etr%3Eth%2Einfo%2C%2Etable%3Ethead%3Etr%2Einfo%3Etd%2C%2Etable%3Etbody%3Etr%2Einfo%3Etd%2C%2Etable%3Etfoot%3Etr%2Einfo%3Etd%2C%2Etable%3Ethead%3Etr%2Einfo%3Eth%2C%2Etable%3Etbody%3Etr%2Einfo%3Eth%2C%2Etable%3Etfoot%3Etr%2Einfo%3Eth%7Bbackground%2Dcolor%3A%2375caeb%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Einfo%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Einfo%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Einfo%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Einfo%2C%2Etable%2Dhover%3Etbody%3Etr%2Einfo%3Ahover%3Eth%7Bbackground%2Dcolor%3A%235fc1e8%7D%2Etable%3Ethead%3Etr%3Etd%2Ewarning%2C%2Etable%3Etbody%3Etr%3Etd%2Ewarning%2C%2Etable%3Etfoot%3Etr%3Etd%2Ewarning%2C%2Etable%3Ethead%3Etr%3Eth%2Ewarning%2C%2Etable%3Etbody%3Etr%3Eth%2Ewarning%2C%2Etable%3Etfoot%3Etr%3Eth%2Ewarning%2C%2Etable%3Ethead%3Etr%2Ewarning%3Etd%2C%2Etable%3Etbody%3Etr%2Ewarning%3Etd%2C%2Etable%3Etfoot%3Etr%2Ewarning%3Etd%2C%2Etable%3Ethead%3Etr%2Ewarning%3Eth%2C%2Etable%3Etbody%3Etr%2Ewarning%3Eth%2C%2Etable%3Etfoot%3Etr%2Ewarning%3Eth%7Bbackground%2Dcolor%3A%23ff851b%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Ewarning%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Ewarning%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Ewarning%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Ewarning%2C%2Etable%2Dhover%3Etbody%3Etr%2Ewarning%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23ff7701%7D%2Etable%3Ethead%3Etr%3Etd%2Edanger%2C%2Etable%3Etbody%3Etr%3Etd%2Edanger%2C%2Etable%3Etfoot%3Etr%3Etd%2Edanger%2C%2Etable%3Ethead%3Etr%3Eth%2Edanger%2C%2Etable%3Etbody%3Etr%3Eth%2Edanger%2C%2Etable%3Etfoot%3Etr%3Eth%2Edanger%2C%2Etable%3Ethead%3Etr%2Edanger%3Etd%2C%2Etable%3Etbody%3Etr%2Edanger%3Etd%2C%2Etable%3Etfoot%3Etr%2Edanger%3Etd%2C%2Etable%3Ethead%3Etr%2Edanger%3Eth%2C%2Etable%3Etbody%3Etr%2Edanger%3Eth%2C%2Etable%3Etfoot%3Etr%2Edanger%3Eth%7Bbackground%2Dcolor%3A%23ff4136%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Edanger%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Edanger%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Edanger%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Edanger%2C%2Etable%2Dhover%3Etbody%3Etr%2Edanger%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23ff291c%7D%2Etable%2Dresponsive%7Boverflow%2Dx%3Aauto%3Bmin%2Dheight%3A0%2E01%25%7D%40media%20screen%20and%20%28max%2Dwidth%3A767px%29%7B%2Etable%2Dresponsive%7Bwidth%3A100%25%3Bmargin%2Dbottom%3A15px%3Boverflow%2Dy%3Ahidden%3B%2Dms%2Doverflow%2Dstyle%3A%2Dms%2Dautohiding%2Dscrollbar%3Bborder%3A1px%20solid%20%23eeeeee%7D%2Etable%2Dresponsive%3E%2Etable%7Bmargin%2Dbottom%3A0%7D%2Etable%2Dresponsive%3E%2Etable%3Ethead%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Etbody%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Etfoot%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Ethead%3Etr%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%3Etbody%3Etr%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%3Etfoot%3Etr%3Etd%7Bwhite%2Dspace%3Anowrap%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%7Bborder%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%7Bborder%2Dleft%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%7Bborder%2Dright%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%7Bborder%2Dbottom%3A0%7D%7Dfieldset%7Bpadding%3A0%3Bmargin%3A0%3Bborder%3A0%3Bmin%2Dwidth%3A0%7Dlegend%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bpadding%3A0%3Bmargin%2Dbottom%3A20px%3Bfont%2Dsize%3A21px%3Bline%2Dheight%3Ainherit%3Bcolor%3A%23333333%3Bborder%3A0%3Bborder%2Dbottom%3A1px%20solid%20%23e5e5e5%7Dlabel%7Bdisplay%3Ainline%2Dblock%3Bmax%2Dwidth%3A100%25%3Bmargin%2Dbottom%3A5px%3Bfont%2Dweight%3Abold%7Dinput%5Btype%3D%22search%22%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7Dinput%5Btype%3D%22radio%22%5D%2Cinput%5Btype%3D%22checkbox%22%5D%7Bmargin%3A4px%200%200%3Bmargin%2Dtop%3A1px%20%5C9%3Bline%2Dheight%3Anormal%7Dinput%5Btype%3D%22file%22%5D%7Bdisplay%3Ablock%7Dinput%5Btype%3D%22range%22%5D%7Bdisplay%3Ablock%3Bwidth%3A100%25%7Dselect%5Bmultiple%5D%2Cselect%5Bsize%5D%7Bheight%3Aauto%7Dinput%5Btype%3D%22file%22%5D%3Afocus%2Cinput%5Btype%3D%22radio%22%5D%3Afocus%2Cinput%5Btype%3D%22checkbox%22%5D%3Afocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7Doutput%7Bdisplay%3Ablock%3Bpadding%2Dtop%3A8px%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23555555%7D%2Eform%2Dcontrol%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bheight%3A38px%3Bpadding%3A7px%2012px%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23ffffff%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20%23e7e7e7%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3B%2Dwebkit%2Dtransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2C%2Dwebkit%2Dbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%3B%2Do%2Dtransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2Cbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%3Btransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2Cbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%7D%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%2366afe9%3Boutline%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%208px%20rgba%28102%2C175%2C233%2C0%2E6%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%208px%20rgba%28102%2C175%2C233%2C0%2E6%29%7D%2Eform%2Dcontrol%3A%3A%2Dmoz%2Dplaceholder%7Bcolor%3A%23999999%3Bopacity%3A1%7D%2Eform%2Dcontrol%3A%2Dms%2Dinput%2Dplaceholder%7Bcolor%3A%23999999%7D%2Eform%2Dcontrol%3A%3A%2Dwebkit%2Dinput%2Dplaceholder%7Bcolor%3A%23999999%7D%2Eform%2Dcontrol%3A%3A%2Dms%2Dexpand%7Bborder%3A0%3Bbackground%2Dcolor%3Atransparent%7D%2Eform%2Dcontrol%5Bdisabled%5D%2C%2Eform%2Dcontrol%5Breadonly%5D%2Cfieldset%5Bdisabled%5D%20%2Eform%2Dcontrol%7Bbackground%2Dcolor%3A%23eeeeee%3Bopacity%3A1%7D%2Eform%2Dcontrol%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Eform%2Dcontrol%7Bcursor%3Anot%2Dallowed%7Dtextarea%2Eform%2Dcontrol%7Bheight%3Aauto%7Dinput%5Btype%3D%22search%22%5D%7B%2Dwebkit%2Dappearance%3Anone%7D%40media%20screen%20and%20%28%2Dwebkit%2Dmin%2Ddevice%2Dpixel%2Dratio%3A0%29%7Binput%5Btype%3D%22date%22%5D%2Eform%2Dcontrol%2Cinput%5Btype%3D%22time%22%5D%2Eform%2Dcontrol%2Cinput%5Btype%3D%22datetime%2Dlocal%22%5D%2Eform%2Dcontrol%2Cinput%5Btype%3D%22month%22%5D%2Eform%2Dcontrol%7Bline%2Dheight%3A38px%7Dinput%5Btype%3D%22date%22%5D%2Einput%2Dsm%2Cinput%5Btype%3D%22time%22%5D%2Einput%2Dsm%2Cinput%5Btype%3D%22datetime%2Dlocal%22%5D%2Einput%2Dsm%2Cinput%5Btype%3D%22month%22%5D%2Einput%2Dsm%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3D%22date%22%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3D%22time%22%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3D%22datetime%2Dlocal%22%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3D%22month%22%5D%7Bline%2Dheight%3A28px%7Dinput%5Btype%3D%22date%22%5D%2Einput%2Dlg%2Cinput%5Btype%3D%22time%22%5D%2Einput%2Dlg%2Cinput%5Btype%3D%22datetime%2Dlocal%22%5D%2Einput%2Dlg%2Cinput%5Btype%3D%22month%22%5D%2Einput%2Dlg%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3D%22date%22%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3D%22time%22%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3D%22datetime%2Dlocal%22%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3D%22month%22%5D%7Bline%2Dheight%3A52px%7D%7D%2Eform%2Dgroup%7Bmargin%2Dbottom%3A15px%7D%2Eradio%2C%2Echeckbox%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bmargin%2Dtop%3A10px%3Bmargin%2Dbottom%3A10px%7D%2Eradio%20label%2C%2Echeckbox%20label%7Bmin%2Dheight%3A20px%3Bpadding%2Dleft%3A20px%3Bmargin%2Dbottom%3A0%3Bfont%2Dweight%3Anormal%3Bcursor%3Apointer%7D%2Eradio%20input%5Btype%3D%22radio%22%5D%2C%2Eradio%2Dinline%20input%5Btype%3D%22radio%22%5D%2C%2Echeckbox%20input%5Btype%3D%22checkbox%22%5D%2C%2Echeckbox%2Dinline%20input%5Btype%3D%22checkbox%22%5D%7Bposition%3Aabsolute%3Bmargin%2Dleft%3A%2D20px%3Bmargin%2Dtop%3A4px%20%5C9%7D%2Eradio%2B%2Eradio%2C%2Echeckbox%2B%2Echeckbox%7Bmargin%2Dtop%3A%2D5px%7D%2Eradio%2Dinline%2C%2Echeckbox%2Dinline%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A20px%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%3Bfont%2Dweight%3Anormal%3Bcursor%3Apointer%7D%2Eradio%2Dinline%2B%2Eradio%2Dinline%2C%2Echeckbox%2Dinline%2B%2Echeckbox%2Dinline%7Bmargin%2Dtop%3A0%3Bmargin%2Dleft%3A10px%7Dinput%5Btype%3D%22radio%22%5D%5Bdisabled%5D%2Cinput%5Btype%3D%22checkbox%22%5D%5Bdisabled%5D%2Cinput%5Btype%3D%22radio%22%5D%2Edisabled%2Cinput%5Btype%3D%22checkbox%22%5D%2Edisabled%2Cfieldset%5Bdisabled%5D%20input%5Btype%3D%22radio%22%5D%2Cfieldset%5Bdisabled%5D%20input%5Btype%3D%22checkbox%22%5D%7Bcursor%3Anot%2Dallowed%7D%2Eradio%2Dinline%2Edisabled%2C%2Echeckbox%2Dinline%2Edisabled%2Cfieldset%5Bdisabled%5D%20%2Eradio%2Dinline%2Cfieldset%5Bdisabled%5D%20%2Echeckbox%2Dinline%7Bcursor%3Anot%2Dallowed%7D%2Eradio%2Edisabled%20label%2C%2Echeckbox%2Edisabled%20label%2Cfieldset%5Bdisabled%5D%20%2Eradio%20label%2Cfieldset%5Bdisabled%5D%20%2Echeckbox%20label%7Bcursor%3Anot%2Dallowed%7D%2Eform%2Dcontrol%2Dstatic%7Bpadding%2Dtop%3A8px%3Bpadding%2Dbottom%3A8px%3Bmargin%2Dbottom%3A0%3Bmin%2Dheight%3A34px%7D%2Eform%2Dcontrol%2Dstatic%2Einput%2Dlg%2C%2Eform%2Dcontrol%2Dstatic%2Einput%2Dsm%7Bpadding%2Dleft%3A0%3Bpadding%2Dright%3A0%7D%2Einput%2Dsm%7Bheight%3A28px%3Bpadding%3A4px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A2px%7Dselect%2Einput%2Dsm%7Bheight%3A28px%3Bline%2Dheight%3A28px%7Dtextarea%2Einput%2Dsm%2Cselect%5Bmultiple%5D%2Einput%2Dsm%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%7Bheight%3A28px%3Bpadding%3A4px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A2px%7D%2Eform%2Dgroup%2Dsm%20select%2Eform%2Dcontrol%7Bheight%3A28px%3Bline%2Dheight%3A28px%7D%2Eform%2Dgroup%2Dsm%20textarea%2Eform%2Dcontrol%2C%2Eform%2Dgroup%2Dsm%20select%5Bmultiple%5D%2Eform%2Dcontrol%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%2Dstatic%7Bheight%3A28px%3Bmin%2Dheight%3A32px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%7D%2Einput%2Dlg%7Bheight%3A52px%3Bpadding%3A13px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A5px%7Dselect%2Einput%2Dlg%7Bheight%3A52px%3Bline%2Dheight%3A52px%7Dtextarea%2Einput%2Dlg%2Cselect%5Bmultiple%5D%2Einput%2Dlg%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%7Bheight%3A52px%3Bpadding%3A13px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A5px%7D%2Eform%2Dgroup%2Dlg%20select%2Eform%2Dcontrol%7Bheight%3A52px%3Bline%2Dheight%3A52px%7D%2Eform%2Dgroup%2Dlg%20textarea%2Eform%2Dcontrol%2C%2Eform%2Dgroup%2Dlg%20select%5Bmultiple%5D%2Eform%2Dcontrol%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%2Dstatic%7Bheight%3A52px%3Bmin%2Dheight%3A38px%3Bpadding%3A14px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%7D%2Ehas%2Dfeedback%7Bposition%3Arelative%7D%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%7Bpadding%2Dright%3A47%2E5px%7D%2Eform%2Dcontrol%2Dfeedback%7Bposition%3Aabsolute%3Btop%3A0%3Bright%3A0%3Bz%2Dindex%3A2%3Bdisplay%3Ablock%3Bwidth%3A38px%3Bheight%3A38px%3Bline%2Dheight%3A38px%3Btext%2Dalign%3Acenter%3Bpointer%2Devents%3Anone%7D%2Einput%2Dlg%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dgroup%2Dlg%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%2B%2Eform%2Dcontrol%2Dfeedback%7Bwidth%3A52px%3Bheight%3A52px%3Bline%2Dheight%3A52px%7D%2Einput%2Dsm%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dgroup%2Dsm%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%2B%2Eform%2Dcontrol%2Dfeedback%7Bwidth%3A28px%3Bheight%3A28px%3Bline%2Dheight%3A28px%7D%2Ehas%2Dsuccess%20%2Ehelp%2Dblock%2C%2Ehas%2Dsuccess%20%2Econtrol%2Dlabel%2C%2Ehas%2Dsuccess%20%2Eradio%2C%2Ehas%2Dsuccess%20%2Echeckbox%2C%2Ehas%2Dsuccess%20%2Eradio%2Dinline%2C%2Ehas%2Dsuccess%20%2Echeckbox%2Dinline%2C%2Ehas%2Dsuccess%2Eradio%20label%2C%2Ehas%2Dsuccess%2Echeckbox%20label%2C%2Ehas%2Dsuccess%2Eradio%2Dinline%20label%2C%2Ehas%2Dsuccess%2Echeckbox%2Dinline%20label%7Bcolor%3A%23ffffff%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%23ffffff%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23e6e6e6%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23fff%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23fff%7D%2Ehas%2Dsuccess%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2328b62c%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23ffffff%7D%2Ehas%2Dwarning%20%2Ehelp%2Dblock%2C%2Ehas%2Dwarning%20%2Econtrol%2Dlabel%2C%2Ehas%2Dwarning%20%2Eradio%2C%2Ehas%2Dwarning%20%2Echeckbox%2C%2Ehas%2Dwarning%20%2Eradio%2Dinline%2C%2Ehas%2Dwarning%20%2Echeckbox%2Dinline%2C%2Ehas%2Dwarning%2Eradio%20label%2C%2Ehas%2Dwarning%2Echeckbox%20label%2C%2Ehas%2Dwarning%2Eradio%2Dinline%20label%2C%2Ehas%2Dwarning%2Echeckbox%2Dinline%20label%7Bcolor%3A%23ffffff%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%23ffffff%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23e6e6e6%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23fff%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23fff%7D%2Ehas%2Dwarning%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff851b%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23ffffff%7D%2Ehas%2Derror%20%2Ehelp%2Dblock%2C%2Ehas%2Derror%20%2Econtrol%2Dlabel%2C%2Ehas%2Derror%20%2Eradio%2C%2Ehas%2Derror%20%2Echeckbox%2C%2Ehas%2Derror%20%2Eradio%2Dinline%2C%2Ehas%2Derror%20%2Echeckbox%2Dinline%2C%2Ehas%2Derror%2Eradio%20label%2C%2Ehas%2Derror%2Echeckbox%20label%2C%2Ehas%2Derror%2Eradio%2Dinline%20label%2C%2Ehas%2Derror%2Echeckbox%2Dinline%20label%7Bcolor%3A%23ffffff%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%23ffffff%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23e6e6e6%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23fff%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23fff%7D%2Ehas%2Derror%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff4136%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23ffffff%7D%2Ehas%2Dfeedback%20label%7E%2Eform%2Dcontrol%2Dfeedback%7Btop%3A25px%7D%2Ehas%2Dfeedback%20label%2Esr%2Donly%7E%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%2Ehelp%2Dblock%7Bdisplay%3Ablock%3Bmargin%2Dtop%3A5px%3Bmargin%2Dbottom%3A10px%3Bcolor%3A%23959595%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dinline%20%2Eform%2Dgroup%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eform%2Dcontrol%7Bdisplay%3Ainline%2Dblock%3Bwidth%3Aauto%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eform%2Dcontrol%2Dstatic%7Bdisplay%3Ainline%2Dblock%7D%2Eform%2Dinline%20%2Einput%2Dgroup%7Bdisplay%3Ainline%2Dtable%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Daddon%2C%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Dbtn%2C%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bwidth%3Aauto%7D%2Eform%2Dinline%20%2Einput%2Dgroup%3E%2Eform%2Dcontrol%7Bwidth%3A100%25%7D%2Eform%2Dinline%20%2Econtrol%2Dlabel%7Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eradio%2C%2Eform%2Dinline%20%2Echeckbox%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eradio%20label%2C%2Eform%2Dinline%20%2Echeckbox%20label%7Bpadding%2Dleft%3A0%7D%2Eform%2Dinline%20%2Eradio%20input%5Btype%3D%22radio%22%5D%2C%2Eform%2Dinline%20%2Echeckbox%20input%5Btype%3D%22checkbox%22%5D%7Bposition%3Arelative%3Bmargin%2Dleft%3A0%7D%2Eform%2Dinline%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%7D%2Eform%2Dhorizontal%20%2Eradio%2C%2Eform%2Dhorizontal%20%2Echeckbox%2C%2Eform%2Dhorizontal%20%2Eradio%2Dinline%2C%2Eform%2Dhorizontal%20%2Echeckbox%2Dinline%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bpadding%2Dtop%3A8px%7D%2Eform%2Dhorizontal%20%2Eradio%2C%2Eform%2Dhorizontal%20%2Echeckbox%7Bmin%2Dheight%3A28px%7D%2Eform%2Dhorizontal%20%2Eform%2Dgroup%7Bmargin%2Dleft%3A%2D15px%3Bmargin%2Dright%3A%2D15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Econtrol%2Dlabel%7Btext%2Dalign%3Aright%3Bmargin%2Dbottom%3A0%3Bpadding%2Dtop%3A8px%7D%7D%2Eform%2Dhorizontal%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Bright%3A15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Eform%2Dgroup%2Dlg%20%2Econtrol%2Dlabel%7Bpadding%2Dtop%3A14px%3Bfont%2Dsize%3A18px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Eform%2Dgroup%2Dsm%20%2Econtrol%2Dlabel%7Bpadding%2Dtop%3A5px%3Bfont%2Dsize%3A12px%7D%7D%2Ebtn%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bfont%2Dweight%3Anormal%3Btext%2Dalign%3Acenter%3Bvertical%2Dalign%3Amiddle%3B%2Dms%2Dtouch%2Daction%3Amanipulation%3Btouch%2Daction%3Amanipulation%3Bcursor%3Apointer%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20transparent%3Bwhite%2Dspace%3Anowrap%3Bpadding%3A7px%2012px%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A1%2E42857143%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Duser%2Dselect%3Anone%3B%2Dmoz%2Duser%2Dselect%3Anone%3B%2Dms%2Duser%2Dselect%3Anone%3Buser%2Dselect%3Anone%7D%2Ebtn%3Afocus%2C%2Ebtn%3Aactive%3Afocus%2C%2Ebtn%2Eactive%3Afocus%2C%2Ebtn%2Efocus%2C%2Ebtn%3Aactive%2Efocus%2C%2Ebtn%2Eactive%2Efocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7D%2Ebtn%3Ahover%2C%2Ebtn%3Afocus%2C%2Ebtn%2Efocus%7Bcolor%3A%23555555%3Btext%2Ddecoration%3Anone%7D%2Ebtn%3Aactive%2C%2Ebtn%2Eactive%7Boutline%3A0%3Bbackground%2Dimage%3Anone%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C0%2E125%29%3Bbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C0%2E125%29%7D%2Ebtn%2Edisabled%2C%2Ebtn%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Ebtn%7Bcursor%3Anot%2Dallowed%3Bopacity%3A0%2E65%3Bfilter%3Aalpha%28opacity%3D65%29%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7Da%2Ebtn%2Edisabled%2Cfieldset%5Bdisabled%5D%20a%2Ebtn%7Bpointer%2Devents%3Anone%7D%2Ebtn%2Ddefault%7Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23eeeeee%3Bborder%2Dcolor%3A%23e2e2e2%7D%2Ebtn%2Ddefault%3Afocus%2C%2Ebtn%2Ddefault%2Efocus%7Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23d5d5d5%3Bborder%2Dcolor%3A%23a2a2a2%7D%2Ebtn%2Ddefault%3Ahover%7Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23d5d5d5%3Bborder%2Dcolor%3A%23c3c3c3%7D%2Ebtn%2Ddefault%3Aactive%2C%2Ebtn%2Ddefault%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%7Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23d5d5d5%3Bborder%2Dcolor%3A%23c3c3c3%7D%2Ebtn%2Ddefault%3Aactive%3Ahover%2C%2Ebtn%2Ddefault%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%3Ahover%2C%2Ebtn%2Ddefault%3Aactive%3Afocus%2C%2Ebtn%2Ddefault%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%3Afocus%2C%2Ebtn%2Ddefault%3Aactive%2Efocus%2C%2Ebtn%2Ddefault%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%2Efocus%7Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23c3c3c3%3Bborder%2Dcolor%3A%23a2a2a2%7D%2Ebtn%2Ddefault%3Aactive%2C%2Ebtn%2Ddefault%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Ddefault%2Edisabled%3Ahover%2C%2Ebtn%2Ddefault%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%3Ahover%2C%2Ebtn%2Ddefault%2Edisabled%3Afocus%2C%2Ebtn%2Ddefault%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%3Afocus%2C%2Ebtn%2Ddefault%2Edisabled%2Efocus%2C%2Ebtn%2Ddefault%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%2Efocus%7Bbackground%2Dcolor%3A%23eeeeee%3Bborder%2Dcolor%3A%23e2e2e2%7D%2Ebtn%2Ddefault%20%2Ebadge%7Bcolor%3A%23eeeeee%3Bbackground%2Dcolor%3A%23555555%7D%2Ebtn%2Dprimary%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23158cba%3Bborder%2Dcolor%3A%23127ba3%7D%2Ebtn%2Dprimary%3Afocus%2C%2Ebtn%2Dprimary%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23106a8c%3Bborder%2Dcolor%3A%23052531%7D%2Ebtn%2Dprimary%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23106a8c%3Bborder%2Dcolor%3A%230c516c%7D%2Ebtn%2Dprimary%3Aactive%2C%2Ebtn%2Dprimary%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23106a8c%3Bborder%2Dcolor%3A%230c516c%7D%2Ebtn%2Dprimary%3Aactive%3Ahover%2C%2Ebtn%2Dprimary%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%3Ahover%2C%2Ebtn%2Dprimary%3Aactive%3Afocus%2C%2Ebtn%2Dprimary%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%3Afocus%2C%2Ebtn%2Dprimary%3Aactive%2Efocus%2C%2Ebtn%2Dprimary%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%230c516c%3Bborder%2Dcolor%3A%23052531%7D%2Ebtn%2Dprimary%3Aactive%2C%2Ebtn%2Dprimary%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dprimary%2Edisabled%3Ahover%2C%2Ebtn%2Dprimary%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%3Ahover%2C%2Ebtn%2Dprimary%2Edisabled%3Afocus%2C%2Ebtn%2Dprimary%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%3Afocus%2C%2Ebtn%2Dprimary%2Edisabled%2Efocus%2C%2Ebtn%2Dprimary%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%2Efocus%7Bbackground%2Dcolor%3A%23158cba%3Bborder%2Dcolor%3A%23127ba3%7D%2Ebtn%2Dprimary%20%2Ebadge%7Bcolor%3A%23158cba%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dsuccess%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2328b62c%3Bborder%2Dcolor%3A%2323a127%7D%2Ebtn%2Dsuccess%3Afocus%2C%2Ebtn%2Dsuccess%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%231f8c22%3Bborder%2Dcolor%3A%230c390e%7D%2Ebtn%2Dsuccess%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%231f8c22%3Bborder%2Dcolor%3A%23186f1b%7D%2Ebtn%2Dsuccess%3Aactive%2C%2Ebtn%2Dsuccess%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%231f8c22%3Bborder%2Dcolor%3A%23186f1b%7D%2Ebtn%2Dsuccess%3Aactive%3Ahover%2C%2Ebtn%2Dsuccess%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%3Ahover%2C%2Ebtn%2Dsuccess%3Aactive%3Afocus%2C%2Ebtn%2Dsuccess%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%3Afocus%2C%2Ebtn%2Dsuccess%3Aactive%2Efocus%2C%2Ebtn%2Dsuccess%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23186f1b%3Bborder%2Dcolor%3A%230c390e%7D%2Ebtn%2Dsuccess%3Aactive%2C%2Ebtn%2Dsuccess%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dsuccess%2Edisabled%3Ahover%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%3Ahover%2C%2Ebtn%2Dsuccess%2Edisabled%3Afocus%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%3Afocus%2C%2Ebtn%2Dsuccess%2Edisabled%2Efocus%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%2Efocus%7Bbackground%2Dcolor%3A%2328b62c%3Bborder%2Dcolor%3A%2323a127%7D%2Ebtn%2Dsuccess%20%2Ebadge%7Bcolor%3A%2328b62c%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dinfo%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2375caeb%3Bborder%2Dcolor%3A%235fc1e8%7D%2Ebtn%2Dinfo%3Afocus%2C%2Ebtn%2Dinfo%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2348b9e5%3Bborder%2Dcolor%3A%231984ae%7D%2Ebtn%2Dinfo%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2348b9e5%3Bborder%2Dcolor%3A%2329ade0%7D%2Ebtn%2Dinfo%3Aactive%2C%2Ebtn%2Dinfo%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2348b9e5%3Bborder%2Dcolor%3A%2329ade0%7D%2Ebtn%2Dinfo%3Aactive%3Ahover%2C%2Ebtn%2Dinfo%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%3Ahover%2C%2Ebtn%2Dinfo%3Aactive%3Afocus%2C%2Ebtn%2Dinfo%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%3Afocus%2C%2Ebtn%2Dinfo%3Aactive%2Efocus%2C%2Ebtn%2Dinfo%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2329ade0%3Bborder%2Dcolor%3A%231984ae%7D%2Ebtn%2Dinfo%3Aactive%2C%2Ebtn%2Dinfo%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dinfo%2Edisabled%3Ahover%2C%2Ebtn%2Dinfo%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%3Ahover%2C%2Ebtn%2Dinfo%2Edisabled%3Afocus%2C%2Ebtn%2Dinfo%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%3Afocus%2C%2Ebtn%2Dinfo%2Edisabled%2Efocus%2C%2Ebtn%2Dinfo%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%2Efocus%7Bbackground%2Dcolor%3A%2375caeb%3Bborder%2Dcolor%3A%235fc1e8%7D%2Ebtn%2Dinfo%20%2Ebadge%7Bcolor%3A%2375caeb%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dwarning%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff851b%3Bborder%2Dcolor%3A%23ff7701%7D%2Ebtn%2Dwarning%3Afocus%2C%2Ebtn%2Dwarning%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23e76b00%3Bborder%2Dcolor%3A%23813c00%7D%2Ebtn%2Dwarning%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23e76b00%3Bborder%2Dcolor%3A%23c35b00%7D%2Ebtn%2Dwarning%3Aactive%2C%2Ebtn%2Dwarning%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23e76b00%3Bborder%2Dcolor%3A%23c35b00%7D%2Ebtn%2Dwarning%3Aactive%3Ahover%2C%2Ebtn%2Dwarning%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%3Ahover%2C%2Ebtn%2Dwarning%3Aactive%3Afocus%2C%2Ebtn%2Dwarning%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%3Afocus%2C%2Ebtn%2Dwarning%3Aactive%2Efocus%2C%2Ebtn%2Dwarning%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23c35b00%3Bborder%2Dcolor%3A%23813c00%7D%2Ebtn%2Dwarning%3Aactive%2C%2Ebtn%2Dwarning%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dwarning%2Edisabled%3Ahover%2C%2Ebtn%2Dwarning%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%3Ahover%2C%2Ebtn%2Dwarning%2Edisabled%3Afocus%2C%2Ebtn%2Dwarning%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%3Afocus%2C%2Ebtn%2Dwarning%2Edisabled%2Efocus%2C%2Ebtn%2Dwarning%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%2Efocus%7Bbackground%2Dcolor%3A%23ff851b%3Bborder%2Dcolor%3A%23ff7701%7D%2Ebtn%2Dwarning%20%2Ebadge%7Bcolor%3A%23ff851b%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Ddanger%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff4136%3Bborder%2Dcolor%3A%23ff291c%7D%2Ebtn%2Ddanger%3Afocus%2C%2Ebtn%2Ddanger%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff1103%3Bborder%2Dcolor%3A%239c0900%7D%2Ebtn%2Ddanger%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff1103%3Bborder%2Dcolor%3A%23de0c00%7D%2Ebtn%2Ddanger%3Aactive%2C%2Ebtn%2Ddanger%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff1103%3Bborder%2Dcolor%3A%23de0c00%7D%2Ebtn%2Ddanger%3Aactive%3Ahover%2C%2Ebtn%2Ddanger%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%3Ahover%2C%2Ebtn%2Ddanger%3Aactive%3Afocus%2C%2Ebtn%2Ddanger%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%3Afocus%2C%2Ebtn%2Ddanger%3Aactive%2Efocus%2C%2Ebtn%2Ddanger%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23de0c00%3Bborder%2Dcolor%3A%239c0900%7D%2Ebtn%2Ddanger%3Aactive%2C%2Ebtn%2Ddanger%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Ddanger%2Edisabled%3Ahover%2C%2Ebtn%2Ddanger%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%3Ahover%2C%2Ebtn%2Ddanger%2Edisabled%3Afocus%2C%2Ebtn%2Ddanger%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%3Afocus%2C%2Ebtn%2Ddanger%2Edisabled%2Efocus%2C%2Ebtn%2Ddanger%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%2Efocus%7Bbackground%2Dcolor%3A%23ff4136%3Bborder%2Dcolor%3A%23ff291c%7D%2Ebtn%2Ddanger%20%2Ebadge%7Bcolor%3A%23ff4136%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dlink%7Bcolor%3A%23158cba%3Bfont%2Dweight%3Anormal%3Bborder%2Dradius%3A0%7D%2Ebtn%2Dlink%2C%2Ebtn%2Dlink%3Aactive%2C%2Ebtn%2Dlink%2Eactive%2C%2Ebtn%2Dlink%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%7Bbackground%2Dcolor%3Atransparent%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%2Dlink%2C%2Ebtn%2Dlink%3Ahover%2C%2Ebtn%2Dlink%3Afocus%2C%2Ebtn%2Dlink%3Aactive%7Bborder%2Dcolor%3Atransparent%7D%2Ebtn%2Dlink%3Ahover%2C%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23158cba%3Btext%2Ddecoration%3Aunderline%3Bbackground%2Dcolor%3Atransparent%7D%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%3Ahover%2C%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23999999%3Btext%2Ddecoration%3Anone%7D%2Ebtn%2Dlg%2C%2Ebtn%2Dgroup%2Dlg%3E%2Ebtn%7Bpadding%3A13px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A5px%7D%2Ebtn%2Dsm%2C%2Ebtn%2Dgroup%2Dsm%3E%2Ebtn%7Bpadding%3A4px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A2px%7D%2Ebtn%2Dxs%2C%2Ebtn%2Dgroup%2Dxs%3E%2Ebtn%7Bpadding%3A1px%205px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A2px%7D%2Ebtn%2Dblock%7Bdisplay%3Ablock%3Bwidth%3A100%25%7D%2Ebtn%2Dblock%2B%2Ebtn%2Dblock%7Bmargin%2Dtop%3A5px%7Dinput%5Btype%3D%22submit%22%5D%2Ebtn%2Dblock%2Cinput%5Btype%3D%22reset%22%5D%2Ebtn%2Dblock%2Cinput%5Btype%3D%22button%22%5D%2Ebtn%2Dblock%7Bwidth%3A100%25%7D%2Efade%7Bopacity%3A0%3B%2Dwebkit%2Dtransition%3Aopacity%200%2E15s%20linear%3B%2Do%2Dtransition%3Aopacity%200%2E15s%20linear%3Btransition%3Aopacity%200%2E15s%20linear%7D%2Efade%2Ein%7Bopacity%3A1%7D%2Ecollapse%7Bdisplay%3Anone%7D%2Ecollapse%2Ein%7Bdisplay%3Ablock%7Dtr%2Ecollapse%2Ein%7Bdisplay%3Atable%2Drow%7Dtbody%2Ecollapse%2Ein%7Bdisplay%3Atable%2Drow%2Dgroup%7D%2Ecollapsing%7Bposition%3Arelative%3Bheight%3A0%3Boverflow%3Ahidden%3B%2Dwebkit%2Dtransition%2Dproperty%3Aheight%2C%20visibility%3B%2Do%2Dtransition%2Dproperty%3Aheight%2C%20visibility%3Btransition%2Dproperty%3Aheight%2C%20visibility%3B%2Dwebkit%2Dtransition%2Dduration%3A0%2E35s%3B%2Do%2Dtransition%2Dduration%3A0%2E35s%3Btransition%2Dduration%3A0%2E35s%3B%2Dwebkit%2Dtransition%2Dtiming%2Dfunction%3Aease%3B%2Do%2Dtransition%2Dtiming%2Dfunction%3Aease%3Btransition%2Dtiming%2Dfunction%3Aease%7D%2Ecaret%7Bdisplay%3Ainline%2Dblock%3Bwidth%3A0%3Bheight%3A0%3Bmargin%2Dleft%3A2px%3Bvertical%2Dalign%3Amiddle%3Bborder%2Dtop%3A4px%20dashed%3Bborder%2Dtop%3A4px%20solid%20%5C9%3Bborder%2Dright%3A4px%20solid%20transparent%3Bborder%2Dleft%3A4px%20solid%20transparent%7D%2Edropup%2C%2Edropdown%7Bposition%3Arelative%7D%2Edropdown%2Dtoggle%3Afocus%7Boutline%3A0%7D%2Edropdown%2Dmenu%7Bposition%3Aabsolute%3Btop%3A100%25%3Bleft%3A0%3Bz%2Dindex%3A1000%3Bdisplay%3Anone%3Bfloat%3Aleft%3Bmin%2Dwidth%3A160px%3Bpadding%3A5px%200%3Bmargin%3A2px%200%200%3Blist%2Dstyle%3Anone%3Bfont%2Dsize%3A14px%3Btext%2Dalign%3Aleft%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23cccccc%3Bborder%3A1px%20solid%20%23e7e7e7%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%206px%2012px%20rgba%280%2C0%2C0%2C0%2E175%29%3Bbox%2Dshadow%3A0%206px%2012px%20rgba%280%2C0%2C0%2C0%2E175%29%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%7D%2Edropdown%2Dmenu%2Epull%2Dright%7Bright%3A0%3Bleft%3Aauto%7D%2Edropdown%2Dmenu%20%2Edivider%7Bheight%3A1px%3Bmargin%3A9px%200%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23eeeeee%7D%2Edropdown%2Dmenu%3Eli%3Ea%7Bdisplay%3Ablock%3Bpadding%3A3px%2020px%3Bclear%3Aboth%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23999999%3Bwhite%2Dspace%3Anowrap%7D%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bcolor%3A%23333333%3Bbackground%2Dcolor%3Atransparent%7D%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Boutline%3A0%3Bbackground%2Dcolor%3A%23158cba%7D%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23eeeeee%7D%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bbackground%2Dimage%3Anone%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%3Bcursor%3Anot%2Dallowed%7D%2Eopen%3E%2Edropdown%2Dmenu%7Bdisplay%3Ablock%7D%2Eopen%3Ea%7Boutline%3A0%7D%2Edropdown%2Dmenu%2Dright%7Bleft%3Aauto%3Bright%3A0%7D%2Edropdown%2Dmenu%2Dleft%7Bleft%3A0%3Bright%3Aauto%7D%2Edropdown%2Dheader%7Bdisplay%3Ablock%3Bpadding%3A3px%2020px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23999999%3Bwhite%2Dspace%3Anowrap%7D%2Edropdown%2Dbackdrop%7Bposition%3Afixed%3Bleft%3A0%3Bright%3A0%3Bbottom%3A0%3Btop%3A0%3Bz%2Dindex%3A990%7D%2Epull%2Dright%3E%2Edropdown%2Dmenu%7Bright%3A0%3Bleft%3Aauto%7D%2Edropup%20%2Ecaret%2C%2Enavbar%2Dfixed%2Dbottom%20%2Edropdown%20%2Ecaret%7Bborder%2Dtop%3A0%3Bborder%2Dbottom%3A4px%20dashed%3Bborder%2Dbottom%3A4px%20solid%20%5C9%3Bcontent%3A%22%22%7D%2Edropup%20%2Edropdown%2Dmenu%2C%2Enavbar%2Dfixed%2Dbottom%20%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bbottom%3A100%25%3Bmargin%2Dbottom%3A2px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dright%20%2Edropdown%2Dmenu%7Bleft%3Aauto%3Bright%3A0%7D%2Enavbar%2Dright%20%2Edropdown%2Dmenu%2Dleft%7Bleft%3A0%3Bright%3Aauto%7D%7D%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Amiddle%7D%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%7Bposition%3Arelative%3Bfloat%3Aleft%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Ahover%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Ahover%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Afocus%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Afocus%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Aactive%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Aactive%2C%2Ebtn%2Dgroup%3E%2Ebtn%2Eactive%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Eactive%7Bz%2Dindex%3A2%7D%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%2C%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%20%2Ebtn%2Dgroup%2B%2Ebtn%2C%2Ebtn%2Dgroup%20%2Ebtn%2Dgroup%2B%2Ebtn%2Dgroup%7Bmargin%2Dleft%3A%2D1px%7D%2Ebtn%2Dtoolbar%7Bmargin%2Dleft%3A%2D5px%7D%2Ebtn%2Dtoolbar%20%2Ebtn%2C%2Ebtn%2Dtoolbar%20%2Ebtn%2Dgroup%2C%2Ebtn%2Dtoolbar%20%2Einput%2Dgroup%7Bfloat%3Aleft%7D%2Ebtn%2Dtoolbar%3E%2Ebtn%2C%2Ebtn%2Dtoolbar%3E%2Ebtn%2Dgroup%2C%2Ebtn%2Dtoolbar%3E%2Einput%2Dgroup%7Bmargin%2Dleft%3A5px%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Afirst%2Dchild%7Bmargin%2Dleft%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%2C%2Ebtn%2Dgroup%3E%2Edropdown%2Dtoggle%3Anot%28%3Afirst%2Dchild%29%7Bborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%7Bfloat%3Aleft%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%3Alast%2Dchild%2C%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Edropdown%2Dtoggle%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%3Afirst%2Dchild%7Bborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%20%2Edropdown%2Dtoggle%3Aactive%2C%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7Boutline%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2B%2Edropdown%2Dtoggle%7Bpadding%2Dleft%3A8px%3Bpadding%2Dright%3A8px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dlg%2B%2Edropdown%2Dtoggle%7Bpadding%2Dleft%3A12px%3Bpadding%2Dright%3A12px%7D%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C0%2E125%29%3Bbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C0%2E125%29%7D%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%2Ebtn%2Dlink%7B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%20%2Ecaret%7Bmargin%2Dleft%3A0%7D%2Ebtn%2Dlg%20%2Ecaret%7Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dbottom%2Dwidth%3A0%7D%2Edropup%20%2Ebtn%2Dlg%20%2Ecaret%7Bborder%2Dwidth%3A0%205px%205px%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3E%2Ebtn%7Bdisplay%3Ablock%3Bfloat%3Anone%3Bwidth%3A100%25%3Bmax%2Dwidth%3A100%25%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3E%2Ebtn%7Bfloat%3Anone%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2B%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2B%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2B%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2B%2Ebtn%2Dgroup%7Bmargin%2Dtop%3A%2D1px%3Bmargin%2Dleft%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%3Alast%2Dchild%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Edropdown%2Dtoggle%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%3Afirst%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Djustified%7Bdisplay%3Atable%3Bwidth%3A100%25%3Btable%2Dlayout%3Afixed%3Bborder%2Dcollapse%3Aseparate%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%7Bfloat%3Anone%3Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%20%2Ebtn%7Bwidth%3A100%25%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%20%2Edropdown%2Dmenu%7Bleft%3Aauto%7D%5Bdata%2Dtoggle%3D%22buttons%22%5D%3E%2Ebtn%20input%5Btype%3D%22radio%22%5D%2C%5Bdata%2Dtoggle%3D%22buttons%22%5D%3E%2Ebtn%2Dgroup%3E%2Ebtn%20input%5Btype%3D%22radio%22%5D%2C%5Bdata%2Dtoggle%3D%22buttons%22%5D%3E%2Ebtn%20input%5Btype%3D%22checkbox%22%5D%2C%5Bdata%2Dtoggle%3D%22buttons%22%5D%3E%2Ebtn%2Dgroup%3E%2Ebtn%20input%5Btype%3D%22checkbox%22%5D%7Bposition%3Aabsolute%3Bclip%3Arect%280%2C%200%2C%200%2C%200%29%3Bpointer%2Devents%3Anone%7D%2Einput%2Dgroup%7Bposition%3Arelative%3Bdisplay%3Atable%3Bborder%2Dcollapse%3Aseparate%7D%2Einput%2Dgroup%5Bclass%2A%3D%22col%2D%22%5D%7Bfloat%3Anone%3Bpadding%2Dleft%3A0%3Bpadding%2Dright%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bposition%3Arelative%3Bz%2Dindex%3A2%3Bfloat%3Aleft%3Bwidth%3A100%25%3Bmargin%2Dbottom%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Afocus%7Bz%2Dindex%3A3%7D%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2C%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A52px%3Bpadding%3A13px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A5px%7Dselect%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Cselect%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Cselect%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A52px%3Bline%2Dheight%3A52px%7Dtextarea%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Ctextarea%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Ctextarea%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3Aauto%7D%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2C%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A28px%3Bpadding%3A4px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A2px%7Dselect%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Cselect%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Cselect%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A28px%3Bline%2Dheight%3A28px%7Dtextarea%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Ctextarea%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Ctextarea%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3Aauto%7D%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dbtn%2C%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bdisplay%3Atable%2Dcell%7D%2Einput%2Dgroup%2Daddon%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%2C%2Einput%2Dgroup%2Dbtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%2C%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dbtn%7Bwidth%3A1%25%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Amiddle%7D%2Einput%2Dgroup%2Daddon%7Bpadding%3A7px%2012px%3Bfont%2Dsize%3A14px%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%3Bcolor%3A%23555555%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23eeeeee%3Bborder%3A1px%20solid%20%23e7e7e7%3Bborder%2Dradius%3A4px%7D%2Einput%2Dgroup%2Daddon%2Einput%2Dsm%7Bpadding%3A4px%2010px%3Bfont%2Dsize%3A12px%3Bborder%2Dradius%3A2px%7D%2Einput%2Dgroup%2Daddon%2Einput%2Dlg%7Bpadding%3A13px%2016px%3Bfont%2Dsize%3A18px%3Bborder%2Dradius%3A5px%7D%2Einput%2Dgroup%2Daddon%20input%5Btype%3D%22radio%22%5D%2C%2Einput%2Dgroup%2Daddon%20input%5Btype%3D%22checkbox%22%5D%7Bmargin%2Dtop%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Afirst%2Dchild%2C%2Einput%2Dgroup%2Daddon%3Afirst%2Dchild%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Edropdown%2Dtoggle%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%3Afirst%2Dchild%7Bborder%2Dright%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Alast%2Dchild%2C%2Einput%2Dgroup%2Daddon%3Alast%2Dchild%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Edropdown%2Dtoggle%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%7Bborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%3Alast%2Dchild%7Bborder%2Dleft%3A0%7D%2Einput%2Dgroup%2Dbtn%7Bposition%3Arelative%3Bfont%2Dsize%3A0%3Bwhite%2Dspace%3Anowrap%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bposition%3Arelative%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A%2D1px%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Ahover%2C%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Afocus%2C%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Aactive%7Bz%2Dindex%3A2%7D%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%7Bmargin%2Dright%3A%2D1px%7D%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%7Bz%2Dindex%3A2%3Bmargin%2Dleft%3A%2D1px%7D%2Enav%7Bmargin%2Dbottom%3A0%3Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Enav%3Eli%7Bposition%3Arelative%3Bdisplay%3Ablock%7D%2Enav%3Eli%3Ea%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bpadding%3A10px%2015px%7D%2Enav%3Eli%3Ea%3Ahover%2C%2Enav%3Eli%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23ffffff%7D%2Enav%3Eli%2Edisabled%3Ea%7Bcolor%3A%23999999%7D%2Enav%3Eli%2Edisabled%3Ea%3Ahover%2C%2Enav%3Eli%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23999999%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bcursor%3Anot%2Dallowed%7D%2Enav%20%2Eopen%3Ea%2C%2Enav%20%2Eopen%3Ea%3Ahover%2C%2Enav%20%2Eopen%3Ea%3Afocus%7Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23158cba%7D%2Enav%20%2Enav%2Ddivider%7Bheight%3A1px%3Bmargin%3A9px%200%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e5e5e5%7D%2Enav%3Eli%3Ea%3Eimg%7Bmax%2Dwidth%3Anone%7D%2Enav%2Dtabs%7Bborder%2Dbottom%3A1px%20solid%20%23e7e7e7%7D%2Enav%2Dtabs%3Eli%7Bfloat%3Aleft%3Bmargin%2Dbottom%3A%2D1px%7D%2Enav%2Dtabs%3Eli%3Ea%7Bmargin%2Dright%3A2px%3Bline%2Dheight%3A1%2E42857143%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%3Eli%3Ea%3Ahover%7Bborder%2Dcolor%3A%23eeeeee%20%23eeeeee%20%23e7e7e7%7D%2Enav%2Dtabs%3Eli%2Eactive%3Ea%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%3Afocus%7Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23e7e7e7%3Bborder%2Dbottom%2Dcolor%3Atransparent%3Bcursor%3Adefault%7D%2Enav%2Dtabs%2Enav%2Djustified%7Bwidth%3A100%25%3Bborder%2Dbottom%3A0%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%7Bfloat%3Anone%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Btext%2Dalign%3Acenter%3Bmargin%2Dbottom%3A5px%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bleft%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Enav%2Djustified%3Eli%7Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A0%7D%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dright%3A0%3Bborder%2Dradius%3A4px%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Afocus%7Bborder%3A1px%20solid%20%23e7e7e7%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bborder%2Dbottom%3A1px%20solid%20%23e7e7e7%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Afocus%7Bborder%2Dbottom%2Dcolor%3A%23ffffff%7D%7D%2Enav%2Dpills%3Eli%7Bfloat%3Aleft%7D%2Enav%2Dpills%3Eli%3Ea%7Bborder%2Dradius%3A4px%7D%2Enav%2Dpills%3Eli%2Bli%7Bmargin%2Dleft%3A2px%7D%2Enav%2Dpills%3Eli%2Eactive%3Ea%2C%2Enav%2Dpills%3Eli%2Eactive%3Ea%3Ahover%2C%2Enav%2Dpills%3Eli%2Eactive%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23158cba%7D%2Enav%2Dstacked%3Eli%7Bfloat%3Anone%7D%2Enav%2Dstacked%3Eli%2Bli%7Bmargin%2Dtop%3A2px%3Bmargin%2Dleft%3A0%7D%2Enav%2Djustified%7Bwidth%3A100%25%7D%2Enav%2Djustified%3Eli%7Bfloat%3Anone%7D%2Enav%2Djustified%3Eli%3Ea%7Btext%2Dalign%3Acenter%3Bmargin%2Dbottom%3A5px%7D%2Enav%2Djustified%3E%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bleft%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Djustified%3Eli%7Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A0%7D%7D%2Enav%2Dtabs%2Djustified%7Bborder%2Dbottom%3A0%7D%2Enav%2Dtabs%2Djustified%3Eli%3Ea%7Bmargin%2Dright%3A0%3Bborder%2Dradius%3A4px%7D%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Afocus%7Bborder%3A1px%20solid%20%23e7e7e7%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Djustified%3Eli%3Ea%7Bborder%2Dbottom%3A1px%20solid%20%23e7e7e7%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Afocus%7Bborder%2Dbottom%2Dcolor%3A%23ffffff%7D%7D%2Etab%2Dcontent%3E%2Etab%2Dpane%7Bdisplay%3Anone%7D%2Etab%2Dcontent%3E%2Eactive%7Bdisplay%3Ablock%7D%2Enav%2Dtabs%20%2Edropdown%2Dmenu%7Bmargin%2Dtop%3A%2D1px%3Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Enavbar%7Bposition%3Arelative%3Bmin%2Dheight%3A50px%3Bmargin%2Dbottom%3A20px%3Bborder%3A1px%20solid%20transparent%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%7Bborder%2Dradius%3A4px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dheader%7Bfloat%3Aleft%7D%7D%2Enavbar%2Dcollapse%7Boverflow%2Dx%3Avisible%3Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%3Bborder%2Dtop%3A1px%20solid%20transparent%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%7D%2Enavbar%2Dcollapse%2Ein%7Boverflow%2Dy%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dcollapse%7Bwidth%3Aauto%3Bborder%2Dtop%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Enavbar%2Dcollapse%2Ecollapse%7Bdisplay%3Ablock%20%21important%3Bheight%3Aauto%20%21important%3Bpadding%2Dbottom%3A0%3Boverflow%3Avisible%20%21important%7D%2Enavbar%2Dcollapse%2Ein%7Boverflow%2Dy%3Avisible%7D%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dstatic%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%7Bpadding%2Dleft%3A0%3Bpadding%2Dright%3A0%7D%7D%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%7Bmax%2Dheight%3A340px%7D%40media%20%28max%2Ddevice%2Dwidth%3A480px%29%20and%20%28orientation%3Alandscape%29%7B%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%7Bmax%2Dheight%3A200px%7D%7D%2Econtainer%3E%2Enavbar%2Dheader%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dheader%2C%2Econtainer%3E%2Enavbar%2Dcollapse%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dcollapse%7Bmargin%2Dright%3A%2D15px%3Bmargin%2Dleft%3A%2D15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Econtainer%3E%2Enavbar%2Dheader%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dheader%2C%2Econtainer%3E%2Enavbar%2Dcollapse%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dcollapse%7Bmargin%2Dright%3A0%3Bmargin%2Dleft%3A0%7D%7D%2Enavbar%2Dstatic%2Dtop%7Bz%2Dindex%3A1000%3Bborder%2Dwidth%3A0%200%201px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dstatic%2Dtop%7Bborder%2Dradius%3A0%7D%7D%2Enavbar%2Dfixed%2Dtop%2C%2Enavbar%2Dfixed%2Dbottom%7Bposition%3Afixed%3Bright%3A0%3Bleft%3A0%3Bz%2Dindex%3A1030%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dfixed%2Dtop%2C%2Enavbar%2Dfixed%2Dbottom%7Bborder%2Dradius%3A0%7D%7D%2Enavbar%2Dfixed%2Dtop%7Btop%3A0%3Bborder%2Dwidth%3A0%200%201px%7D%2Enavbar%2Dfixed%2Dbottom%7Bbottom%3A0%3Bmargin%2Dbottom%3A0%3Bborder%2Dwidth%3A1px%200%200%7D%2Enavbar%2Dbrand%7Bfloat%3Aleft%3Bpadding%3A15px%2015px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A20px%3Bheight%3A50px%7D%2Enavbar%2Dbrand%3Ahover%2C%2Enavbar%2Dbrand%3Afocus%7Btext%2Ddecoration%3Anone%7D%2Enavbar%2Dbrand%3Eimg%7Bdisplay%3Ablock%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%3E%2Econtainer%20%2Enavbar%2Dbrand%2C%2Enavbar%3E%2Econtainer%2Dfluid%20%2Enavbar%2Dbrand%7Bmargin%2Dleft%3A%2D15px%7D%7D%2Enavbar%2Dtoggle%7Bposition%3Arelative%3Bfloat%3Aright%3Bmargin%2Dright%3A15px%3Bpadding%3A9px%2010px%3Bmargin%2Dtop%3A8px%3Bmargin%2Dbottom%3A8px%3Bbackground%2Dcolor%3Atransparent%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%7D%2Enavbar%2Dtoggle%3Afocus%7Boutline%3A0%7D%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bdisplay%3Ablock%3Bwidth%3A22px%3Bheight%3A2px%3Bborder%2Dradius%3A1px%7D%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%2B%2Eicon%2Dbar%7Bmargin%2Dtop%3A4px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dtoggle%7Bdisplay%3Anone%7D%7D%2Enavbar%2Dnav%7Bmargin%3A7%2E5px%20%2D15px%7D%2Enavbar%2Dnav%3Eli%3Ea%7Bpadding%2Dtop%3A10px%3Bpadding%2Dbottom%3A10px%3Bline%2Dheight%3A20px%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%7Bposition%3Astatic%3Bfloat%3Anone%3Bwidth%3Aauto%3Bmargin%2Dtop%3A0%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%2C%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%20%2Edropdown%2Dheader%7Bpadding%3A5px%2015px%205px%2025px%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bline%2Dheight%3A20px%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Bbackground%2Dimage%3Anone%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dnav%7Bfloat%3Aleft%3Bmargin%3A0%7D%2Enavbar%2Dnav%3Eli%7Bfloat%3Aleft%7D%2Enavbar%2Dnav%3Eli%3Ea%7Bpadding%2Dtop%3A15px%3Bpadding%2Dbottom%3A15px%7D%7D%2Enavbar%2Dform%7Bmargin%2Dleft%3A%2D15px%3Bmargin%2Dright%3A%2D15px%3Bpadding%3A10px%2015px%3Bborder%2Dtop%3A1px%20solid%20transparent%3Bborder%2Dbottom%3A1px%20solid%20transparent%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3Bmargin%2Dtop%3A6px%3Bmargin%2Dbottom%3A6px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dform%20%2Eform%2Dgroup%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eform%2Dcontrol%7Bdisplay%3Ainline%2Dblock%3Bwidth%3Aauto%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eform%2Dcontrol%2Dstatic%7Bdisplay%3Ainline%2Dblock%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%7Bdisplay%3Ainline%2Dtable%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Daddon%2C%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Dbtn%2C%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bwidth%3Aauto%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%3E%2Eform%2Dcontrol%7Bwidth%3A100%25%7D%2Enavbar%2Dform%20%2Econtrol%2Dlabel%7Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eradio%2C%2Enavbar%2Dform%20%2Echeckbox%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eradio%20label%2C%2Enavbar%2Dform%20%2Echeckbox%20label%7Bpadding%2Dleft%3A0%7D%2Enavbar%2Dform%20%2Eradio%20input%5Btype%3D%22radio%22%5D%2C%2Enavbar%2Dform%20%2Echeckbox%20input%5Btype%3D%22checkbox%22%5D%7Bposition%3Arelative%3Bmargin%2Dleft%3A0%7D%2Enavbar%2Dform%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dform%20%2Eform%2Dgroup%7Bmargin%2Dbottom%3A5px%7D%2Enavbar%2Dform%20%2Eform%2Dgroup%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dform%7Bwidth%3Aauto%3Bborder%3A0%3Bmargin%2Dleft%3A0%3Bmargin%2Dright%3A0%3Bpadding%2Dtop%3A0%3Bpadding%2Dbottom%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%7D%2Enavbar%2Dnav%3Eli%3E%2Edropdown%2Dmenu%7Bmargin%2Dtop%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dnav%3Eli%3E%2Edropdown%2Dmenu%7Bmargin%2Dbottom%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Enavbar%2Dbtn%7Bmargin%2Dtop%3A6px%3Bmargin%2Dbottom%3A6px%7D%2Enavbar%2Dbtn%2Ebtn%2Dsm%7Bmargin%2Dtop%3A11px%3Bmargin%2Dbottom%3A11px%7D%2Enavbar%2Dbtn%2Ebtn%2Dxs%7Bmargin%2Dtop%3A14px%3Bmargin%2Dbottom%3A14px%7D%2Enavbar%2Dtext%7Bmargin%2Dtop%3A15px%3Bmargin%2Dbottom%3A15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dtext%7Bfloat%3Aleft%3Bmargin%2Dleft%3A15px%3Bmargin%2Dright%3A15px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dleft%7Bfloat%3Aleft%20%21important%7D%2Enavbar%2Dright%7Bfloat%3Aright%20%21important%3Bmargin%2Dright%3A%2D15px%7D%2Enavbar%2Dright%7E%2Enavbar%2Dright%7Bmargin%2Dright%3A0%7D%7D%2Enavbar%2Ddefault%7Bbackground%2Dcolor%3A%23f8f8f8%3Bborder%2Dcolor%3A%23e7e7e7%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%7Bcolor%3A%23333333%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%3Afocus%7Bcolor%3A%23333333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtext%7Bcolor%3A%23555555%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%7Bcolor%3A%23999999%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%3Afocus%7Bcolor%3A%23333333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23333333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23eeeeee%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%7Bborder%2Dcolor%3A%23eeeeee%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%3Afocus%7Bbackground%2Dcolor%3A%23ffffff%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bbackground%2Dcolor%3A%23999999%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dform%7Bborder%2Dcolor%3A%23e7e7e7%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Afocus%7Bbackground%2Dcolor%3Atransparent%3Bcolor%3A%23333333%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bcolor%3A%23999999%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Bcolor%3A%23333333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23333333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23eeeeee%3Bbackground%2Dcolor%3Atransparent%7D%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dlink%7Bcolor%3A%23999999%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dlink%3Ahover%7Bcolor%3A%23333333%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%7Bcolor%3A%23999999%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Ahover%2C%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23333333%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Ahover%2C%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23eeeeee%7D%2Enavbar%2Dinverse%7Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23e6e6e6%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%7Bcolor%3A%23999999%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%3Afocus%7Bcolor%3A%23333333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtext%7Bcolor%3A%23999999%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%7Bcolor%3A%23999999%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%3Afocus%7Bcolor%3A%23333333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23333333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23eeeeee%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%7Bborder%2Dcolor%3A%23eeeeee%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%3Afocus%7Bbackground%2Dcolor%3A%23eeeeee%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bbackground%2Dcolor%3A%23999999%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dform%7Bborder%2Dcolor%3A%23ededed%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Afocus%7Bbackground%2Dcolor%3Atransparent%3Bcolor%3A%23333333%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edropdown%2Dheader%7Bborder%2Dcolor%3A%23e6e6e6%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%20%2Edivider%7Bbackground%2Dcolor%3A%23e6e6e6%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bcolor%3A%23999999%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Bcolor%3A%23333333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23333333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23eeeeee%3Bbackground%2Dcolor%3Atransparent%7D%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%7Bcolor%3A%23999999%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%3Ahover%7Bcolor%3A%23333333%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%7Bcolor%3A%23999999%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Ahover%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23333333%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Ahover%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23eeeeee%7D%2Ebreadcrumb%7Bpadding%3A8px%2015px%3Bmargin%2Dbottom%3A20px%3Blist%2Dstyle%3Anone%3Bbackground%2Dcolor%3A%23fafafa%3Bborder%2Dradius%3A4px%7D%2Ebreadcrumb%3Eli%7Bdisplay%3Ainline%2Dblock%7D%2Ebreadcrumb%3Eli%2Bli%3Abefore%7Bcontent%3A%22%3E%5C00a0%22%3Bpadding%3A0%205px%3Bcolor%3A%23999999%7D%2Ebreadcrumb%3E%2Eactive%7Bcolor%3A%23999999%7D%2Epagination%7Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A0%3Bmargin%3A20px%200%3Bborder%2Dradius%3A4px%7D%2Epagination%3Eli%7Bdisplay%3Ainline%7D%2Epagination%3Eli%3Ea%2C%2Epagination%3Eli%3Espan%7Bposition%3Arelative%3Bfloat%3Aleft%3Bpadding%3A7px%2012px%3Bline%2Dheight%3A1%2E42857143%3Btext%2Ddecoration%3Anone%3Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23eeeeee%3Bborder%3A1px%20solid%20%23e2e2e2%3Bmargin%2Dleft%3A%2D1px%7D%2Epagination%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%3Eli%3Afirst%2Dchild%3Espan%7Bmargin%2Dleft%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%7D%2Epagination%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dbottom%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dright%2Dradius%3A4px%7D%2Epagination%3Eli%3Ea%3Ahover%2C%2Epagination%3Eli%3Espan%3Ahover%2C%2Epagination%3Eli%3Ea%3Afocus%2C%2Epagination%3Eli%3Espan%3Afocus%7Bz%2Dindex%3A2%3Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23eeeeee%3Bborder%2Dcolor%3A%23e2e2e2%7D%2Epagination%3E%2Eactive%3Ea%2C%2Epagination%3E%2Eactive%3Espan%2C%2Epagination%3E%2Eactive%3Ea%3Ahover%2C%2Epagination%3E%2Eactive%3Espan%3Ahover%2C%2Epagination%3E%2Eactive%3Ea%3Afocus%2C%2Epagination%3E%2Eactive%3Espan%3Afocus%7Bz%2Dindex%3A3%3Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23158cba%3Bborder%2Dcolor%3A%23127ba3%3Bcursor%3Adefault%7D%2Epagination%3E%2Edisabled%3Espan%2C%2Epagination%3E%2Edisabled%3Espan%3Ahover%2C%2Epagination%3E%2Edisabled%3Espan%3Afocus%2C%2Epagination%3E%2Edisabled%3Ea%2C%2Epagination%3E%2Edisabled%3Ea%3Ahover%2C%2Epagination%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23999999%3Bbackground%2Dcolor%3A%23eeeeee%3Bborder%2Dcolor%3A%23e2e2e2%3Bcursor%3Anot%2Dallowed%7D%2Epagination%2Dlg%3Eli%3Ea%2C%2Epagination%2Dlg%3Eli%3Espan%7Bpadding%3A13px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%7D%2Epagination%2Dlg%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dlg%3Eli%3Afirst%2Dchild%3Espan%7Bborder%2Dbottom%2Dleft%2Dradius%3A5px%3Bborder%2Dtop%2Dleft%2Dradius%3A5px%7D%2Epagination%2Dlg%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dlg%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dbottom%2Dright%2Dradius%3A5px%3Bborder%2Dtop%2Dright%2Dradius%3A5px%7D%2Epagination%2Dsm%3Eli%3Ea%2C%2Epagination%2Dsm%3Eli%3Espan%7Bpadding%3A4px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%7D%2Epagination%2Dsm%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dsm%3Eli%3Afirst%2Dchild%3Espan%7Bborder%2Dbottom%2Dleft%2Dradius%3A2px%3Bborder%2Dtop%2Dleft%2Dradius%3A2px%7D%2Epagination%2Dsm%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dsm%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dbottom%2Dright%2Dradius%3A2px%3Bborder%2Dtop%2Dright%2Dradius%3A2px%7D%2Epager%7Bpadding%2Dleft%3A0%3Bmargin%3A20px%200%3Blist%2Dstyle%3Anone%3Btext%2Dalign%3Acenter%7D%2Epager%20li%7Bdisplay%3Ainline%7D%2Epager%20li%3Ea%2C%2Epager%20li%3Espan%7Bdisplay%3Ainline%2Dblock%3Bpadding%3A5px%2014px%3Bbackground%2Dcolor%3A%23eeeeee%3Bborder%3A1px%20solid%20%23e2e2e2%3Bborder%2Dradius%3A15px%7D%2Epager%20li%3Ea%3Ahover%2C%2Epager%20li%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23eeeeee%7D%2Epager%20%2Enext%3Ea%2C%2Epager%20%2Enext%3Espan%7Bfloat%3Aright%7D%2Epager%20%2Eprevious%3Ea%2C%2Epager%20%2Eprevious%3Espan%7Bfloat%3Aleft%7D%2Epager%20%2Edisabled%3Ea%2C%2Epager%20%2Edisabled%3Ea%3Ahover%2C%2Epager%20%2Edisabled%3Ea%3Afocus%2C%2Epager%20%2Edisabled%3Espan%7Bcolor%3A%23999999%3Bbackground%2Dcolor%3A%23eeeeee%3Bcursor%3Anot%2Dallowed%7D%2Elabel%7Bdisplay%3Ainline%3Bpadding%3A%2E2em%20%2E6em%20%2E3em%3Bfont%2Dsize%3A75%25%3Bfont%2Dweight%3Abold%3Bline%2Dheight%3A1%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Abaseline%3Bborder%2Dradius%3A%2E25em%7Da%2Elabel%3Ahover%2Ca%2Elabel%3Afocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%7D%2Elabel%3Aempty%7Bdisplay%3Anone%7D%2Ebtn%20%2Elabel%7Bposition%3Arelative%3Btop%3A%2D1px%7D%2Elabel%2Ddefault%7Bbackground%2Dcolor%3A%23999999%7D%2Elabel%2Ddefault%5Bhref%5D%3Ahover%2C%2Elabel%2Ddefault%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%23808080%7D%2Elabel%2Dprimary%7Bbackground%2Dcolor%3A%23158cba%7D%2Elabel%2Dprimary%5Bhref%5D%3Ahover%2C%2Elabel%2Dprimary%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%23106a8c%7D%2Elabel%2Dsuccess%7Bbackground%2Dcolor%3A%2328b62c%7D%2Elabel%2Dsuccess%5Bhref%5D%3Ahover%2C%2Elabel%2Dsuccess%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%231f8c22%7D%2Elabel%2Dinfo%7Bbackground%2Dcolor%3A%2375caeb%7D%2Elabel%2Dinfo%5Bhref%5D%3Ahover%2C%2Elabel%2Dinfo%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%2348b9e5%7D%2Elabel%2Dwarning%7Bbackground%2Dcolor%3A%23ff851b%7D%2Elabel%2Dwarning%5Bhref%5D%3Ahover%2C%2Elabel%2Dwarning%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%23e76b00%7D%2Elabel%2Ddanger%7Bbackground%2Dcolor%3A%23ff4136%7D%2Elabel%2Ddanger%5Bhref%5D%3Ahover%2C%2Elabel%2Ddanger%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%23ff1103%7D%2Ebadge%7Bdisplay%3Ainline%2Dblock%3Bmin%2Dwidth%3A10px%3Bpadding%3A3px%207px%3Bfont%2Dsize%3A12px%3Bfont%2Dweight%3Anormal%3Bcolor%3A%23ffffff%3Bline%2Dheight%3A1%3Bvertical%2Dalign%3Amiddle%3Bwhite%2Dspace%3Anowrap%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23158cba%3Bborder%2Dradius%3A10px%7D%2Ebadge%3Aempty%7Bdisplay%3Anone%7D%2Ebtn%20%2Ebadge%7Bposition%3Arelative%3Btop%3A%2D1px%7D%2Ebtn%2Dxs%20%2Ebadge%2C%2Ebtn%2Dgroup%2Dxs%3E%2Ebtn%20%2Ebadge%7Btop%3A0%3Bpadding%3A1px%205px%7Da%2Ebadge%3Ahover%2Ca%2Ebadge%3Afocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%7D%2Elist%2Dgroup%2Ditem%2Eactive%3E%2Ebadge%2C%2Enav%2Dpills%3E%2Eactive%3Ea%3E%2Ebadge%7Bcolor%3A%23158cba%3Bbackground%2Dcolor%3A%23ffffff%7D%2Elist%2Dgroup%2Ditem%3E%2Ebadge%7Bfloat%3Aright%7D%2Elist%2Dgroup%2Ditem%3E%2Ebadge%2B%2Ebadge%7Bmargin%2Dright%3A5px%7D%2Enav%2Dpills%3Eli%3Ea%3E%2Ebadge%7Bmargin%2Dleft%3A3px%7D%2Ejumbotron%7Bpadding%2Dtop%3A30px%3Bpadding%2Dbottom%3A30px%3Bmargin%2Dbottom%3A30px%3Bcolor%3Ainherit%3Bbackground%2Dcolor%3A%23fafafa%7D%2Ejumbotron%20h1%2C%2Ejumbotron%20%2Eh1%7Bcolor%3Ainherit%7D%2Ejumbotron%20p%7Bmargin%2Dbottom%3A15px%3Bfont%2Dsize%3A21px%3Bfont%2Dweight%3A200%7D%2Ejumbotron%3Ehr%7Bborder%2Dtop%2Dcolor%3A%23e1e1e1%7D%2Econtainer%20%2Ejumbotron%2C%2Econtainer%2Dfluid%20%2Ejumbotron%7Bborder%2Dradius%3A5px%3Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%2Ejumbotron%20%2Econtainer%7Bmax%2Dwidth%3A100%25%7D%40media%20screen%20and%20%28min%2Dwidth%3A768px%29%7B%2Ejumbotron%7Bpadding%2Dtop%3A48px%3Bpadding%2Dbottom%3A48px%7D%2Econtainer%20%2Ejumbotron%2C%2Econtainer%2Dfluid%20%2Ejumbotron%7Bpadding%2Dleft%3A60px%3Bpadding%2Dright%3A60px%7D%2Ejumbotron%20h1%2C%2Ejumbotron%20%2Eh1%7Bfont%2Dsize%3A63px%7D%7D%2Ethumbnail%7Bdisplay%3Ablock%3Bpadding%3A4px%3Bmargin%2Dbottom%3A20px%3Bline%2Dheight%3A1%2E42857143%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23eeeeee%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dtransition%3Aborder%20%2E2s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3Aborder%20%2E2s%20ease%2Din%2Dout%3Btransition%3Aborder%20%2E2s%20ease%2Din%2Dout%7D%2Ethumbnail%3Eimg%2C%2Ethumbnail%20a%3Eimg%7Bmargin%2Dleft%3Aauto%3Bmargin%2Dright%3Aauto%7Da%2Ethumbnail%3Ahover%2Ca%2Ethumbnail%3Afocus%2Ca%2Ethumbnail%2Eactive%7Bborder%2Dcolor%3A%23158cba%7D%2Ethumbnail%20%2Ecaption%7Bpadding%3A9px%3Bcolor%3A%23555555%7D%2Ealert%7Bpadding%3A15px%3Bmargin%2Dbottom%3A20px%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%7D%2Ealert%20h4%7Bmargin%2Dtop%3A0%3Bcolor%3Ainherit%7D%2Ealert%20%2Ealert%2Dlink%7Bfont%2Dweight%3Abold%7D%2Ealert%3Ep%2C%2Ealert%3Eul%7Bmargin%2Dbottom%3A0%7D%2Ealert%3Ep%2Bp%7Bmargin%2Dtop%3A5px%7D%2Ealert%2Ddismissable%2C%2Ealert%2Ddismissible%7Bpadding%2Dright%3A35px%7D%2Ealert%2Ddismissable%20%2Eclose%2C%2Ealert%2Ddismissible%20%2Eclose%7Bposition%3Arelative%3Btop%3A%2D2px%3Bright%3A%2D21px%3Bcolor%3Ainherit%7D%2Ealert%2Dsuccess%7Bbackground%2Dcolor%3A%2328b62c%3Bborder%2Dcolor%3A%2324a528%3Bcolor%3A%23ffffff%7D%2Ealert%2Dsuccess%20hr%7Bborder%2Dtop%2Dcolor%3A%23209023%7D%2Ealert%2Dsuccess%20%2Ealert%2Dlink%7Bcolor%3A%23e6e6e6%7D%2Ealert%2Dinfo%7Bbackground%2Dcolor%3A%2375caeb%3Bborder%2Dcolor%3A%2340b5e3%3Bcolor%3A%23ffffff%7D%2Ealert%2Dinfo%20hr%7Bborder%2Dtop%2Dcolor%3A%2329ade0%7D%2Ealert%2Dinfo%20%2Ealert%2Dlink%7Bcolor%3A%23e6e6e6%7D%2Ealert%2Dwarning%7Bbackground%2Dcolor%3A%23ff851b%3Bborder%2Dcolor%3A%23ff7701%3Bcolor%3A%23ffffff%7D%2Ealert%2Dwarning%20hr%7Bborder%2Dtop%2Dcolor%3A%23e76b00%7D%2Ealert%2Dwarning%20%2Ealert%2Dlink%7Bcolor%3A%23e6e6e6%7D%2Ealert%2Ddanger%7Bbackground%2Dcolor%3A%23ff4136%3Bborder%2Dcolor%3A%23ff1103%3Bcolor%3A%23ffffff%7D%2Ealert%2Ddanger%20hr%7Bborder%2Dtop%2Dcolor%3A%23e90d00%7D%2Ealert%2Ddanger%20%2Ealert%2Dlink%7Bcolor%3A%23e6e6e6%7D%40%2Dwebkit%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40%2Do%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40keyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%2Eprogress%7Boverflow%3Ahidden%3Bheight%3A20px%3Bmargin%2Dbottom%3A20px%3Bbackground%2Dcolor%3A%23fafafa%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E1%29%7D%2Eprogress%2Dbar%7Bfloat%3Aleft%3Bwidth%3A0%25%3Bheight%3A100%25%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A20px%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23158cba%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E15%29%3Bbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E15%29%3B%2Dwebkit%2Dtransition%3Awidth%200%2E6s%20ease%3B%2Do%2Dtransition%3Awidth%200%2E6s%20ease%3Btransition%3Awidth%200%2E6s%20ease%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2C%2Eprogress%2Dbar%2Dstriped%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3B%2Dwebkit%2Dbackground%2Dsize%3A40px%2040px%3Bbackground%2Dsize%3A40px%2040px%7D%2Eprogress%2Eactive%20%2Eprogress%2Dbar%2C%2Eprogress%2Dbar%2Eactive%7B%2Dwebkit%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3B%2Do%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3Banimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%7D%2Eprogress%2Dbar%2Dsuccess%7Bbackground%2Dcolor%3A%2328b62c%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dsuccess%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%7D%2Eprogress%2Dbar%2Dinfo%7Bbackground%2Dcolor%3A%2375caeb%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dinfo%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%7D%2Eprogress%2Dbar%2Dwarning%7Bbackground%2Dcolor%3A%23ff851b%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dwarning%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%7D%2Eprogress%2Dbar%2Ddanger%7Bbackground%2Dcolor%3A%23ff4136%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Ddanger%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%7D%2Emedia%7Bmargin%2Dtop%3A15px%7D%2Emedia%3Afirst%2Dchild%7Bmargin%2Dtop%3A0%7D%2Emedia%2C%2Emedia%2Dbody%7Bzoom%3A1%3Boverflow%3Ahidden%7D%2Emedia%2Dbody%7Bwidth%3A10000px%7D%2Emedia%2Dobject%7Bdisplay%3Ablock%7D%2Emedia%2Dobject%2Eimg%2Dthumbnail%7Bmax%2Dwidth%3Anone%7D%2Emedia%2Dright%2C%2Emedia%3E%2Epull%2Dright%7Bpadding%2Dleft%3A10px%7D%2Emedia%2Dleft%2C%2Emedia%3E%2Epull%2Dleft%7Bpadding%2Dright%3A10px%7D%2Emedia%2Dleft%2C%2Emedia%2Dright%2C%2Emedia%2Dbody%7Bdisplay%3Atable%2Dcell%3Bvertical%2Dalign%3Atop%7D%2Emedia%2Dmiddle%7Bvertical%2Dalign%3Amiddle%7D%2Emedia%2Dbottom%7Bvertical%2Dalign%3Abottom%7D%2Emedia%2Dheading%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A5px%7D%2Emedia%2Dlist%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Elist%2Dgroup%7Bmargin%2Dbottom%3A20px%3Bpadding%2Dleft%3A0%7D%2Elist%2Dgroup%2Ditem%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bpadding%3A10px%2015px%3Bmargin%2Dbottom%3A%2D1px%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23eeeeee%7D%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%7D%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%7Da%2Elist%2Dgroup%2Ditem%2Cbutton%2Elist%2Dgroup%2Ditem%7Bcolor%3A%23555555%7Da%2Elist%2Dgroup%2Ditem%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3A%23333333%7Da%2Elist%2Dgroup%2Ditem%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%3Afocus%7Btext%2Ddecoration%3Anone%3Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23f5f5f5%7Dbutton%2Elist%2Dgroup%2Ditem%7Bwidth%3A100%25%3Btext%2Dalign%3Aleft%7D%2Elist%2Dgroup%2Ditem%2Edisabled%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%7Bbackground%2Dcolor%3A%23eeeeee%3Bcolor%3A%23999999%3Bcursor%3Anot%2Dallowed%7D%2Elist%2Dgroup%2Ditem%2Edisabled%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7D%2Elist%2Dgroup%2Ditem%2Edisabled%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dtext%7Bcolor%3A%23999999%7D%2Elist%2Dgroup%2Ditem%2Eactive%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%7Bz%2Dindex%3A2%3Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23158cba%3Bborder%2Dcolor%3A%23158cba%7D%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%7Bcolor%3Ainherit%7D%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dtext%7Bcolor%3A%23a6dff5%7D%2Elist%2Dgroup%2Ditem%2Dsuccess%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2328b62c%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%7Bcolor%3A%23ffffff%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2323a127%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%7D%2Elist%2Dgroup%2Ditem%2Dinfo%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2375caeb%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%7Bcolor%3A%23ffffff%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%235fc1e8%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%7D%2Elist%2Dgroup%2Ditem%2Dwarning%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff851b%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%7Bcolor%3A%23ffffff%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff7701%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%7D%2Elist%2Dgroup%2Ditem%2Ddanger%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff4136%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%7Bcolor%3A%23ffffff%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff291c%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%7D%2Elist%2Dgroup%2Ditem%2Dheading%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A5px%7D%2Elist%2Dgroup%2Ditem%2Dtext%7Bmargin%2Dbottom%3A0%3Bline%2Dheight%3A1%2E3%7D%2Epanel%7Bmargin%2Dbottom%3A20px%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3A0%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Epanel%2Dbody%7Bpadding%3A15px%7D%2Epanel%2Dheading%7Bpadding%3A10px%2015px%3Bborder%2Dbottom%3A1px%20solid%20transparent%3Bborder%2Dtop%2Dright%2Dradius%3A3px%3Bborder%2Dtop%2Dleft%2Dradius%3A3px%7D%2Epanel%2Dheading%3E%2Edropdown%20%2Edropdown%2Dtoggle%7Bcolor%3Ainherit%7D%2Epanel%2Dtitle%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bfont%2Dsize%3A16px%3Bcolor%3Ainherit%7D%2Epanel%2Dtitle%3Ea%2C%2Epanel%2Dtitle%3Esmall%2C%2Epanel%2Dtitle%3E%2Esmall%2C%2Epanel%2Dtitle%3Esmall%3Ea%2C%2Epanel%2Dtitle%3E%2Esmall%3Ea%7Bcolor%3Ainherit%7D%2Epanel%2Dfooter%7Bpadding%3A10px%2015px%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dtop%3A1px%20solid%20transparent%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Elist%2Dgroup%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%7Bmargin%2Dbottom%3A0%7D%2Epanel%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%7Bborder%2Dwidth%3A1px%200%3Bborder%2Dradius%3A0%7D%2Epanel%3E%2Elist%2Dgroup%3Afirst%2Dchild%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%3Afirst%2Dchild%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A3px%3Bborder%2Dtop%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Elist%2Dgroup%3Alast%2Dchild%20%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%3Alast%2Dchild%20%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%7Bborder%2Dbottom%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Epanel%2Dheading%2B%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dwidth%3A0%7D%2Elist%2Dgroup%2B%2Epanel%2Dfooter%7Bborder%2Dtop%2Dwidth%3A0%7D%2Epanel%3E%2Etable%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Etable%7Bmargin%2Dbottom%3A0%7D%2Epanel%3E%2Etable%20caption%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%20caption%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Etable%20caption%7Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%2Epanel%3E%2Etable%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A3px%3Bborder%2Dtop%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%7Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%7Bborder%2Dbottom%2Dleft%2Dradius%3A3px%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%7Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%7Bborder%2Dbottom%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Epanel%2Dbody%2B%2Etable%2C%2Epanel%3E%2Epanel%2Dbody%2B%2Etable%2Dresponsive%2C%2Epanel%3E%2Etable%2B%2Epanel%2Dbody%2C%2Epanel%3E%2Etable%2Dresponsive%2B%2Epanel%2Dbody%7Bborder%2Dtop%3A1px%20solid%20%23eeeeee%7D%2Epanel%3E%2Etable%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%2C%2Epanel%3E%2Etable%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3A0%7D%2Epanel%3E%2Etable%2Dbordered%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%7Bborder%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%7Bborder%2Dleft%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%7Bborder%2Dright%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Eth%7Bborder%2Dbottom%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%7Bborder%2Dbottom%3A0%7D%2Epanel%3E%2Etable%2Dresponsive%7Bborder%3A0%3Bmargin%2Dbottom%3A0%7D%2Epanel%2Dgroup%7Bmargin%2Dbottom%3A20px%7D%2Epanel%2Dgroup%20%2Epanel%7Bmargin%2Dbottom%3A0%3Bborder%2Dradius%3A4px%7D%2Epanel%2Dgroup%20%2Epanel%2B%2Epanel%7Bmargin%2Dtop%3A5px%7D%2Epanel%2Dgroup%20%2Epanel%2Dheading%7Bborder%2Dbottom%3A0%7D%2Epanel%2Dgroup%20%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%2C%2Epanel%2Dgroup%20%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%7Bborder%2Dtop%3A1px%20solid%20transparent%7D%2Epanel%2Dgroup%20%2Epanel%2Dfooter%7Bborder%2Dtop%3A0%7D%2Epanel%2Dgroup%20%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%20%2Epanel%2Dbody%7Bborder%2Dbottom%3A1px%20solid%20transparent%7D%2Epanel%2Ddefault%7Bborder%2Dcolor%3Atransparent%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%7Bcolor%3A%23333333%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dcolor%3Atransparent%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3Atransparent%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23f5f5f5%3Bbackground%2Dcolor%3A%23333333%7D%2Epanel%2Ddefault%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3Atransparent%7D%2Epanel%2Dprimary%7Bborder%2Dcolor%3Atransparent%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23158cba%3Bborder%2Dcolor%3Atransparent%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3Atransparent%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23158cba%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Dprimary%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3Atransparent%7D%2Epanel%2Dsuccess%7Bborder%2Dcolor%3Atransparent%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2328b62c%3Bborder%2Dcolor%3Atransparent%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3Atransparent%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%2328b62c%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3Atransparent%7D%2Epanel%2Dinfo%7Bborder%2Dcolor%3Atransparent%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2375caeb%3Bborder%2Dcolor%3Atransparent%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3Atransparent%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%2375caeb%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Dinfo%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3Atransparent%7D%2Epanel%2Dwarning%7Bborder%2Dcolor%3Atransparent%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff851b%3Bborder%2Dcolor%3Atransparent%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3Atransparent%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23ff851b%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Dwarning%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3Atransparent%7D%2Epanel%2Ddanger%7Bborder%2Dcolor%3Atransparent%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff4136%3Bborder%2Dcolor%3Atransparent%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3Atransparent%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23ff4136%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Ddanger%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3Atransparent%7D%2Eembed%2Dresponsive%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bheight%3A0%3Bpadding%3A0%3Boverflow%3Ahidden%7D%2Eembed%2Dresponsive%20%2Eembed%2Dresponsive%2Ditem%2C%2Eembed%2Dresponsive%20iframe%2C%2Eembed%2Dresponsive%20embed%2C%2Eembed%2Dresponsive%20object%2C%2Eembed%2Dresponsive%20video%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bbottom%3A0%3Bheight%3A100%25%3Bwidth%3A100%25%3Bborder%3A0%7D%2Eembed%2Dresponsive%2D16by9%7Bpadding%2Dbottom%3A56%2E25%25%7D%2Eembed%2Dresponsive%2D4by3%7Bpadding%2Dbottom%3A75%25%7D%2Ewell%7Bmin%2Dheight%3A20px%3Bpadding%3A19px%3Bmargin%2Dbottom%3A20px%3Bbackground%2Dcolor%3A%23fafafa%3Bborder%3A1px%20solid%20%23e8e8e8%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Ewell%20blockquote%7Bborder%2Dcolor%3A%23ddd%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E15%29%7D%2Ewell%2Dlg%7Bpadding%3A24px%3Bborder%2Dradius%3A5px%7D%2Ewell%2Dsm%7Bpadding%3A9px%3Bborder%2Dradius%3A2px%7D%2Eclose%7Bfloat%3Aright%3Bfont%2Dsize%3A21px%3Bfont%2Dweight%3Abold%3Bline%2Dheight%3A1%3Bcolor%3A%23ffffff%3Btext%2Dshadow%3A0%201px%200%20%23ffffff%3Bopacity%3A0%2E2%3Bfilter%3Aalpha%28opacity%3D20%29%7D%2Eclose%3Ahover%2C%2Eclose%3Afocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%3Bopacity%3A0%2E5%3Bfilter%3Aalpha%28opacity%3D50%29%7Dbutton%2Eclose%7Bpadding%3A0%3Bcursor%3Apointer%3Bbackground%3Atransparent%3Bborder%3A0%3B%2Dwebkit%2Dappearance%3Anone%7D%2Emodal%2Dopen%7Boverflow%3Ahidden%7D%2Emodal%7Bdisplay%3Anone%3Boverflow%3Ahidden%3Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A1050%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%3Boutline%3A0%7D%2Emodal%2Efade%20%2Emodal%2Ddialog%7B%2Dwebkit%2Dtransform%3Atranslate%280%2C%20%2D25%25%29%3B%2Dms%2Dtransform%3Atranslate%280%2C%20%2D25%25%29%3B%2Do%2Dtransform%3Atranslate%280%2C%20%2D25%25%29%3Btransform%3Atranslate%280%2C%20%2D25%25%29%3B%2Dwebkit%2Dtransition%3A%2Dwebkit%2Dtransform%20%2E3s%20ease%2Dout%3B%2Do%2Dtransition%3A%2Do%2Dtransform%20%2E3s%20ease%2Dout%3Btransition%3Atransform%20%2E3s%20ease%2Dout%7D%2Emodal%2Ein%20%2Emodal%2Ddialog%7B%2Dwebkit%2Dtransform%3Atranslate%280%2C%200%29%3B%2Dms%2Dtransform%3Atranslate%280%2C%200%29%3B%2Do%2Dtransform%3Atranslate%280%2C%200%29%3Btransform%3Atranslate%280%2C%200%29%7D%2Emodal%2Dopen%20%2Emodal%7Boverflow%2Dx%3Ahidden%3Boverflow%2Dy%3Aauto%7D%2Emodal%2Ddialog%7Bposition%3Arelative%3Bwidth%3Aauto%3Bmargin%3A10px%7D%2Emodal%2Dcontent%7Bposition%3Arelative%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23eeeeee%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E05%29%3Bborder%2Dradius%3A5px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%203px%209px%20rgba%280%2C0%2C0%2C0%2E5%29%3Bbox%2Dshadow%3A0%203px%209px%20rgba%280%2C0%2C0%2C0%2E5%29%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%3Boutline%3A0%7D%2Emodal%2Dbackdrop%7Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A1040%3Bbackground%2Dcolor%3A%23000000%7D%2Emodal%2Dbackdrop%2Efade%7Bopacity%3A0%3Bfilter%3Aalpha%28opacity%3D0%29%7D%2Emodal%2Dbackdrop%2Ein%7Bopacity%3A0%2E5%3Bfilter%3Aalpha%28opacity%3D50%29%7D%2Emodal%2Dheader%7Bpadding%3A15px%3Bborder%2Dbottom%3A1px%20solid%20%23e5e5e5%7D%2Emodal%2Dheader%20%2Eclose%7Bmargin%2Dtop%3A%2D2px%7D%2Emodal%2Dtitle%7Bmargin%3A0%3Bline%2Dheight%3A1%2E42857143%7D%2Emodal%2Dbody%7Bposition%3Arelative%3Bpadding%3A20px%7D%2Emodal%2Dfooter%7Bpadding%3A20px%3Btext%2Dalign%3Aright%3Bborder%2Dtop%3A1px%20solid%20%23e5e5e5%7D%2Emodal%2Dfooter%20%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A5px%3Bmargin%2Dbottom%3A0%7D%2Emodal%2Dfooter%20%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A%2D1px%7D%2Emodal%2Dfooter%20%2Ebtn%2Dblock%2B%2Ebtn%2Dblock%7Bmargin%2Dleft%3A0%7D%2Emodal%2Dscrollbar%2Dmeasure%7Bposition%3Aabsolute%3Btop%3A%2D9999px%3Bwidth%3A50px%3Bheight%3A50px%3Boverflow%3Ascroll%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Emodal%2Ddialog%7Bwidth%3A600px%3Bmargin%3A30px%20auto%7D%2Emodal%2Dcontent%7B%2Dwebkit%2Dbox%2Dshadow%3A0%205px%2015px%20rgba%280%2C0%2C0%2C0%2E5%29%3Bbox%2Dshadow%3A0%205px%2015px%20rgba%280%2C0%2C0%2C0%2E5%29%7D%2Emodal%2Dsm%7Bwidth%3A300px%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Emodal%2Dlg%7Bwidth%3A900px%7D%7D%2Etooltip%7Bposition%3Aabsolute%3Bz%2Dindex%3A1070%3Bdisplay%3Ablock%3Bfont%2Dfamily%3A%22Source%20Sans%20Pro%22%2C%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3Anormal%3Bletter%2Dspacing%3Anormal%3Bline%2Dbreak%3Aauto%3Bline%2Dheight%3A1%2E42857143%3Btext%2Dalign%3Aleft%3Btext%2Dalign%3Astart%3Btext%2Ddecoration%3Anone%3Btext%2Dshadow%3Anone%3Btext%2Dtransform%3Anone%3Bwhite%2Dspace%3Anormal%3Bword%2Dbreak%3Anormal%3Bword%2Dspacing%3Anormal%3Bword%2Dwrap%3Anormal%3Bfont%2Dsize%3A12px%3Bopacity%3A0%3Bfilter%3Aalpha%28opacity%3D0%29%7D%2Etooltip%2Ein%7Bopacity%3A0%2E9%3Bfilter%3Aalpha%28opacity%3D90%29%7D%2Etooltip%2Etop%7Bmargin%2Dtop%3A%2D3px%3Bpadding%3A5px%200%7D%2Etooltip%2Eright%7Bmargin%2Dleft%3A3px%3Bpadding%3A0%205px%7D%2Etooltip%2Ebottom%7Bmargin%2Dtop%3A3px%3Bpadding%3A5px%200%7D%2Etooltip%2Eleft%7Bmargin%2Dleft%3A%2D3px%3Bpadding%3A0%205px%7D%2Etooltip%2Dinner%7Bmax%2Dwidth%3A200px%3Bpadding%3A3px%208px%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23000000%3Bborder%2Dradius%3A4px%7D%2Etooltip%2Darrow%7Bposition%3Aabsolute%3Bwidth%3A0%3Bheight%3A0%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dstyle%3Asolid%7D%2Etooltip%2Etop%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000000%7D%2Etooltip%2Etop%2Dleft%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bright%3A5px%3Bmargin%2Dbottom%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000000%7D%2Etooltip%2Etop%2Dright%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bleft%3A5px%3Bmargin%2Dbottom%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000000%7D%2Etooltip%2Eright%20%2Etooltip%2Darrow%7Btop%3A50%25%3Bleft%3A0%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%205px%200%3Bborder%2Dright%2Dcolor%3A%23000000%7D%2Etooltip%2Eleft%20%2Etooltip%2Darrow%7Btop%3A50%25%3Bright%3A0%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A5px%200%205px%205px%3Bborder%2Dleft%2Dcolor%3A%23000000%7D%2Etooltip%2Ebottom%20%2Etooltip%2Darrow%7Btop%3A0%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000000%7D%2Etooltip%2Ebottom%2Dleft%20%2Etooltip%2Darrow%7Btop%3A0%3Bright%3A5px%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000000%7D%2Etooltip%2Ebottom%2Dright%20%2Etooltip%2Darrow%7Btop%3A0%3Bleft%3A5px%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000000%7D%2Epopover%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bz%2Dindex%3A1060%3Bdisplay%3Anone%3Bmax%2Dwidth%3A276px%3Bpadding%3A1px%3Bfont%2Dfamily%3A%22Source%20Sans%20Pro%22%2C%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3Anormal%3Bletter%2Dspacing%3Anormal%3Bline%2Dbreak%3Aauto%3Bline%2Dheight%3A1%2E42857143%3Btext%2Dalign%3Aleft%3Btext%2Dalign%3Astart%3Btext%2Ddecoration%3Anone%3Btext%2Dshadow%3Anone%3Btext%2Dtransform%3Anone%3Bwhite%2Dspace%3Anormal%3Bword%2Dbreak%3Anormal%3Bword%2Dspacing%3Anormal%3Bword%2Dwrap%3Anormal%3Bfont%2Dsize%3A14px%3Bbackground%2Dcolor%3A%23ffffff%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%3Bborder%3A1px%20solid%20%23cccccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E2%29%3Bborder%2Dradius%3A5px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C0%2E2%29%3Bbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C0%2E2%29%7D%2Epopover%2Etop%7Bmargin%2Dtop%3A%2D10px%7D%2Epopover%2Eright%7Bmargin%2Dleft%3A10px%7D%2Epopover%2Ebottom%7Bmargin%2Dtop%3A10px%7D%2Epopover%2Eleft%7Bmargin%2Dleft%3A%2D10px%7D%2Epopover%2Dtitle%7Bmargin%3A0%3Bpadding%3A8px%2014px%3Bfont%2Dsize%3A14px%3Bbackground%2Dcolor%3A%23f7f7f7%3Bborder%2Dbottom%3A1px%20solid%20%23ebebeb%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Epopover%2Dcontent%7Bpadding%3A9px%2014px%7D%2Epopover%3E%2Earrow%2C%2Epopover%3E%2Earrow%3Aafter%7Bposition%3Aabsolute%3Bdisplay%3Ablock%3Bwidth%3A0%3Bheight%3A0%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dstyle%3Asolid%7D%2Epopover%3E%2Earrow%7Bborder%2Dwidth%3A11px%7D%2Epopover%3E%2Earrow%3Aafter%7Bborder%2Dwidth%3A10px%3Bcontent%3A%22%22%7D%2Epopover%2Etop%3E%2Earrow%7Bleft%3A50%25%3Bmargin%2Dleft%3A%2D11px%3Bborder%2Dbottom%2Dwidth%3A0%3Bborder%2Dtop%2Dcolor%3A%23999999%3Bborder%2Dtop%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%3Bbottom%3A%2D11px%7D%2Epopover%2Etop%3E%2Earrow%3Aafter%7Bcontent%3A%22%20%22%3Bbottom%3A1px%3Bmargin%2Dleft%3A%2D10px%3Bborder%2Dbottom%2Dwidth%3A0%3Bborder%2Dtop%2Dcolor%3A%23ffffff%7D%2Epopover%2Eright%3E%2Earrow%7Btop%3A50%25%3Bleft%3A%2D11px%3Bmargin%2Dtop%3A%2D11px%3Bborder%2Dleft%2Dwidth%3A0%3Bborder%2Dright%2Dcolor%3A%23999999%3Bborder%2Dright%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%7D%2Epopover%2Eright%3E%2Earrow%3Aafter%7Bcontent%3A%22%20%22%3Bleft%3A1px%3Bbottom%3A%2D10px%3Bborder%2Dleft%2Dwidth%3A0%3Bborder%2Dright%2Dcolor%3A%23ffffff%7D%2Epopover%2Ebottom%3E%2Earrow%7Bleft%3A50%25%3Bmargin%2Dleft%3A%2D11px%3Bborder%2Dtop%2Dwidth%3A0%3Bborder%2Dbottom%2Dcolor%3A%23999999%3Bborder%2Dbottom%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%3Btop%3A%2D11px%7D%2Epopover%2Ebottom%3E%2Earrow%3Aafter%7Bcontent%3A%22%20%22%3Btop%3A1px%3Bmargin%2Dleft%3A%2D10px%3Bborder%2Dtop%2Dwidth%3A0%3Bborder%2Dbottom%2Dcolor%3A%23ffffff%7D%2Epopover%2Eleft%3E%2Earrow%7Btop%3A50%25%3Bright%3A%2D11px%3Bmargin%2Dtop%3A%2D11px%3Bborder%2Dright%2Dwidth%3A0%3Bborder%2Dleft%2Dcolor%3A%23999999%3Bborder%2Dleft%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%7D%2Epopover%2Eleft%3E%2Earrow%3Aafter%7Bcontent%3A%22%20%22%3Bright%3A1px%3Bborder%2Dright%2Dwidth%3A0%3Bborder%2Dleft%2Dcolor%3A%23ffffff%3Bbottom%3A%2D10px%7D%2Ecarousel%7Bposition%3Arelative%7D%2Ecarousel%2Dinner%7Bposition%3Arelative%3Boverflow%3Ahidden%3Bwidth%3A100%25%7D%2Ecarousel%2Dinner%3E%2Eitem%7Bdisplay%3Anone%3Bposition%3Arelative%3B%2Dwebkit%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3B%2Do%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3Btransition%3A%2E6s%20ease%2Din%2Dout%20left%7D%2Ecarousel%2Dinner%3E%2Eitem%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Ea%3Eimg%7Bline%2Dheight%3A1%7D%40media%20all%20and%20%28transform%2D3d%29%2C%28%2Dwebkit%2Dtransform%2D3d%29%7B%2Ecarousel%2Dinner%3E%2Eitem%7B%2Dwebkit%2Dtransition%3A%2Dwebkit%2Dtransform%20%2E6s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3A%2Do%2Dtransform%20%2E6s%20ease%2Din%2Dout%3Btransition%3Atransform%20%2E6s%20ease%2Din%2Dout%3B%2Dwebkit%2Dbackface%2Dvisibility%3Ahidden%3Bbackface%2Dvisibility%3Ahidden%3B%2Dwebkit%2Dperspective%3A1000px%3Bperspective%3A1000px%7D%2Ecarousel%2Dinner%3E%2Eitem%2Enext%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%2Eright%7B%2Dwebkit%2Dtransform%3Atranslate3d%28100%25%2C%200%2C%200%29%3Btransform%3Atranslate3d%28100%25%2C%200%2C%200%29%3Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Eitem%2Eprev%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%2Eleft%7B%2Dwebkit%2Dtransform%3Atranslate3d%28%2D100%25%2C%200%2C%200%29%3Btransform%3Atranslate3d%28%2D100%25%2C%200%2C%200%29%3Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Eitem%2Enext%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eprev%2Eright%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%7B%2Dwebkit%2Dtransform%3Atranslate3d%280%2C%200%2C%200%29%3Btransform%3Atranslate3d%280%2C%200%2C%200%29%3Bleft%3A0%7D%7D%2Ecarousel%2Dinner%3E%2Eactive%2C%2Ecarousel%2Dinner%3E%2Enext%2C%2Ecarousel%2Dinner%3E%2Eprev%7Bdisplay%3Ablock%7D%2Ecarousel%2Dinner%3E%2Eactive%7Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Enext%2C%2Ecarousel%2Dinner%3E%2Eprev%7Bposition%3Aabsolute%3Btop%3A0%3Bwidth%3A100%25%7D%2Ecarousel%2Dinner%3E%2Enext%7Bleft%3A100%25%7D%2Ecarousel%2Dinner%3E%2Eprev%7Bleft%3A%2D100%25%7D%2Ecarousel%2Dinner%3E%2Enext%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eprev%2Eright%7Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Eactive%2Eleft%7Bleft%3A%2D100%25%7D%2Ecarousel%2Dinner%3E%2Eactive%2Eright%7Bleft%3A100%25%7D%2Ecarousel%2Dcontrol%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bbottom%3A0%3Bwidth%3A15%25%3Bopacity%3A0%2E5%3Bfilter%3Aalpha%28opacity%3D50%29%3Bfont%2Dsize%3A20px%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C0%2E6%29%3Bbackground%2Dcolor%3Argba%280%2C0%2C0%2C0%29%7D%2Ecarousel%2Dcontrol%2Eleft%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2C%20rgba%280%2C0%2C0%2C0%2E5%29%200%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28left%2C%20rgba%280%2C0%2C0%2C0%2E5%29%200%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%20100%25%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20right%20top%2C%20from%28rgba%280%2C0%2C0%2C0%2E5%29%29%2C%20to%28rgba%280%2C0%2C0%2C0%2E0001%29%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20right%2C%20rgba%280%2C0%2C0%2C0%2E5%29%200%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%20100%25%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%2380000000%27%2C%20endColorstr%3D%27%2300000000%27%2C%20GradientType%3D1%29%7D%2Ecarousel%2Dcontrol%2Eright%7Bleft%3Aauto%3Bright%3A0%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%200%2C%20rgba%280%2C0%2C0%2C0%2E5%29%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28left%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%200%2C%20rgba%280%2C0%2C0%2C0%2E5%29%20100%25%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20right%20top%2C%20from%28rgba%280%2C0%2C0%2C0%2E0001%29%29%2C%20to%28rgba%280%2C0%2C0%2C0%2E5%29%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20right%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%200%2C%20rgba%280%2C0%2C0%2C0%2E5%29%20100%25%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%2300000000%27%2C%20endColorstr%3D%27%2380000000%27%2C%20GradientType%3D1%29%7D%2Ecarousel%2Dcontrol%3Ahover%2C%2Ecarousel%2Dcontrol%3Afocus%7Boutline%3A0%3Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Bopacity%3A0%2E9%3Bfilter%3Aalpha%28opacity%3D90%29%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%7Bposition%3Aabsolute%3Btop%3A50%25%3Bmargin%2Dtop%3A%2D10px%3Bz%2Dindex%3A5%3Bdisplay%3Ainline%2Dblock%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%7Bleft%3A50%25%3Bmargin%2Dleft%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%7Bright%3A50%25%3Bmargin%2Dright%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bwidth%3A20px%3Bheight%3A20px%3Bline%2Dheight%3A1%3Bfont%2Dfamily%3Aserif%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%3Abefore%7Bcontent%3A%27%5C2039%27%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%3Abefore%7Bcontent%3A%27%5C203a%27%7D%2Ecarousel%2Dindicators%7Bposition%3Aabsolute%3Bbottom%3A10px%3Bleft%3A50%25%3Bz%2Dindex%3A15%3Bwidth%3A60%25%3Bmargin%2Dleft%3A%2D30%25%3Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%3Btext%2Dalign%3Acenter%7D%2Ecarousel%2Dindicators%20li%7Bdisplay%3Ainline%2Dblock%3Bwidth%3A10px%3Bheight%3A10px%3Bmargin%3A1px%3Btext%2Dindent%3A%2D999px%3Bborder%3A1px%20solid%20%23ffffff%3Bborder%2Dradius%3A10px%3Bcursor%3Apointer%3Bbackground%2Dcolor%3A%23000%20%5C9%3Bbackground%2Dcolor%3Argba%280%2C0%2C0%2C0%29%7D%2Ecarousel%2Dindicators%20%2Eactive%7Bmargin%3A0%3Bwidth%3A12px%3Bheight%3A12px%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ecarousel%2Dcaption%7Bposition%3Aabsolute%3Bleft%3A15%25%3Bright%3A15%25%3Bbottom%3A20px%3Bz%2Dindex%3A10%3Bpadding%2Dtop%3A20px%3Bpadding%2Dbottom%3A20px%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C0%2E6%29%7D%2Ecarousel%2Dcaption%20%2Ebtn%7Btext%2Dshadow%3Anone%7D%40media%20screen%20and%20%28min%2Dwidth%3A768px%29%7B%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bwidth%3A30px%3Bheight%3A30px%3Bmargin%2Dtop%3A%2D10px%3Bfont%2Dsize%3A30px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bmargin%2Dleft%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bmargin%2Dright%3A%2D10px%7D%2Ecarousel%2Dcaption%7Bleft%3A20%25%3Bright%3A20%25%3Bpadding%2Dbottom%3A30px%7D%2Ecarousel%2Dindicators%7Bbottom%3A20px%7D%7D%2Eclearfix%3Abefore%2C%2Eclearfix%3Aafter%2C%2Edl%2Dhorizontal%20dd%3Abefore%2C%2Edl%2Dhorizontal%20dd%3Aafter%2C%2Econtainer%3Abefore%2C%2Econtainer%3Aafter%2C%2Econtainer%2Dfluid%3Abefore%2C%2Econtainer%2Dfluid%3Aafter%2C%2Erow%3Abefore%2C%2Erow%3Aafter%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Abefore%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Aafter%2C%2Ebtn%2Dtoolbar%3Abefore%2C%2Ebtn%2Dtoolbar%3Aafter%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Abefore%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Aafter%2C%2Enav%3Abefore%2C%2Enav%3Aafter%2C%2Enavbar%3Abefore%2C%2Enavbar%3Aafter%2C%2Enavbar%2Dheader%3Abefore%2C%2Enavbar%2Dheader%3Aafter%2C%2Enavbar%2Dcollapse%3Abefore%2C%2Enavbar%2Dcollapse%3Aafter%2C%2Epager%3Abefore%2C%2Epager%3Aafter%2C%2Epanel%2Dbody%3Abefore%2C%2Epanel%2Dbody%3Aafter%2C%2Emodal%2Dheader%3Abefore%2C%2Emodal%2Dheader%3Aafter%2C%2Emodal%2Dfooter%3Abefore%2C%2Emodal%2Dfooter%3Aafter%7Bcontent%3A%22%20%22%3Bdisplay%3Atable%7D%2Eclearfix%3Aafter%2C%2Edl%2Dhorizontal%20dd%3Aafter%2C%2Econtainer%3Aafter%2C%2Econtainer%2Dfluid%3Aafter%2C%2Erow%3Aafter%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Aafter%2C%2Ebtn%2Dtoolbar%3Aafter%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Aafter%2C%2Enav%3Aafter%2C%2Enavbar%3Aafter%2C%2Enavbar%2Dheader%3Aafter%2C%2Enavbar%2Dcollapse%3Aafter%2C%2Epager%3Aafter%2C%2Epanel%2Dbody%3Aafter%2C%2Emodal%2Dheader%3Aafter%2C%2Emodal%2Dfooter%3Aafter%7Bclear%3Aboth%7D%2Ecenter%2Dblock%7Bdisplay%3Ablock%3Bmargin%2Dleft%3Aauto%3Bmargin%2Dright%3Aauto%7D%2Epull%2Dright%7Bfloat%3Aright%20%21important%7D%2Epull%2Dleft%7Bfloat%3Aleft%20%21important%7D%2Ehide%7Bdisplay%3Anone%20%21important%7D%2Eshow%7Bdisplay%3Ablock%20%21important%7D%2Einvisible%7Bvisibility%3Ahidden%7D%2Etext%2Dhide%7Bfont%3A0%2F0%20a%3Bcolor%3Atransparent%3Btext%2Dshadow%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%7D%2Ehidden%7Bdisplay%3Anone%20%21important%7D%2Eaffix%7Bposition%3Afixed%7D%40%2Dms%2Dviewport%7Bwidth%3Adevice%2Dwidth%7D%2Evisible%2Dxs%2C%2Evisible%2Dsm%2C%2Evisible%2Dmd%2C%2Evisible%2Dlg%7Bdisplay%3Anone%20%21important%7D%2Evisible%2Dxs%2Dblock%2C%2Evisible%2Dxs%2Dinline%2C%2Evisible%2Dxs%2Dinline%2Dblock%2C%2Evisible%2Dsm%2Dblock%2C%2Evisible%2Dsm%2Dinline%2C%2Evisible%2Dsm%2Dinline%2Dblock%2C%2Evisible%2Dmd%2Dblock%2C%2Evisible%2Dmd%2Dinline%2C%2Evisible%2Dmd%2Dinline%2Dblock%2C%2Evisible%2Dlg%2Dblock%2C%2Evisible%2Dlg%2Dinline%2C%2Evisible%2Dlg%2Dinline%2Dblock%7Bdisplay%3Anone%20%21important%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dxs%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dxs%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dxs%2Ctd%2Evisible%2Dxs%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dsm%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dsm%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dsm%2Ctd%2Evisible%2Dsm%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dmd%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dmd%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dmd%2Ctd%2Evisible%2Dmd%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dlg%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dlg%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dlg%2Ctd%2Evisible%2Dlg%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Ehidden%2Dxs%7Bdisplay%3Anone%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Ehidden%2Dsm%7Bdisplay%3Anone%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Ehidden%2Dmd%7Bdisplay%3Anone%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Ehidden%2Dlg%7Bdisplay%3Anone%20%21important%7D%7D%2Evisible%2Dprint%7Bdisplay%3Anone%20%21important%7D%40media%20print%7B%2Evisible%2Dprint%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dprint%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dprint%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dprint%2Ctd%2Evisible%2Dprint%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%2Evisible%2Dprint%2Dblock%7Bdisplay%3Anone%20%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%2Evisible%2Dprint%2Dinline%7Bdisplay%3Anone%20%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%2Evisible%2Dprint%2Dinline%2Dblock%7Bdisplay%3Anone%20%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20print%7B%2Ehidden%2Dprint%7Bdisplay%3Anone%20%21important%7D%7D%2Enavbar%7Bborder%2Dwidth%3A0%201px%204px%201px%7D%2Ebtn%7Bpadding%3A9px%2012px%207px%3Bborder%2Dwidth%3A0%201px%204px%201px%3Bfont%2Dsize%3A12px%3Bfont%2Dweight%3Abold%3Btext%2Dtransform%3Auppercase%7D%2Ebtn%3Ahover%7Bmargin%2Dtop%3A1px%3Bborder%2Dbottom%2Dwidth%3A3px%7D%2Ebtn%3Aactive%7Bmargin%2Dtop%3A2px%3Bborder%2Dbottom%2Dwidth%3A2px%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%2Dlg%2C%2Ebtn%2Dgroup%2Dlg%3E%2Ebtn%7Bpadding%3A15px%2016px%2013px%3Bline%2Dheight%3A15px%7D%2Ebtn%2Dsm%2C%2Ebtn%2Dgroup%2Dsm%3E%2Ebtn%7Bpadding%3A6px%2010px%204px%7D%2Ebtn%2Dxs%2C%2Ebtn%2Dgroup%2Dxs%3E%2Ebtn%7Bpadding%3A3px%205px%201px%7D%2Ebtn%2Ddefault%3Ahover%2C%2Ebtn%2Ddefault%3Afocus%2C%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%7Bbackground%2Dcolor%3A%23eeeeee%3Bborder%2Dcolor%3A%23e2e2e2%7D%2Ebtn%2Dprimary%3Ahover%2C%2Ebtn%2Dprimary%3Afocus%2C%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%7Bbackground%2Dcolor%3A%23158cba%3Bborder%2Dcolor%3A%23127ba3%7D%2Ebtn%2Dsuccess%3Ahover%2C%2Ebtn%2Dsuccess%3Afocus%2C%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%7Bbackground%2Dcolor%3A%2328b62c%3Bborder%2Dcolor%3A%2323a127%7D%2Ebtn%2Dinfo%3Ahover%2C%2Ebtn%2Dinfo%3Afocus%2C%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%7Bbackground%2Dcolor%3A%2375caeb%3Bborder%2Dcolor%3A%235fc1e8%7D%2Ebtn%2Dwarning%3Ahover%2C%2Ebtn%2Dwarning%3Afocus%2C%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%7Bbackground%2Dcolor%3A%23ff851b%3Bborder%2Dcolor%3A%23ff7701%7D%2Ebtn%2Ddanger%3Ahover%2C%2Ebtn%2Ddanger%3Afocus%2C%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%7Bbackground%2Dcolor%3A%23ff4136%3Bborder%2Dcolor%3A%23ff291c%7D%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Enavbar%2Dbtn%3Ahover%7Bmargin%2Dtop%3A8px%7D%2Enavbar%2Dbtn%3Aactive%7Bmargin%2Dtop%3A9px%7D%2Enavbar%2Dbtn%2Ebtn%2Dsm%3Ahover%7Bmargin%2Dtop%3A11px%7D%2Enavbar%2Dbtn%2Ebtn%2Dsm%3Aactive%7Bmargin%2Dtop%3A12px%7D%2Enavbar%2Dbtn%2Ebtn%2Dxs%3Ahover%7Bmargin%2Dtop%3A15px%7D%2Enavbar%2Dbtn%2Ebtn%2Dxs%3Aactive%7Bmargin%2Dtop%3A16px%7D%2Ebtn%2Dgroup%2Dvertical%20%2Ebtn%2B%2Ebtn%3Ahover%7Bborder%2Dtop%2Dwidth%3A1px%7D%2Ebtn%2Dgroup%2Dvertical%20%2Ebtn%2B%2Ebtn%3Aactive%7Bborder%2Dtop%2Dwidth%3A2px%7D%2Etext%2Dprimary%2C%2Etext%2Dprimary%3Ahover%7Bcolor%3A%23158cba%7D%2Etext%2Dsuccess%2C%2Etext%2Dsuccess%3Ahover%7Bcolor%3A%2328b62c%7D%2Etext%2Ddanger%2C%2Etext%2Ddanger%3Ahover%7Bcolor%3A%23ff4136%7D%2Etext%2Dwarning%2C%2Etext%2Dwarning%3Ahover%7Bcolor%3A%23ff851b%7D%2Etext%2Dinfo%2C%2Etext%2Dinfo%3Ahover%7Bcolor%3A%2375caeb%7Dtable%20a%3Anot%28%2Ebtn%29%2C%2Etable%20a%3Anot%28%2Ebtn%29%7Btext%2Ddecoration%3Aunderline%7Dtable%20%2Edropdown%2Dmenu%20a%2C%2Etable%20%2Edropdown%2Dmenu%20a%7Btext%2Ddecoration%3Anone%7Dtable%20%2Esuccess%2C%2Etable%20%2Esuccess%2Ctable%20%2Ewarning%2C%2Etable%20%2Ewarning%2Ctable%20%2Edanger%2C%2Etable%20%2Edanger%2Ctable%20%2Einfo%2C%2Etable%20%2Einfo%7Bcolor%3A%23fff%7Dtable%20%2Esuccess%20a%3Anot%28%2Ebtn%29%2C%2Etable%20%2Esuccess%20a%3Anot%28%2Ebtn%29%2Ctable%20%2Ewarning%20a%3Anot%28%2Ebtn%29%2C%2Etable%20%2Ewarning%20a%3Anot%28%2Ebtn%29%2Ctable%20%2Edanger%20a%3Anot%28%2Ebtn%29%2C%2Etable%20%2Edanger%20a%3Anot%28%2Ebtn%29%2Ctable%20%2Einfo%20a%3Anot%28%2Ebtn%29%2C%2Etable%20%2Einfo%20a%3Anot%28%2Ebtn%29%7Bcolor%3A%23fff%7Dtable%3Anot%28%2Etable%2Dbordered%29%3Ethead%3Etr%3Eth%2C%2Etable%3Anot%28%2Etable%2Dbordered%29%3Ethead%3Etr%3Eth%2Ctable%3Anot%28%2Etable%2Dbordered%29%3Etbody%3Etr%3Eth%2C%2Etable%3Anot%28%2Etable%2Dbordered%29%3Etbody%3Etr%3Eth%2Ctable%3Anot%28%2Etable%2Dbordered%29%3Etfoot%3Etr%3Eth%2C%2Etable%3Anot%28%2Etable%2Dbordered%29%3Etfoot%3Etr%3Eth%2Ctable%3Anot%28%2Etable%2Dbordered%29%3Ethead%3Etr%3Etd%2C%2Etable%3Anot%28%2Etable%2Dbordered%29%3Ethead%3Etr%3Etd%2Ctable%3Anot%28%2Etable%2Dbordered%29%3Etbody%3Etr%3Etd%2C%2Etable%3Anot%28%2Etable%2Dbordered%29%3Etbody%3Etr%3Etd%2Ctable%3Anot%28%2Etable%2Dbordered%29%3Etfoot%3Etr%3Etd%2C%2Etable%3Anot%28%2Etable%2Dbordered%29%3Etfoot%3Etr%3Etd%7Bborder%2Dcolor%3Atransparent%7D%2Eform%2Dcontrol%7B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E075%29%7Dlabel%7Bfont%2Dweight%3Anormal%7D%2Ehas%2Dwarning%20%2Ehelp%2Dblock%2C%2Ehas%2Dwarning%20%2Econtrol%2Dlabel%2C%2Ehas%2Dwarning%20%2Eradio%2C%2Ehas%2Dwarning%20%2Echeckbox%2C%2Ehas%2Dwarning%20%2Eradio%2Dinline%2C%2Ehas%2Dwarning%20%2Echeckbox%2Dinline%2C%2Ehas%2Dwarning%2Eradio%20label%2C%2Ehas%2Dwarning%2Echeckbox%20label%2C%2Ehas%2Dwarning%2Eradio%2Dinline%20label%2C%2Ehas%2Dwarning%2Echeckbox%2Dinline%20label%2C%2Ehas%2Dwarning%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23ff851b%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%2C%2Ehas%2Dwarning%20%2Eform%2Dcontrol%3Afocus%7Bborder%3A1px%20solid%20%23ff851b%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Ehas%2Dwarning%20%2Einput%2Dgroup%2Daddon%7Bborder%3A1px%20solid%20%23ff851b%7D%2Ehas%2Derror%20%2Ehelp%2Dblock%2C%2Ehas%2Derror%20%2Econtrol%2Dlabel%2C%2Ehas%2Derror%20%2Eradio%2C%2Ehas%2Derror%20%2Echeckbox%2C%2Ehas%2Derror%20%2Eradio%2Dinline%2C%2Ehas%2Derror%20%2Echeckbox%2Dinline%2C%2Ehas%2Derror%2Eradio%20label%2C%2Ehas%2Derror%2Echeckbox%20label%2C%2Ehas%2Derror%2Eradio%2Dinline%20label%2C%2Ehas%2Derror%2Echeckbox%2Dinline%20label%2C%2Ehas%2Derror%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23ff4136%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%2C%2Ehas%2Derror%20%2Eform%2Dcontrol%3Afocus%7Bborder%3A1px%20solid%20%23ff4136%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Ehas%2Derror%20%2Einput%2Dgroup%2Daddon%7Bborder%3A1px%20solid%20%23ff4136%7D%2Ehas%2Dsuccess%20%2Ehelp%2Dblock%2C%2Ehas%2Dsuccess%20%2Econtrol%2Dlabel%2C%2Ehas%2Dsuccess%20%2Eradio%2C%2Ehas%2Dsuccess%20%2Echeckbox%2C%2Ehas%2Dsuccess%20%2Eradio%2Dinline%2C%2Ehas%2Dsuccess%20%2Echeckbox%2Dinline%2C%2Ehas%2Dsuccess%2Eradio%20label%2C%2Ehas%2Dsuccess%2Echeckbox%20label%2C%2Ehas%2Dsuccess%2Eradio%2Dinline%20label%2C%2Ehas%2Dsuccess%2Echeckbox%2Dinline%20label%2C%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%2328b62c%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%2C%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%3Afocus%7Bborder%3A1px%20solid%20%2328b62c%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Ehas%2Dsuccess%20%2Einput%2Dgroup%2Daddon%7Bborder%3A1px%20solid%20%2328b62c%7D%2Enav%20%2Eopen%3Ea%2C%2Enav%20%2Eopen%3Ea%3Ahover%2C%2Enav%20%2Eopen%3Ea%3Afocus%7Bborder%2Dcolor%3Atransparent%7D%2Enav%2Dtabs%3Eli%3Ea%7Bmargin%2Dtop%3A6px%3Bborder%2Dcolor%3A%23e7e7e7%3Bcolor%3A%23333333%3B%2Dwebkit%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3Btransition%3Aall%20%2E2s%20ease%2Din%2Dout%7D%2Enav%2Dtabs%3Eli%3Ea%3Ahover%2C%2Enav%2Dtabs%3Eli%3Ea%3Afocus%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%3Afocus%2C%2Enav%2Dtabs%20%2Eopen%3Ea%2C%2Enav%2Dtabs%20%2Eopen%3Ea%3Ahover%2C%2Enav%2Dtabs%20%2Eopen%3Ea%3Afocus%7Bpadding%2Dbottom%3A16px%3Bmargin%2Dtop%3A0%7D%2Enav%2Dtabs%20%2Eopen%3Ea%2C%2Enav%2Dtabs%20%2Eopen%3Ea%3Ahover%2C%2Enav%2Dtabs%20%2Eopen%3Ea%3Afocus%7Bborder%2Dcolor%3A%23e7e7e7%7D%2Enav%2Dtabs%3Eli%2Edisabled%3Ea%3Ahover%2C%2Enav%2Dtabs%3Eli%2Edisabled%3Ea%3Afocus%7Bpadding%2Dtop%3A10px%3Bpadding%2Dbottom%3A10px%3Bmargin%2Dtop%3A6px%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%7Bvertical%2Dalign%3Abottom%7D%2Edropdown%2Dmenu%7Bmargin%2Dtop%3A0%3Bborder%2Dwidth%3A0%201px%204px%201px%3Bborder%2Dtop%2Dwidth%3A1px%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebreadcrumb%7Bborder%2Dcolor%3A%23ededed%3Bborder%2Dstyle%3Asolid%3Bborder%2Dwidth%3A0%201px%204px%201px%7D%2Epagination%3Eli%3Ea%2C%2Epager%3Eli%3Ea%2C%2Epagination%3Eli%3Espan%2C%2Epager%3Eli%3Espan%7Bposition%3Arelative%3Btop%3A0%3Bborder%2Dwidth%3A0%201px%204px%201px%3Bcolor%3A%23555555%3Bfont%2Dsize%3A12px%3Bfont%2Dweight%3Abold%3Btext%2Dtransform%3Auppercase%7D%2Epagination%3Eli%3Ea%3Ahover%2C%2Epager%3Eli%3Ea%3Ahover%2C%2Epagination%3Eli%3Espan%3Ahover%2C%2Epager%3Eli%3Espan%3Ahover%7Btop%3A1px%3Bborder%2Dbottom%2Dwidth%3A3px%7D%2Epagination%3Eli%3Ea%3Aactive%2C%2Epager%3Eli%3Ea%3Aactive%2C%2Epagination%3Eli%3Espan%3Aactive%2C%2Epager%3Eli%3Espan%3Aactive%7Btop%3A2px%3Bborder%2Dbottom%2Dwidth%3A2px%7D%2Epagination%3E%2Edisabled%3Ea%3Ahover%2C%2Epager%3E%2Edisabled%3Ea%3Ahover%2C%2Epagination%3E%2Edisabled%3Espan%3Ahover%2C%2Epager%3E%2Edisabled%3Espan%3Ahover%7Btop%3A0%3Bborder%2Dwidth%3A0%201px%204px%201px%7D%2Epagination%3E%2Edisabled%3Ea%3Aactive%2C%2Epager%3E%2Edisabled%3Ea%3Aactive%2C%2Epagination%3E%2Edisabled%3Espan%3Aactive%2C%2Epager%3E%2Edisabled%3Espan%3Aactive%7Btop%3A0%3Bborder%2Dwidth%3A0%201px%204px%201px%7D%2Epager%3Eli%3Ea%2C%2Epager%3Eli%3Espan%2C%2Epager%3E%2Edisabled%3Ea%2C%2Epager%3E%2Edisabled%3Espan%2C%2Epager%3Eli%3Ea%3Ahover%2C%2Epager%3Eli%3Espan%3Ahover%2C%2Epager%3E%2Edisabled%3Ea%3Ahover%2C%2Epager%3E%2Edisabled%3Espan%3Ahover%2C%2Epager%3Eli%3Ea%3Aactive%2C%2Epager%3Eli%3Espan%3Aactive%2C%2Epager%3E%2Edisabled%3Ea%3Aactive%2C%2Epager%3E%2Edisabled%3Espan%3Aactive%7Bborder%2Dleft%2Dwidth%3A2px%3Bborder%2Dright%2Dwidth%3A2px%7D%2Eclose%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bopacity%3A0%2E4%7D%2Eclose%3Ahover%2C%2Eclose%3Afocus%7Bcolor%3A%23fff%3Bopacity%3A1%7D%2Ealert%7Bborder%2Dwidth%3A0%201px%204px%201px%7D%2Ealert%20%2Ealert%2Dlink%7Bfont%2Dweight%3Anormal%3Bcolor%3A%23fff%3Btext%2Ddecoration%3Aunderline%7D%2Elabel%7Bfont%2Dweight%3Anormal%7D%2Eprogress%7Bborder%3A1px%20solid%20%23e7e7e7%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E1%29%3Bbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E1%29%7D%2Eprogress%2Dbar%7B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%20%2D4px%200%20rgba%280%2C0%2C0%2C0%2E15%29%3Bbox%2Dshadow%3Ainset%200%20%2D4px%200%20rgba%280%2C0%2C0%2C0%2E15%29%7D%2Ewell%7Bborder%3A1px%20solid%20%23e7e7e7%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E05%29%7Da%2Elist%2Dgroup%2Ditem%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%7Bborder%2Dcolor%3A%23eeeeee%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%7Bbackground%2Dcolor%3A%2328b62c%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Afocus%7Bbackground%2Dcolor%3A%2323a127%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%7Bbackground%2Dcolor%3A%23ff851b%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Afocus%7Bbackground%2Dcolor%3A%23ff7701%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%7Bbackground%2Dcolor%3A%23ff4136%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Afocus%7Bbackground%2Dcolor%3A%23ff291c%7D%2Ejumbotron%7Bborder%3A1px%20solid%20%23e7e7e7%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3Ainset%200%202px%200%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Epanel%7Bborder%3A1px%20solid%20%23e7e7e7%3Bborder%2Dwidth%3A0%201px%204px%201px%7D%2Epanel%2Ddefault%20%2Eclose%7Bcolor%3A%23555555%7D%2Emodal%20%2Eclose%7Bcolor%3A%23555555%7D%2Epopover%7Bcolor%3A%23555555%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5IHZlcnNpb24gMS45LjEgb3IgaGlnaGVyIil9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYm9vdHN0cmFwIiksYj17V2Via2l0VHJhbnNpdGlvbjoid2Via2l0VHJhbnNpdGlvbkVuZCIsTW96VHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCIsT1RyYW5zaXRpb246Im9UcmFuc2l0aW9uRW5kIG90cmFuc2l0aW9uZW5kIix0cmFuc2l0aW9uOiJ0cmFuc2l0aW9uZW5kIn07Zm9yKHZhciBjIGluIGIpaWYodm9pZCAwIT09YS5zdHlsZVtjXSlyZXR1cm57ZW5kOmJbY119O3JldHVybiExfWEuZm4uZW11bGF0ZVRyYW5zaXRpb25FbmQ9ZnVuY3Rpb24oYil7dmFyIGM9ITEsZD10aGlzO2EodGhpcykub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7Yz0hMH0pO3ZhciBlPWZ1bmN0aW9uKCl7Y3x8YShkKS50cmlnZ2VyKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCl9O3JldHVybiBzZXRUaW1lb3V0KGUsYiksdGhpc30sYShmdW5jdGlvbigpe2Euc3VwcG9ydC50cmFuc2l0aW9uPWIoKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGEuZXZlbnQuc3BlY2lhbC5ic1RyYW5zaXRpb25FbmQ9e2JpbmRUeXBlOmEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxkZWxlZ2F0ZVR5cGU6YS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLGhhbmRsZTpmdW5jdGlvbihiKXtyZXR1cm4gYShiLnRhcmdldCkuaXModGhpcyk/Yi5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGU9Yy5kYXRhKCJicy5hbGVydCIpO2V8fGMuZGF0YSgiYnMuYWxlcnQiLGU9bmV3IGQodGhpcykpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXS5jYWxsKGMpfSl9dmFyIGM9J1tkYXRhLWRpc21pc3M9ImFsZXJ0Il0nLGQ9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2siLGMsdGhpcy5jbG9zZSl9O2QuVkVSU0lPTj0iMy4zLjUiLGQuVFJBTlNJVElPTl9EVVJBVElPTj0xNTAsZC5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYygpe2cuZGV0YWNoKCkudHJpZ2dlcigiY2xvc2VkLmJzLmFsZXJ0IikucmVtb3ZlKCl9dmFyIGU9YSh0aGlzKSxmPWUuYXR0cigiZGF0YS10YXJnZXQiKTtmfHwoZj1lLmF0dHIoImhyZWYiKSxmPWYmJmYucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGc9YShmKTtiJiZiLnByZXZlbnREZWZhdWx0KCksZy5sZW5ndGh8fChnPWUuY2xvc2VzdCgiLmFsZXJ0IikpLGcudHJpZ2dlcihiPWEuRXZlbnQoImNsb3NlLmJzLmFsZXJ0IikpLGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fChnLnJlbW92ZUNsYXNzKCJpbiIpLGEuc3VwcG9ydC50cmFuc2l0aW9uJiZnLmhhc0NsYXNzKCJmYWRlIik/Zy5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYykuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKTpjKCkpfTt2YXIgZT1hLmZuLmFsZXJ0O2EuZm4uYWxlcnQ9YixhLmZuLmFsZXJ0LkNvbnN0cnVjdG9yPWQsYS5mbi5hbGVydC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWxlcnQ9ZSx0aGlzfSxhKGRvY3VtZW50KS5vbigiY2xpY2suYnMuYWxlcnQuZGF0YS1hcGkiLGMsZC5wcm90b3R5cGUuY2xvc2UpfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMuYnV0dG9uIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5idXR0b24iLGU9bmV3IGModGhpcyxmKSksInRvZ2dsZSI9PWI/ZS50b2dnbGUoKTpiJiZlLnNldFN0YXRlKGIpfSl9dmFyIGM9ZnVuY3Rpb24oYixkKXt0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy5pc0xvYWRpbmc9ITF9O2MuVkVSU0lPTj0iMy4zLjUiLGMuREVGQVVMVFM9e2xvYWRpbmdUZXh0OiJsb2FkaW5nLi4uIn0sYy5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oYil7dmFyIGM9ImRpc2FibGVkIixkPXRoaXMuJGVsZW1lbnQsZT1kLmlzKCJpbnB1dCIpPyJ2YWwiOiJodG1sIixmPWQuZGF0YSgpO2IrPSJUZXh0IixudWxsPT1mLnJlc2V0VGV4dCYmZC5kYXRhKCJyZXNldFRleHQiLGRbZV0oKSksc2V0VGltZW91dChhLnByb3h5KGZ1bmN0aW9uKCl7ZFtlXShudWxsPT1mW2JdP3RoaXMub3B0aW9uc1tiXTpmW2JdKSwibG9hZGluZ1RleHQiPT1iPyh0aGlzLmlzTG9hZGluZz0hMCxkLmFkZENsYXNzKGMpLmF0dHIoYyxjKSk6dGhpcy5pc0xvYWRpbmcmJih0aGlzLmlzTG9hZGluZz0hMSxkLnJlbW92ZUNsYXNzKGMpLnJlbW92ZUF0dHIoYykpfSx0aGlzKSwwKX0sYy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIGE9ITAsYj10aGlzLiRlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLXRvZ2dsZT0iYnV0dG9ucyJdJyk7aWYoYi5sZW5ndGgpe3ZhciBjPXRoaXMuJGVsZW1lbnQuZmluZCgiaW5wdXQiKTsicmFkaW8iPT1jLnByb3AoInR5cGUiKT8oYy5wcm9wKCJjaGVja2VkIikmJihhPSExKSxiLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIiksdGhpcy4kZWxlbWVudC5hZGRDbGFzcygiYWN0aXZlIikpOiJjaGVja2JveCI9PWMucHJvcCgidHlwZSIpJiYoYy5wcm9wKCJjaGVja2VkIikhPT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSYmKGE9ITEpLHRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3MoImFjdGl2ZSIpKSxjLnByb3AoImNoZWNrZWQiLHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImFjdGl2ZSIpKSxhJiZjLnRyaWdnZXIoImNoYW5nZSIpfWVsc2UgdGhpcy4kZWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSksdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcygiYWN0aXZlIil9O3ZhciBkPWEuZm4uYnV0dG9uO2EuZm4uYnV0dG9uPWIsYS5mbi5idXR0b24uQ29uc3RydWN0b3I9YyxhLmZuLmJ1dHRvbi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYnV0dG9uPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmJ1dHRvbi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZV49ImJ1dHRvbiJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKGMudGFyZ2V0KTtkLmhhc0NsYXNzKCJidG4iKXx8KGQ9ZC5jbG9zZXN0KCIuYnRuIikpLGIuY2FsbChkLCJ0b2dnbGUiKSxhKGMudGFyZ2V0KS5pcygnaW5wdXRbdHlwZT0icmFkaW8iXScpfHxhKGMudGFyZ2V0KS5pcygnaW5wdXRbdHlwZT0iY2hlY2tib3giXScpfHxjLnByZXZlbnREZWZhdWx0KCl9KS5vbigiZm9jdXMuYnMuYnV0dG9uLmRhdGEtYXBpIGJsdXIuYnMuYnV0dG9uLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlXj0iYnV0dG9uIl0nLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmNsb3Nlc3QoIi5idG4iKS50b2dnbGVDbGFzcygiZm9jdXMiLC9eZm9jdXMoaW4pPyQvLnRlc3QoYi50eXBlKSl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmNhcm91c2VsIiksZj1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgYiYmYiksZz0ic3RyaW5nIj09dHlwZW9mIGI/YjpmLnNsaWRlO2V8fGQuZGF0YSgiYnMuY2Fyb3VzZWwiLGU9bmV3IGModGhpcyxmKSksIm51bWJlciI9PXR5cGVvZiBiP2UudG8oYik6Zz9lW2ddKCk6Zi5pbnRlcnZhbCYmZS5wYXVzZSgpLmN5Y2xlKCl9KX12YXIgYz1mdW5jdGlvbihiLGMpe3RoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLiRpbmRpY2F0b3JzPXRoaXMuJGVsZW1lbnQuZmluZCgiLmNhcm91c2VsLWluZGljYXRvcnMiKSx0aGlzLm9wdGlvbnM9Yyx0aGlzLnBhdXNlZD1udWxsLHRoaXMuc2xpZGluZz1udWxsLHRoaXMuaW50ZXJ2YWw9bnVsbCx0aGlzLiRhY3RpdmU9bnVsbCx0aGlzLiRpdGVtcz1udWxsLHRoaXMub3B0aW9ucy5rZXlib2FyZCYmdGhpcy4kZWxlbWVudC5vbigia2V5ZG93bi5icy5jYXJvdXNlbCIsYS5wcm94eSh0aGlzLmtleWRvd24sdGhpcykpLCJob3ZlciI9PXRoaXMub3B0aW9ucy5wYXVzZSYmISgib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkmJnRoaXMuJGVsZW1lbnQub24oIm1vdXNlZW50ZXIuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5wYXVzZSx0aGlzKSkub24oIm1vdXNlbGVhdmUuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5jeWNsZSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuVFJBTlNJVElPTl9EVVJBVElPTj02MDAsYy5ERUZBVUxUUz17aW50ZXJ2YWw6NWUzLHBhdXNlOiJob3ZlciIsd3JhcDohMCxrZXlib2FyZDohMH0sYy5wcm90b3R5cGUua2V5ZG93bj1mdW5jdGlvbihhKXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdChhLnRhcmdldC50YWdOYW1lKSl7c3dpdGNoKGEud2hpY2gpe2Nhc2UgMzc6dGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0aGlzLm5leHQoKTticmVhaztkZWZhdWx0OnJldHVybn1hLnByZXZlbnREZWZhdWx0KCl9fSxjLnByb3RvdHlwZS5jeWNsZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSExKSx0aGlzLmludGVydmFsJiZjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXMub3B0aW9ucy5pbnRlcnZhbCYmIXRoaXMucGF1c2VkJiYodGhpcy5pbnRlcnZhbD1zZXRJbnRlcnZhbChhLnByb3h5KHRoaXMubmV4dCx0aGlzKSx0aGlzLm9wdGlvbnMuaW50ZXJ2YWwpKSx0aGlzfSxjLnByb3RvdHlwZS5nZXRJdGVtSW5kZXg9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuJGl0ZW1zPWEucGFyZW50KCkuY2hpbGRyZW4oIi5pdGVtIiksdGhpcy4kaXRlbXMuaW5kZXgoYXx8dGhpcy4kYWN0aXZlKX0sYy5wcm90b3R5cGUuZ2V0SXRlbUZvckRpcmVjdGlvbj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZ2V0SXRlbUluZGV4KGIpLGQ9InByZXYiPT1hJiYwPT09Y3x8Im5leHQiPT1hJiZjPT10aGlzLiRpdGVtcy5sZW5ndGgtMTtpZihkJiYhdGhpcy5vcHRpb25zLndyYXApcmV0dXJuIGI7dmFyIGU9InByZXYiPT1hPy0xOjEsZj0oYytlKSV0aGlzLiRpdGVtcy5sZW5ndGg7cmV0dXJuIHRoaXMuJGl0ZW1zLmVxKGYpfSxjLnByb3RvdHlwZS50bz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5nZXRJdGVtSW5kZXgodGhpcy4kYWN0aXZlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIikpO3JldHVybiBhPnRoaXMuJGl0ZW1zLmxlbmd0aC0xfHwwPmE/dm9pZCAwOnRoaXMuc2xpZGluZz90aGlzLiRlbGVtZW50Lm9uZSgic2xpZC5icy5jYXJvdXNlbCIsZnVuY3Rpb24oKXtiLnRvKGEpfSk6Yz09YT90aGlzLnBhdXNlKCkuY3ljbGUoKTp0aGlzLnNsaWRlKGE+Yz8ibmV4dCI6InByZXYiLHRoaXMuJGl0ZW1zLmVxKGEpKX0sYy5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oYil7cmV0dXJuIGJ8fCh0aGlzLnBhdXNlZD0hMCksdGhpcy4kZWxlbWVudC5maW5kKCIubmV4dCwgLnByZXYiKS5sZW5ndGgmJmEuc3VwcG9ydC50cmFuc2l0aW9uJiYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCksdGhpcy5jeWNsZSghMCkpLHRoaXMuaW50ZXJ2YWw9Y2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKSx0aGlzfSxjLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpZGluZz92b2lkIDA6dGhpcy5zbGlkZSgibmV4dCIpfSxjLnByb3RvdHlwZS5wcmV2PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpZGluZz92b2lkIDA6dGhpcy5zbGlkZSgicHJldiIpfSxjLnByb3RvdHlwZS5zbGlkZT1mdW5jdGlvbihiLGQpe3ZhciBlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIiksZj1kfHx0aGlzLmdldEl0ZW1Gb3JEaXJlY3Rpb24oYixlKSxnPXRoaXMuaW50ZXJ2YWwsaD0ibmV4dCI9PWI/ImxlZnQiOiJyaWdodCIsaT10aGlzO2lmKGYuaGFzQ2xhc3MoImFjdGl2ZSIpKXJldHVybiB0aGlzLnNsaWRpbmc9ITE7dmFyIGo9ZlswXSxrPWEuRXZlbnQoInNsaWRlLmJzLmNhcm91c2VsIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGspLCFrLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZih0aGlzLnNsaWRpbmc9ITAsZyYmdGhpcy5wYXVzZSgpLHRoaXMuJGluZGljYXRvcnMubGVuZ3RoKXt0aGlzLiRpbmRpY2F0b3JzLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIik7dmFyIGw9YSh0aGlzLiRpbmRpY2F0b3JzLmNoaWxkcmVuKClbdGhpcy5nZXRJdGVtSW5kZXgoZildKTtsJiZsLmFkZENsYXNzKCJhY3RpdmUiKX12YXIgbT1hLkV2ZW50KCJzbGlkLmJzLmNhcm91c2VsIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7cmV0dXJuIGEuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJzbGlkZSIpPyhmLmFkZENsYXNzKGIpLGZbMF0ub2Zmc2V0V2lkdGgsZS5hZGRDbGFzcyhoKSxmLmFkZENsYXNzKGgpLGUub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7Zi5yZW1vdmVDbGFzcyhbYixoXS5qb2luKCIgIikpLmFkZENsYXNzKCJhY3RpdmUiKSxlLnJlbW92ZUNsYXNzKFsiYWN0aXZlIixoXS5qb2luKCIgIikpLGkuc2xpZGluZz0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS4kZWxlbWVudC50cmlnZ2VyKG0pfSwwKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTikpOihlLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSxmLmFkZENsYXNzKCJhY3RpdmUiKSx0aGlzLnNsaWRpbmc9ITEsdGhpcy4kZWxlbWVudC50cmlnZ2VyKG0pKSxnJiZ0aGlzLmN5Y2xlKCksdGhpc319O3ZhciBkPWEuZm4uY2Fyb3VzZWw7YS5mbi5jYXJvdXNlbD1iLGEuZm4uY2Fyb3VzZWwuQ29uc3RydWN0b3I9YyxhLmZuLmNhcm91c2VsLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5jYXJvdXNlbD1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe3ZhciBkLGU9YSh0aGlzKSxmPWEoZS5hdHRyKCJkYXRhLXRhcmdldCIpfHwoZD1lLmF0dHIoImhyZWYiKSkmJmQucmVwbGFjZSgvLiooPz0jW15cc10rJCkvLCIiKSk7aWYoZi5oYXNDbGFzcygiY2Fyb3VzZWwiKSl7dmFyIGc9YS5leHRlbmQoe30sZi5kYXRhKCksZS5kYXRhKCkpLGg9ZS5hdHRyKCJkYXRhLXNsaWRlLXRvIik7aCYmKGcuaW50ZXJ2YWw9ITEpLGIuY2FsbChmLGcpLGgmJmYuZGF0YSgiYnMuY2Fyb3VzZWwiKS50byhoKSxjLnByZXZlbnREZWZhdWx0KCl9fTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMuY2Fyb3VzZWwuZGF0YS1hcGkiLCJbZGF0YS1zbGlkZV0iLGUpLm9uKCJjbGljay5icy5jYXJvdXNlbC5kYXRhLWFwaSIsIltkYXRhLXNsaWRlLXRvXSIsZSksYSh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe2EoJ1tkYXRhLXJpZGU9ImNhcm91c2VsIl0nKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKTtiLmNhbGwoYyxjLmRhdGEoKSl9KX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXt2YXIgYyxkPWIuYXR0cigiZGF0YS10YXJnZXQiKXx8KGM9Yi5hdHRyKCJocmVmIikpJiZjLnJlcGxhY2UoLy4qKD89I1teXHNdKyQpLywiIik7cmV0dXJuIGEoZCl9ZnVuY3Rpb24gYyhiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKSxlPWMuZGF0YSgiYnMuY29sbGFwc2UiKSxmPWEuZXh0ZW5kKHt9LGQuREVGQVVMVFMsYy5kYXRhKCksIm9iamVjdCI9PXR5cGVvZiBiJiZiKTshZSYmZi50b2dnbGUmJi9zaG93fGhpZGUvLnRlc3QoYikmJihmLnRvZ2dsZT0hMSksZXx8Yy5kYXRhKCJicy5jb2xsYXBzZSIsZT1uZXcgZCh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBkPWZ1bmN0aW9uKGIsYyl7dGhpcy4kZWxlbWVudD1hKGIpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxkLkRFRkFVTFRTLGMpLHRoaXMuJHRyaWdnZXI9YSgnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2hyZWY9IiMnK2IuaWQrJyJdLFtkYXRhLXRvZ2dsZT0iY29sbGFwc2UiXVtkYXRhLXRhcmdldD0iIycrYi5pZCsnIl0nKSx0aGlzLnRyYW5zaXRpb25pbmc9bnVsbCx0aGlzLm9wdGlvbnMucGFyZW50P3RoaXMuJHBhcmVudD10aGlzLmdldFBhcmVudCgpOnRoaXMuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKHRoaXMuJGVsZW1lbnQsdGhpcy4kdHJpZ2dlciksdGhpcy5vcHRpb25zLnRvZ2dsZSYmdGhpcy50b2dnbGUoKX07ZC5WRVJTSU9OPSIzLjMuNSIsZC5UUkFOU0lUSU9OX0RVUkFUSU9OPTM1MCxkLkRFRkFVTFRTPXt0b2dnbGU6ITB9LGQucHJvdG90eXBlLmRpbWVuc2lvbj1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoIndpZHRoIik7cmV0dXJuIGE/IndpZHRoIjoiaGVpZ2h0In0sZC5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJiF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJpbiIpKXt2YXIgYixlPXRoaXMuJHBhcmVudCYmdGhpcy4kcGFyZW50LmNoaWxkcmVuKCIucGFuZWwiKS5jaGlsZHJlbigiLmluLCAuY29sbGFwc2luZyIpO2lmKCEoZSYmZS5sZW5ndGgmJihiPWUuZGF0YSgiYnMuY29sbGFwc2UiKSxiJiZiLnRyYW5zaXRpb25pbmcpKSl7dmFyIGY9YS5FdmVudCgic2hvdy5icy5jb2xsYXBzZSIpO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcihmKSwhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7ZSYmZS5sZW5ndGgmJihjLmNhbGwoZSwiaGlkZSIpLGJ8fGUuZGF0YSgiYnMuY29sbGFwc2UiLG51bGwpKTt2YXIgZz10aGlzLmRpbWVuc2lvbigpO3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNlIikuYWRkQ2xhc3MoImNvbGxhcHNpbmciKVtnXSgwKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksdGhpcy4kdHJpZ2dlci5yZW1vdmVDbGFzcygiY29sbGFwc2VkIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITApLHRoaXMudHJhbnNpdGlvbmluZz0xO3ZhciBoPWZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygiY29sbGFwc2luZyIpLmFkZENsYXNzKCJjb2xsYXBzZSBpbiIpW2ddKCIiKSx0aGlzLnRyYW5zaXRpb25pbmc9MCx0aGlzLiRlbGVtZW50LnRyaWdnZXIoInNob3duLmJzLmNvbGxhcHNlIil9O2lmKCFhLnN1cHBvcnQudHJhbnNpdGlvbilyZXR1cm4gaC5jYWxsKHRoaXMpO3ZhciBpPWEuY2FtZWxDYXNlKFsic2Nyb2xsIixnXS5qb2luKCItIikpO3RoaXMuJGVsZW1lbnQub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkoaCx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKVtnXSh0aGlzLiRlbGVtZW50WzBdW2ldKX19fX0sZC5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIikpe3ZhciBiPWEuRXZlbnQoImhpZGUuYnMuY29sbGFwc2UiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoYiksIWIuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBjPXRoaXMuZGltZW5zaW9uKCk7dGhpcy4kZWxlbWVudFtjXSh0aGlzLiRlbGVtZW50W2NdKCkpWzBdLm9mZnNldEhlaWdodCx0aGlzLiRlbGVtZW50LmFkZENsYXNzKCJjb2xsYXBzaW5nIikucmVtb3ZlQ2xhc3MoImNvbGxhcHNlIGluIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLHRoaXMuJHRyaWdnZXIuYWRkQ2xhc3MoImNvbGxhcHNlZCIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCExKSx0aGlzLnRyYW5zaXRpb25pbmc9MTt2YXIgZT1mdW5jdGlvbigpe3RoaXMudHJhbnNpdGlvbmluZz0wLHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNpbmciKS5hZGRDbGFzcygiY29sbGFwc2UiKS50cmlnZ2VyKCJoaWRkZW4uYnMuY29sbGFwc2UiKX07cmV0dXJuIGEuc3VwcG9ydC50cmFuc2l0aW9uP3ZvaWQgdGhpcy4kZWxlbWVudFtjXSgwKS5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYS5wcm94eShlLHRoaXMpKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChkLlRSQU5TSVRJT05fRFVSQVRJT04pOmUuY2FsbCh0aGlzKX19fSxkLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oKXt0aGlzW3RoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIik/ImhpZGUiOiJzaG93Il0oKX0sZC5wcm90b3R5cGUuZ2V0UGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcy5vcHRpb25zLnBhcmVudCkuZmluZCgnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2RhdGEtcGFyZW50PSInK3RoaXMub3B0aW9ucy5wYXJlbnQrJyJdJykuZWFjaChhLnByb3h5KGZ1bmN0aW9uKGMsZCl7dmFyIGU9YShkKTt0aGlzLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhiKGUpLGUpfSx0aGlzKSkuZW5kKCl9LGQucHJvdG90eXBlLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuaGFzQ2xhc3MoImluIik7YS5hdHRyKCJhcmlhLWV4cGFuZGVkIixjKSxiLnRvZ2dsZUNsYXNzKCJjb2xsYXBzZWQiLCFjKS5hdHRyKCJhcmlhLWV4cGFuZGVkIixjKX07dmFyIGU9YS5mbi5jb2xsYXBzZTthLmZuLmNvbGxhcHNlPWMsYS5mbi5jb2xsYXBzZS5Db25zdHJ1Y3Rvcj1kLGEuZm4uY29sbGFwc2Uubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmNvbGxhcHNlPWUsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmNvbGxhcHNlLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdJyxmdW5jdGlvbihkKXt2YXIgZT1hKHRoaXMpO2UuYXR0cigiZGF0YS10YXJnZXQiKXx8ZC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBmPWIoZSksZz1mLmRhdGEoImJzLmNvbGxhcHNlIiksaD1nPyJ0b2dnbGUiOmUuZGF0YSgpO2MuY2FsbChmLGgpfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3ZhciBjPWIuYXR0cigiZGF0YS10YXJnZXQiKTtjfHwoYz1iLmF0dHIoImhyZWYiKSxjPWMmJi8jW0EtWmEtel0vLnRlc3QoYykmJmMucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGQ9YyYmYShjKTtyZXR1cm4gZCYmZC5sZW5ndGg/ZDpiLnBhcmVudCgpfWZ1bmN0aW9uIGMoYyl7YyYmMz09PWMud2hpY2h8fChhKGUpLnJlbW92ZSgpLGEoZikuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1iKGQpLGY9e3JlbGF0ZWRUYXJnZXQ6dGhpc307ZS5oYXNDbGFzcygib3BlbiIpJiYoYyYmImNsaWNrIj09Yy50eXBlJiYvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGMudGFyZ2V0LnRhZ05hbWUpJiZhLmNvbnRhaW5zKGVbMF0sYy50YXJnZXQpfHwoZS50cmlnZ2VyKGM9YS5FdmVudCgiaGlkZS5icy5kcm9wZG93biIsZikpLGMuaXNEZWZhdWx0UHJldmVudGVkKCl8fChkLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLGUucmVtb3ZlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJoaWRkZW4uYnMuZHJvcGRvd24iLGYpKSkpfSkpfWZ1bmN0aW9uIGQoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoImJzLmRyb3Bkb3duIik7ZHx8Yy5kYXRhKCJicy5kcm9wZG93biIsZD1uZXcgZyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZkW2JdLmNhbGwoYyl9KX12YXIgZT0iLmRyb3Bkb3duLWJhY2tkcm9wIixmPSdbZGF0YS10b2dnbGU9ImRyb3Bkb3duIl0nLGc9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2suYnMuZHJvcGRvd24iLHRoaXMudG9nZ2xlKX07Zy5WRVJTSU9OPSIzLjMuNSIsZy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKGQpe3ZhciBlPWEodGhpcyk7aWYoIWUuaXMoIi5kaXNhYmxlZCwgOmRpc2FibGVkIikpe3ZhciBmPWIoZSksZz1mLmhhc0NsYXNzKCJvcGVuIik7aWYoYygpLCFnKXsib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmIWYuY2xvc2VzdCgiLm5hdmJhci1uYXYiKS5sZW5ndGgmJmEoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmFkZENsYXNzKCJkcm9wZG93bi1iYWNrZHJvcCIpLmluc2VydEFmdGVyKGEodGhpcykpLm9uKCJjbGljayIsYyk7dmFyIGg9e3JlbGF0ZWRUYXJnZXQ6dGhpc307aWYoZi50cmlnZ2VyKGQ9YS5FdmVudCgic2hvdy5icy5kcm9wZG93biIsaCkpLGQuaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO2UudHJpZ2dlcigiZm9jdXMiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwidHJ1ZSIpLGYudG9nZ2xlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJzaG93bi5icy5kcm9wZG93biIsaCl9cmV0dXJuITF9fSxnLnByb3RvdHlwZS5rZXlkb3duPWZ1bmN0aW9uKGMpe2lmKC8oMzh8NDB8Mjd8MzIpLy50ZXN0KGMud2hpY2gpJiYhL2lucHV0fHRleHRhcmVhL2kudGVzdChjLnRhcmdldC50YWdOYW1lKSl7dmFyIGQ9YSh0aGlzKTtpZihjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKSwhZC5pcygiLmRpc2FibGVkLCA6ZGlzYWJsZWQiKSl7dmFyIGU9YihkKSxnPWUuaGFzQ2xhc3MoIm9wZW4iKTtpZighZyYmMjchPWMud2hpY2h8fGcmJjI3PT1jLndoaWNoKXJldHVybiAyNz09Yy53aGljaCYmZS5maW5kKGYpLnRyaWdnZXIoImZvY3VzIiksZC50cmlnZ2VyKCJjbGljayIpO3ZhciBoPSIgbGk6bm90KC5kaXNhYmxlZCk6dmlzaWJsZSBhIixpPWUuZmluZCgiLmRyb3Bkb3duLW1lbnUiK2gpO2lmKGkubGVuZ3RoKXt2YXIgaj1pLmluZGV4KGMudGFyZ2V0KTszOD09Yy53aGljaCYmaj4wJiZqLS0sNDA9PWMud2hpY2gmJmo8aS5sZW5ndGgtMSYmaisrLH5qfHwoaj0wKSxpLmVxKGopLnRyaWdnZXIoImZvY3VzIil9fX19O3ZhciBoPWEuZm4uZHJvcGRvd247YS5mbi5kcm9wZG93bj1kLGEuZm4uZHJvcGRvd24uQ29uc3RydWN0b3I9ZyxhLmZuLmRyb3Bkb3duLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5kcm9wZG93bj1oLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaSIsYykub24oImNsaWNrLmJzLmRyb3Bkb3duLmRhdGEtYXBpIiwiLmRyb3Bkb3duIGZvcm0iLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9KS5vbigiY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGkiLGYsZy5wcm90b3R5cGUudG9nZ2xlKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsZixnLnByb3RvdHlwZS5rZXlkb3duKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsIi5kcm9wZG93bi1tZW51IixnLnByb3RvdHlwZS5rZXlkb3duKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYixkKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9YSh0aGlzKSxmPWUuZGF0YSgiYnMubW9kYWwiKSxnPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZS5kYXRhKCksIm9iamVjdCI9PXR5cGVvZiBiJiZiKTtmfHxlLmRhdGEoImJzLm1vZGFsIixmPW5ldyBjKHRoaXMsZykpLCJzdHJpbmciPT10eXBlb2YgYj9mW2JdKGQpOmcuc2hvdyYmZi5zaG93KGQpfSl9dmFyIGM9ZnVuY3Rpb24oYixjKXt0aGlzLm9wdGlvbnM9Yyx0aGlzLiRib2R5PWEoZG9jdW1lbnQuYm9keSksdGhpcy4kZWxlbWVudD1hKGIpLHRoaXMuJGRpYWxvZz10aGlzLiRlbGVtZW50LmZpbmQoIi5tb2RhbC1kaWFsb2ciKSx0aGlzLiRiYWNrZHJvcD1udWxsLHRoaXMuaXNTaG93bj1udWxsLHRoaXMub3JpZ2luYWxCb2R5UGFkPW51bGwsdGhpcy5zY3JvbGxiYXJXaWR0aD0wLHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLm9wdGlvbnMucmVtb3RlJiZ0aGlzLiRlbGVtZW50LmZpbmQoIi5tb2RhbC1jb250ZW50IikubG9hZCh0aGlzLm9wdGlvbnMucmVtb3RlLGEucHJveHkoZnVuY3Rpb24oKXt0aGlzLiRlbGVtZW50LnRyaWdnZXIoImxvYWRlZC5icy5tb2RhbCIpfSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuVFJBTlNJVElPTl9EVVJBVElPTj0zMDAsYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLkRFRkFVTFRTPXtiYWNrZHJvcDohMCxrZXlib2FyZDohMCxzaG93OiEwfSxjLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3coYSl9LGMucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oYil7dmFyIGQ9dGhpcyxlPWEuRXZlbnQoInNob3cuYnMubW9kYWwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTt0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSksdGhpcy5pc1Nob3dufHxlLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwodGhpcy5pc1Nob3duPSEwLHRoaXMuY2hlY2tTY3JvbGxiYXIoKSx0aGlzLnNldFNjcm9sbGJhcigpLHRoaXMuJGJvZHkuYWRkQ2xhc3MoIm1vZGFsLW9wZW4iKSx0aGlzLmVzY2FwZSgpLHRoaXMucmVzaXplKCksdGhpcy4kZWxlbWVudC5vbigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIsJ1tkYXRhLWRpc21pc3M9Im1vZGFsIl0nLGEucHJveHkodGhpcy5oaWRlLHRoaXMpKSx0aGlzLiRkaWFsb2cub24oIm1vdXNlZG93bi5kaXNtaXNzLmJzLm1vZGFsIixmdW5jdGlvbigpe2QuJGVsZW1lbnQub25lKCJtb3VzZXVwLmRpc21pc3MuYnMubW9kYWwiLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmlzKGQuJGVsZW1lbnQpJiYoZC5pZ25vcmVCYWNrZHJvcENsaWNrPSEwKX0pfSksdGhpcy5iYWNrZHJvcChmdW5jdGlvbigpe3ZhciBlPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZkLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik7ZC4kZWxlbWVudC5wYXJlbnQoKS5sZW5ndGh8fGQuJGVsZW1lbnQuYXBwZW5kVG8oZC4kYm9keSksZC4kZWxlbWVudC5zaG93KCkuc2Nyb2xsVG9wKDApLGQuYWRqdXN0RGlhbG9nKCksZSYmZC4kZWxlbWVudFswXS5vZmZzZXRXaWR0aCxkLiRlbGVtZW50LmFkZENsYXNzKCJpbiIpLGQuZW5mb3JjZUZvY3VzKCk7dmFyIGY9YS5FdmVudCgic2hvd24uYnMubW9kYWwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTtlP2QuJGRpYWxvZy5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZnVuY3Rpb24oKXtkLiRlbGVtZW50LnRyaWdnZXIoImZvY3VzIikudHJpZ2dlcihmKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZC4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpLnRyaWdnZXIoZil9KSl9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7YiYmYi5wcmV2ZW50RGVmYXVsdCgpLGI9YS5FdmVudCgiaGlkZS5icy5tb2RhbCIpLHRoaXMuJGVsZW1lbnQudHJpZ2dlcihiKSx0aGlzLmlzU2hvd24mJiFiLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYodGhpcy5pc1Nob3duPSExLHRoaXMuZXNjYXBlKCksdGhpcy5yZXNpemUoKSxhKGRvY3VtZW50KS5vZmYoImZvY3VzaW4uYnMubW9kYWwiKSx0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJpbiIpLm9mZigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIpLm9mZigibW91c2V1cC5kaXNtaXNzLmJzLm1vZGFsIiksdGhpcy4kZGlhbG9nLm9mZigibW91c2Vkb3duLmRpc21pc3MuYnMubW9kYWwiKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiZmFkZSIpP3RoaXMuJGVsZW1lbnQub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkodGhpcy5oaWRlTW9kYWwsdGhpcykpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6dGhpcy5oaWRlTW9kYWwoKSl9LGMucHJvdG90eXBlLmVuZm9yY2VGb2N1cz1mdW5jdGlvbigpe2EoZG9jdW1lbnQpLm9mZigiZm9jdXNpbi5icy5tb2RhbCIpLm9uKCJmb2N1c2luLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpe3RoaXMuJGVsZW1lbnRbMF09PT1hLnRhcmdldHx8dGhpcy4kZWxlbWVudC5oYXMoYS50YXJnZXQpLmxlbmd0aHx8dGhpcy4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpfSx0aGlzKSl9LGMucHJvdG90eXBlLmVzY2FwZT1mdW5jdGlvbigpe3RoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmtleWJvYXJkP3RoaXMuJGVsZW1lbnQub24oImtleWRvd24uZGlzbWlzcy5icy5tb2RhbCIsYS5wcm94eShmdW5jdGlvbihhKXsyNz09YS53aGljaCYmdGhpcy5oaWRlKCl9LHRoaXMpKTp0aGlzLmlzU2hvd258fHRoaXMuJGVsZW1lbnQub2ZmKCJrZXlkb3duLmRpc21pc3MuYnMubW9kYWwiKX0sYy5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKCl7dGhpcy5pc1Nob3duP2Eod2luZG93KS5vbigicmVzaXplLmJzLm1vZGFsIixhLnByb3h5KHRoaXMuaGFuZGxlVXBkYXRlLHRoaXMpKTphKHdpbmRvdykub2ZmKCJyZXNpemUuYnMubW9kYWwiKX0sYy5wcm90b3R5cGUuaGlkZU1vZGFsPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLiRlbGVtZW50LmhpZGUoKSx0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uKCl7YS4kYm9keS5yZW1vdmVDbGFzcygibW9kYWwtb3BlbiIpLGEucmVzZXRBZGp1c3RtZW50cygpLGEucmVzZXRTY3JvbGxiYXIoKSxhLiRlbGVtZW50LnRyaWdnZXIoImhpZGRlbi5icy5tb2RhbCIpfSl9LGMucHJvdG90eXBlLnJlbW92ZUJhY2tkcm9wPWZ1bmN0aW9uKCl7dGhpcy4kYmFja2Ryb3AmJnRoaXMuJGJhY2tkcm9wLnJlbW92ZSgpLHRoaXMuJGJhY2tkcm9wPW51bGx9LGMucHJvdG90eXBlLmJhY2tkcm9wPWZ1bmN0aW9uKGIpe3ZhciBkPXRoaXMsZT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik/ImZhZGUiOiIiO2lmKHRoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmJhY2tkcm9wKXt2YXIgZj1hLnN1cHBvcnQudHJhbnNpdGlvbiYmZTtpZih0aGlzLiRiYWNrZHJvcD1hKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5hZGRDbGFzcygibW9kYWwtYmFja2Ryb3AgIitlKS5hcHBlbmRUbyh0aGlzLiRib2R5KSx0aGlzLiRlbGVtZW50Lm9uKCJjbGljay5kaXNtaXNzLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s/dm9pZCh0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s9ITEpOnZvaWQoYS50YXJnZXQ9PT1hLmN1cnJlbnRUYXJnZXQmJigic3RhdGljIj09dGhpcy5vcHRpb25zLmJhY2tkcm9wP3RoaXMuJGVsZW1lbnRbMF0uZm9jdXMoKTp0aGlzLmhpZGUoKSkpfSx0aGlzKSksZiYmdGhpcy4kYmFja2Ryb3BbMF0ub2Zmc2V0V2lkdGgsdGhpcy4kYmFja2Ryb3AuYWRkQ2xhc3MoImluIiksIWIpcmV0dXJuO2Y/dGhpcy4kYmFja2Ryb3Aub25lKCJic1RyYW5zaXRpb25FbmQiLGIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTik6YigpfWVsc2UgaWYoIXRoaXMuaXNTaG93biYmdGhpcy4kYmFja2Ryb3Ape3RoaXMuJGJhY2tkcm9wLnJlbW92ZUNsYXNzKCJpbiIpO3ZhciBnPWZ1bmN0aW9uKCl7ZC5yZW1vdmVCYWNrZHJvcCgpLGImJmIoKX07YS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImZhZGUiKT90aGlzLiRiYWNrZHJvcC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZykuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKTpnKCl9ZWxzZSBiJiZiKCl9LGMucHJvdG90eXBlLmhhbmRsZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuYWRqdXN0RGlhbG9nKCl9LGMucHJvdG90eXBlLmFkanVzdERpYWxvZz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnRbMF0uc2Nyb2xsSGVpZ2h0PmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7dGhpcy4kZWxlbWVudC5jc3Moe3BhZGRpbmdMZWZ0OiF0aGlzLmJvZHlJc092ZXJmbG93aW5nJiZhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6IiIscGFkZGluZ1JpZ2h0OnRoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJiFhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6IiJ9KX0sYy5wcm90b3R5cGUucmVzZXRBZGp1c3RtZW50cz1mdW5jdGlvbigpe3RoaXMuJGVsZW1lbnQuY3NzKHtwYWRkaW5nTGVmdDoiIixwYWRkaW5nUmlnaHQ6IiJ9KX0sYy5wcm90b3R5cGUuY2hlY2tTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cuaW5uZXJXaWR0aDtpZighYSl7dmFyIGI9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2E9Yi5yaWdodC1NYXRoLmFicyhiLmxlZnQpfXRoaXMuYm9keUlzT3ZlcmZsb3dpbmc9ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDxhLHRoaXMuc2Nyb2xsYmFyV2lkdGg9dGhpcy5tZWFzdXJlU2Nyb2xsYmFyKCl9LGMucHJvdG90eXBlLnNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3ZhciBhPXBhcnNlSW50KHRoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0Iil8fDAsMTApO3RoaXMub3JpZ2luYWxCb2R5UGFkPWRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0fHwiIix0aGlzLmJvZHlJc092ZXJmbG93aW5nJiZ0aGlzLiRib2R5LmNzcygicGFkZGluZy1yaWdodCIsYSt0aGlzLnNjcm9sbGJhcldpZHRoKX0sYy5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXt0aGlzLiRib2R5LmNzcygicGFkZGluZy1yaWdodCIsdGhpcy5vcmlnaW5hbEJvZHlQYWQpfSxjLnByb3RvdHlwZS5tZWFzdXJlU2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9Im1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIix0aGlzLiRib2R5LmFwcGVuZChhKTt2YXIgYj1hLm9mZnNldFdpZHRoLWEuY2xpZW50V2lkdGg7cmV0dXJuIHRoaXMuJGJvZHlbMF0ucmVtb3ZlQ2hpbGQoYSksYn07dmFyIGQ9YS5mbi5tb2RhbDthLmZuLm1vZGFsPWIsYS5mbi5tb2RhbC5Db25zdHJ1Y3Rvcj1jLGEuZm4ubW9kYWwubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLm1vZGFsPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLm1vZGFsLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJtb2RhbCJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKHRoaXMpLGU9ZC5hdHRyKCJocmVmIiksZj1hKGQuYXR0cigiZGF0YS10YXJnZXQiKXx8ZSYmZS5yZXBsYWNlKC8uKig/PSNbXlxzXSskKS8sIiIpKSxnPWYuZGF0YSgiYnMubW9kYWwiKT8idG9nZ2xlIjphLmV4dGVuZCh7cmVtb3RlOiEvIy8udGVzdChlKSYmZX0sZi5kYXRhKCksZC5kYXRhKCkpO2QuaXMoImEiKSYmYy5wcmV2ZW50RGVmYXVsdCgpLGYub25lKCJzaG93LmJzLm1vZGFsIixmdW5jdGlvbihhKXthLmlzRGVmYXVsdFByZXZlbnRlZCgpfHxmLm9uZSgiaGlkZGVuLmJzLm1vZGFsIixmdW5jdGlvbigpe2QuaXMoIjp2aXNpYmxlIikmJmQudHJpZ2dlcigiZm9jdXMiKX0pfSksYi5jYWxsKGYsZyx0aGlzKX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMudG9vbHRpcCIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiOyhlfHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChiKSkmJihlfHxkLmRhdGEoImJzLnRvb2x0aXAiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9bnVsbCx0aGlzLm9wdGlvbnM9bnVsbCx0aGlzLmVuYWJsZWQ9bnVsbCx0aGlzLnRpbWVvdXQ9bnVsbCx0aGlzLmhvdmVyU3RhdGU9bnVsbCx0aGlzLiRlbGVtZW50PW51bGwsdGhpcy5pblN0YXRlPW51bGwsdGhpcy5pbml0KCJ0b29sdGlwIixhLGIpfTtjLlZFUlNJT049IjMuMy41IixjLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGMuREVGQVVMVFM9e2FuaW1hdGlvbjohMCxwbGFjZW1lbnQ6InRvcCIsc2VsZWN0b3I6ITEsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InRvb2x0aXAiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9InRvb2x0aXAtYXJyb3ciPjwvZGl2PjxkaXYgY2xhc3M9InRvb2x0aXAtaW5uZXIiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjoiaG92ZXIgZm9jdXMiLHRpdGxlOiIiLGRlbGF5OjAsaHRtbDohMSxjb250YWluZXI6ITEsdmlld3BvcnQ6e3NlbGVjdG9yOiJib2R5IixwYWRkaW5nOjB9fSxjLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGIsYyxkKXtpZih0aGlzLmVuYWJsZWQ9ITAsdGhpcy50eXBlPWIsdGhpcy4kZWxlbWVudD1hKGMpLHRoaXMub3B0aW9ucz10aGlzLmdldE9wdGlvbnMoZCksdGhpcy4kdmlld3BvcnQ9dGhpcy5vcHRpb25zLnZpZXdwb3J0JiZhKGEuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMudmlld3BvcnQpP3RoaXMub3B0aW9ucy52aWV3cG9ydC5jYWxsKHRoaXMsdGhpcy4kZWxlbWVudCk6dGhpcy5vcHRpb25zLnZpZXdwb3J0LnNlbGVjdG9yfHx0aGlzLm9wdGlvbnMudmlld3BvcnQpLHRoaXMuaW5TdGF0ZT17Y2xpY2s6ITEsaG92ZXI6ITEsZm9jdXM6ITF9LHRoaXMuJGVsZW1lbnRbMF1pbnN0YW5jZW9mIGRvY3VtZW50LmNvbnN0cnVjdG9yJiYhdGhpcy5vcHRpb25zLnNlbGVjdG9yKXRocm93IG5ldyBFcnJvcigiYHNlbGVjdG9yYCBvcHRpb24gbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbml0aWFsaXppbmcgIit0aGlzLnR5cGUrIiBvbiB0aGUgd2luZG93LmRvY3VtZW50IG9iamVjdCEiKTtmb3IodmFyIGU9dGhpcy5vcHRpb25zLnRyaWdnZXIuc3BsaXQoIiAiKSxmPWUubGVuZ3RoO2YtLTspe3ZhciBnPWVbZl07aWYoImNsaWNrIj09Zyl0aGlzLiRlbGVtZW50Lm9uKCJjbGljay4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLnRvZ2dsZSx0aGlzKSk7ZWxzZSBpZigibWFudWFsIiE9Zyl7dmFyIGg9ImhvdmVyIj09Zz8ibW91c2VlbnRlciI6ImZvY3VzaW4iLGk9ImhvdmVyIj09Zz8ibW91c2VsZWF2ZSI6ImZvY3Vzb3V0Ijt0aGlzLiRlbGVtZW50Lm9uKGgrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmVudGVyLHRoaXMpKSx0aGlzLiRlbGVtZW50Lm9uKGkrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmxlYXZlLHRoaXMpKX19dGhpcy5vcHRpb25zLnNlbGVjdG9yP3RoaXMuX29wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5vcHRpb25zLHt0cmlnZ2VyOiJtYW51YWwiLHNlbGVjdG9yOiIifSk6dGhpcy5maXhUaXRsZSgpfSxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5nZXRPcHRpb25zPWZ1bmN0aW9uKGIpe3JldHVybiBiPWEuZXh0ZW5kKHt9LHRoaXMuZ2V0RGVmYXVsdHMoKSx0aGlzLiRlbGVtZW50LmRhdGEoKSxiKSxiLmRlbGF5JiYibnVtYmVyIj09dHlwZW9mIGIuZGVsYXkmJihiLmRlbGF5PXtzaG93OmIuZGVsYXksaGlkZTpiLmRlbGF5fSksYn0sYy5wcm90b3R5cGUuZ2V0RGVsZWdhdGVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGI9e30sYz10aGlzLmdldERlZmF1bHRzKCk7cmV0dXJuIHRoaXMuX29wdGlvbnMmJmEuZWFjaCh0aGlzLl9vcHRpb25zLGZ1bmN0aW9uKGEsZCl7Y1thXSE9ZCYmKGJbYV09ZCl9KSxifSxjLnByb3RvdHlwZS5lbnRlcj1mdW5jdGlvbihiKXt2YXIgYz1iIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj9iOmEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSk7cmV0dXJuIGN8fChjPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGIuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxhKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsYykpLGIgaW5zdGFuY2VvZiBhLkV2ZW50JiYoYy5pblN0YXRlWyJmb2N1c2luIj09Yi50eXBlPyJmb2N1cyI6ImhvdmVyIl09ITApLGMudGlwKCkuaGFzQ2xhc3MoImluIil8fCJpbiI9PWMuaG92ZXJTdGF0ZT92b2lkKGMuaG92ZXJTdGF0ZT0iaW4iKTooY2xlYXJUaW1lb3V0KGMudGltZW91dCksYy5ob3ZlclN0YXRlPSJpbiIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuc2hvdz92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ImluIj09Yy5ob3ZlclN0YXRlJiZjLnNob3coKX0sYy5vcHRpb25zLmRlbGF5LnNob3cpKTpjLnNob3coKSl9LGMucHJvdG90eXBlLmlzSW5TdGF0ZVRydWU9ZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gdGhpcy5pblN0YXRlKWlmKHRoaXMuaW5TdGF0ZVthXSlyZXR1cm4hMDtyZXR1cm4hMX0sYy5wcm90b3R5cGUubGVhdmU9ZnVuY3Rpb24oYil7dmFyIGM9YiBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3I/YjphKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUpO3JldHVybiBjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlLGMpKSxiIGluc3RhbmNlb2YgYS5FdmVudCYmKGMuaW5TdGF0ZVsiZm9jdXNvdXQiPT1iLnR5cGU/ImZvY3VzIjoiaG92ZXIiXT0hMSksYy5pc0luU3RhdGVUcnVlKCk/dm9pZCAwOihjbGVhclRpbWVvdXQoYy50aW1lb3V0KSxjLmhvdmVyU3RhdGU9Im91dCIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuaGlkZT92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Im91dCI9PWMuaG92ZXJTdGF0ZSYmYy5oaWRlKCl9LGMub3B0aW9ucy5kZWxheS5oaWRlKSk6Yy5oaWRlKCkpfSxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9YS5FdmVudCgic2hvdy5icy4iK3RoaXMudHlwZSk7aWYodGhpcy5oYXNDb250ZW50KCkmJnRoaXMuZW5hYmxlZCl7dGhpcy4kZWxlbWVudC50cmlnZ2VyKGIpO3ZhciBkPWEuY29udGFpbnModGhpcy4kZWxlbWVudFswXS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0aGlzLiRlbGVtZW50WzBdKTtpZihiLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwhZClyZXR1cm47dmFyIGU9dGhpcyxmPXRoaXMudGlwKCksZz10aGlzLmdldFVJRCh0aGlzLnR5cGUpO3RoaXMuc2V0Q29udGVudCgpLGYuYXR0cigiaWQiLGcpLHRoaXMuJGVsZW1lbnQuYXR0cigiYXJpYS1kZXNjcmliZWRieSIsZyksdGhpcy5vcHRpb25zLmFuaW1hdGlvbiYmZi5hZGRDbGFzcygiZmFkZSIpO3ZhciBoPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMucGxhY2VtZW50P3RoaXMub3B0aW9ucy5wbGFjZW1lbnQuY2FsbCh0aGlzLGZbMF0sdGhpcy4kZWxlbWVudFswXSk6dGhpcy5vcHRpb25zLnBsYWNlbWVudCxpPS9ccz9hdXRvP1xzPy9pLGo9aS50ZXN0KGgpO2omJihoPWgucmVwbGFjZShpLCIiKXx8InRvcCIpLGYuZGV0YWNoKCkuY3NzKHt0b3A6MCxsZWZ0OjAsZGlzcGxheToiYmxvY2sifSkuYWRkQ2xhc3MoaCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsdGhpcyksdGhpcy5vcHRpb25zLmNvbnRhaW5lcj9mLmFwcGVuZFRvKHRoaXMub3B0aW9ucy5jb250YWluZXIpOmYuaW5zZXJ0QWZ0ZXIodGhpcy4kZWxlbWVudCksdGhpcy4kZWxlbWVudC50cmlnZ2VyKCJpbnNlcnRlZC5icy4iK3RoaXMudHlwZSk7dmFyIGs9dGhpcy5nZXRQb3NpdGlvbigpLGw9ZlswXS5vZmZzZXRXaWR0aCxtPWZbMF0ub2Zmc2V0SGVpZ2h0O2lmKGope3ZhciBuPWgsbz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtoPSJib3R0b20iPT1oJiZrLmJvdHRvbSttPm8uYm90dG9tPyJ0b3AiOiJ0b3AiPT1oJiZrLnRvcC1tPG8udG9wPyJib3R0b20iOiJyaWdodCI9PWgmJmsucmlnaHQrbD5vLndpZHRoPyJsZWZ0IjoibGVmdCI9PWgmJmsubGVmdC1sPG8ubGVmdD8icmlnaHQiOmgsZi5yZW1vdmVDbGFzcyhuKS5hZGRDbGFzcyhoKX12YXIgcD10aGlzLmdldENhbGN1bGF0ZWRPZmZzZXQoaCxrLGwsbSk7dGhpcy5hcHBseVBsYWNlbWVudChwLGgpO3ZhciBxPWZ1bmN0aW9uKCl7dmFyIGE9ZS5ob3ZlclN0YXRlO2UuJGVsZW1lbnQudHJpZ2dlcigic2hvd24uYnMuIitlLnR5cGUpLGUuaG92ZXJTdGF0ZT1udWxsLCJvdXQiPT1hJiZlLmxlYXZlKGUpfTthLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kdGlwLmhhc0NsYXNzKCJmYWRlIik/Zi5vbmUoImJzVHJhbnNpdGlvbkVuZCIscSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpxKCl9fSxjLnByb3RvdHlwZS5hcHBseVBsYWNlbWVudD1mdW5jdGlvbihiLGMpe3ZhciBkPXRoaXMudGlwKCksZT1kWzBdLm9mZnNldFdpZHRoLGY9ZFswXS5vZmZzZXRIZWlnaHQsZz1wYXJzZUludChkLmNzcygibWFyZ2luLXRvcCIpLDEwKSxoPXBhcnNlSW50KGQuY3NzKCJtYXJnaW4tbGVmdCIpLDEwKTtpc05hTihnKSYmKGc9MCksaXNOYU4oaCkmJihoPTApLGIudG9wKz1nLGIubGVmdCs9aCxhLm9mZnNldC5zZXRPZmZzZXQoZFswXSxhLmV4dGVuZCh7dXNpbmc6ZnVuY3Rpb24oYSl7ZC5jc3Moe3RvcDpNYXRoLnJvdW5kKGEudG9wKSxsZWZ0Ok1hdGgucm91bmQoYS5sZWZ0KX0pfX0sYiksMCksZC5hZGRDbGFzcygiaW4iKTt2YXIgaT1kWzBdLm9mZnNldFdpZHRoLGo9ZFswXS5vZmZzZXRIZWlnaHQ7InRvcCI9PWMmJmohPWYmJihiLnRvcD1iLnRvcCtmLWopO3ZhciBrPXRoaXMuZ2V0Vmlld3BvcnRBZGp1c3RlZERlbHRhKGMsYixpLGopO2subGVmdD9iLmxlZnQrPWsubGVmdDpiLnRvcCs9ay50b3A7dmFyIGw9L3RvcHxib3R0b20vLnRlc3QoYyksbT1sPzIqay5sZWZ0LWUraToyKmsudG9wLWYraixuPWw/Im9mZnNldFdpZHRoIjoib2Zmc2V0SGVpZ2h0IjtkLm9mZnNldChiKSx0aGlzLnJlcGxhY2VBcnJvdyhtLGRbMF1bbl0sbCl9LGMucHJvdG90eXBlLnJlcGxhY2VBcnJvdz1mdW5jdGlvbihhLGIsYyl7dGhpcy5hcnJvdygpLmNzcyhjPyJsZWZ0IjoidG9wIiw1MCooMS1hL2IpKyIlIikuY3NzKGM/InRvcCI6ImxlZnQiLCIiKX0sYy5wcm90b3R5cGUuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMudGlwKCksYj10aGlzLmdldFRpdGxlKCk7YS5maW5kKCIudG9vbHRpcC1pbm5lciIpW3RoaXMub3B0aW9ucy5odG1sPyJodG1sIjoidGV4dCJdKGIpLGEucmVtb3ZlQ2xhc3MoImZhZGUgaW4gdG9wIGJvdHRvbSBsZWZ0IHJpZ2h0Iil9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gZCgpeyJpbiIhPWUuaG92ZXJTdGF0ZSYmZi5kZXRhY2goKSxlLiRlbGVtZW50LnJlbW92ZUF0dHIoImFyaWEtZGVzY3JpYmVkYnkiKS50cmlnZ2VyKCJoaWRkZW4uYnMuIitlLnR5cGUpLGImJmIoKX12YXIgZT10aGlzLGY9YSh0aGlzLiR0aXApLGc9YS5FdmVudCgiaGlkZS5icy4iK3RoaXMudHlwZSk7cmV0dXJuIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihnKSxnLmlzRGVmYXVsdFByZXZlbnRlZCgpP3ZvaWQgMDooZi5yZW1vdmVDbGFzcygiaW4iKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmZi5oYXNDbGFzcygiZmFkZSIpP2Yub25lKCJic1RyYW5zaXRpb25FbmQiLGQpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZCgpLHRoaXMuaG92ZXJTdGF0ZT1udWxsLHRoaXMpfSxjLnByb3RvdHlwZS5maXhUaXRsZT1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQ7KGEuYXR0cigidGl0bGUiKXx8InN0cmluZyIhPXR5cGVvZiBhLmF0dHIoImRhdGEtb3JpZ2luYWwtdGl0bGUiKSkmJmEuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIsYS5hdHRyKCJ0aXRsZSIpfHwiIikuYXR0cigidGl0bGUiLCIiKX0sYy5wcm90b3R5cGUuaGFzQ29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRpdGxlKCl9LGMucHJvdG90eXBlLmdldFBvc2l0aW9uPWZ1bmN0aW9uKGIpe2I9Ynx8dGhpcy4kZWxlbWVudDt2YXIgYz1iWzBdLGQ9IkJPRFkiPT1jLnRhZ05hbWUsZT1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO251bGw9PWUud2lkdGgmJihlPWEuZXh0ZW5kKHt9LGUse3dpZHRoOmUucmlnaHQtZS5sZWZ0LGhlaWdodDplLmJvdHRvbS1lLnRvcH0pKTt2YXIgZj1kP3t0b3A6MCxsZWZ0OjB9OmIub2Zmc2V0KCksZz17c2Nyb2xsOmQ/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A6Yi5zY3JvbGxUb3AoKX0saD1kP3t3aWR0aDphKHdpbmRvdykud2lkdGgoKSxoZWlnaHQ6YSh3aW5kb3cpLmhlaWdodCgpfTpudWxsO3JldHVybiBhLmV4dGVuZCh7fSxlLGcsaCxmKX0sYy5wcm90b3R5cGUuZ2V0Q2FsY3VsYXRlZE9mZnNldD1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4iYm90dG9tIj09YT97dG9wOmIudG9wK2IuaGVpZ2h0LGxlZnQ6Yi5sZWZ0K2Iud2lkdGgvMi1jLzJ9OiJ0b3AiPT1hP3t0b3A6Yi50b3AtZCxsZWZ0OmIubGVmdCtiLndpZHRoLzItYy8yfToibGVmdCI9PWE/e3RvcDpiLnRvcCtiLmhlaWdodC8yLWQvMixsZWZ0OmIubGVmdC1jfTp7dG9wOmIudG9wK2IuaGVpZ2h0LzItZC8yLGxlZnQ6Yi5sZWZ0K2Iud2lkdGh9fSxjLnByb3RvdHlwZS5nZXRWaWV3cG9ydEFkanVzdGVkRGVsdGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e3RvcDowLGxlZnQ6MH07aWYoIXRoaXMuJHZpZXdwb3J0KXJldHVybiBlO3ZhciBmPXRoaXMub3B0aW9ucy52aWV3cG9ydCYmdGhpcy5vcHRpb25zLnZpZXdwb3J0LnBhZGRpbmd8fDAsZz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtpZigvcmlnaHR8bGVmdC8udGVzdChhKSl7dmFyIGg9Yi50b3AtZi1nLnNjcm9sbCxpPWIudG9wK2YtZy5zY3JvbGwrZDtoPGcudG9wP2UudG9wPWcudG9wLWg6aT5nLnRvcCtnLmhlaWdodCYmKGUudG9wPWcudG9wK2cuaGVpZ2h0LWkpfWVsc2V7dmFyIGo9Yi5sZWZ0LWYsaz1iLmxlZnQrZitjO2o8Zy5sZWZ0P2UubGVmdD1nLmxlZnQtajprPmcucmlnaHQmJihlLmxlZnQ9Zy5sZWZ0K2cud2lkdGgtayl9cmV0dXJuIGV9LGMucHJvdG90eXBlLmdldFRpdGxlPWZ1bmN0aW9uKCl7dmFyIGEsYj10aGlzLiRlbGVtZW50LGM9dGhpcy5vcHRpb25zO3JldHVybiBhPWIuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIpfHwoImZ1bmN0aW9uIj09dHlwZW9mIGMudGl0bGU/Yy50aXRsZS5jYWxsKGJbMF0pOmMudGl0bGUpfSxjLnByb3RvdHlwZS5nZXRVSUQ9ZnVuY3Rpb24oYSl7ZG8gYSs9fn4oMWU2Kk1hdGgucmFuZG9tKCkpO3doaWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKTtyZXR1cm4gYX0sYy5wcm90b3R5cGUudGlwPWZ1bmN0aW9uKCl7aWYoIXRoaXMuJHRpcCYmKHRoaXMuJHRpcD1hKHRoaXMub3B0aW9ucy50ZW1wbGF0ZSksMSE9dGhpcy4kdGlwLmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKHRoaXMudHlwZSsiIGB0ZW1wbGF0ZWAgb3B0aW9uIG11c3QgY29uc2lzdCBvZiBleGFjdGx5IDEgdG9wLWxldmVsIGVsZW1lbnQhIik7cmV0dXJuIHRoaXMuJHRpcH0sYy5wcm90b3R5cGUuYXJyb3c9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kYXJyb3c9dGhpcy4kYXJyb3d8fHRoaXMudGlwKCkuZmluZCgiLnRvb2x0aXAtYXJyb3ciKX0sYy5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSEwfSxjLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSExfSxjLnByb3RvdHlwZS50b2dnbGVFbmFibGVkPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSF0aGlzLmVuYWJsZWR9LGMucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihiKXt2YXIgYz10aGlzO2ImJihjPWEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSksY3x8KGM9bmV3IHRoaXMuY29uc3RydWN0b3IoYi5jdXJyZW50VGFyZ2V0LHRoaXMuZ2V0RGVsZWdhdGVPcHRpb25zKCkpLGEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSxjKSkpLGI/KGMuaW5TdGF0ZS5jbGljaz0hYy5pblN0YXRlLmNsaWNrLGMuaXNJblN0YXRlVHJ1ZSgpP2MuZW50ZXIoYyk6Yy5sZWF2ZShjKSk6Yy50aXAoKS5oYXNDbGFzcygiaW4iKT9jLmxlYXZlKGMpOmMuZW50ZXIoYyl9LGMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpLHRoaXMuaGlkZShmdW5jdGlvbigpe2EuJGVsZW1lbnQub2ZmKCIuIithLnR5cGUpLnJlbW92ZURhdGEoImJzLiIrYS50eXBlKSxhLiR0aXAmJmEuJHRpcC5kZXRhY2goKSxhLiR0aXA9bnVsbCxhLiRhcnJvdz1udWxsLGEuJHZpZXdwb3J0PW51bGx9KX07dmFyIGQ9YS5mbi50b29sdGlwO2EuZm4udG9vbHRpcD1iLGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvcj1jLGEuZm4udG9vbHRpcC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4udG9vbHRpcD1kLHRoaXN9fShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMucG9wb3ZlciIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiOyhlfHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChiKSkmJihlfHxkLmRhdGEoImJzLnBvcG92ZXIiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLmluaXQoInBvcG92ZXIiLGEsYil9O2lmKCFhLmZuLnRvb2x0aXApdGhyb3cgbmV3IEVycm9yKCJQb3BvdmVyIHJlcXVpcmVzIHRvb2x0aXAuanMiKTtjLlZFUlNJT049IjMuMy41IixjLkRFRkFVTFRTPWEuZXh0ZW5kKHt9LGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvci5ERUZBVUxUUyx7cGxhY2VtZW50OiJyaWdodCIsdHJpZ2dlcjoiY2xpY2siLGNvbnRlbnQ6IiIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InBvcG92ZXIiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj48aDMgY2xhc3M9InBvcG92ZXItdGl0bGUiPjwvaDM+PGRpdiBjbGFzcz0icG9wb3Zlci1jb250ZW50Ij48L2Rpdj48L2Rpdj4nfSksYy5wcm90b3R5cGU9YS5leHRlbmQoe30sYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yLnByb3RvdHlwZSksYy5wcm90b3R5cGUuY29uc3RydWN0b3I9YyxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50aXAoKSxiPXRoaXMuZ2V0VGl0bGUoKSxjPXRoaXMuZ2V0Q29udGVudCgpO2EuZmluZCgiLnBvcG92ZXItdGl0bGUiKVt0aGlzLm9wdGlvbnMuaHRtbD8iaHRtbCI6InRleHQiXShiKSxhLmZpbmQoIi5wb3BvdmVyLWNvbnRlbnQiKS5jaGlsZHJlbigpLmRldGFjaCgpLmVuZCgpW3RoaXMub3B0aW9ucy5odG1sPyJzdHJpbmciPT10eXBlb2YgYz8iaHRtbCI6ImFwcGVuZCI6InRleHQiXShjKSxhLnJlbW92ZUNsYXNzKCJmYWRlIHRvcCBib3R0b20gbGVmdCByaWdodCBpbiIpLGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5odG1sKCl8fGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5oaWRlKCl9LGMucHJvdG90eXBlLmhhc0NvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLmdldENvbnRlbnQoKX0sYy5wcm90b3R5cGUuZ2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQsYj10aGlzLm9wdGlvbnM7cmV0dXJuIGEuYXR0cigiZGF0YS1jb250ZW50Iil8fCgiZnVuY3Rpb24iPT10eXBlb2YgYi5jb250ZW50P2IuY29udGVudC5jYWxsKGFbMF0pOmIuY29udGVudCl9LGMucHJvdG90eXBlLmFycm93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGFycm93PXRoaXMuJGFycm93fHx0aGlzLnRpcCgpLmZpbmQoIi5hcnJvdyIpfTt2YXIgZD1hLmZuLnBvcG92ZXI7YS5mbi5wb3BvdmVyPWIsYS5mbi5wb3BvdmVyLkNvbnN0cnVjdG9yPWMsYS5mbi5wb3BvdmVyLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5wb3BvdmVyPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGMsZCl7dGhpcy4kYm9keT1hKGRvY3VtZW50LmJvZHkpLHRoaXMuJHNjcm9sbEVsZW1lbnQ9YShhKGMpLmlzKGRvY3VtZW50LmJvZHkpP3dpbmRvdzpjKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sYi5ERUZBVUxUUyxkKSx0aGlzLnNlbGVjdG9yPSh0aGlzLm9wdGlvbnMudGFyZ2V0fHwiIikrIiAubmF2IGxpID4gYSIsdGhpcy5vZmZzZXRzPVtdLHRoaXMudGFyZ2V0cz1bXSx0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuc2Nyb2xsSGVpZ2h0PTAsdGhpcy4kc2Nyb2xsRWxlbWVudC5vbigic2Nyb2xsLmJzLnNjcm9sbHNweSIsYS5wcm94eSh0aGlzLnByb2Nlc3MsdGhpcykpLHRoaXMucmVmcmVzaCgpLHRoaXMucHJvY2VzcygpfWZ1bmN0aW9uIGMoYyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLnNjcm9sbHNweSIpLGY9Im9iamVjdCI9PXR5cGVvZiBjJiZjO2V8fGQuZGF0YSgiYnMuc2Nyb2xsc3B5IixlPW5ldyBiKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYyYmZVtjXSgpfSl9Yi5WRVJTSU9OPSIzLjMuNSIsYi5ERUZBVUxUUz17b2Zmc2V0OjEwfSxiLnByb3RvdHlwZS5nZXRTY3JvbGxIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kc2Nyb2xsRWxlbWVudFswXS5zY3JvbGxIZWlnaHR8fE1hdGgubWF4KHRoaXMuJGJvZHlbMF0uc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpfSxiLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPSJvZmZzZXQiLGQ9MDt0aGlzLm9mZnNldHM9W10sdGhpcy50YXJnZXRzPVtdLHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMuZ2V0U2Nyb2xsSGVpZ2h0KCksYS5pc1dpbmRvdyh0aGlzLiRzY3JvbGxFbGVtZW50WzBdKXx8KGM9InBvc2l0aW9uIixkPXRoaXMuJHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wKCkpLHRoaXMuJGJvZHkuZmluZCh0aGlzLnNlbGVjdG9yKS5tYXAoZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpLGU9Yi5kYXRhKCJ0YXJnZXQiKXx8Yi5hdHRyKCJocmVmIiksZj0vXiMuLy50ZXN0KGUpJiZhKGUpO3JldHVybiBmJiZmLmxlbmd0aCYmZi5pcygiOnZpc2libGUiKSYmW1tmW2NdKCkudG9wK2QsZV1dfHxudWxsfSkuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhWzBdLWJbMF19KS5lYWNoKGZ1bmN0aW9uKCl7Yi5vZmZzZXRzLnB1c2godGhpc1swXSksYi50YXJnZXRzLnB1c2godGhpc1sxXSl9KX0sYi5wcm90b3R5cGUucHJvY2Vzcz1mdW5jdGlvbigpe3ZhciBhLGI9dGhpcy4kc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AoKSt0aGlzLm9wdGlvbnMub2Zmc2V0LGM9dGhpcy5nZXRTY3JvbGxIZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQrYy10aGlzLiRzY3JvbGxFbGVtZW50LmhlaWdodCgpLGU9dGhpcy5vZmZzZXRzLGY9dGhpcy50YXJnZXRzLGc9dGhpcy5hY3RpdmVUYXJnZXQ7aWYodGhpcy5zY3JvbGxIZWlnaHQhPWMmJnRoaXMucmVmcmVzaCgpLGI+PWQpcmV0dXJuIGchPShhPWZbZi5sZW5ndGgtMV0pJiZ0aGlzLmFjdGl2YXRlKGEpO2lmKGcmJmI8ZVswXSlyZXR1cm4gdGhpcy5hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLmNsZWFyKCk7Zm9yKGE9ZS5sZW5ndGg7YS0tOylnIT1mW2FdJiZiPj1lW2FdJiYodm9pZCAwPT09ZVthKzFdfHxiPGVbYSsxXSkmJnRoaXMuYWN0aXZhdGUoZlthXSl9LGIucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGIpe3RoaXMuYWN0aXZlVGFyZ2V0PWIsdGhpcy5jbGVhcigpO3ZhciBjPXRoaXMuc2VsZWN0b3IrJ1tkYXRhLXRhcmdldD0iJytiKyciXSwnK3RoaXMuc2VsZWN0b3IrJ1tocmVmPSInK2IrJyJdJyxkPWEoYykucGFyZW50cygibGkiKS5hZGRDbGFzcygiYWN0aXZlIik7ZC5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiYoZD1kLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpKSwKZC50cmlnZ2VyKCJhY3RpdmF0ZS5icy5zY3JvbGxzcHkiKX0sYi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXthKHRoaXMuc2VsZWN0b3IpLnBhcmVudHNVbnRpbCh0aGlzLm9wdGlvbnMudGFyZ2V0LCIuYWN0aXZlIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfTt2YXIgZD1hLmZuLnNjcm9sbHNweTthLmZuLnNjcm9sbHNweT1jLGEuZm4uc2Nyb2xsc3B5LkNvbnN0cnVjdG9yPWIsYS5mbi5zY3JvbGxzcHkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnNjcm9sbHNweT1kLHRoaXN9LGEod2luZG93KS5vbigibG9hZC5icy5zY3JvbGxzcHkuZGF0YS1hcGkiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJzY3JvbGwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpO2MuY2FsbChiLGIuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50YWIiKTtlfHxkLmRhdGEoImJzLnRhYiIsZT1uZXcgYyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgYz1mdW5jdGlvbihiKXt0aGlzLmVsZW1lbnQ9YShiKX07Yy5WRVJTSU9OPSIzLjMuNSIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50LGM9Yi5jbG9zZXN0KCJ1bDpub3QoLmRyb3Bkb3duLW1lbnUpIiksZD1iLmRhdGEoInRhcmdldCIpO2lmKGR8fChkPWIuYXR0cigiaHJlZiIpLGQ9ZCYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSokKS8sIiIpKSwhYi5wYXJlbnQoImxpIikuaGFzQ2xhc3MoImFjdGl2ZSIpKXt2YXIgZT1jLmZpbmQoIi5hY3RpdmU6bGFzdCBhIiksZj1hLkV2ZW50KCJoaWRlLmJzLnRhYiIse3JlbGF0ZWRUYXJnZXQ6YlswXX0pLGc9YS5FdmVudCgic2hvdy5icy50YWIiLHtyZWxhdGVkVGFyZ2V0OmVbMF19KTtpZihlLnRyaWdnZXIoZiksYi50cmlnZ2VyKGcpLCFnLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGg9YShkKTt0aGlzLmFjdGl2YXRlKGIuY2xvc2VzdCgibGkiKSxjKSx0aGlzLmFjdGl2YXRlKGgsaC5wYXJlbnQoKSxmdW5jdGlvbigpe2UudHJpZ2dlcih7dHlwZToiaGlkZGVuLmJzLnRhYiIscmVsYXRlZFRhcmdldDpiWzBdfSksYi50cmlnZ2VyKHt0eXBlOiJzaG93bi5icy50YWIiLHJlbGF0ZWRUYXJnZXQ6ZVswXX0pfSl9fX0sYy5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24oYixkLGUpe2Z1bmN0aW9uIGYoKXtnLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5maW5kKCI+IC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5lbmQoKS5maW5kKCdbZGF0YS10b2dnbGU9InRhYiJdJykuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLGIuYWRkQ2xhc3MoImFjdGl2ZSIpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksaD8oYlswXS5vZmZzZXRXaWR0aCxiLmFkZENsYXNzKCJpbiIpKTpiLnJlbW92ZUNsYXNzKCJmYWRlIiksYi5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiZiLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpLmVuZCgpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksZSYmZSgpfXZhciBnPWQuZmluZCgiPiAuYWN0aXZlIiksaD1lJiZhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGcubGVuZ3RoJiZnLmhhc0NsYXNzKCJmYWRlIil8fCEhZC5maW5kKCI+IC5mYWRlIikubGVuZ3RoKTtnLmxlbmd0aCYmaD9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmYoKSxnLnJlbW92ZUNsYXNzKCJpbiIpfTt2YXIgZD1hLmZuLnRhYjthLmZuLnRhYj1iLGEuZm4udGFiLkNvbnN0cnVjdG9yPWMsYS5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnRhYj1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKSxiLmNhbGwoYSh0aGlzKSwic2hvdyIpfTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMudGFiLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJ0YWIiXScsZSkub24oImNsaWNrLmJzLnRhYi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZT0icGlsbCJdJyxlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmFmZml4IiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5hZmZpeCIsZT1uZXcgYyh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy4kdGFyZ2V0PWEodGhpcy5vcHRpb25zLnRhcmdldCkub24oInNjcm9sbC5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcykpLm9uKCJjbGljay5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wLHRoaXMpKSx0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5hZmZpeGVkPW51bGwsdGhpcy51bnBpbj1udWxsLHRoaXMucGlubmVkT2Zmc2V0PW51bGwsdGhpcy5jaGVja1Bvc2l0aW9uKCl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuUkVTRVQ9ImFmZml4IGFmZml4LXRvcCBhZmZpeC1ib3R0b20iLGMuREVGQVVMVFM9e29mZnNldDowLHRhcmdldDp3aW5kb3d9LGMucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMuJHRhcmdldC5zY3JvbGxUb3AoKSxmPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCksZz10aGlzLiR0YXJnZXQuaGVpZ2h0KCk7aWYobnVsbCE9YyYmInRvcCI9PXRoaXMuYWZmaXhlZClyZXR1cm4gYz5lPyJ0b3AiOiExO2lmKCJib3R0b20iPT10aGlzLmFmZml4ZWQpcmV0dXJuIG51bGwhPWM/ZSt0aGlzLnVucGluPD1mLnRvcD8hMToiYm90dG9tIjphLWQ+PWUrZz8hMToiYm90dG9tIjt2YXIgaD1udWxsPT10aGlzLmFmZml4ZWQsaT1oP2U6Zi50b3Asaj1oP2c6YjtyZXR1cm4gbnVsbCE9YyYmYz49ZT8idG9wIjpudWxsIT1kJiZpK2o+PWEtZD8iYm90dG9tIjohMX0sYy5wcm90b3R5cGUuZ2V0UGlubmVkT2Zmc2V0PWZ1bmN0aW9uKCl7aWYodGhpcy5waW5uZWRPZmZzZXQpcmV0dXJuIHRoaXMucGlubmVkT2Zmc2V0O3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoYy5SRVNFVCkuYWRkQ2xhc3MoImFmZml4Iik7dmFyIGE9dGhpcy4kdGFyZ2V0LnNjcm9sbFRvcCgpLGI9dGhpcy4kZWxlbWVudC5vZmZzZXQoKTtyZXR1cm4gdGhpcy5waW5uZWRPZmZzZXQ9Yi50b3AtYX0sYy5wcm90b3R5cGUuY2hlY2tQb3NpdGlvbldpdGhFdmVudExvb3A9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGEucHJveHkodGhpcy5jaGVja1Bvc2l0aW9uLHRoaXMpLDEpfSxjLnByb3RvdHlwZS5jaGVja1Bvc2l0aW9uPWZ1bmN0aW9uKCl7aWYodGhpcy4kZWxlbWVudC5pcygiOnZpc2libGUiKSl7dmFyIGI9dGhpcy4kZWxlbWVudC5oZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQsZT1kLnRvcCxmPWQuYm90dG9tLGc9TWF0aC5tYXgoYShkb2N1bWVudCkuaGVpZ2h0KCksYShkb2N1bWVudC5ib2R5KS5oZWlnaHQoKSk7Im9iamVjdCIhPXR5cGVvZiBkJiYoZj1lPWQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1kLnRvcCh0aGlzLiRlbGVtZW50KSksImZ1bmN0aW9uIj09dHlwZW9mIGYmJihmPWQuYm90dG9tKHRoaXMuJGVsZW1lbnQpKTt2YXIgaD10aGlzLmdldFN0YXRlKGcsYixlLGYpO2lmKHRoaXMuYWZmaXhlZCE9aCl7bnVsbCE9dGhpcy51bnBpbiYmdGhpcy4kZWxlbWVudC5jc3MoInRvcCIsIiIpO3ZhciBpPSJhZmZpeCIrKGg/Ii0iK2g6IiIpLGo9YS5FdmVudChpKyIuYnMuYWZmaXgiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoaiksai5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm47dGhpcy5hZmZpeGVkPWgsdGhpcy51bnBpbj0iYm90dG9tIj09aD90aGlzLmdldFBpbm5lZE9mZnNldCgpOm51bGwsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhjLlJFU0VUKS5hZGRDbGFzcyhpKS50cmlnZ2VyKGkucmVwbGFjZSgiYWZmaXgiLCJhZmZpeGVkIikrIi5icy5hZmZpeCIpfSJib3R0b20iPT1oJiZ0aGlzLiRlbGVtZW50Lm9mZnNldCh7dG9wOmctYi1mfSl9fTt2YXIgZD1hLmZuLmFmZml4O2EuZm4uYWZmaXg9YixhLmZuLmFmZml4LkNvbnN0cnVjdG9yPWMsYS5mbi5hZmZpeC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWZmaXg9ZCx0aGlzfSxhKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJhZmZpeCJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoKTtkLm9mZnNldD1kLm9mZnNldHx8e30sbnVsbCE9ZC5vZmZzZXRCb3R0b20mJihkLm9mZnNldC5ib3R0b209ZC5vZmZzZXRCb3R0b20pLG51bGwhPWQub2Zmc2V0VG9wJiYoZC5vZmZzZXQudG9wPWQub2Zmc2V0VG9wKSxiLmNhbGwoYyxkKX0pfSl9KGpRdWVyeSk7"></script>
<script src="data:application/x-javascript;base64,LyoqCiogQHByZXNlcnZlIEhUTUw1IFNoaXYgMy43LjIgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkCiovCi8vIE9ubHkgcnVuIHRoaXMgY29kZSBpbiBJRSA4CmlmICghIXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJNU0lFIDgiKSkgewohZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KCJwIiksZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybiBjLmlubmVySFRNTD0ieDxzdHlsZT4iK2IrIjwvc3R5bGU+IixkLmluc2VydEJlZm9yZShjLmxhc3RDaGlsZCxkLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGQoKXt2YXIgYT10LmVsZW1lbnRzO3JldHVybiJzdHJpbmciPT10eXBlb2YgYT9hLnNwbGl0KCIgIik6YX1mdW5jdGlvbiBlKGEsYil7dmFyIGM9dC5lbGVtZW50czsic3RyaW5nIiE9dHlwZW9mIGMmJihjPWMuam9pbigiICIpKSwic3RyaW5nIiE9dHlwZW9mIGEmJihhPWEuam9pbigiICIpKSx0LmVsZW1lbnRzPWMrIiAiK2EsaihiKX1mdW5jdGlvbiBmKGEpe3ZhciBiPXNbYVtxXV07cmV0dXJuIGJ8fChiPXt9LHIrKyxhW3FdPXIsc1tyXT1iKSxifWZ1bmN0aW9uIGcoYSxjLGQpe2lmKGN8fChjPWIpLGwpcmV0dXJuIGMuY3JlYXRlRWxlbWVudChhKTtkfHwoZD1mKGMpKTt2YXIgZTtyZXR1cm4gZT1kLmNhY2hlW2FdP2QuY2FjaGVbYV0uY2xvbmVOb2RlKCk6cC50ZXN0KGEpPyhkLmNhY2hlW2FdPWQuY3JlYXRlRWxlbShhKSkuY2xvbmVOb2RlKCk6ZC5jcmVhdGVFbGVtKGEpLCFlLmNhbkhhdmVDaGlsZHJlbnx8by50ZXN0KGEpfHxlLnRhZ1Vybj9lOmQuZnJhZy5hcHBlbmRDaGlsZChlKX1mdW5jdGlvbiBoKGEsYyl7aWYoYXx8KGE9YiksbClyZXR1cm4gYS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yz1jfHxmKGEpO2Zvcih2YXIgZT1jLmZyYWcuY2xvbmVOb2RlKCksZz0wLGg9ZCgpLGk9aC5sZW5ndGg7aT5nO2crKyllLmNyZWF0ZUVsZW1lbnQoaFtnXSk7cmV0dXJuIGV9ZnVuY3Rpb24gaShhLGIpe2IuY2FjaGV8fChiLmNhY2hlPXt9LGIuY3JlYXRlRWxlbT1hLmNyZWF0ZUVsZW1lbnQsYi5jcmVhdGVGcmFnPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxiLmZyYWc9Yi5jcmVhdGVGcmFnKCkpLGEuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihjKXtyZXR1cm4gdC5zaGl2TWV0aG9kcz9nKGMsYSxiKTpiLmNyZWF0ZUVsZW0oYyl9LGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudD1GdW5jdGlvbigiaCxmIiwicmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49Zi5jbG9uZU5vZGUoKSxjPW4uY3JlYXRlRWxlbWVudDtoLnNoaXZNZXRob2RzJiYoIitkKCkuam9pbigpLnJlcGxhY2UoL1tcd1wtOl0rL2csZnVuY3Rpb24oYSl7cmV0dXJuIGIuY3JlYXRlRWxlbShhKSxiLmZyYWcuY3JlYXRlRWxlbWVudChhKSwnYygiJythKyciKSd9KSsiKTtyZXR1cm4gbn0iKSh0LGIuZnJhZyl9ZnVuY3Rpb24gaihhKXthfHwoYT1iKTt2YXIgZD1mKGEpO3JldHVybiF0LnNoaXZDU1N8fGt8fGQuaGFzQ1NTfHwoZC5oYXNDU1M9ISFjKGEsImFydGljbGUsYXNpZGUsZGlhbG9nLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG1haW4sbmF2LHNlY3Rpb257ZGlzcGxheTpibG9ja31tYXJre2JhY2tncm91bmQ6I0ZGMDtjb2xvcjojMDAwfXRlbXBsYXRle2Rpc3BsYXk6bm9uZX0iKSksbHx8aShhLGQpLGF9dmFyIGssbCxtPSIzLjcuMiIsbj1hLmh0bWw1fHx7fSxvPS9ePHxeKD86YnV0dG9ufG1hcHxzZWxlY3R8dGV4dGFyZWF8b2JqZWN0fGlmcmFtZXxvcHRpb258b3B0Z3JvdXApJC9pLHA9L14oPzphfGJ8Y29kZXxkaXZ8ZmllbGRzZXR8aDF8aDJ8aDN8aDR8aDV8aDZ8aXxsYWJlbHxsaXxvbHxwfHF8c3BhbnxzdHJvbmd8c3R5bGV8dGFibGV8dGJvZHl8dGR8dGh8dHJ8dWwpJC9pLHE9Il9odG1sNXNoaXYiLHI9MCxzPXt9OyFmdW5jdGlvbigpe3RyeXt2YXIgYT1iLmNyZWF0ZUVsZW1lbnQoImEiKTthLmlubmVySFRNTD0iPHh5ej48L3h5ej4iLGs9ImhpZGRlbiJpbiBhLGw9MT09YS5jaGlsZE5vZGVzLmxlbmd0aHx8ZnVuY3Rpb24oKXtiLmNyZWF0ZUVsZW1lbnQoImEiKTt2YXIgYT1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuY2xvbmVOb2RlfHwidW5kZWZpbmVkIj09dHlwZW9mIGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudHx8InVuZGVmaW5lZCI9PXR5cGVvZiBhLmNyZWF0ZUVsZW1lbnR9KCl9Y2F0Y2goYyl7az0hMCxsPSEwfX0oKTt2YXIgdD17ZWxlbWVudHM6bi5lbGVtZW50c3x8ImFiYnIgYXJ0aWNsZSBhc2lkZSBhdWRpbyBiZGkgY2FudmFzIGRhdGEgZGF0YWxpc3QgZGV0YWlscyBkaWFsb2cgZmlnY2FwdGlvbiBmaWd1cmUgZm9vdGVyIGhlYWRlciBoZ3JvdXAgbWFpbiBtYXJrIG1ldGVyIG5hdiBvdXRwdXQgcGljdHVyZSBwcm9ncmVzcyBzZWN0aW9uIHN1bW1hcnkgdGVtcGxhdGUgdGltZSB2aWRlbyIsdmVyc2lvbjptLHNoaXZDU1M6bi5zaGl2Q1NTIT09ITEsc3VwcG9ydHNVbmtub3duRWxlbWVudHM6bCxzaGl2TWV0aG9kczpuLnNoaXZNZXRob2RzIT09ITEsdHlwZToiZGVmYXVsdCIsc2hpdkRvY3VtZW50OmosY3JlYXRlRWxlbWVudDpnLGNyZWF0ZURvY3VtZW50RnJhZ21lbnQ6aCxhZGRFbGVtZW50czplfTthLmh0bWw1PXQsaihiKX0odGhpcyxkb2N1bWVudCk7Cn07Cg=="></script>
<script src="data:application/x-javascript;base64,LyohIFJlc3BvbmQuanMgdjEuNC4yOiBtaW4vbWF4LXdpZHRoIG1lZGlhIHF1ZXJ5IHBvbHlmaWxsICogQ29weXJpZ2h0IDIwMTMgU2NvdHQgSmVobAogKiBMaWNlbnNlZCB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vc2NvdHRqZWhsL1Jlc3BvbmQvYmxvYi9tYXN0ZXIvTElDRU5TRS1NSVQKICogICovCgovLyBPbmx5IHJ1biB0aGlzIGNvZGUgaW4gSUUgOAppZiAoISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiTVNJRSA4IikpIHsKIWZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjthLm1hdGNoTWVkaWE9YS5tYXRjaE1lZGlhfHxmdW5jdGlvbihhKXt2YXIgYixjPWEuZG9jdW1lbnRFbGVtZW50LGQ9Yy5maXJzdEVsZW1lbnRDaGlsZHx8Yy5maXJzdENoaWxkLGU9YS5jcmVhdGVFbGVtZW50KCJib2R5IiksZj1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBmLmlkPSJtcS10ZXN0LTEiLGYuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7dG9wOi0xMDBlbSIsZS5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIixlLmFwcGVuZENoaWxkKGYpLGZ1bmN0aW9uKGEpe3JldHVybiBmLmlubmVySFRNTD0nJnNoeTs8c3R5bGUgbWVkaWE9IicrYSsnIj4gI21xLXRlc3QtMSB7IHdpZHRoOiA0MnB4OyB9PC9zdHlsZT4nLGMuaW5zZXJ0QmVmb3JlKGUsZCksYj00Mj09PWYub2Zmc2V0V2lkdGgsYy5yZW1vdmVDaGlsZChlKSx7bWF0Y2hlczpiLG1lZGlhOmF9fX0oYS5kb2N1bWVudCl9KHRoaXMpLGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dSghMCl9dmFyIGM9e307YS5yZXNwb25kPWMsYy51cGRhdGU9ZnVuY3Rpb24oKXt9O3ZhciBkPVtdLGU9ZnVuY3Rpb24oKXt2YXIgYj0hMTt0cnl7Yj1uZXcgYS5YTUxIdHRwUmVxdWVzdH1jYXRjaChjKXtiPW5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGJ9fSgpLGY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1lKCk7YyYmKGMub3BlbigiR0VUIixhLCEwKSxjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQhPT1jLnJlYWR5U3RhdGV8fDIwMCE9PWMuc3RhdHVzJiYzMDQhPT1jLnN0YXR1c3x8YihjLnJlc3BvbnNlVGV4dCl9LDQhPT1jLnJlYWR5U3RhdGUmJmMuc2VuZChudWxsKSl9O2lmKGMuYWpheD1mLGMucXVldWU9ZCxjLnJlZ2V4PXttZWRpYTovQG1lZGlhW15ce10rXHsoW15ce1x9XSpce1teXH1ce10qXH0pKy9naSxrZXlmcmFtZXM6L0AoPzpcLSg/Om98bW96fHdlYmtpdClcLSk/a2V5ZnJhbWVzW15ce10rXHsoPzpbXlx7XH1dKlx7W15cfVx7XSpcfSkrW15cfV0qXH0vZ2ksdXJsczovKHVybFwoKVsnIl0/KFteXC9cKSciXVteOlwpJyJdKylbJyJdPyhcKSkvZyxmaW5kU3R5bGVzOi9AbWVkaWEgKihbXlx7XSspXHsoW1xTXHNdKz8pJC8sb25seTovKG9ubHlccyspPyhbYS16QS1aXSspXHM/LyxtaW53Oi9cKFtcc10qbWluXC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpLyxtYXh3Oi9cKFtcc10qbWF4XC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpL30sYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQ9YS5tYXRjaE1lZGlhJiZudWxsIT09YS5tYXRjaE1lZGlhKCJvbmx5IGFsbCIpJiZhLm1hdGNoTWVkaWEoIm9ubHkgYWxsIikubWF0Y2hlcywhYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQpe3ZhciBnLGgsaSxqPWEuZG9jdW1lbnQsaz1qLmRvY3VtZW50RWxlbWVudCxsPVtdLG09W10sbj1bXSxvPXt9LHA9MzAscT1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGsscj1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJiYXNlIilbMF0scz1xLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIiksdD1mdW5jdGlvbigpe3ZhciBhLGI9ai5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWouYm9keSxkPWsuc3R5bGUuZm9udFNpemUsZT1jJiZjLnN0eWxlLmZvbnRTaXplLGY9ITE7cmV0dXJuIGIuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjFlbTt3aWR0aDoxZW0iLGN8fChjPWY9ai5jcmVhdGVFbGVtZW50KCJib2R5IiksYy5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIiksay5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5hcHBlbmRDaGlsZChiKSxmJiZrLmluc2VydEJlZm9yZShjLGsuZmlyc3RDaGlsZCksYT1iLm9mZnNldFdpZHRoLGY/ay5yZW1vdmVDaGlsZChjKTpjLnJlbW92ZUNoaWxkKGIpLGsuc3R5bGUuZm9udFNpemU9ZCxlJiYoYy5zdHlsZS5mb250U2l6ZT1lKSxhPWk9cGFyc2VGbG9hdChhKX0sdT1mdW5jdGlvbihiKXt2YXIgYz0iY2xpZW50V2lkdGgiLGQ9a1tjXSxlPSJDU1MxQ29tcGF0Ij09PWouY29tcGF0TW9kZSYmZHx8ai5ib2R5W2NdfHxkLGY9e30sbz1zW3MubGVuZ3RoLTFdLHI9KG5ldyBEYXRlKS5nZXRUaW1lKCk7aWYoYiYmZyYmcD5yLWcpcmV0dXJuIGEuY2xlYXJUaW1lb3V0KGgpLGg9YS5zZXRUaW1lb3V0KHUscCksdm9pZCAwO2c9cjtmb3IodmFyIHYgaW4gbClpZihsLmhhc093blByb3BlcnR5KHYpKXt2YXIgdz1sW3ZdLHg9dy5taW53LHk9dy5tYXh3LHo9bnVsbD09PXgsQT1udWxsPT09eSxCPSJlbSI7eCYmKHg9cGFyc2VGbG9hdCh4KSooeC5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSkseSYmKHk9cGFyc2VGbG9hdCh5KSooeS5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSksdy5oYXNxdWVyeSYmKHomJkF8fCEoenx8ZT49eCl8fCEoQXx8eT49ZSkpfHwoZlt3Lm1lZGlhXXx8KGZbdy5tZWRpYV09W10pLGZbdy5tZWRpYV0ucHVzaChtW3cucnVsZXNdKSl9Zm9yKHZhciBDIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShDKSYmbltDXSYmbltDXS5wYXJlbnROb2RlPT09cSYmcS5yZW1vdmVDaGlsZChuW0NdKTtuLmxlbmd0aD0wO2Zvcih2YXIgRCBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoRCkpe3ZhciBFPWouY3JlYXRlRWxlbWVudCgic3R5bGUiKSxGPWZbRF0uam9pbigiXG4iKTtFLnR5cGU9InRleHQvY3NzIixFLm1lZGlhPUQscS5pbnNlcnRCZWZvcmUoRSxvLm5leHRTaWJsaW5nKSxFLnN0eWxlU2hlZXQ/RS5zdHlsZVNoZWV0LmNzc1RleHQ9RjpFLmFwcGVuZENoaWxkKGouY3JlYXRlVGV4dE5vZGUoRikpLG4ucHVzaChFKX19LHY9ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPWEucmVwbGFjZShjLnJlZ2V4LmtleWZyYW1lcywiIikubWF0Y2goYy5yZWdleC5tZWRpYSksZj1lJiZlLmxlbmd0aHx8MDtiPWIuc3Vic3RyaW5nKDAsYi5sYXN0SW5kZXhPZigiLyIpKTt2YXIgZz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKGMucmVnZXgudXJscywiJDEiK2IrIiQyJDMiKX0saD0hZiYmZDtiLmxlbmd0aCYmKGIrPSIvIiksaCYmKGY9MSk7Zm9yKHZhciBpPTA7Zj5pO2krKyl7dmFyIGosayxuLG87aD8oaj1kLG0ucHVzaChnKGEpKSk6KGo9ZVtpXS5tYXRjaChjLnJlZ2V4LmZpbmRTdHlsZXMpJiZSZWdFeHAuJDEsbS5wdXNoKFJlZ0V4cC4kMiYmZyhSZWdFeHAuJDIpKSksbj1qLnNwbGl0KCIsIiksbz1uLmxlbmd0aDtmb3IodmFyIHA9MDtvPnA7cCsrKWs9bltwXSxsLnB1c2goe21lZGlhOmsuc3BsaXQoIigiKVswXS5tYXRjaChjLnJlZ2V4Lm9ubHkpJiZSZWdFeHAuJDJ8fCJhbGwiLHJ1bGVzOm0ubGVuZ3RoLTEsaGFzcXVlcnk6ay5pbmRleE9mKCIoIik+LTEsbWludzprLm1hdGNoKGMucmVnZXgubWludykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIiksbWF4dzprLm1hdGNoKGMucmVnZXgubWF4dykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIil9KX11KCl9LHc9ZnVuY3Rpb24oKXtpZihkLmxlbmd0aCl7dmFyIGI9ZC5zaGlmdCgpO2YoYi5ocmVmLGZ1bmN0aW9uKGMpe3YoYyxiLmhyZWYsYi5tZWRpYSksb1tiLmhyZWZdPSEwLGEuc2V0VGltZW91dChmdW5jdGlvbigpe3coKX0sMCl9KX19LHg9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MDtiPHMubGVuZ3RoO2IrKyl7dmFyIGM9c1tiXSxlPWMuaHJlZixmPWMubWVkaWEsZz1jLnJlbCYmInN0eWxlc2hlZXQiPT09Yy5yZWwudG9Mb3dlckNhc2UoKTtlJiZnJiYhb1tlXSYmKGMuc3R5bGVTaGVldCYmYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQ/KHYoYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQsZSxmKSxvW2VdPSEwKTooIS9eKFthLXpBLVo6XSpcL1wvKS8udGVzdChlKSYmIXJ8fGUucmVwbGFjZShSZWdFeHAuJDEsIiIpLnNwbGl0KCIvIilbMF09PT1hLmxvY2F0aW9uLmhvc3QpJiYoIi8vIj09PWUuc3Vic3RyaW5nKDAsMikmJihlPWEubG9jYXRpb24ucHJvdG9jb2wrZSksZC5wdXNoKHtocmVmOmUsbWVkaWE6Zn0pKSl9dygpfTt4KCksYy51cGRhdGU9eCxjLmdldEVtVmFsdWU9dCxhLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGIsITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9ucmVzaXplIixiKX19KHRoaXMpOwp9Owo="></script>
<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSBVSSAtIHYxLjExLjQgLSAyMDE2LTAxLTA1CiogaHR0cDovL2pxdWVyeXVpLmNvbQoqIEluY2x1ZGVzOiBjb3JlLmpzLCB3aWRnZXQuanMsIG1vdXNlLmpzLCBwb3NpdGlvbi5qcywgZHJhZ2dhYmxlLmpzLCBkcm9wcGFibGUuanMsIHJlc2l6YWJsZS5qcywgc2VsZWN0YWJsZS5qcywgc29ydGFibGUuanMsIGFjY29yZGlvbi5qcywgYXV0b2NvbXBsZXRlLmpzLCBidXR0b24uanMsIGRpYWxvZy5qcywgbWVudS5qcywgcHJvZ3Jlc3NiYXIuanMsIHNlbGVjdG1lbnUuanMsIHNsaWRlci5qcywgc3Bpbm5lci5qcywgdGFicy5qcywgdG9vbHRpcC5qcywgZWZmZWN0LmpzLCBlZmZlY3QtYmxpbmQuanMsIGVmZmVjdC1ib3VuY2UuanMsIGVmZmVjdC1jbGlwLmpzLCBlZmZlY3QtZHJvcC5qcywgZWZmZWN0LWV4cGxvZGUuanMsIGVmZmVjdC1mYWRlLmpzLCBlZmZlY3QtZm9sZC5qcywgZWZmZWN0LWhpZ2hsaWdodC5qcywgZWZmZWN0LXB1ZmYuanMsIGVmZmVjdC1wdWxzYXRlLmpzLCBlZmZlY3Qtc2NhbGUuanMsIGVmZmVjdC1zaGFrZS5qcywgZWZmZWN0LXNpemUuanMsIGVmZmVjdC1zbGlkZS5qcywgZWZmZWN0LXRyYW5zZmVyLmpzCiogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnM7IExpY2Vuc2VkIE1JVCAqLwoKKGZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5Il0sZSk6ZShqUXVlcnkpfSkoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LHMpe3ZhciBuLGEsbyxyPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iYXJlYSI9PT1yPyhuPXQucGFyZW50Tm9kZSxhPW4ubmFtZSx0LmhyZWYmJmEmJiJtYXAiPT09bi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPyhvPWUoImltZ1t1c2VtYXA9JyMiK2ErIiddIilbMF0sISFvJiZpKG8pKTohMSk6KC9eKGlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvLnRlc3Qocik/IXQuZGlzYWJsZWQ6ImEiPT09cj90LmhyZWZ8fHM6cykmJmkodCl9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gZS5leHByLmZpbHRlcnMudmlzaWJsZSh0KSYmIWUodCkucGFyZW50cygpLmFkZEJhY2soKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4iaGlkZGVuIj09PWUuY3NzKHRoaXMsInZpc2liaWxpdHkiKX0pLmxlbmd0aH1mdW5jdGlvbiBzKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudC52YWwoKTtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9yZWZyZXNoKCksdCE9PXRoaXMuZWxlbWVudC52YWwoKSYmdGhpcy5fdHJpZ2dlcigiY2hhbmdlIil9fWUudWk9ZS51aXx8e30sZS5leHRlbmQoZS51aSx7dmVyc2lvbjoiMS4xMS40IixrZXlDb2RlOntCQUNLU1BBQ0U6OCxDT01NQToxODgsREVMRVRFOjQ2LERPV046NDAsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxIT01FOjM2LExFRlQ6MzcsUEFHRV9ET1dOOjM0LFBBR0VfVVA6MzMsUEVSSU9EOjE5MCxSSUdIVDozOSxTUEFDRTozMixUQUI6OSxVUDozOH19KSxlLmZuLmV4dGVuZCh7c2Nyb2xsUGFyZW50OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuY3NzKCJwb3NpdGlvbiIpLHM9ImFic29sdXRlIj09PWksbj10Py8oYXV0b3xzY3JvbGx8aGlkZGVuKS86LyhhdXRvfHNjcm9sbCkvLGE9dGhpcy5wYXJlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gcyYmInN0YXRpYyI9PT10LmNzcygicG9zaXRpb24iKT8hMTpuLnRlc3QodC5jc3MoIm92ZXJmbG93IikrdC5jc3MoIm92ZXJmbG93LXkiKSt0LmNzcygib3ZlcmZsb3cteCIpKX0pLmVxKDApO3JldHVybiJmaXhlZCIhPT1pJiZhLmxlbmd0aD9hOmUodGhpc1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudCl9LHVuaXF1ZUlkOmZ1bmN0aW9uKCl7dmFyIGU9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5pZHx8KHRoaXMuaWQ9InVpLWlkLSIrICsrZSl9KX19KCkscmVtb3ZlVW5pcXVlSWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7L151aS1pZC1cZCskLy50ZXN0KHRoaXMuaWQpJiZlKHRoaXMpLnJlbW92ZUF0dHIoImlkIil9KX19KSxlLmV4dGVuZChlLmV4cHJbIjoiXSx7ZGF0YTplLmV4cHIuY3JlYXRlUHNldWRvP2UuZXhwci5jcmVhdGVQc2V1ZG8oZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiEhZS5kYXRhKGksdCl9fSk6ZnVuY3Rpb24odCxpLHMpe3JldHVybiEhZS5kYXRhKHQsc1szXSl9LGZvY3VzYWJsZTpmdW5jdGlvbihpKXtyZXR1cm4gdChpLCFpc05hTihlLmF0dHIoaSwidGFiaW5kZXgiKSkpfSx0YWJiYWJsZTpmdW5jdGlvbihpKXt2YXIgcz1lLmF0dHIoaSwidGFiaW5kZXgiKSxuPWlzTmFOKHMpO3JldHVybihufHxzPj0wKSYmdChpLCFuKX19KSxlKCI8YT4iKS5vdXRlcldpZHRoKDEpLmpxdWVyeXx8ZS5lYWNoKFsiV2lkdGgiLCJIZWlnaHQiXSxmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHModCxpLHMsYSl7cmV0dXJuIGUuZWFjaChuLGZ1bmN0aW9uKCl7aS09cGFyc2VGbG9hdChlLmNzcyh0LCJwYWRkaW5nIit0aGlzKSl8fDAscyYmKGktPXBhcnNlRmxvYXQoZS5jc3ModCwiYm9yZGVyIit0aGlzKyJXaWR0aCIpKXx8MCksYSYmKGktPXBhcnNlRmxvYXQoZS5jc3ModCwibWFyZ2luIit0aGlzKSl8fDApfSksaX12YXIgbj0iV2lkdGgiPT09aT9bIkxlZnQiLCJSaWdodCJdOlsiVG9wIiwiQm90dG9tIl0sYT1pLnRvTG93ZXJDYXNlKCksbz17aW5uZXJXaWR0aDplLmZuLmlubmVyV2lkdGgsaW5uZXJIZWlnaHQ6ZS5mbi5pbm5lckhlaWdodCxvdXRlcldpZHRoOmUuZm4ub3V0ZXJXaWR0aCxvdXRlckhlaWdodDplLmZuLm91dGVySGVpZ2h0fTtlLmZuWyJpbm5lciIraV09ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/b1siaW5uZXIiK2ldLmNhbGwodGhpcyk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3MoYSxzKHRoaXMsdCkrInB4Iil9KX0sZS5mblsib3V0ZXIiK2ldPWZ1bmN0aW9uKHQsbil7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB0P29bIm91dGVyIitpXS5jYWxsKHRoaXMsdCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3MoYSxzKHRoaXMsdCwhMCxuKSsicHgiKX0pfX0pLGUuZm4uYWRkQmFja3x8KGUuZm4uYWRkQmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9KSxlKCI8YT4iKS5kYXRhKCJhLWIiLCJhIikucmVtb3ZlRGF0YSgiYS1iIikuZGF0YSgiYS1iIikmJihlLmZuLnJlbW92ZURhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QuY2FsbCh0aGlzLGUuY2FtZWxDYXNlKGkpKTp0LmNhbGwodGhpcyl9fShlLmZuLnJlbW92ZURhdGEpKSxlLnVpLmllPSEhL21zaWUgW1x3Ll0rLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSksZS5mbi5leHRlbmQoe2ZvY3VzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMpe3JldHVybiJudW1iZXIiPT10eXBlb2YgaT90aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtlKHQpLmZvY3VzKCkscyYmcy5jYWxsKHQpfSxpKX0pOnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oZS5mbi5mb2N1cyksZGlzYWJsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3ZhciBlPSJvbnNlbGVjdHN0YXJ0ImluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpPyJzZWxlY3RzdGFydCI6Im1vdXNlZG93biI7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYmluZChlKyIudWktZGlzYWJsZVNlbGVjdGlvbiIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpfSl9fSgpLGVuYWJsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVuYmluZCgiLnVpLWRpc2FibGVTZWxlY3Rpb24iKX0sekluZGV4OmZ1bmN0aW9uKHQpe2lmKHZvaWQgMCE9PXQpcmV0dXJuIHRoaXMuY3NzKCJ6SW5kZXgiLHQpO2lmKHRoaXMubGVuZ3RoKWZvcih2YXIgaSxzLG49ZSh0aGlzWzBdKTtuLmxlbmd0aCYmblswXSE9PWRvY3VtZW50Oyl7aWYoaT1uLmNzcygicG9zaXRpb24iKSwoImFic29sdXRlIj09PWl8fCJyZWxhdGl2ZSI9PT1pfHwiZml4ZWQiPT09aSkmJihzPXBhcnNlSW50KG4uY3NzKCJ6SW5kZXgiKSwxMCksIWlzTmFOKHMpJiYwIT09cykpcmV0dXJuIHM7bj1uLnBhcmVudCgpfXJldHVybiAwfX0pLGUudWkucGx1Z2luPXthZGQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGE9ZS51aVt0XS5wcm90b3R5cGU7Zm9yKG4gaW4gcylhLnBsdWdpbnNbbl09YS5wbHVnaW5zW25dfHxbXSxhLnBsdWdpbnNbbl0ucHVzaChbaSxzW25dXSl9LGNhbGw6ZnVuY3Rpb24oZSx0LGkscyl7dmFyIG4sYT1lLnBsdWdpbnNbdF07aWYoYSYmKHN8fGUuZWxlbWVudFswXS5wYXJlbnROb2RlJiYxMSE9PWUuZWxlbWVudFswXS5wYXJlbnROb2RlLm5vZGVUeXBlKSlmb3Iobj0wO2EubGVuZ3RoPm47bisrKWUub3B0aW9uc1thW25dWzBdXSYmYVtuXVsxXS5hcHBseShlLmVsZW1lbnQsaSl9fTt2YXIgbj0wLGE9QXJyYXkucHJvdG90eXBlLnNsaWNlO2UuY2xlYW5EYXRhPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpKXt2YXIgcyxuLGE7Zm9yKGE9MDtudWxsIT0obj1pW2FdKTthKyspdHJ5e3M9ZS5fZGF0YShuLCJldmVudHMiKSxzJiZzLnJlbW92ZSYmZShuKS50cmlnZ2VySGFuZGxlcigicmVtb3ZlIil9Y2F0Y2gobyl7fXQoaSl9fShlLmNsZWFuRGF0YSksZS53aWRnZXQ9ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbyxyLGg9e30sbD10LnNwbGl0KCIuIilbMF07cmV0dXJuIHQ9dC5zcGxpdCgiLiIpWzFdLG49bCsiLSIrdCxzfHwocz1pLGk9ZS5XaWRnZXQpLGUuZXhwclsiOiJdW24udG9Mb3dlckNhc2UoKV09ZnVuY3Rpb24odCl7cmV0dXJuISFlLmRhdGEodCxuKX0sZVtsXT1lW2xdfHx7fSxhPWVbbF1bdF0sbz1lW2xdW3RdPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2NyZWF0ZVdpZGdldD8oYXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lkZ2V0KGUsdCksdm9pZCAwKTpuZXcgbyhlLHQpfSxlLmV4dGVuZChvLGEse3ZlcnNpb246cy52ZXJzaW9uLF9wcm90bzplLmV4dGVuZCh7fSxzKSxfY2hpbGRDb25zdHJ1Y3RvcnM6W119KSxyPW5ldyBpLHIub3B0aW9ucz1lLndpZGdldC5leHRlbmQoe30sci5vcHRpb25zKSxlLmVhY2gocyxmdW5jdGlvbih0LHMpe3JldHVybiBlLmlzRnVuY3Rpb24ocyk/KGhbdF09ZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbigpe3JldHVybiBpLnByb3RvdHlwZVt0XS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG49ZnVuY3Rpb24oZSl7cmV0dXJuIGkucHJvdG90eXBlW3RdLmFwcGx5KHRoaXMsZSl9O3JldHVybiBmdW5jdGlvbigpe3ZhciB0LGk9dGhpcy5fc3VwZXIsYT10aGlzLl9zdXBlckFwcGx5O3JldHVybiB0aGlzLl9zdXBlcj1lLHRoaXMuX3N1cGVyQXBwbHk9bix0PXMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3N1cGVyPWksdGhpcy5fc3VwZXJBcHBseT1hLHR9fSgpLHZvaWQgMCk6KGhbdF09cyx2b2lkIDApfSksby5wcm90b3R5cGU9ZS53aWRnZXQuZXh0ZW5kKHIse3dpZGdldEV2ZW50UHJlZml4OmE/ci53aWRnZXRFdmVudFByZWZpeHx8dDp0fSxoLHtjb25zdHJ1Y3RvcjpvLG5hbWVzcGFjZTpsLHdpZGdldE5hbWU6dCx3aWRnZXRGdWxsTmFtZTpufSksYT8oZS5lYWNoKGEuX2NoaWxkQ29uc3RydWN0b3JzLGZ1bmN0aW9uKHQsaSl7dmFyIHM9aS5wcm90b3R5cGU7ZS53aWRnZXQocy5uYW1lc3BhY2UrIi4iK3Mud2lkZ2V0TmFtZSxvLGkuX3Byb3RvKX0pLGRlbGV0ZSBhLl9jaGlsZENvbnN0cnVjdG9ycyk6aS5fY2hpbGRDb25zdHJ1Y3RvcnMucHVzaChvKSxlLndpZGdldC5icmlkZ2UodCxvKSxvfSxlLndpZGdldC5leHRlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpLHMsbj1hLmNhbGwoYXJndW1lbnRzLDEpLG89MCxyPW4ubGVuZ3RoO3I+bztvKyspZm9yKGkgaW4gbltvXSlzPW5bb11baV0sbltvXS5oYXNPd25Qcm9wZXJ0eShpKSYmdm9pZCAwIT09cyYmKHRbaV09ZS5pc1BsYWluT2JqZWN0KHMpP2UuaXNQbGFpbk9iamVjdCh0W2ldKT9lLndpZGdldC5leHRlbmQoe30sdFtpXSxzKTplLndpZGdldC5leHRlbmQoe30scyk6cyk7cmV0dXJuIHR9LGUud2lkZ2V0LmJyaWRnZT1mdW5jdGlvbih0LGkpe3ZhciBzPWkucHJvdG90eXBlLndpZGdldEZ1bGxOYW1lfHx0O2UuZm5bdF09ZnVuY3Rpb24obil7dmFyIG89InN0cmluZyI9PXR5cGVvZiBuLHI9YS5jYWxsKGFyZ3VtZW50cywxKSxoPXRoaXM7cmV0dXJuIG8/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGksYT1lLmRhdGEodGhpcyxzKTtyZXR1cm4iaW5zdGFuY2UiPT09bj8oaD1hLCExKTphP2UuaXNGdW5jdGlvbihhW25dKSYmIl8iIT09bi5jaGFyQXQoMCk/KGk9YVtuXS5hcHBseShhLHIpLGkhPT1hJiZ2b2lkIDAhPT1pPyhoPWkmJmkuanF1ZXJ5P2gucHVzaFN0YWNrKGkuZ2V0KCkpOmksITEpOnZvaWQgMCk6ZS5lcnJvcigibm8gc3VjaCBtZXRob2QgJyIrbisiJyBmb3IgIit0KyIgd2lkZ2V0IGluc3RhbmNlIik6ZS5lcnJvcigiY2Fubm90IGNhbGwgbWV0aG9kcyBvbiAiK3QrIiBwcmlvciB0byBpbml0aWFsaXphdGlvbjsgIisiYXR0ZW1wdGVkIHRvIGNhbGwgbWV0aG9kICciK24rIiciKX0pOihyLmxlbmd0aCYmKG49ZS53aWRnZXQuZXh0ZW5kLmFwcGx5KG51bGwsW25dLmNvbmNhdChyKSkpLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUuZGF0YSh0aGlzLHMpO3Q/KHQub3B0aW9uKG58fHt9KSx0Ll9pbml0JiZ0Ll9pbml0KCkpOmUuZGF0YSh0aGlzLHMsbmV3IGkobix0aGlzKSl9KSksaH19LGUuV2lkZ2V0PWZ1bmN0aW9uKCl7fSxlLldpZGdldC5fY2hpbGRDb25zdHJ1Y3RvcnM9W10sZS5XaWRnZXQucHJvdG90eXBlPXt3aWRnZXROYW1lOiJ3aWRnZXQiLHdpZGdldEV2ZW50UHJlZml4OiIiLGRlZmF1bHRFbGVtZW50OiI8ZGl2PiIsb3B0aW9uczp7ZGlzYWJsZWQ6ITEsY3JlYXRlOm51bGx9LF9jcmVhdGVXaWRnZXQ6ZnVuY3Rpb24odCxpKXtpPWUoaXx8dGhpcy5kZWZhdWx0RWxlbWVudHx8dGhpcylbMF0sdGhpcy5lbGVtZW50PWUoaSksdGhpcy51dWlkPW4rKyx0aGlzLmV2ZW50TmFtZXNwYWNlPSIuIit0aGlzLndpZGdldE5hbWUrdGhpcy51dWlkLHRoaXMuYmluZGluZ3M9ZSgpLHRoaXMuaG92ZXJhYmxlPWUoKSx0aGlzLmZvY3VzYWJsZT1lKCksaSE9PXRoaXMmJihlLmRhdGEoaSx0aGlzLndpZGdldEZ1bGxOYW1lLHRoaXMpLHRoaXMuX29uKCEwLHRoaXMuZWxlbWVudCx7cmVtb3ZlOmZ1bmN0aW9uKGUpe2UudGFyZ2V0PT09aSYmdGhpcy5kZXN0cm95KCl9fSksdGhpcy5kb2N1bWVudD1lKGkuc3R5bGU/aS5vd25lckRvY3VtZW50OmkuZG9jdW1lbnR8fGkpLHRoaXMud2luZG93PWUodGhpcy5kb2N1bWVudFswXS5kZWZhdWx0Vmlld3x8dGhpcy5kb2N1bWVudFswXS5wYXJlbnRXaW5kb3cpKSx0aGlzLm9wdGlvbnM9ZS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyx0aGlzLl9nZXRDcmVhdGVPcHRpb25zKCksdCksdGhpcy5fY3JlYXRlKCksdGhpcy5fdHJpZ2dlcigiY3JlYXRlIixudWxsLHRoaXMuX2dldENyZWF0ZUV2ZW50RGF0YSgpKSx0aGlzLl9pbml0KCl9LF9nZXRDcmVhdGVPcHRpb25zOmUubm9vcCxfZ2V0Q3JlYXRlRXZlbnREYXRhOmUubm9vcCxfY3JlYXRlOmUubm9vcCxfaW5pdDplLm5vb3AsZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX2Rlc3Ryb3koKSx0aGlzLmVsZW1lbnQudW5iaW5kKHRoaXMuZXZlbnROYW1lc3BhY2UpLnJlbW92ZURhdGEodGhpcy53aWRnZXRGdWxsTmFtZSkucmVtb3ZlRGF0YShlLmNhbWVsQ2FzZSh0aGlzLndpZGdldEZ1bGxOYW1lKSksdGhpcy53aWRnZXQoKS51bmJpbmQodGhpcy5ldmVudE5hbWVzcGFjZSkucmVtb3ZlQXR0cigiYXJpYS1kaXNhYmxlZCIpLnJlbW92ZUNsYXNzKHRoaXMud2lkZ2V0RnVsbE5hbWUrIi1kaXNhYmxlZCAiKyJ1aS1zdGF0ZS1kaXNhYmxlZCIpLHRoaXMuYmluZGluZ3MudW5iaW5kKHRoaXMuZXZlbnROYW1lc3BhY2UpLHRoaXMuaG92ZXJhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLHRoaXMuZm9jdXNhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSxfZGVzdHJveTplLm5vb3Asd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxlbWVudH0sb3B0aW9uOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89dDtpZigwPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyk7aWYoInN0cmluZyI9PXR5cGVvZiB0KWlmKG89e30scz10LnNwbGl0KCIuIiksdD1zLnNoaWZ0KCkscy5sZW5ndGgpe2ZvcihuPW9bdF09ZS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9uc1t0XSksYT0wO3MubGVuZ3RoLTE+YTthKyspbltzW2FdXT1uW3NbYV1dfHx7fSxuPW5bc1thXV07aWYodD1zLnBvcCgpLDE9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1uW3RdP251bGw6blt0XTtuW3RdPWl9ZWxzZXtpZigxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09dGhpcy5vcHRpb25zW3RdP251bGw6dGhpcy5vcHRpb25zW3RdO29bdF09aX1yZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyhvKSx0aGlzfSxfc2V0T3B0aW9uczpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXRoaXMuX3NldE9wdGlvbih0LGVbdF0pO3JldHVybiB0aGlzfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMub3B0aW9uc1tlXT10LCJkaXNhYmxlZCI9PT1lJiYodGhpcy53aWRnZXQoKS50b2dnbGVDbGFzcyh0aGlzLndpZGdldEZ1bGxOYW1lKyItZGlzYWJsZWQiLCEhdCksdCYmKHRoaXMuaG92ZXJhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLHRoaXMuZm9jdXNhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpKSksdGhpc30sZW5hYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoe2Rpc2FibGVkOiExfSl9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7ZGlzYWJsZWQ6ITB9KX0sX29uOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbixhPXRoaXM7ImJvb2xlYW4iIT10eXBlb2YgdCYmKHM9aSxpPXQsdD0hMSkscz8oaT1uPWUoaSksdGhpcy5iaW5kaW5ncz10aGlzLmJpbmRpbmdzLmFkZChpKSk6KHM9aSxpPXRoaXMuZWxlbWVudCxuPXRoaXMud2lkZ2V0KCkpLGUuZWFjaChzLGZ1bmN0aW9uKHMsbyl7ZnVuY3Rpb24gcigpe3JldHVybiB0fHxhLm9wdGlvbnMuZGlzYWJsZWQhPT0hMCYmIWUodGhpcykuaGFzQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIik/KCJzdHJpbmciPT10eXBlb2Ygbz9hW29dOm8pLmFwcGx5KGEsYXJndW1lbnRzKTp2b2lkIDB9InN0cmluZyIhPXR5cGVvZiBvJiYoci5ndWlkPW8uZ3VpZD1vLmd1aWR8fHIuZ3VpZHx8ZS5ndWlkKyspO3ZhciBoPXMubWF0Y2goL14oW1x3Oi1dKilccyooLiopJC8pLGw9aFsxXSthLmV2ZW50TmFtZXNwYWNlLHU9aFsyXTt1P24uZGVsZWdhdGUodSxsLHIpOmkuYmluZChsLHIpfSl9LF9vZmY6ZnVuY3Rpb24odCxpKXtpPShpfHwiIikuc3BsaXQoIiAiKS5qb2luKHRoaXMuZXZlbnROYW1lc3BhY2UrIiAiKSt0aGlzLmV2ZW50TmFtZXNwYWNlLHQudW5iaW5kKGkpLnVuZGVsZWdhdGUoaSksdGhpcy5iaW5kaW5ncz1lKHRoaXMuYmluZGluZ3Mubm90KHQpLmdldCgpKSx0aGlzLmZvY3VzYWJsZT1lKHRoaXMuZm9jdXNhYmxlLm5vdCh0KS5nZXQoKSksdGhpcy5ob3ZlcmFibGU9ZSh0aGlzLmhvdmVyYWJsZS5ub3QodCkuZ2V0KCkpfSxfZGVsYXk6ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7cmV0dXJuKCJzdHJpbmciPT10eXBlb2YgZT9zW2VdOmUpLmFwcGx5KHMsYXJndW1lbnRzKX12YXIgcz10aGlzO3JldHVybiBzZXRUaW1lb3V0KGksdHx8MCl9LF9ob3ZlcmFibGU6ZnVuY3Rpb24odCl7dGhpcy5ob3ZlcmFibGU9dGhpcy5ob3ZlcmFibGUuYWRkKHQpLHRoaXMuX29uKHQse21vdXNlZW50ZXI6ZnVuY3Rpb24odCl7ZSh0LmN1cnJlbnRUYXJnZXQpLmFkZENsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfSxtb3VzZWxlYXZlOmZ1bmN0aW9uKHQpe2UodC5jdXJyZW50VGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtaG92ZXIiKX19KX0sX2ZvY3VzYWJsZTpmdW5jdGlvbih0KXt0aGlzLmZvY3VzYWJsZT10aGlzLmZvY3VzYWJsZS5hZGQodCksdGhpcy5fb24odCx7Zm9jdXNpbjpmdW5jdGlvbih0KXtlKHQuY3VycmVudFRhcmdldCkuYWRkQ2xhc3MoInVpLXN0YXRlLWZvY3VzIil9LGZvY3Vzb3V0OmZ1bmN0aW9uKHQpe2UodC5jdXJyZW50VGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtZm9jdXMiKX19KX0sX3RyaWdnZXI6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbz10aGlzLm9wdGlvbnNbdF07aWYocz1zfHx7fSxpPWUuRXZlbnQoaSksaS50eXBlPSh0PT09dGhpcy53aWRnZXRFdmVudFByZWZpeD90OnRoaXMud2lkZ2V0RXZlbnRQcmVmaXgrdCkudG9Mb3dlckNhc2UoKSxpLnRhcmdldD10aGlzLmVsZW1lbnRbMF0sYT1pLm9yaWdpbmFsRXZlbnQpZm9yKG4gaW4gYSluIGluIGl8fChpW25dPWFbbl0pO3JldHVybiB0aGlzLmVsZW1lbnQudHJpZ2dlcihpLHMpLCEoZS5pc0Z1bmN0aW9uKG8pJiZvLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbaV0uY29uY2F0KHMpKT09PSExfHxpLmlzRGVmYXVsdFByZXZlbnRlZCgpKX19LGUuZWFjaCh7c2hvdzoiZmFkZUluIixoaWRlOiJmYWRlT3V0In0sZnVuY3Rpb24odCxpKXtlLldpZGdldC5wcm90b3R5cGVbIl8iK3RdPWZ1bmN0aW9uKHMsbixhKXsic3RyaW5nIj09dHlwZW9mIG4mJihuPXtlZmZlY3Q6bn0pO3ZhciBvLHI9bj9uPT09ITB8fCJudW1iZXIiPT10eXBlb2Ygbj9pOm4uZWZmZWN0fHxpOnQ7bj1ufHx7fSwibnVtYmVyIj09dHlwZW9mIG4mJihuPXtkdXJhdGlvbjpufSksbz0hZS5pc0VtcHR5T2JqZWN0KG4pLG4uY29tcGxldGU9YSxuLmRlbGF5JiZzLmRlbGF5KG4uZGVsYXkpLG8mJmUuZWZmZWN0cyYmZS5lZmZlY3RzLmVmZmVjdFtyXT9zW3RdKG4pOnIhPT10JiZzW3JdP3Nbcl0obi5kdXJhdGlvbixuLmVhc2luZyxhKTpzLnF1ZXVlKGZ1bmN0aW9uKGkpe2UodGhpcylbdF0oKSxhJiZhLmNhbGwoc1swXSksaSgpfSl9fSksZS53aWRnZXQ7dmFyIG89ITE7ZShkb2N1bWVudCkubW91c2V1cChmdW5jdGlvbigpe289ITF9KSxlLndpZGdldCgidWkubW91c2UiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2NhbmNlbDoiaW5wdXQsdGV4dGFyZWEsYnV0dG9uLHNlbGVjdCxvcHRpb24iLGRpc3RhbmNlOjEsZGVsYXk6MH0sX21vdXNlSW5pdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5lbGVtZW50LmJpbmQoIm1vdXNlZG93bi4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihlKXtyZXR1cm4gdC5fbW91c2VEb3duKGUpfSkuYmluZCgiY2xpY2suIit0aGlzLndpZGdldE5hbWUsZnVuY3Rpb24oaSl7cmV0dXJuITA9PT1lLmRhdGEoaS50YXJnZXQsdC53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKT8oZS5yZW1vdmVEYXRhKGkudGFyZ2V0LHQud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IiksaS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSwhMSk6dm9pZCAwfSksdGhpcy5zdGFydGVkPSExfSxfbW91c2VEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnVuYmluZCgiLiIrdGhpcy53aWRnZXROYW1lKSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSYmdGhpcy5kb2N1bWVudC51bmJpbmQoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkudW5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSl9LF9tb3VzZURvd246ZnVuY3Rpb24odCl7aWYoIW8pe3RoaXMuX21vdXNlTW92ZWQ9ITEsdGhpcy5fbW91c2VTdGFydGVkJiZ0aGlzLl9tb3VzZVVwKHQpLHRoaXMuX21vdXNlRG93bkV2ZW50PXQ7dmFyIGk9dGhpcyxzPTE9PT10LndoaWNoLG49InN0cmluZyI9PXR5cGVvZiB0aGlzLm9wdGlvbnMuY2FuY2VsJiZ0LnRhcmdldC5ub2RlTmFtZT9lKHQudGFyZ2V0KS5jbG9zZXN0KHRoaXMub3B0aW9ucy5jYW5jZWwpLmxlbmd0aDohMTtyZXR1cm4gcyYmIW4mJnRoaXMuX21vdXNlQ2FwdHVyZSh0KT8odGhpcy5tb3VzZURlbGF5TWV0PSF0aGlzLm9wdGlvbnMuZGVsYXksdGhpcy5tb3VzZURlbGF5TWV0fHwodGhpcy5fbW91c2VEZWxheVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLm1vdXNlRGVsYXlNZXQ9ITB9LHRoaXMub3B0aW9ucy5kZWxheSkpLHRoaXMuX21vdXNlRGlzdGFuY2VNZXQodCkmJnRoaXMuX21vdXNlRGVsYXlNZXQodCkmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9dGhpcy5fbW91c2VTdGFydCh0KSE9PSExLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpPyh0LnByZXZlbnREZWZhdWx0KCksITApOighMD09PWUuZGF0YSh0LnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpJiZlLnJlbW92ZURhdGEodC50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZT1mdW5jdGlvbihlKXtyZXR1cm4gaS5fbW91c2VNb3ZlKGUpfSx0aGlzLl9tb3VzZVVwRGVsZWdhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuX21vdXNlVXAoZSl9LHRoaXMuZG9jdW1lbnQuYmluZCgibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdC5wcmV2ZW50RGVmYXVsdCgpLG89ITAsITApKTohMH19LF9tb3VzZU1vdmU6ZnVuY3Rpb24odCl7aWYodGhpcy5fbW91c2VNb3ZlZCl7aWYoZS51aS5pZSYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk+ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSYmIXQuYnV0dG9uKXJldHVybiB0aGlzLl9tb3VzZVVwKHQpO2lmKCF0LndoaWNoKXJldHVybiB0aGlzLl9tb3VzZVVwKHQpfXJldHVybih0LndoaWNofHx0LmJ1dHRvbikmJih0aGlzLl9tb3VzZU1vdmVkPSEwKSx0aGlzLl9tb3VzZVN0YXJ0ZWQ/KHRoaXMuX21vdXNlRHJhZyh0KSx0LnByZXZlbnREZWZhdWx0KCkpOih0aGlzLl9tb3VzZURpc3RhbmNlTWV0KHQpJiZ0aGlzLl9tb3VzZURlbGF5TWV0KHQpJiYodGhpcy5fbW91c2VTdGFydGVkPXRoaXMuX21vdXNlU3RhcnQodGhpcy5fbW91c2VEb3duRXZlbnQsdCkhPT0hMSx0aGlzLl9tb3VzZVN0YXJ0ZWQ/dGhpcy5fbW91c2VEcmFnKHQpOnRoaXMuX21vdXNlVXAodCkpLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpfSxfbW91c2VVcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kb2N1bWVudC51bmJpbmQoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkudW5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdGhpcy5fbW91c2VTdGFydGVkJiYodGhpcy5fbW91c2VTdGFydGVkPSExLHQudGFyZ2V0PT09dGhpcy5fbW91c2VEb3duRXZlbnQudGFyZ2V0JiZlLmRhdGEodC50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiLCEwKSx0aGlzLl9tb3VzZVN0b3AodCkpLG89ITEsITF9LF9tb3VzZURpc3RhbmNlTWV0OmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLm1heChNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWC1lLnBhZ2VYKSxNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWS1lLnBhZ2VZKSk+PXRoaXMub3B0aW9ucy5kaXN0YW5jZX0sX21vdXNlRGVsYXlNZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb3VzZURlbGF5TWV0fSxfbW91c2VTdGFydDpmdW5jdGlvbigpe30sX21vdXNlRHJhZzpmdW5jdGlvbigpe30sX21vdXNlU3RvcDpmdW5jdGlvbigpe30sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbigpe3JldHVybiEwfX0pLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHQsaSl7cmV0dXJuW3BhcnNlRmxvYXQoZVswXSkqKHAudGVzdChlWzBdKT90LzEwMDoxKSxwYXJzZUZsb2F0KGVbMV0pKihwLnRlc3QoZVsxXSk/aS8xMDA6MSldfWZ1bmN0aW9uIGkodCxpKXtyZXR1cm4gcGFyc2VJbnQoZS5jc3ModCxpKSwxMCl8fDB9ZnVuY3Rpb24gcyh0KXt2YXIgaT10WzBdO3JldHVybiA5PT09aS5ub2RlVHlwZT97d2lkdGg6dC53aWR0aCgpLGhlaWdodDp0LmhlaWdodCgpLG9mZnNldDp7dG9wOjAsbGVmdDowfX06ZS5pc1dpbmRvdyhpKT97d2lkdGg6dC53aWR0aCgpLGhlaWdodDp0LmhlaWdodCgpLG9mZnNldDp7dG9wOnQuc2Nyb2xsVG9wKCksbGVmdDp0LnNjcm9sbExlZnQoKX19OmkucHJldmVudERlZmF1bHQ/e3dpZHRoOjAsaGVpZ2h0OjAsb2Zmc2V0Ont0b3A6aS5wYWdlWSxsZWZ0OmkucGFnZVh9fTp7d2lkdGg6dC5vdXRlcldpZHRoKCksaGVpZ2h0OnQub3V0ZXJIZWlnaHQoKSxvZmZzZXQ6dC5vZmZzZXQoKX19ZS51aT1lLnVpfHx7fTt2YXIgbixhLG89TWF0aC5tYXgscj1NYXRoLmFicyxoPU1hdGgucm91bmQsbD0vbGVmdHxjZW50ZXJ8cmlnaHQvLHU9L3RvcHxjZW50ZXJ8Ym90dG9tLyxkPS9bXCtcLV1cZCsoXC5bXGRdKyk/JT8vLGM9L15cdysvLHA9LyUkLyxmPWUuZm4ucG9zaXRpb247ZS5wb3NpdGlvbj17c2Nyb2xsYmFyV2lkdGg6ZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1uKXJldHVybiBuO3ZhciB0LGkscz1lKCI8ZGl2IHN0eWxlPSdkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7b3ZlcmZsb3c6aGlkZGVuOyc+PGRpdiBzdHlsZT0naGVpZ2h0OjEwMHB4O3dpZHRoOmF1dG87Jz48L2Rpdj48L2Rpdj4iKSxhPXMuY2hpbGRyZW4oKVswXTtyZXR1cm4gZSgiYm9keSIpLmFwcGVuZChzKSx0PWEub2Zmc2V0V2lkdGgscy5jc3MoIm92ZXJmbG93Iiwic2Nyb2xsIiksaT1hLm9mZnNldFdpZHRoLHQ9PT1pJiYoaT1zWzBdLmNsaWVudFdpZHRoKSxzLnJlbW92ZSgpLG49dC1pfSxnZXRTY3JvbGxJbmZvOmZ1bmN0aW9uKHQpe3ZhciBpPXQuaXNXaW5kb3d8fHQuaXNEb2N1bWVudD8iIjp0LmVsZW1lbnQuY3NzKCJvdmVyZmxvdy14Iikscz10LmlzV2luZG93fHx0LmlzRG9jdW1lbnQ/IiI6dC5lbGVtZW50LmNzcygib3ZlcmZsb3cteSIpLG49InNjcm9sbCI9PT1pfHwiYXV0byI9PT1pJiZ0LndpZHRoPHQuZWxlbWVudFswXS5zY3JvbGxXaWR0aCxhPSJzY3JvbGwiPT09c3x8ImF1dG8iPT09cyYmdC5oZWlnaHQ8dC5lbGVtZW50WzBdLnNjcm9sbEhlaWdodDtyZXR1cm57d2lkdGg6YT9lLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCk6MCxoZWlnaHQ6bj9lLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCk6MH19LGdldFdpdGhpbkluZm86ZnVuY3Rpb24odCl7dmFyIGk9ZSh0fHx3aW5kb3cpLHM9ZS5pc1dpbmRvdyhpWzBdKSxuPSEhaVswXSYmOT09PWlbMF0ubm9kZVR5cGU7cmV0dXJue2VsZW1lbnQ6aSxpc1dpbmRvdzpzLGlzRG9jdW1lbnQ6bixvZmZzZXQ6aS5vZmZzZXQoKXx8e2xlZnQ6MCx0b3A6MH0sc2Nyb2xsTGVmdDppLnNjcm9sbExlZnQoKSxzY3JvbGxUb3A6aS5zY3JvbGxUb3AoKSx3aWR0aDpzfHxuP2kud2lkdGgoKTppLm91dGVyV2lkdGgoKSxoZWlnaHQ6c3x8bj9pLmhlaWdodCgpOmkub3V0ZXJIZWlnaHQoKX19fSxlLmZuLnBvc2l0aW9uPWZ1bmN0aW9uKG4pe2lmKCFufHwhbi5vZilyZXR1cm4gZi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bj1lLmV4dGVuZCh7fSxuKTt2YXIgcCxtLGcsdix5LGIsXz1lKG4ub2YpLHg9ZS5wb3NpdGlvbi5nZXRXaXRoaW5JbmZvKG4ud2l0aGluKSx3PWUucG9zaXRpb24uZ2V0U2Nyb2xsSW5mbyh4KSxrPShuLmNvbGxpc2lvbnx8ImZsaXAiKS5zcGxpdCgiICIpLFQ9e307cmV0dXJuIGI9cyhfKSxfWzBdLnByZXZlbnREZWZhdWx0JiYobi5hdD0ibGVmdCB0b3AiKSxtPWIud2lkdGgsZz1iLmhlaWdodCx2PWIub2Zmc2V0LHk9ZS5leHRlbmQoe30sdiksZS5lYWNoKFsibXkiLCJhdCJdLGZ1bmN0aW9uKCl7dmFyIGUsdCxpPShuW3RoaXNdfHwiIikuc3BsaXQoIiAiKTsxPT09aS5sZW5ndGgmJihpPWwudGVzdChpWzBdKT9pLmNvbmNhdChbImNlbnRlciJdKTp1LnRlc3QoaVswXSk/WyJjZW50ZXIiXS5jb25jYXQoaSk6WyJjZW50ZXIiLCJjZW50ZXIiXSksaVswXT1sLnRlc3QoaVswXSk/aVswXToiY2VudGVyIixpWzFdPXUudGVzdChpWzFdKT9pWzFdOiJjZW50ZXIiLGU9ZC5leGVjKGlbMF0pLHQ9ZC5leGVjKGlbMV0pLFRbdGhpc109W2U/ZVswXTowLHQ/dFswXTowXSxuW3RoaXNdPVtjLmV4ZWMoaVswXSlbMF0sYy5leGVjKGlbMV0pWzBdXX0pLDE9PT1rLmxlbmd0aCYmKGtbMV09a1swXSksInJpZ2h0Ij09PW4uYXRbMF0/eS5sZWZ0Kz1tOiJjZW50ZXIiPT09bi5hdFswXSYmKHkubGVmdCs9bS8yKSwiYm90dG9tIj09PW4uYXRbMV0/eS50b3ArPWc6ImNlbnRlciI9PT1uLmF0WzFdJiYoeS50b3ArPWcvMikscD10KFQuYXQsbSxnKSx5LmxlZnQrPXBbMF0seS50b3ArPXBbMV0sdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHMsbCx1PWUodGhpcyksZD11Lm91dGVyV2lkdGgoKSxjPXUub3V0ZXJIZWlnaHQoKSxmPWkodGhpcywibWFyZ2luTGVmdCIpLGI9aSh0aGlzLCJtYXJnaW5Ub3AiKSxEPWQrZitpKHRoaXMsIm1hcmdpblJpZ2h0Iikrdy53aWR0aCxTPWMrYitpKHRoaXMsIm1hcmdpbkJvdHRvbSIpK3cuaGVpZ2h0LE49ZS5leHRlbmQoe30seSksTT10KFQubXksdS5vdXRlcldpZHRoKCksdS5vdXRlckhlaWdodCgpKTsicmlnaHQiPT09bi5teVswXT9OLmxlZnQtPWQ6ImNlbnRlciI9PT1uLm15WzBdJiYoTi5sZWZ0LT1kLzIpLCJib3R0b20iPT09bi5teVsxXT9OLnRvcC09YzoiY2VudGVyIj09PW4ubXlbMV0mJihOLnRvcC09Yy8yKSxOLmxlZnQrPU1bMF0sTi50b3ArPU1bMV0sYXx8KE4ubGVmdD1oKE4ubGVmdCksTi50b3A9aChOLnRvcCkpLHM9e21hcmdpbkxlZnQ6ZixtYXJnaW5Ub3A6Yn0sZS5lYWNoKFsibGVmdCIsInRvcCJdLGZ1bmN0aW9uKHQsaSl7ZS51aS5wb3NpdGlvbltrW3RdXSYmZS51aS5wb3NpdGlvbltrW3RdXVtpXShOLHt0YXJnZXRXaWR0aDptLHRhcmdldEhlaWdodDpnLGVsZW1XaWR0aDpkLGVsZW1IZWlnaHQ6Yyxjb2xsaXNpb25Qb3NpdGlvbjpzLGNvbGxpc2lvbldpZHRoOkQsY29sbGlzaW9uSGVpZ2h0OlMsb2Zmc2V0OltwWzBdK01bMF0scFsxXStNWzFdXSxteTpuLm15LGF0Om4uYXQsd2l0aGluOngsZWxlbTp1fSl9KSxuLnVzaW5nJiYobD1mdW5jdGlvbihlKXt2YXIgdD12LmxlZnQtTi5sZWZ0LGk9dCttLWQscz12LnRvcC1OLnRvcCxhPXMrZy1jLGg9e3RhcmdldDp7ZWxlbWVudDpfLGxlZnQ6di5sZWZ0LHRvcDp2LnRvcCx3aWR0aDptLGhlaWdodDpnfSxlbGVtZW50OntlbGVtZW50OnUsbGVmdDpOLmxlZnQsdG9wOk4udG9wLHdpZHRoOmQsaGVpZ2h0OmN9LGhvcml6b250YWw6MD5pPyJsZWZ0Ijp0PjA/InJpZ2h0IjoiY2VudGVyIix2ZXJ0aWNhbDowPmE/InRvcCI6cz4wPyJib3R0b20iOiJtaWRkbGUifTtkPm0mJm0+cih0K2kpJiYoaC5ob3Jpem9udGFsPSJjZW50ZXIiKSxjPmcmJmc+cihzK2EpJiYoaC52ZXJ0aWNhbD0ibWlkZGxlIiksaC5pbXBvcnRhbnQ9byhyKHQpLHIoaSkpPm8ocihzKSxyKGEpKT8iaG9yaXpvbnRhbCI6InZlcnRpY2FsIixuLnVzaW5nLmNhbGwodGhpcyxlLGgpfSksdS5vZmZzZXQoZS5leHRlbmQoTix7dXNpbmc6bH0pKX0pfSxlLnVpLnBvc2l0aW9uPXtmaXQ6e2xlZnQ6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzPXQud2l0aGluLG49cy5pc1dpbmRvdz9zLnNjcm9sbExlZnQ6cy5vZmZzZXQubGVmdCxhPXMud2lkdGgscj1lLmxlZnQtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0LGg9bi1yLGw9cit0LmNvbGxpc2lvbldpZHRoLWEtbjt0LmNvbGxpc2lvbldpZHRoPmE/aD4wJiYwPj1sPyhpPWUubGVmdCtoK3QuY29sbGlzaW9uV2lkdGgtYS1uLGUubGVmdCs9aC1pKTplLmxlZnQ9bD4wJiYwPj1oP246aD5sP24rYS10LmNvbGxpc2lvbldpZHRoOm46aD4wP2UubGVmdCs9aDpsPjA/ZS5sZWZ0LT1sOmUubGVmdD1vKGUubGVmdC1yLGUubGVmdCl9LHRvcDpmdW5jdGlvbihlLHQpe3ZhciBpLHM9dC53aXRoaW4sbj1zLmlzV2luZG93P3Muc2Nyb2xsVG9wOnMub2Zmc2V0LnRvcCxhPXQud2l0aGluLmhlaWdodCxyPWUudG9wLXQuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luVG9wLGg9bi1yLGw9cit0LmNvbGxpc2lvbkhlaWdodC1hLW47dC5jb2xsaXNpb25IZWlnaHQ+YT9oPjAmJjA+PWw/KGk9ZS50b3AraCt0LmNvbGxpc2lvbkhlaWdodC1hLW4sZS50b3ArPWgtaSk6ZS50b3A9bD4wJiYwPj1oP246aD5sP24rYS10LmNvbGxpc2lvbkhlaWdodDpuOmg+MD9lLnRvcCs9aDpsPjA/ZS50b3AtPWw6ZS50b3A9byhlLnRvcC1yLGUudG9wKX19LGZsaXA6e2xlZnQ6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49dC53aXRoaW4sYT1uLm9mZnNldC5sZWZ0K24uc2Nyb2xsTGVmdCxvPW4ud2lkdGgsaD1uLmlzV2luZG93P24uc2Nyb2xsTGVmdDpuLm9mZnNldC5sZWZ0LGw9ZS5sZWZ0LXQuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luTGVmdCx1PWwtaCxkPWwrdC5jb2xsaXNpb25XaWR0aC1vLWgsYz0ibGVmdCI9PT10Lm15WzBdPy10LmVsZW1XaWR0aDoicmlnaHQiPT09dC5teVswXT90LmVsZW1XaWR0aDowLHA9ImxlZnQiPT09dC5hdFswXT90LnRhcmdldFdpZHRoOiJyaWdodCI9PT10LmF0WzBdPy10LnRhcmdldFdpZHRoOjAsZj0tMip0Lm9mZnNldFswXTswPnU/KGk9ZS5sZWZ0K2MrcCtmK3QuY29sbGlzaW9uV2lkdGgtby1hLCgwPml8fHIodSk+aSkmJihlLmxlZnQrPWMrcCtmKSk6ZD4wJiYocz1lLmxlZnQtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0K2MrcCtmLWgsKHM+MHx8ZD5yKHMpKSYmKGUubGVmdCs9YytwK2YpKX0sdG9wOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPXQud2l0aGluLGE9bi5vZmZzZXQudG9wK24uc2Nyb2xsVG9wLG89bi5oZWlnaHQsaD1uLmlzV2luZG93P24uc2Nyb2xsVG9wOm4ub2Zmc2V0LnRvcCxsPWUudG9wLXQuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luVG9wLHU9bC1oLGQ9bCt0LmNvbGxpc2lvbkhlaWdodC1vLWgsYz0idG9wIj09PXQubXlbMV0scD1jPy10LmVsZW1IZWlnaHQ6ImJvdHRvbSI9PT10Lm15WzFdP3QuZWxlbUhlaWdodDowLGY9InRvcCI9PT10LmF0WzFdP3QudGFyZ2V0SGVpZ2h0OiJib3R0b20iPT09dC5hdFsxXT8tdC50YXJnZXRIZWlnaHQ6MCxtPS0yKnQub2Zmc2V0WzFdOzA+dT8ocz1lLnRvcCtwK2YrbSt0LmNvbGxpc2lvbkhlaWdodC1vLWEsKDA+c3x8cih1KT5zKSYmKGUudG9wKz1wK2YrbSkpOmQ+MCYmKGk9ZS50b3AtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5Ub3ArcCtmK20taCwoaT4wfHxkPnIoaSkpJiYoZS50b3ArPXArZittKSl9fSxmbGlwZml0OntsZWZ0OmZ1bmN0aW9uKCl7ZS51aS5wb3NpdGlvbi5mbGlwLmxlZnQuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudWkucG9zaXRpb24uZml0LmxlZnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx0b3A6ZnVuY3Rpb24oKXtlLnVpLnBvc2l0aW9uLmZsaXAudG9wLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxlLnVpLnBvc2l0aW9uLmZpdC50b3AuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19LGZ1bmN0aW9uKCl7dmFyIHQsaSxzLG4sbyxyPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0saD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocj8iZGl2IjoiYm9keSIpLHM9e3Zpc2liaWxpdHk6ImhpZGRlbiIsd2lkdGg6MCxoZWlnaHQ6MCxib3JkZXI6MCxtYXJnaW46MCxiYWNrZ3JvdW5kOiJub25lIn0sciYmZS5leHRlbmQocyx7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OiItMTAwMHB4Iix0b3A6Ii0xMDAwcHgifSk7Zm9yKG8gaW4gcyl0LnN0eWxlW29dPXNbb107dC5hcHBlbmRDaGlsZChoKSxpPXJ8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxpLmluc2VydEJlZm9yZSh0LGkuZmlyc3RDaGlsZCksaC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwLjc0MzIyMjJweDsiLG49ZShoKS5vZmZzZXQoKS5sZWZ0LGE9bj4xMCYmMTE+bix0LmlubmVySFRNTD0iIixpLnJlbW92ZUNoaWxkKHQpfSgpfSgpLGUudWkucG9zaXRpb24sZS53aWRnZXQoInVpLmRyYWdnYWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoiZHJhZyIsb3B0aW9uczp7YWRkQ2xhc3NlczohMCxhcHBlbmRUbzoicGFyZW50IixheGlzOiExLGNvbm5lY3RUb1NvcnRhYmxlOiExLGNvbnRhaW5tZW50OiExLGN1cnNvcjoiYXV0byIsY3Vyc29yQXQ6ITEsZ3JpZDohMSxoYW5kbGU6ITEsaGVscGVyOiJvcmlnaW5hbCIsaWZyYW1lRml4OiExLG9wYWNpdHk6ITEscmVmcmVzaFBvc2l0aW9uczohMSxyZXZlcnQ6ITEscmV2ZXJ0RHVyYXRpb246NTAwLHNjb3BlOiJkZWZhdWx0IixzY3JvbGw6ITAsc2Nyb2xsU2Vuc2l0aXZpdHk6MjAsc2Nyb2xsU3BlZWQ6MjAsc25hcDohMSxzbmFwTW9kZToiYm90aCIsc25hcFRvbGVyYW5jZToyMCxzdGFjazohMSx6SW5kZXg6ITEsZHJhZzpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxfY3JlYXRlOmZ1bmN0aW9uKCl7Im9yaWdpbmFsIj09PXRoaXMub3B0aW9ucy5oZWxwZXImJnRoaXMuX3NldFBvc2l0aW9uUmVsYXRpdmUoKSx0aGlzLm9wdGlvbnMuYWRkQ2xhc3NlcyYmdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1kcmFnZ2FibGUiKSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRpc2FibGVkIiksdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5fbW91c2VJbml0KCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJoYW5kbGUiPT09ZSYmKHRoaXMuX3JlbW92ZUhhbmRsZUNsYXNzTmFtZSgpLHRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5oZWxwZXJ8fHRoaXMuZWxlbWVudCkuaXMoIi51aS1kcmFnZ2FibGUtZHJhZ2dpbmciKT8odGhpcy5kZXN0cm95T25DbGVhcj0hMCx2b2lkIDApOih0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWRyYWdnYWJsZSB1aS1kcmFnZ2FibGUtZHJhZ2dpbmcgdWktZHJhZ2dhYmxlLWRpc2FibGVkIiksdGhpcy5fcmVtb3ZlSGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5fbW91c2VEZXN0cm95KCksdm9pZCAwKX0sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMuX2JsdXJBY3RpdmVFbGVtZW50KHQpLHRoaXMuaGVscGVyfHxpLmRpc2FibGVkfHxlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktcmVzaXphYmxlLWhhbmRsZSIpLmxlbmd0aD4wPyExOih0aGlzLmhhbmRsZT10aGlzLl9nZXRIYW5kbGUodCksdGhpcy5oYW5kbGU/KHRoaXMuX2Jsb2NrRnJhbWVzKGkuaWZyYW1lRml4PT09ITA/ImlmcmFtZSI6aS5pZnJhbWVGaXgpLCEwKTohMSl9LF9ibG9ja0ZyYW1lczpmdW5jdGlvbih0KXt0aGlzLmlmcmFtZUJsb2Nrcz10aGlzLmRvY3VtZW50LmZpbmQodCkubWFwKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gZSgiPGRpdj4iKS5jc3MoInBvc2l0aW9uIiwiYWJzb2x1dGUiKS5hcHBlbmRUbyh0LnBhcmVudCgpKS5vdXRlcldpZHRoKHQub3V0ZXJXaWR0aCgpKS5vdXRlckhlaWdodCh0Lm91dGVySGVpZ2h0KCkpLm9mZnNldCh0Lm9mZnNldCgpKVswXX0pfSxfdW5ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzJiYodGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCksZGVsZXRlIHRoaXMuaWZyYW1lQmxvY2tzKX0sX2JsdXJBY3RpdmVFbGVtZW50OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuZG9jdW1lbnRbMF07aWYodGhpcy5oYW5kbGVFbGVtZW50LmlzKHQudGFyZ2V0KSl0cnl7aS5hY3RpdmVFbGVtZW50JiYiYm9keSIhPT1pLmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZShpLmFjdGl2ZUVsZW1lbnQpLmJsdXIoKX1jYXRjaChzKXt9fSxfbW91c2VTdGFydDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMuaGVscGVyPXRoaXMuX2NyZWF0ZUhlbHBlcih0KSx0aGlzLmhlbHBlci5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRyYWdnaW5nIiksdGhpcy5fY2FjaGVIZWxwZXJQcm9wb3J0aW9ucygpLGUudWkuZGRtYW5hZ2VyJiYoZS51aS5kZG1hbmFnZXIuY3VycmVudD10aGlzKSx0aGlzLl9jYWNoZU1hcmdpbnMoKSx0aGlzLmNzc1Bvc2l0aW9uPXRoaXMuaGVscGVyLmNzcygicG9zaXRpb24iKSx0aGlzLnNjcm9sbFBhcmVudD10aGlzLmhlbHBlci5zY3JvbGxQYXJlbnQoITApLHRoaXMub2Zmc2V0UGFyZW50PXRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpLHRoaXMuaGFzRml4ZWRBbmNlc3Rvcj10aGlzLmhlbHBlci5wYXJlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuImZpeGVkIj09PWUodGhpcykuY3NzKCJwb3NpdGlvbiIpfSkubGVuZ3RoPjAsdGhpcy5wb3NpdGlvbkFicz10aGlzLmVsZW1lbnQub2Zmc2V0KCksdGhpcy5fcmVmcmVzaE9mZnNldHModCksdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXRoaXMucG9zaXRpb249dGhpcy5fZ2VuZXJhdGVQb3NpdGlvbih0LCExKSx0aGlzLm9yaWdpbmFsUGFnZVg9dC5wYWdlWCx0aGlzLm9yaWdpbmFsUGFnZVk9dC5wYWdlWSxpLmN1cnNvckF0JiZ0aGlzLl9hZGp1c3RPZmZzZXRGcm9tSGVscGVyKGkuY3Vyc29yQXQpLHRoaXMuX3NldENvbnRhaW5tZW50KCksdGhpcy5fdHJpZ2dlcigic3RhcnQiLHQpPT09ITE/KHRoaXMuX2NsZWFyKCksITEpOih0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksZS51aS5kZG1hbmFnZXImJiFpLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsdCksdGhpcy5fbm9ybWFsaXplUmlnaHRCb3R0b20oKSx0aGlzLl9tb3VzZURyYWcodCwhMCksZS51aS5kZG1hbmFnZXImJmUudWkuZGRtYW5hZ2VyLmRyYWdTdGFydCh0aGlzLHQpLCEwKX0sX3JlZnJlc2hPZmZzZXRzOmZ1bmN0aW9uKGUpe3RoaXMub2Zmc2V0PXt0b3A6dGhpcy5wb3NpdGlvbkFicy50b3AtdGhpcy5tYXJnaW5zLnRvcCxsZWZ0OnRoaXMucG9zaXRpb25BYnMubGVmdC10aGlzLm1hcmdpbnMubGVmdCxzY3JvbGw6ITEscGFyZW50OnRoaXMuX2dldFBhcmVudE9mZnNldCgpLHJlbGF0aXZlOnRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCl9LHRoaXMub2Zmc2V0LmNsaWNrPXtsZWZ0OmUucGFnZVgtdGhpcy5vZmZzZXQubGVmdCx0b3A6ZS5wYWdlWS10aGlzLm9mZnNldC50b3B9fSxfbW91c2VEcmFnOmZ1bmN0aW9uKHQsaSl7aWYodGhpcy5oYXNGaXhlZEFuY2VzdG9yJiYodGhpcy5vZmZzZXQucGFyZW50PXRoaXMuX2dldFBhcmVudE9mZnNldCgpKSx0aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24odCwhMCksdGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSwhaSl7dmFyIHM9dGhpcy5fdWlIYXNoKCk7aWYodGhpcy5fdHJpZ2dlcigiZHJhZyIsdCxzKT09PSExKXJldHVybiB0aGlzLl9tb3VzZVVwKHt9KSwhMTt0aGlzLnBvc2l0aW9uPXMucG9zaXRpb259cmV0dXJuIHRoaXMuaGVscGVyWzBdLnN0eWxlLmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCIsdGhpcy5oZWxwZXJbMF0uc3R5bGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIsZS51aS5kZG1hbmFnZXImJmUudWkuZGRtYW5hZ2VyLmRyYWcodGhpcyx0KSwhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLHM9ITE7cmV0dXJuIGUudWkuZGRtYW5hZ2VyJiYhdGhpcy5vcHRpb25zLmRyb3BCZWhhdmlvdXImJihzPWUudWkuZGRtYW5hZ2VyLmRyb3AodGhpcyx0KSksdGhpcy5kcm9wcGVkJiYocz10aGlzLmRyb3BwZWQsdGhpcy5kcm9wcGVkPSExKSwiaW52YWxpZCI9PT10aGlzLm9wdGlvbnMucmV2ZXJ0JiYhc3x8InZhbGlkIj09PXRoaXMub3B0aW9ucy5yZXZlcnQmJnN8fHRoaXMub3B0aW9ucy5yZXZlcnQ9PT0hMHx8ZS5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5yZXZlcnQpJiZ0aGlzLm9wdGlvbnMucmV2ZXJ0LmNhbGwodGhpcy5lbGVtZW50LHMpP2UodGhpcy5oZWxwZXIpLmFuaW1hdGUodGhpcy5vcmlnaW5hbFBvc2l0aW9uLHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnREdXJhdGlvbiwxMCksZnVuY3Rpb24oKXtpLl90cmlnZ2VyKCJzdG9wIix0KSE9PSExJiZpLl9jbGVhcigpfSk6dGhpcy5fdHJpZ2dlcigic3RvcCIsdCkhPT0hMSYmdGhpcy5fY2xlYXIoKSwhMX0sX21vdXNlVXA6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3VuYmxvY2tGcmFtZXMoKSxlLnVpLmRkbWFuYWdlciYmZS51aS5kZG1hbmFnZXIuZHJhZ1N0b3AodGhpcyx0KSx0aGlzLmhhbmRsZUVsZW1lbnQuaXModC50YXJnZXQpJiZ0aGlzLmVsZW1lbnQuZm9jdXMoKSxlLnVpLm1vdXNlLnByb3RvdHlwZS5fbW91c2VVcC5jYWxsKHRoaXMsdCl9LGNhbmNlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhlbHBlci5pcygiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpP3RoaXMuX21vdXNlVXAoe30pOnRoaXMuX2NsZWFyKCksdGhpc30sX2dldEhhbmRsZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zLmhhbmRsZT8hIWUodC50YXJnZXQpLmNsb3Nlc3QodGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLmhhbmRsZSkpLmxlbmd0aDohMH0sX3NldEhhbmRsZUNsYXNzTmFtZTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlRWxlbWVudD10aGlzLm9wdGlvbnMuaGFuZGxlP3RoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5oYW5kbGUpOnRoaXMuZWxlbWVudCx0aGlzLmhhbmRsZUVsZW1lbnQuYWRkQ2xhc3MoInVpLWRyYWdnYWJsZS1oYW5kbGUiKX0sX3JlbW92ZUhhbmRsZUNsYXNzTmFtZTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlRWxlbWVudC5yZW1vdmVDbGFzcygidWktZHJhZ2dhYmxlLWhhbmRsZSIpfSxfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucyxzPWUuaXNGdW5jdGlvbihpLmhlbHBlciksbj1zP2UoaS5oZWxwZXIuYXBwbHkodGhpcy5lbGVtZW50WzBdLFt0XSkpOiJjbG9uZSI9PT1pLmhlbHBlcj90aGlzLmVsZW1lbnQuY2xvbmUoKS5yZW1vdmVBdHRyKCJpZCIpOnRoaXMuZWxlbWVudDtyZXR1cm4gbi5wYXJlbnRzKCJib2R5IikubGVuZ3RofHxuLmFwcGVuZFRvKCJwYXJlbnQiPT09aS5hcHBlbmRUbz90aGlzLmVsZW1lbnRbMF0ucGFyZW50Tm9kZTppLmFwcGVuZFRvKSxzJiZuWzBdPT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLl9zZXRQb3NpdGlvblJlbGF0aXZlKCksblswXT09PXRoaXMuZWxlbWVudFswXXx8LyhmaXhlZHxhYnNvbHV0ZSkvLnRlc3Qobi5jc3MoInBvc2l0aW9uIikpfHxuLmNzcygicG9zaXRpb24iLCJhYnNvbHV0ZSIpLG59LF9zZXRQb3NpdGlvblJlbGF0aXZlOmZ1bmN0aW9uKCl7L14oPzpyfGF8ZikvLnRlc3QodGhpcy5lbGVtZW50LmNzcygicG9zaXRpb24iKSl8fCh0aGlzLmVsZW1lbnRbMF0uc3R5bGUucG9zaXRpb249InJlbGF0aXZlIil9LF9hZGp1c3RPZmZzZXRGcm9tSGVscGVyOmZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC5zcGxpdCgiICIpKSxlLmlzQXJyYXkodCkmJih0PXtsZWZ0Oit0WzBdLHRvcDordFsxXXx8MH0pLCJsZWZ0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXQubGVmdCt0aGlzLm1hcmdpbnMubGVmdCksInJpZ2h0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdC5yaWdodCt0aGlzLm1hcmdpbnMubGVmdCksInRvcCJpbiB0JiYodGhpcy5vZmZzZXQuY2xpY2sudG9wPXQudG9wK3RoaXMubWFyZ2lucy50b3ApLCJib3R0b20iaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10LmJvdHRvbSt0aGlzLm1hcmdpbnMudG9wKX0sX2lzUm9vdE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuLyhodG1sfGJvZHkpL2kudGVzdChlLnRhZ05hbWUpfHxlPT09dGhpcy5kb2N1bWVudFswXX0sX2dldFBhcmVudE9mZnNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpLGk9dGhpcy5kb2N1bWVudFswXTtyZXR1cm4iYWJzb2x1dGUiPT09dGhpcy5jc3NQb3NpdGlvbiYmdGhpcy5zY3JvbGxQYXJlbnRbMF0hPT1pJiZlLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLHRoaXMub2Zmc2V0UGFyZW50WzBdKSYmKHQubGVmdCs9dGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpLHQudG9wKz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSksdGhpcy5faXNSb290Tm9kZSh0aGlzLm9mZnNldFBhcmVudFswXSkmJih0PXt0b3A6MCxsZWZ0OjB9KSx7dG9wOnQudG9wKyhwYXJzZUludCh0aGlzLm9mZnNldFBhcmVudC5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSxsZWZ0OnQubGVmdCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApfX0sX2dldFJlbGF0aXZlT2Zmc2V0OmZ1bmN0aW9uKCl7aWYoInJlbGF0aXZlIiE9PXRoaXMuY3NzUG9zaXRpb24pcmV0dXJue3RvcDowLGxlZnQ6MH07dmFyIGU9dGhpcy5lbGVtZW50LnBvc2l0aW9uKCksdD10aGlzLl9pc1Jvb3ROb2RlKHRoaXMuc2Nyb2xsUGFyZW50WzBdKTtyZXR1cm57dG9wOmUudG9wLShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoInRvcCIpLDEwKXx8MCkrKHQ/MDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSksbGVmdDplLmxlZnQtKHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcygibGVmdCIpLDEwKXx8MCkrKHQ/MDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCkpfX0sX2NhY2hlTWFyZ2luczpmdW5jdGlvbigpe3RoaXMubWFyZ2lucz17bGVmdDpwYXJzZUludCh0aGlzLmVsZW1lbnQuY3NzKCJtYXJnaW5MZWZ0IiksMTApfHwwLHRvcDpwYXJzZUludCh0aGlzLmVsZW1lbnQuY3NzKCJtYXJnaW5Ub3AiKSwxMCl8fDAscmlnaHQ6cGFyc2VJbnQodGhpcy5lbGVtZW50LmNzcygibWFyZ2luUmlnaHQiKSwxMCl8fDAsYm90dG9tOnBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpbkJvdHRvbSIpLDEwKXx8MH19LF9jYWNoZUhlbHBlclByb3BvcnRpb25zOmZ1bmN0aW9uKCl7dGhpcy5oZWxwZXJQcm9wb3J0aW9ucz17d2lkdGg6dGhpcy5oZWxwZXIub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmhlbHBlci5vdXRlckhlaWdodCgpfX0sX3NldENvbnRhaW5tZW50OmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG49dGhpcy5vcHRpb25zLGE9dGhpcy5kb2N1bWVudFswXTtyZXR1cm4gdGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj1udWxsLG4uY29udGFpbm1lbnQ/IndpbmRvdyI9PT1uLmNvbnRhaW5tZW50Pyh0aGlzLmNvbnRhaW5tZW50PVtlKHdpbmRvdykuc2Nyb2xsTGVmdCgpLXRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQtdGhpcy5vZmZzZXQucGFyZW50LmxlZnQsZSh3aW5kb3cpLnNjcm9sbFRvcCgpLXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wLGUod2luZG93KS5zY3JvbGxMZWZ0KCkrZSh3aW5kb3cpLndpZHRoKCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdCxlKHdpbmRvdykuc2Nyb2xsVG9wKCkrKGUod2luZG93KS5oZWlnaHQoKXx8YS5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0KS10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10aGlzLm1hcmdpbnMudG9wXSx2b2lkIDApOiJkb2N1bWVudCI9PT1uLmNvbnRhaW5tZW50Pyh0aGlzLmNvbnRhaW5tZW50PVswLDAsZShhKS53aWR0aCgpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQsKGUoYSkuaGVpZ2h0KCl8fGEuYm9keS5wYXJlbnROb2RlLnNjcm9sbEhlaWdodCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQtdGhpcy5tYXJnaW5zLnRvcF0sdm9pZCAwKTpuLmNvbnRhaW5tZW50LmNvbnN0cnVjdG9yPT09QXJyYXk/KHRoaXMuY29udGFpbm1lbnQ9bi5jb250YWlubWVudCx2b2lkIDApOigicGFyZW50Ij09PW4uY29udGFpbm1lbnQmJihuLmNvbnRhaW5tZW50PXRoaXMuaGVscGVyWzBdLnBhcmVudE5vZGUpLGk9ZShuLmNvbnRhaW5tZW50KSxzPWlbMF0scyYmKHQ9LyhzY3JvbGx8YXV0bykvLnRlc3QoaS5jc3MoIm92ZXJmbG93IikpLHRoaXMuY29udGFpbm1lbnQ9WyhwYXJzZUludChpLmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdMZWZ0IiksMTApfHwwKSwocGFyc2VJbnQoaS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdUb3AiKSwxMCl8fDApLCh0P01hdGgubWF4KHMuc2Nyb2xsV2lkdGgscy5vZmZzZXRXaWR0aCk6cy5vZmZzZXRXaWR0aCktKHBhcnNlSW50KGkuY3NzKCJib3JkZXJSaWdodFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdSaWdodCIpLDEwKXx8MCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdC10aGlzLm1hcmdpbnMucmlnaHQsKHQ/TWF0aC5tYXgocy5zY3JvbGxIZWlnaHQscy5vZmZzZXRIZWlnaHQpOnMub2Zmc2V0SGVpZ2h0KS0ocGFyc2VJbnQoaS5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdCb3R0b20iKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3AtdGhpcy5tYXJnaW5zLmJvdHRvbV0sdGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj1pKSx2b2lkIDApOih0aGlzLmNvbnRhaW5tZW50PW51bGwsdm9pZCAwKX0sX2NvbnZlcnRQb3NpdGlvblRvOmZ1bmN0aW9uKGUsdCl7dHx8KHQ9dGhpcy5wb3NpdGlvbik7dmFyIGk9ImFic29sdXRlIj09PWU/MTotMSxzPXRoaXMuX2lzUm9vdE5vZGUodGhpcy5zY3JvbGxQYXJlbnRbMF0pO3JldHVybnt0b3A6dC50b3ArdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wKmkrdGhpcy5vZmZzZXQucGFyZW50LnRvcCppLSgiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5vZmZzZXQuc2Nyb2xsLnRvcDpzPzA6dGhpcy5vZmZzZXQuc2Nyb2xsLnRvcCkqaSxsZWZ0OnQubGVmdCt0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0KmkrdGhpcy5vZmZzZXQucGFyZW50LmxlZnQqaS0oImZpeGVkIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0OnM/MDp0aGlzLm9mZnNldC5zY3JvbGwubGVmdCkqaX19LF9nZW5lcmF0ZVBvc2l0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuLGEsbz10aGlzLm9wdGlvbnMscj10aGlzLl9pc1Jvb3ROb2RlKHRoaXMuc2Nyb2xsUGFyZW50WzBdKSxoPWUucGFnZVgsbD1lLnBhZ2VZO3JldHVybiByJiZ0aGlzLm9mZnNldC5zY3JvbGx8fCh0aGlzLm9mZnNldC5zY3JvbGw9e3RvcDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSxsZWZ0OnRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKX0pLHQmJih0aGlzLmNvbnRhaW5tZW50JiYodGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj8ocz10aGlzLnJlbGF0aXZlQ29udGFpbmVyLm9mZnNldCgpLGk9W3RoaXMuY29udGFpbm1lbnRbMF0rcy5sZWZ0LHRoaXMuY29udGFpbm1lbnRbMV0rcy50b3AsdGhpcy5jb250YWlubWVudFsyXStzLmxlZnQsdGhpcy5jb250YWlubWVudFszXStzLnRvcF0pOmk9dGhpcy5jb250YWlubWVudCxlLnBhZ2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8aVswXSYmKGg9aVswXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0KSxlLnBhZ2VZLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDxpWzFdJiYobD1pWzFdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCksZS5wYWdlWC10aGlzLm9mZnNldC5jbGljay5sZWZ0PmlbMl0mJihoPWlbMl0rdGhpcy5vZmZzZXQuY2xpY2subGVmdCksZS5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A+aVszXSYmKGw9aVszXSt0aGlzLm9mZnNldC5jbGljay50b3ApKSxvLmdyaWQmJihuPW8uZ3JpZFsxXT90aGlzLm9yaWdpbmFsUGFnZVkrTWF0aC5yb3VuZCgobC10aGlzLm9yaWdpbmFsUGFnZVkpL28uZ3JpZFsxXSkqby5ncmlkWzFdOnRoaXMub3JpZ2luYWxQYWdlWSxsPWk/bi10aGlzLm9mZnNldC5jbGljay50b3A+PWlbMV18fG4tdGhpcy5vZmZzZXQuY2xpY2sudG9wPmlbM10/bjpuLXRoaXMub2Zmc2V0LmNsaWNrLnRvcD49aVsxXT9uLW8uZ3JpZFsxXTpuK28uZ3JpZFsxXTpuLGE9by5ncmlkWzBdP3RoaXMub3JpZ2luYWxQYWdlWCtNYXRoLnJvdW5kKChoLXRoaXMub3JpZ2luYWxQYWdlWCkvby5ncmlkWzBdKSpvLmdyaWRbMF06dGhpcy5vcmlnaW5hbFBhZ2VYLGg9aT9hLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+PWlbMF18fGEtdGhpcy5vZmZzZXQuY2xpY2subGVmdD5pWzJdP2E6YS10aGlzLm9mZnNldC5jbGljay5sZWZ0Pj1pWzBdP2Etby5ncmlkWzBdOmErby5ncmlkWzBdOmEpLCJ5Ij09PW8uYXhpcyYmKGg9dGhpcy5vcmlnaW5hbFBhZ2VYKSwieCI9PT1vLmF4aXMmJihsPXRoaXMub3JpZ2luYWxQYWdlWSkpLHt0b3A6bC10aGlzLm9mZnNldC5jbGljay50b3AtdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3ArKCJmaXhlZCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLm9mZnNldC5zY3JvbGwudG9wOnI/MDp0aGlzLm9mZnNldC5zY3JvbGwudG9wKSxsZWZ0OmgtdGhpcy5vZmZzZXQuY2xpY2subGVmdC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KygiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5vZmZzZXQuc2Nyb2xsLmxlZnQ6cj8wOnRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0KX19LF9jbGVhcjpmdW5jdGlvbigpe3RoaXMuaGVscGVyLnJlbW92ZUNsYXNzKCJ1aS1kcmFnZ2FibGUtZHJhZ2dpbmciKSx0aGlzLmhlbHBlclswXT09PXRoaXMuZWxlbWVudFswXXx8dGhpcy5jYW5jZWxIZWxwZXJSZW1vdmFsfHx0aGlzLmhlbHBlci5yZW1vdmUoKSx0aGlzLmhlbHBlcj1udWxsLHRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMSx0aGlzLmRlc3Ryb3lPbkNsZWFyJiZ0aGlzLmRlc3Ryb3koKX0sX25vcm1hbGl6ZVJpZ2h0Qm90dG9tOmZ1bmN0aW9uKCl7InkiIT09dGhpcy5vcHRpb25zLmF4aXMmJiJhdXRvIiE9PXRoaXMuaGVscGVyLmNzcygicmlnaHQiKSYmKHRoaXMuaGVscGVyLndpZHRoKHRoaXMuaGVscGVyLndpZHRoKCkpLHRoaXMuaGVscGVyLmNzcygicmlnaHQiLCJhdXRvIikpLCJ4IiE9PXRoaXMub3B0aW9ucy5heGlzJiYiYXV0byIhPT10aGlzLmhlbHBlci5jc3MoImJvdHRvbSIpJiYodGhpcy5oZWxwZXIuaGVpZ2h0KHRoaXMuaGVscGVyLmhlaWdodCgpKSx0aGlzLmhlbHBlci5jc3MoImJvdHRvbSIsImF1dG8iKSl9LF90cmlnZ2VyOmZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gcz1zfHx0aGlzLl91aUhhc2goKSxlLnVpLnBsdWdpbi5jYWxsKHRoaXMsdCxbaSxzLHRoaXNdLCEwKSwvXihkcmFnfHN0YXJ0fHN0b3ApLy50ZXN0KHQpJiYodGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSxzLm9mZnNldD10aGlzLnBvc2l0aW9uQWJzKSxlLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuY2FsbCh0aGlzLHQsaSxzKX0scGx1Z2luczp7fSxfdWlIYXNoOmZ1bmN0aW9uKCl7cmV0dXJue2hlbHBlcjp0aGlzLmhlbHBlcixwb3NpdGlvbjp0aGlzLnBvc2l0aW9uLG9yaWdpbmFsUG9zaXRpb246dGhpcy5vcmlnaW5hbFBvc2l0aW9uLG9mZnNldDp0aGlzLnBvc2l0aW9uQWJzfX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsImNvbm5lY3RUb1NvcnRhYmxlIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPWUuZXh0ZW5kKHt9LGkse2l0ZW06cy5lbGVtZW50fSk7cy5zb3J0YWJsZXM9W10sZShzLm9wdGlvbnMuY29ubmVjdFRvU29ydGFibGUpLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1lKHRoaXMpLnNvcnRhYmxlKCJpbnN0YW5jZSIpO2kmJiFpLm9wdGlvbnMuZGlzYWJsZWQmJihzLnNvcnRhYmxlcy5wdXNoKGkpLGkucmVmcmVzaFBvc2l0aW9ucygpLGkuX3RyaWdnZXIoImFjdGl2YXRlIix0LG4pKX0pfSxzdG9wOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1lLmV4dGVuZCh7fSxpLHtpdGVtOnMuZWxlbWVudH0pO3MuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMSxlLmVhY2gocy5zb3J0YWJsZXMsZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuaXNPdmVyPyhlLmlzT3Zlcj0wLHMuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMCxlLmNhbmNlbEhlbHBlclJlbW92YWw9ITEsZS5fc3RvcmVkQ1NTPXtwb3NpdGlvbjplLnBsYWNlaG9sZGVyLmNzcygicG9zaXRpb24iKSx0b3A6ZS5wbGFjZWhvbGRlci5jc3MoInRvcCIpLGxlZnQ6ZS5wbGFjZWhvbGRlci5jc3MoImxlZnQiKX0sZS5fbW91c2VTdG9wKHQpLGUub3B0aW9ucy5oZWxwZXI9ZS5vcHRpb25zLl9oZWxwZXIpOihlLmNhbmNlbEhlbHBlclJlbW92YWw9ITAsZS5fdHJpZ2dlcigiZGVhY3RpdmF0ZSIsdCxuKSl9KX0sZHJhZzpmdW5jdGlvbih0LGkscyl7ZS5lYWNoKHMuc29ydGFibGVzLGZ1bmN0aW9uKCl7dmFyIG49ITEsYT10aGlzO2EucG9zaXRpb25BYnM9cy5wb3NpdGlvbkFicyxhLmhlbHBlclByb3BvcnRpb25zPXMuaGVscGVyUHJvcG9ydGlvbnMsYS5vZmZzZXQuY2xpY2s9cy5vZmZzZXQuY2xpY2ssYS5faW50ZXJzZWN0c1dpdGgoYS5jb250YWluZXJDYWNoZSkmJihuPSEwLGUuZWFjaChzLnNvcnRhYmxlcyxmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9uQWJzPXMucG9zaXRpb25BYnMsdGhpcy5oZWxwZXJQcm9wb3J0aW9ucz1zLmhlbHBlclByb3BvcnRpb25zLHRoaXMub2Zmc2V0LmNsaWNrPXMub2Zmc2V0LmNsaWNrLHRoaXMhPT1hJiZ0aGlzLl9pbnRlcnNlY3RzV2l0aCh0aGlzLmNvbnRhaW5lckNhY2hlKSYmZS5jb250YWlucyhhLmVsZW1lbnRbMF0sdGhpcy5lbGVtZW50WzBdKSYmKG49ITEpLG4KfSkpLG4/KGEuaXNPdmVyfHwoYS5pc092ZXI9MSxzLl9wYXJlbnQ9aS5oZWxwZXIucGFyZW50KCksYS5jdXJyZW50SXRlbT1pLmhlbHBlci5hcHBlbmRUbyhhLmVsZW1lbnQpLmRhdGEoInVpLXNvcnRhYmxlLWl0ZW0iLCEwKSxhLm9wdGlvbnMuX2hlbHBlcj1hLm9wdGlvbnMuaGVscGVyLGEub3B0aW9ucy5oZWxwZXI9ZnVuY3Rpb24oKXtyZXR1cm4gaS5oZWxwZXJbMF19LHQudGFyZ2V0PWEuY3VycmVudEl0ZW1bMF0sYS5fbW91c2VDYXB0dXJlKHQsITApLGEuX21vdXNlU3RhcnQodCwhMCwhMCksYS5vZmZzZXQuY2xpY2sudG9wPXMub2Zmc2V0LmNsaWNrLnRvcCxhLm9mZnNldC5jbGljay5sZWZ0PXMub2Zmc2V0LmNsaWNrLmxlZnQsYS5vZmZzZXQucGFyZW50LmxlZnQtPXMub2Zmc2V0LnBhcmVudC5sZWZ0LWEub2Zmc2V0LnBhcmVudC5sZWZ0LGEub2Zmc2V0LnBhcmVudC50b3AtPXMub2Zmc2V0LnBhcmVudC50b3AtYS5vZmZzZXQucGFyZW50LnRvcCxzLl90cmlnZ2VyKCJ0b1NvcnRhYmxlIix0KSxzLmRyb3BwZWQ9YS5lbGVtZW50LGUuZWFjaChzLnNvcnRhYmxlcyxmdW5jdGlvbigpe3RoaXMucmVmcmVzaFBvc2l0aW9ucygpfSkscy5jdXJyZW50SXRlbT1zLmVsZW1lbnQsYS5mcm9tT3V0c2lkZT1zKSxhLmN1cnJlbnRJdGVtJiYoYS5fbW91c2VEcmFnKHQpLGkucG9zaXRpb249YS5wb3NpdGlvbikpOmEuaXNPdmVyJiYoYS5pc092ZXI9MCxhLmNhbmNlbEhlbHBlclJlbW92YWw9ITAsYS5vcHRpb25zLl9yZXZlcnQ9YS5vcHRpb25zLnJldmVydCxhLm9wdGlvbnMucmV2ZXJ0PSExLGEuX3RyaWdnZXIoIm91dCIsdCxhLl91aUhhc2goYSkpLGEuX21vdXNlU3RvcCh0LCEwKSxhLm9wdGlvbnMucmV2ZXJ0PWEub3B0aW9ucy5fcmV2ZXJ0LGEub3B0aW9ucy5oZWxwZXI9YS5vcHRpb25zLl9oZWxwZXIsYS5wbGFjZWhvbGRlciYmYS5wbGFjZWhvbGRlci5yZW1vdmUoKSxpLmhlbHBlci5hcHBlbmRUbyhzLl9wYXJlbnQpLHMuX3JlZnJlc2hPZmZzZXRzKHQpLGkucG9zaXRpb249cy5fZ2VuZXJhdGVQb3NpdGlvbih0LCEwKSxzLl90cmlnZ2VyKCJmcm9tU29ydGFibGUiLHQpLHMuZHJvcHBlZD0hMSxlLmVhY2gocy5zb3J0YWJsZXMsZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2hQb3NpdGlvbnMoKX0pKX0pfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwiY3Vyc29yIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPWUoImJvZHkiKSxhPXMub3B0aW9ucztuLmNzcygiY3Vyc29yIikmJihhLl9jdXJzb3I9bi5jc3MoImN1cnNvciIpKSxuLmNzcygiY3Vyc29yIixhLmN1cnNvcil9LHN0b3A6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztuLl9jdXJzb3ImJmUoImJvZHkiKS5jc3MoImN1cnNvciIsbi5fY3Vyc29yKX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsIm9wYWNpdHkiLHtzdGFydDpmdW5jdGlvbih0LGkscyl7dmFyIG49ZShpLmhlbHBlciksYT1zLm9wdGlvbnM7bi5jc3MoIm9wYWNpdHkiKSYmKGEuX29wYWNpdHk9bi5jc3MoIm9wYWNpdHkiKSksbi5jc3MoIm9wYWNpdHkiLGEub3BhY2l0eSl9LHN0b3A6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztuLl9vcGFjaXR5JiZlKGkuaGVscGVyKS5jc3MoIm9wYWNpdHkiLG4uX29wYWNpdHkpfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwic2Nyb2xsIix7c3RhcnQ6ZnVuY3Rpb24oZSx0LGkpe2kuc2Nyb2xsUGFyZW50Tm90SGlkZGVufHwoaS5zY3JvbGxQYXJlbnROb3RIaWRkZW49aS5oZWxwZXIuc2Nyb2xsUGFyZW50KCExKSksaS5zY3JvbGxQYXJlbnROb3RIaWRkZW5bMF0hPT1pLmRvY3VtZW50WzBdJiYiSFRNTCIhPT1pLnNjcm9sbFBhcmVudE5vdEhpZGRlblswXS50YWdOYW1lJiYoaS5vdmVyZmxvd09mZnNldD1pLnNjcm9sbFBhcmVudE5vdEhpZGRlbi5vZmZzZXQoKSl9LGRyYWc6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucyxhPSExLG89cy5zY3JvbGxQYXJlbnROb3RIaWRkZW5bMF0scj1zLmRvY3VtZW50WzBdO28hPT1yJiYiSFRNTCIhPT1vLnRhZ05hbWU/KG4uYXhpcyYmIngiPT09bi5heGlzfHwocy5vdmVyZmxvd09mZnNldC50b3Arby5vZmZzZXRIZWlnaHQtdC5wYWdlWTxuLnNjcm9sbFNlbnNpdGl2aXR5P28uc2Nyb2xsVG9wPWE9by5zY3JvbGxUb3Arbi5zY3JvbGxTcGVlZDp0LnBhZ2VZLXMub3ZlcmZsb3dPZmZzZXQudG9wPG4uc2Nyb2xsU2Vuc2l0aXZpdHkmJihvLnNjcm9sbFRvcD1hPW8uc2Nyb2xsVG9wLW4uc2Nyb2xsU3BlZWQpKSxuLmF4aXMmJiJ5Ij09PW4uYXhpc3x8KHMub3ZlcmZsb3dPZmZzZXQubGVmdCtvLm9mZnNldFdpZHRoLXQucGFnZVg8bi5zY3JvbGxTZW5zaXRpdml0eT9vLnNjcm9sbExlZnQ9YT1vLnNjcm9sbExlZnQrbi5zY3JvbGxTcGVlZDp0LnBhZ2VYLXMub3ZlcmZsb3dPZmZzZXQubGVmdDxuLnNjcm9sbFNlbnNpdGl2aXR5JiYoby5zY3JvbGxMZWZ0PWE9by5zY3JvbGxMZWZ0LW4uc2Nyb2xsU3BlZWQpKSk6KG4uYXhpcyYmIngiPT09bi5heGlzfHwodC5wYWdlWS1lKHIpLnNjcm9sbFRvcCgpPG4uc2Nyb2xsU2Vuc2l0aXZpdHk/YT1lKHIpLnNjcm9sbFRvcChlKHIpLnNjcm9sbFRvcCgpLW4uc2Nyb2xsU3BlZWQpOmUod2luZG93KS5oZWlnaHQoKS0odC5wYWdlWS1lKHIpLnNjcm9sbFRvcCgpKTxuLnNjcm9sbFNlbnNpdGl2aXR5JiYoYT1lKHIpLnNjcm9sbFRvcChlKHIpLnNjcm9sbFRvcCgpK24uc2Nyb2xsU3BlZWQpKSksbi5heGlzJiYieSI9PT1uLmF4aXN8fCh0LnBhZ2VYLWUocikuc2Nyb2xsTGVmdCgpPG4uc2Nyb2xsU2Vuc2l0aXZpdHk/YT1lKHIpLnNjcm9sbExlZnQoZShyKS5zY3JvbGxMZWZ0KCktbi5zY3JvbGxTcGVlZCk6ZSh3aW5kb3cpLndpZHRoKCktKHQucGFnZVgtZShyKS5zY3JvbGxMZWZ0KCkpPG4uc2Nyb2xsU2Vuc2l0aXZpdHkmJihhPWUocikuc2Nyb2xsTGVmdChlKHIpLnNjcm9sbExlZnQoKStuLnNjcm9sbFNwZWVkKSkpKSxhIT09ITEmJmUudWkuZGRtYW5hZ2VyJiYhbi5kcm9wQmVoYXZpb3VyJiZlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyhzLHQpfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwic25hcCIse3N0YXJ0OmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1zLm9wdGlvbnM7cy5zbmFwRWxlbWVudHM9W10sZShuLnNuYXAuY29uc3RydWN0b3IhPT1TdHJpbmc/bi5zbmFwLml0ZW1zfHwiOmRhdGEodWktZHJhZ2dhYmxlKSI6bi5zbmFwKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxpPXQub2Zmc2V0KCk7dGhpcyE9PXMuZWxlbWVudFswXSYmcy5zbmFwRWxlbWVudHMucHVzaCh7aXRlbTp0aGlzLHdpZHRoOnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0Lm91dGVySGVpZ2h0KCksdG9wOmkudG9wLGxlZnQ6aS5sZWZ0fSl9KX0sZHJhZzpmdW5jdGlvbih0LGkscyl7dmFyIG4sYSxvLHIsaCxsLHUsZCxjLHAsZj1zLm9wdGlvbnMsbT1mLnNuYXBUb2xlcmFuY2UsZz1pLm9mZnNldC5sZWZ0LHY9ZytzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLHk9aS5vZmZzZXQudG9wLGI9eStzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodDtmb3IoYz1zLnNuYXBFbGVtZW50cy5sZW5ndGgtMTtjPj0wO2MtLSloPXMuc25hcEVsZW1lbnRzW2NdLmxlZnQtcy5tYXJnaW5zLmxlZnQsbD1oK3Muc25hcEVsZW1lbnRzW2NdLndpZHRoLHU9cy5zbmFwRWxlbWVudHNbY10udG9wLXMubWFyZ2lucy50b3AsZD11K3Muc25hcEVsZW1lbnRzW2NdLmhlaWdodCxoLW0+dnx8Zz5sK218fHUtbT5ifHx5PmQrbXx8IWUuY29udGFpbnMocy5zbmFwRWxlbWVudHNbY10uaXRlbS5vd25lckRvY3VtZW50LHMuc25hcEVsZW1lbnRzW2NdLml0ZW0pPyhzLnNuYXBFbGVtZW50c1tjXS5zbmFwcGluZyYmcy5vcHRpb25zLnNuYXAucmVsZWFzZSYmcy5vcHRpb25zLnNuYXAucmVsZWFzZS5jYWxsKHMuZWxlbWVudCx0LGUuZXh0ZW5kKHMuX3VpSGFzaCgpLHtzbmFwSXRlbTpzLnNuYXBFbGVtZW50c1tjXS5pdGVtfSkpLHMuc25hcEVsZW1lbnRzW2NdLnNuYXBwaW5nPSExKTooImlubmVyIiE9PWYuc25hcE1vZGUmJihuPW0+PU1hdGguYWJzKHUtYiksYT1tPj1NYXRoLmFicyhkLXkpLG89bT49TWF0aC5hYnMoaC12KSxyPW0+PU1hdGguYWJzKGwtZyksbiYmKGkucG9zaXRpb24udG9wPXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDp1LXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LGxlZnQ6MH0pLnRvcCksYSYmKGkucG9zaXRpb24udG9wPXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDpkLGxlZnQ6MH0pLnRvcCksbyYmKGkucG9zaXRpb24ubGVmdD1zLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6MCxsZWZ0Omgtcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aH0pLmxlZnQpLHImJihpLnBvc2l0aW9uLmxlZnQ9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDpsfSkubGVmdCkpLHA9bnx8YXx8b3x8ciwib3V0ZXIiIT09Zi5zbmFwTW9kZSYmKG49bT49TWF0aC5hYnModS15KSxhPW0+PU1hdGguYWJzKGQtYiksbz1tPj1NYXRoLmFicyhoLWcpLHI9bT49TWF0aC5hYnMobC12KSxuJiYoaS5wb3NpdGlvbi50b3A9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOnUsbGVmdDowfSkudG9wKSxhJiYoaS5wb3NpdGlvbi50b3A9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOmQtcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsbGVmdDowfSkudG9wKSxvJiYoaS5wb3NpdGlvbi5sZWZ0PXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDowLGxlZnQ6aH0pLmxlZnQpLHImJihpLnBvc2l0aW9uLmxlZnQ9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDpsLXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGh9KS5sZWZ0KSksIXMuc25hcEVsZW1lbnRzW2NdLnNuYXBwaW5nJiYobnx8YXx8b3x8cnx8cCkmJnMub3B0aW9ucy5zbmFwLnNuYXAmJnMub3B0aW9ucy5zbmFwLnNuYXAuY2FsbChzLmVsZW1lbnQsdCxlLmV4dGVuZChzLl91aUhhc2goKSx7c25hcEl0ZW06cy5zbmFwRWxlbWVudHNbY10uaXRlbX0pKSxzLnNuYXBFbGVtZW50c1tjXS5zbmFwcGluZz1ufHxhfHxvfHxyfHxwKX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsInN0YWNrIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGE9cy5vcHRpb25zLG89ZS5tYWtlQXJyYXkoZShhLnN0YWNrKSkuc29ydChmdW5jdGlvbih0LGkpe3JldHVybihwYXJzZUludChlKHQpLmNzcygiekluZGV4IiksMTApfHwwKS0ocGFyc2VJbnQoZShpKS5jc3MoInpJbmRleCIpLDEwKXx8MCl9KTtvLmxlbmd0aCYmKG49cGFyc2VJbnQoZShvWzBdKS5jc3MoInpJbmRleCIpLDEwKXx8MCxlKG8pLmVhY2goZnVuY3Rpb24odCl7ZSh0aGlzKS5jc3MoInpJbmRleCIsbit0KX0pLHRoaXMuY3NzKCJ6SW5kZXgiLG4rby5sZW5ndGgpKX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsInpJbmRleCIse3N0YXJ0OmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1lKGkuaGVscGVyKSxhPXMub3B0aW9ucztuLmNzcygiekluZGV4IikmJihhLl96SW5kZXg9bi5jc3MoInpJbmRleCIpKSxuLmNzcygiekluZGV4IixhLnpJbmRleCl9LHN0b3A6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztuLl96SW5kZXgmJmUoaS5oZWxwZXIpLmNzcygiekluZGV4IixuLl96SW5kZXgpfX0pLGUudWkuZHJhZ2dhYmxlLGUud2lkZ2V0KCJ1aS5kcm9wcGFibGUiLHt2ZXJzaW9uOiIxLjExLjQiLHdpZGdldEV2ZW50UHJlZml4OiJkcm9wIixvcHRpb25zOnthY2NlcHQ6IioiLGFjdGl2ZUNsYXNzOiExLGFkZENsYXNzZXM6ITAsZ3JlZWR5OiExLGhvdmVyQ2xhc3M6ITEsc2NvcGU6ImRlZmF1bHQiLHRvbGVyYW5jZToiaW50ZXJzZWN0IixhY3RpdmF0ZTpudWxsLGRlYWN0aXZhdGU6bnVsbCxkcm9wOm51bGwsb3V0Om51bGwsb3ZlcjpudWxsfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQsaT10aGlzLm9wdGlvbnMscz1pLmFjY2VwdDt0aGlzLmlzb3Zlcj0hMSx0aGlzLmlzb3V0PSEwLHRoaXMuYWNjZXB0PWUuaXNGdW5jdGlvbihzKT9zOmZ1bmN0aW9uKGUpe3JldHVybiBlLmlzKHMpfSx0aGlzLnByb3BvcnRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9YXJndW1lbnRzWzBdLHZvaWQgMCk6dD90OnQ9e3dpZHRoOnRoaXMuZWxlbWVudFswXS5vZmZzZXRXaWR0aCxoZWlnaHQ6dGhpcy5lbGVtZW50WzBdLm9mZnNldEhlaWdodH19LHRoaXMuX2FkZFRvTWFuYWdlcihpLnNjb3BlKSxpLmFkZENsYXNzZXMmJnRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktZHJvcHBhYmxlIil9LF9hZGRUb01hbmFnZXI6ZnVuY3Rpb24odCl7ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0XT1lLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3RdfHxbXSxlLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3RdLnB1c2godGhpcyl9LF9zcGxpY2U6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7ZS5sZW5ndGg+dDt0KyspZVt0XT09PXRoaXMmJmUuc3BsaWNlKHQsMSl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0aGlzLm9wdGlvbnMuc2NvcGVdO3RoaXMuX3NwbGljZSh0KSx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWRyb3BwYWJsZSB1aS1kcm9wcGFibGUtZGlzYWJsZWQiKX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGkpe2lmKCJhY2NlcHQiPT09dCl0aGlzLmFjY2VwdD1lLmlzRnVuY3Rpb24oaSk/aTpmdW5jdGlvbihlKXtyZXR1cm4gZS5pcyhpKX07ZWxzZSBpZigic2NvcGUiPT09dCl7dmFyIHM9ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0aGlzLm9wdGlvbnMuc2NvcGVdO3RoaXMuX3NwbGljZShzKSx0aGlzLl9hZGRUb01hbmFnZXIoaSl9dGhpcy5fc3VwZXIodCxpKX0sX2FjdGl2YXRlOmZ1bmN0aW9uKHQpe3ZhciBpPWUudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7dGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzJiZ0aGlzLmVsZW1lbnQuYWRkQ2xhc3ModGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzKSxpJiZ0aGlzLl90cmlnZ2VyKCJhY3RpdmF0ZSIsdCx0aGlzLnVpKGkpKX0sX2RlYWN0aXZhdGU6ZnVuY3Rpb24odCl7dmFyIGk9ZS51aS5kZG1hbmFnZXIuY3VycmVudDt0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MpLGkmJnRoaXMuX3RyaWdnZXIoImRlYWN0aXZhdGUiLHQsdGhpcy51aShpKSl9LF9vdmVyOmZ1bmN0aW9uKHQpe3ZhciBpPWUudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7aSYmKGkuY3VycmVudEl0ZW18fGkuZWxlbWVudClbMF0hPT10aGlzLmVsZW1lbnRbMF0mJnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLGkuY3VycmVudEl0ZW18fGkuZWxlbWVudCkmJih0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyYmdGhpcy5lbGVtZW50LmFkZENsYXNzKHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzKSx0aGlzLl90cmlnZ2VyKCJvdmVyIix0LHRoaXMudWkoaSkpKX0sX291dDpmdW5jdGlvbih0KXt2YXIgaT1lLnVpLmRkbWFuYWdlci5jdXJyZW50O2kmJihpLmN1cnJlbnRJdGVtfHxpLmVsZW1lbnQpWzBdIT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLmFjY2VwdC5jYWxsKHRoaXMuZWxlbWVudFswXSxpLmN1cnJlbnRJdGVtfHxpLmVsZW1lbnQpJiYodGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyksdGhpcy5fdHJpZ2dlcigib3V0Iix0LHRoaXMudWkoaSkpKX0sX2Ryb3A6ZnVuY3Rpb24odCxpKXt2YXIgcz1pfHxlLnVpLmRkbWFuYWdlci5jdXJyZW50LG49ITE7cmV0dXJuIHMmJihzLmN1cnJlbnRJdGVtfHxzLmVsZW1lbnQpWzBdIT09dGhpcy5lbGVtZW50WzBdPyh0aGlzLmVsZW1lbnQuZmluZCgiOmRhdGEodWktZHJvcHBhYmxlKSIpLm5vdCgiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1lKHRoaXMpLmRyb3BwYWJsZSgiaW5zdGFuY2UiKTtyZXR1cm4gaS5vcHRpb25zLmdyZWVkeSYmIWkub3B0aW9ucy5kaXNhYmxlZCYmaS5vcHRpb25zLnNjb3BlPT09cy5vcHRpb25zLnNjb3BlJiZpLmFjY2VwdC5jYWxsKGkuZWxlbWVudFswXSxzLmN1cnJlbnRJdGVtfHxzLmVsZW1lbnQpJiZlLnVpLmludGVyc2VjdChzLGUuZXh0ZW5kKGkse29mZnNldDppLmVsZW1lbnQub2Zmc2V0KCl9KSxpLm9wdGlvbnMudG9sZXJhbmNlLHQpPyhuPSEwLCExKTp2b2lkIDB9KSxuPyExOnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLHMuY3VycmVudEl0ZW18fHMuZWxlbWVudCk/KHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyYmdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyksdGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyksdGhpcy5fdHJpZ2dlcigiZHJvcCIsdCx0aGlzLnVpKHMpKSx0aGlzLmVsZW1lbnQpOiExKTohMX0sdWk6ZnVuY3Rpb24oZSl7cmV0dXJue2RyYWdnYWJsZTplLmN1cnJlbnRJdGVtfHxlLmVsZW1lbnQsaGVscGVyOmUuaGVscGVyLHBvc2l0aW9uOmUucG9zaXRpb24sb2Zmc2V0OmUucG9zaXRpb25BYnN9fX0pLGUudWkuaW50ZXJzZWN0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsaSl7cmV0dXJuIGU+PXQmJnQraT5lfXJldHVybiBmdW5jdGlvbih0LGkscyxuKXtpZighaS5vZmZzZXQpcmV0dXJuITE7dmFyIGE9KHQucG9zaXRpb25BYnN8fHQucG9zaXRpb24uYWJzb2x1dGUpLmxlZnQrdC5tYXJnaW5zLmxlZnQsbz0odC5wb3NpdGlvbkFic3x8dC5wb3NpdGlvbi5hYnNvbHV0ZSkudG9wK3QubWFyZ2lucy50b3Ascj1hK3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgsaD1vK3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LGw9aS5vZmZzZXQubGVmdCx1PWkub2Zmc2V0LnRvcCxkPWwraS5wcm9wb3J0aW9ucygpLndpZHRoLGM9dStpLnByb3BvcnRpb25zKCkuaGVpZ2h0O3N3aXRjaChzKXtjYXNlImZpdCI6cmV0dXJuIGE+PWwmJmQ+PXImJm8+PXUmJmM+PWg7Y2FzZSJpbnRlcnNlY3QiOnJldHVybiBhK3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMj5sJiZkPnItdC5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC8yJiZvK3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LzI+dSYmYz5oLXQuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LzI7Y2FzZSJwb2ludGVyIjpyZXR1cm4gZShuLnBhZ2VZLHUsaS5wcm9wb3J0aW9ucygpLmhlaWdodCkmJmUobi5wYWdlWCxsLGkucHJvcG9ydGlvbnMoKS53aWR0aCk7Y2FzZSJ0b3VjaCI6cmV0dXJuKG8+PXUmJmM+PW98fGg+PXUmJmM+PWh8fHU+byYmaD5jKSYmKGE+PWwmJmQ+PWF8fHI+PWwmJmQ+PXJ8fGw+YSYmcj5kKTtkZWZhdWx0OnJldHVybiExfX19KCksZS51aS5kZG1hbmFnZXI9e2N1cnJlbnQ6bnVsbCxkcm9wcGFibGVzOnsiZGVmYXVsdCI6W119LHByZXBhcmVPZmZzZXRzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhPWUudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdC5vcHRpb25zLnNjb3BlXXx8W10sbz1pP2kudHlwZTpudWxsLHI9KHQuY3VycmVudEl0ZW18fHQuZWxlbWVudCkuZmluZCgiOmRhdGEodWktZHJvcHBhYmxlKSIpLmFkZEJhY2soKTtlOmZvcihzPTA7YS5sZW5ndGg+cztzKyspaWYoIShhW3NdLm9wdGlvbnMuZGlzYWJsZWR8fHQmJiFhW3NdLmFjY2VwdC5jYWxsKGFbc10uZWxlbWVudFswXSx0LmN1cnJlbnRJdGVtfHx0LmVsZW1lbnQpKSl7Zm9yKG49MDtyLmxlbmd0aD5uO24rKylpZihyW25dPT09YVtzXS5lbGVtZW50WzBdKXthW3NdLnByb3BvcnRpb25zKCkuaGVpZ2h0PTA7Y29udGludWUgZX1hW3NdLnZpc2libGU9Im5vbmUiIT09YVtzXS5lbGVtZW50LmNzcygiZGlzcGxheSIpLGFbc10udmlzaWJsZSYmKCJtb3VzZWRvd24iPT09byYmYVtzXS5fYWN0aXZhdGUuY2FsbChhW3NdLGkpLGFbc10ub2Zmc2V0PWFbc10uZWxlbWVudC5vZmZzZXQoKSxhW3NdLnByb3BvcnRpb25zKHt3aWR0aDphW3NdLmVsZW1lbnRbMF0ub2Zmc2V0V2lkdGgsaGVpZ2h0OmFbc10uZWxlbWVudFswXS5vZmZzZXRIZWlnaHR9KSl9fSxkcm9wOmZ1bmN0aW9uKHQsaSl7dmFyIHM9ITE7cmV0dXJuIGUuZWFjaCgoZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0Lm9wdGlvbnMuc2NvcGVdfHxbXSkuc2xpY2UoKSxmdW5jdGlvbigpe3RoaXMub3B0aW9ucyYmKCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMudmlzaWJsZSYmZS51aS5pbnRlcnNlY3QodCx0aGlzLHRoaXMub3B0aW9ucy50b2xlcmFuY2UsaSkmJihzPXRoaXMuX2Ryb3AuY2FsbCh0aGlzLGkpfHxzKSwhdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLnZpc2libGUmJnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLHQuY3VycmVudEl0ZW18fHQuZWxlbWVudCkmJih0aGlzLmlzb3V0PSEwLHRoaXMuaXNvdmVyPSExLHRoaXMuX2RlYWN0aXZhdGUuY2FsbCh0aGlzLGkpKSl9KSxzfSxkcmFnU3RhcnQ6ZnVuY3Rpb24odCxpKXt0LmVsZW1lbnQucGFyZW50c1VudGlsKCJib2R5IikuYmluZCgic2Nyb2xsLmRyb3BwYWJsZSIsZnVuY3Rpb24oKXt0Lm9wdGlvbnMucmVmcmVzaFBvc2l0aW9uc3x8ZS51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModCxpKX0pfSxkcmFnOmZ1bmN0aW9uKHQsaSl7dC5vcHRpb25zLnJlZnJlc2hQb3NpdGlvbnMmJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHQsaSksZS5lYWNoKGUudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdC5vcHRpb25zLnNjb3BlXXx8W10sZnVuY3Rpb24oKXtpZighdGhpcy5vcHRpb25zLmRpc2FibGVkJiYhdGhpcy5ncmVlZHlDaGlsZCYmdGhpcy52aXNpYmxlKXt2YXIgcyxuLGEsbz1lLnVpLmludGVyc2VjdCh0LHRoaXMsdGhpcy5vcHRpb25zLnRvbGVyYW5jZSxpKSxyPSFvJiZ0aGlzLmlzb3Zlcj8iaXNvdXQiOm8mJiF0aGlzLmlzb3Zlcj8iaXNvdmVyIjpudWxsO3ImJih0aGlzLm9wdGlvbnMuZ3JlZWR5JiYobj10aGlzLm9wdGlvbnMuc2NvcGUsYT10aGlzLmVsZW1lbnQucGFyZW50cygiOmRhdGEodWktZHJvcHBhYmxlKSIpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmRyb3BwYWJsZSgiaW5zdGFuY2UiKS5vcHRpb25zLnNjb3BlPT09bn0pLGEubGVuZ3RoJiYocz1lKGFbMF0pLmRyb3BwYWJsZSgiaW5zdGFuY2UiKSxzLmdyZWVkeUNoaWxkPSJpc292ZXIiPT09cikpLHMmJiJpc292ZXIiPT09ciYmKHMuaXNvdmVyPSExLHMuaXNvdXQ9ITAscy5fb3V0LmNhbGwocyxpKSksdGhpc1tyXT0hMCx0aGlzWyJpc291dCI9PT1yPyJpc292ZXIiOiJpc291dCJdPSExLHRoaXNbImlzb3ZlciI9PT1yPyJfb3ZlciI6Il9vdXQiXS5jYWxsKHRoaXMsaSkscyYmImlzb3V0Ij09PXImJihzLmlzb3V0PSExLHMuaXNvdmVyPSEwLHMuX292ZXIuY2FsbChzLGkpKSl9fSl9LGRyYWdTdG9wOmZ1bmN0aW9uKHQsaSl7dC5lbGVtZW50LnBhcmVudHNVbnRpbCgiYm9keSIpLnVuYmluZCgic2Nyb2xsLmRyb3BwYWJsZSIpLHQub3B0aW9ucy5yZWZyZXNoUG9zaXRpb25zfHxlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0LGkpfX0sZS51aS5kcm9wcGFibGUsZS53aWRnZXQoInVpLnJlc2l6YWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoicmVzaXplIixvcHRpb25zOnthbHNvUmVzaXplOiExLGFuaW1hdGU6ITEsYW5pbWF0ZUR1cmF0aW9uOiJzbG93IixhbmltYXRlRWFzaW5nOiJzd2luZyIsYXNwZWN0UmF0aW86ITEsYXV0b0hpZGU6ITEsY29udGFpbm1lbnQ6ITEsZ2hvc3Q6ITEsZ3JpZDohMSxoYW5kbGVzOiJlLHMsc2UiLGhlbHBlcjohMSxtYXhIZWlnaHQ6bnVsbCxtYXhXaWR0aDpudWxsLG1pbkhlaWdodDoxMCxtaW5XaWR0aDoxMCx6SW5kZXg6OTAscmVzaXplOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGx9LF9udW06ZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfHwwfSxfaXNOdW1iZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIWlzTmFOKHBhcnNlSW50KGUsMTApKX0sX2hhc1Njcm9sbDpmdW5jdGlvbih0LGkpe2lmKCJoaWRkZW4iPT09ZSh0KS5jc3MoIm92ZXJmbG93IikpcmV0dXJuITE7dmFyIHM9aSYmImxlZnQiPT09aT8ic2Nyb2xsTGVmdCI6InNjcm9sbFRvcCIsbj0hMTtyZXR1cm4gdFtzXT4wPyEwOih0W3NdPTEsbj10W3NdPjAsdFtzXT0wLG4pfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG4sYSxvPXRoaXMscj10aGlzLm9wdGlvbnM7aWYodGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1yZXNpemFibGUiKSxlLmV4dGVuZCh0aGlzLHtfYXNwZWN0UmF0aW86ISFyLmFzcGVjdFJhdGlvLGFzcGVjdFJhdGlvOnIuYXNwZWN0UmF0aW8sb3JpZ2luYWxFbGVtZW50OnRoaXMuZWxlbWVudCxfcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50czpbXSxfaGVscGVyOnIuaGVscGVyfHxyLmdob3N0fHxyLmFuaW1hdGU/ci5oZWxwZXJ8fCJ1aS1yZXNpemFibGUtaGVscGVyIjpudWxsfSksdGhpcy5lbGVtZW50WzBdLm5vZGVOYW1lLm1hdGNoKC9eKGNhbnZhc3x0ZXh0YXJlYXxpbnB1dHxzZWxlY3R8YnV0dG9ufGltZykkL2kpJiYodGhpcy5lbGVtZW50LndyYXAoZSgiPGRpdiBjbGFzcz0ndWktd3JhcHBlcicgc3R5bGU9J292ZXJmbG93OiBoaWRkZW47Jz48L2Rpdj4iKS5jc3Moe3Bvc2l0aW9uOnRoaXMuZWxlbWVudC5jc3MoInBvc2l0aW9uIiksd2lkdGg6dGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSxoZWlnaHQ6dGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCksdG9wOnRoaXMuZWxlbWVudC5jc3MoInRvcCIpLGxlZnQ6dGhpcy5lbGVtZW50LmNzcygibGVmdCIpfSkpLHRoaXMuZWxlbWVudD10aGlzLmVsZW1lbnQucGFyZW50KCkuZGF0YSgidWktcmVzaXphYmxlIix0aGlzLmVsZW1lbnQucmVzaXphYmxlKCJpbnN0YW5jZSIpKSx0aGlzLmVsZW1lbnRJc1dyYXBwZXI9ITAsdGhpcy5lbGVtZW50LmNzcyh7bWFyZ2luTGVmdDp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbkxlZnQiKSxtYXJnaW5Ub3A6dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJtYXJnaW5Ub3AiKSxtYXJnaW5SaWdodDp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpblJpZ2h0IiksbWFyZ2luQm90dG9tOnRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luQm90dG9tIil9KSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe21hcmdpbkxlZnQ6MCxtYXJnaW5Ub3A6MCxtYXJnaW5SaWdodDowLG1hcmdpbkJvdHRvbTowfSksdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlPXRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygicmVzaXplIiksdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJyZXNpemUiLCJub25lIiksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5wdXNoKHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcyh7cG9zaXRpb246InN0YXRpYyIsem9vbToxLGRpc3BsYXk6ImJsb2NrIn0pKSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe21hcmdpbjp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbiIpfSksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemUoKSksdGhpcy5oYW5kbGVzPXIuaGFuZGxlc3x8KGUoIi51aS1yZXNpemFibGUtaGFuZGxlIix0aGlzLmVsZW1lbnQpLmxlbmd0aD97bjoiLnVpLXJlc2l6YWJsZS1uIixlOiIudWktcmVzaXphYmxlLWUiLHM6Ii51aS1yZXNpemFibGUtcyIsdzoiLnVpLXJlc2l6YWJsZS13IixzZToiLnVpLXJlc2l6YWJsZS1zZSIsc3c6Ii51aS1yZXNpemFibGUtc3ciLG5lOiIudWktcmVzaXphYmxlLW5lIixudzoiLnVpLXJlc2l6YWJsZS1udyJ9OiJlLHMsc2UiKSx0aGlzLl9oYW5kbGVzPWUoKSx0aGlzLmhhbmRsZXMuY29uc3RydWN0b3I9PT1TdHJpbmcpZm9yKCJhbGwiPT09dGhpcy5oYW5kbGVzJiYodGhpcy5oYW5kbGVzPSJuLGUscyx3LHNlLHN3LG5lLG53IiksdD10aGlzLmhhbmRsZXMuc3BsaXQoIiwiKSx0aGlzLmhhbmRsZXM9e30saT0wO3QubGVuZ3RoPmk7aSsrKXM9ZS50cmltKHRbaV0pLGE9InVpLXJlc2l6YWJsZS0iK3Msbj1lKCI8ZGl2IGNsYXNzPSd1aS1yZXNpemFibGUtaGFuZGxlICIrYSsiJz48L2Rpdj4iKSxuLmNzcyh7ekluZGV4OnIuekluZGV4fSksInNlIj09PXMmJm4uYWRkQ2xhc3MoInVpLWljb24gdWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2UiKSx0aGlzLmhhbmRsZXNbc109Ii51aS1yZXNpemFibGUtIitzLHRoaXMuZWxlbWVudC5hcHBlbmQobik7dGhpcy5fcmVuZGVyQXhpcz1mdW5jdGlvbih0KXt2YXIgaSxzLG4sYTt0PXR8fHRoaXMuZWxlbWVudDtmb3IoaSBpbiB0aGlzLmhhbmRsZXMpdGhpcy5oYW5kbGVzW2ldLmNvbnN0cnVjdG9yPT09U3RyaW5nP3RoaXMuaGFuZGxlc1tpXT10aGlzLmVsZW1lbnQuY2hpbGRyZW4odGhpcy5oYW5kbGVzW2ldKS5maXJzdCgpLnNob3coKToodGhpcy5oYW5kbGVzW2ldLmpxdWVyeXx8dGhpcy5oYW5kbGVzW2ldLm5vZGVUeXBlKSYmKHRoaXMuaGFuZGxlc1tpXT1lKHRoaXMuaGFuZGxlc1tpXSksdGhpcy5fb24odGhpcy5oYW5kbGVzW2ldLHttb3VzZWRvd246by5fbW91c2VEb3dufSkpLHRoaXMuZWxlbWVudElzV3JhcHBlciYmdGhpcy5vcmlnaW5hbEVsZW1lbnRbMF0ubm9kZU5hbWUubWF0Y2goL14odGV4dGFyZWF8aW5wdXR8c2VsZWN0fGJ1dHRvbikkL2kpJiYocz1lKHRoaXMuaGFuZGxlc1tpXSx0aGlzLmVsZW1lbnQpLGE9L3N3fG5lfG53fHNlfG58cy8udGVzdChpKT9zLm91dGVySGVpZ2h0KCk6cy5vdXRlcldpZHRoKCksbj1bInBhZGRpbmciLC9uZXxud3xuLy50ZXN0KGkpPyJUb3AiOi9zZXxzd3xzLy50ZXN0KGkpPyJCb3R0b20iOi9eZSQvLnRlc3QoaSk/IlJpZ2h0IjoiTGVmdCJdLmpvaW4oIiIpLHQuY3NzKG4sYSksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemUoKSksdGhpcy5faGFuZGxlcz10aGlzLl9oYW5kbGVzLmFkZCh0aGlzLmhhbmRsZXNbaV0pfSx0aGlzLl9yZW5kZXJBeGlzKHRoaXMuZWxlbWVudCksdGhpcy5faGFuZGxlcz10aGlzLl9oYW5kbGVzLmFkZCh0aGlzLmVsZW1lbnQuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKSksdGhpcy5faGFuZGxlcy5kaXNhYmxlU2VsZWN0aW9uKCksdGhpcy5faGFuZGxlcy5tb3VzZW92ZXIoZnVuY3Rpb24oKXtvLnJlc2l6aW5nfHwodGhpcy5jbGFzc05hbWUmJihuPXRoaXMuY2xhc3NOYW1lLm1hdGNoKC91aS1yZXNpemFibGUtKHNlfHN3fG5lfG53fG58ZXxzfHcpL2kpKSxvLmF4aXM9biYmblsxXT9uWzFdOiJzZSIpfSksci5hdXRvSGlkZSYmKHRoaXMuX2hhbmRsZXMuaGlkZSgpLGUodGhpcy5lbGVtZW50KS5hZGRDbGFzcygidWktcmVzaXphYmxlLWF1dG9oaWRlIikubW91c2VlbnRlcihmdW5jdGlvbigpe3IuZGlzYWJsZWR8fChlKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1yZXNpemFibGUtYXV0b2hpZGUiKSxvLl9oYW5kbGVzLnNob3coKSl9KS5tb3VzZWxlYXZlKGZ1bmN0aW9uKCl7ci5kaXNhYmxlZHx8by5yZXNpemluZ3x8KGUodGhpcykuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIpLG8uX2hhbmRsZXMuaGlkZSgpKX0pKSx0aGlzLl9tb3VzZUluaXQoKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9tb3VzZURlc3Ryb3koKTt2YXIgdCxpPWZ1bmN0aW9uKHQpe2UodCkucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZSB1aS1yZXNpemFibGUtZGlzYWJsZWQgdWktcmVzaXphYmxlLXJlc2l6aW5nIikucmVtb3ZlRGF0YSgicmVzaXphYmxlIikucmVtb3ZlRGF0YSgidWktcmVzaXphYmxlIikudW5iaW5kKCIucmVzaXphYmxlIikuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKS5yZW1vdmUoKX07cmV0dXJuIHRoaXMuZWxlbWVudElzV3JhcHBlciYmKGkodGhpcy5lbGVtZW50KSx0PXRoaXMuZWxlbWVudCx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe3Bvc2l0aW9uOnQuY3NzKCJwb3NpdGlvbiIpLHdpZHRoOnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0Lm91dGVySGVpZ2h0KCksdG9wOnQuY3NzKCJ0b3AiKSxsZWZ0OnQuY3NzKCJsZWZ0Iil9KS5pbnNlcnRBZnRlcih0KSx0LnJlbW92ZSgpKSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoInJlc2l6ZSIsdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlKSxpKHRoaXMub3JpZ2luYWxFbGVtZW50KSx0aGlzfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbj0hMTtmb3IoaSBpbiB0aGlzLmhhbmRsZXMpcz1lKHRoaXMuaGFuZGxlc1tpXSlbMF0sKHM9PT10LnRhcmdldHx8ZS5jb250YWlucyhzLHQudGFyZ2V0KSkmJihuPSEwKTtyZXR1cm4hdGhpcy5vcHRpb25zLmRpc2FibGVkJiZufSxfbW91c2VTdGFydDpmdW5jdGlvbih0KXt2YXIgaSxzLG4sYT10aGlzLm9wdGlvbnMsbz10aGlzLmVsZW1lbnQ7cmV0dXJuIHRoaXMucmVzaXppbmc9ITAsdGhpcy5fcmVuZGVyUHJveHkoKSxpPXRoaXMuX251bSh0aGlzLmhlbHBlci5jc3MoImxlZnQiKSkscz10aGlzLl9udW0odGhpcy5oZWxwZXIuY3NzKCJ0b3AiKSksYS5jb250YWlubWVudCYmKGkrPWUoYS5jb250YWlubWVudCkuc2Nyb2xsTGVmdCgpfHwwLHMrPWUoYS5jb250YWlubWVudCkuc2Nyb2xsVG9wKCl8fDApLHRoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMucG9zaXRpb249e2xlZnQ6aSx0b3A6c30sdGhpcy5zaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6dGhpcy5oZWxwZXIud2lkdGgoKSxoZWlnaHQ6dGhpcy5oZWxwZXIuaGVpZ2h0KCl9Ont3aWR0aDpvLndpZHRoKCksaGVpZ2h0Om8uaGVpZ2h0KCl9LHRoaXMub3JpZ2luYWxTaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6by5vdXRlcldpZHRoKCksaGVpZ2h0Om8ub3V0ZXJIZWlnaHQoKX06e3dpZHRoOm8ud2lkdGgoKSxoZWlnaHQ6by5oZWlnaHQoKX0sdGhpcy5zaXplRGlmZj17d2lkdGg6by5vdXRlcldpZHRoKCktby53aWR0aCgpLGhlaWdodDpvLm91dGVySGVpZ2h0KCktby5oZWlnaHQoKX0sdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtsZWZ0OmksdG9wOnN9LHRoaXMub3JpZ2luYWxNb3VzZVBvc2l0aW9uPXtsZWZ0OnQucGFnZVgsdG9wOnQucGFnZVl9LHRoaXMuYXNwZWN0UmF0aW89Im51bWJlciI9PXR5cGVvZiBhLmFzcGVjdFJhdGlvP2EuYXNwZWN0UmF0aW86dGhpcy5vcmlnaW5hbFNpemUud2lkdGgvdGhpcy5vcmlnaW5hbFNpemUuaGVpZ2h0fHwxLG49ZSgiLnVpLXJlc2l6YWJsZS0iK3RoaXMuYXhpcykuY3NzKCJjdXJzb3IiKSxlKCJib2R5IikuY3NzKCJjdXJzb3IiLCJhdXRvIj09PW4/dGhpcy5heGlzKyItcmVzaXplIjpuKSxvLmFkZENsYXNzKCJ1aS1yZXNpemFibGUtcmVzaXppbmciKSx0aGlzLl9wcm9wYWdhdGUoInN0YXJ0Iix0KSwhMH0sX21vdXNlRHJhZzpmdW5jdGlvbih0KXt2YXIgaSxzLG49dGhpcy5vcmlnaW5hbE1vdXNlUG9zaXRpb24sYT10aGlzLmF4aXMsbz10LnBhZ2VYLW4ubGVmdHx8MCxyPXQucGFnZVktbi50b3B8fDAsaD10aGlzLl9jaGFuZ2VbYV07cmV0dXJuIHRoaXMuX3VwZGF0ZVByZXZQcm9wZXJ0aWVzKCksaD8oaT1oLmFwcGx5KHRoaXMsW3QsbyxyXSksdGhpcy5fdXBkYXRlVmlydHVhbEJvdW5kYXJpZXModC5zaGlmdEtleSksKHRoaXMuX2FzcGVjdFJhdGlvfHx0LnNoaWZ0S2V5KSYmKGk9dGhpcy5fdXBkYXRlUmF0aW8oaSx0KSksaT10aGlzLl9yZXNwZWN0U2l6ZShpLHQpLHRoaXMuX3VwZGF0ZUNhY2hlKGkpLHRoaXMuX3Byb3BhZ2F0ZSgicmVzaXplIix0KSxzPXRoaXMuX2FwcGx5Q2hhbmdlcygpLCF0aGlzLl9oZWxwZXImJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoJiZ0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpLGUuaXNFbXB0eU9iamVjdChzKXx8KHRoaXMuX3VwZGF0ZVByZXZQcm9wZXJ0aWVzKCksdGhpcy5fdHJpZ2dlcigicmVzaXplIix0LHRoaXMudWkoKSksdGhpcy5fYXBwbHlDaGFuZ2VzKCkpLCExKTohMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXt0aGlzLnJlc2l6aW5nPSExO3ZhciBpLHMsbixhLG8scixoLGw9dGhpcy5vcHRpb25zLHU9dGhpcztyZXR1cm4gdGhpcy5faGVscGVyJiYoaT10aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLHM9aS5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoaVswXS5ub2RlTmFtZSksbj1zJiZ0aGlzLl9oYXNTY3JvbGwoaVswXSwibGVmdCIpPzA6dS5zaXplRGlmZi5oZWlnaHQsYT1zPzA6dS5zaXplRGlmZi53aWR0aCxvPXt3aWR0aDp1LmhlbHBlci53aWR0aCgpLWEsaGVpZ2h0OnUuaGVscGVyLmhlaWdodCgpLW59LHI9cGFyc2VJbnQodS5lbGVtZW50LmNzcygibGVmdCIpLDEwKSsodS5wb3NpdGlvbi5sZWZ0LXUub3JpZ2luYWxQb3NpdGlvbi5sZWZ0KXx8bnVsbCxoPXBhcnNlSW50KHUuZWxlbWVudC5jc3MoInRvcCIpLDEwKSsodS5wb3NpdGlvbi50b3AtdS5vcmlnaW5hbFBvc2l0aW9uLnRvcCl8fG51bGwsbC5hbmltYXRlfHx0aGlzLmVsZW1lbnQuY3NzKGUuZXh0ZW5kKG8se3RvcDpoLGxlZnQ6cn0pKSx1LmhlbHBlci5oZWlnaHQodS5zaXplLmhlaWdodCksdS5oZWxwZXIud2lkdGgodS5zaXplLndpZHRoKSx0aGlzLl9oZWxwZXImJiFsLmFuaW1hdGUmJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCkpLGUoImJvZHkiKS5jc3MoImN1cnNvciIsImF1dG8iKSx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZS1yZXNpemluZyIpLHRoaXMuX3Byb3BhZ2F0ZSgic3RvcCIsdCksdGhpcy5faGVscGVyJiZ0aGlzLmhlbHBlci5yZW1vdmUoKSwhMX0sX3VwZGF0ZVByZXZQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dGhpcy5wcmV2UG9zaXRpb249e3RvcDp0aGlzLnBvc2l0aW9uLnRvcCxsZWZ0OnRoaXMucG9zaXRpb24ubGVmdH0sdGhpcy5wcmV2U2l6ZT17d2lkdGg6dGhpcy5zaXplLndpZHRoLGhlaWdodDp0aGlzLnNpemUuaGVpZ2h0fX0sX2FwcGx5Q2hhbmdlczpmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiB0aGlzLnBvc2l0aW9uLnRvcCE9PXRoaXMucHJldlBvc2l0aW9uLnRvcCYmKGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIpLHRoaXMucG9zaXRpb24ubGVmdCE9PXRoaXMucHJldlBvc2l0aW9uLmxlZnQmJihlLmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCIpLHRoaXMuc2l6ZS53aWR0aCE9PXRoaXMucHJldlNpemUud2lkdGgmJihlLndpZHRoPXRoaXMuc2l6ZS53aWR0aCsicHgiKSx0aGlzLnNpemUuaGVpZ2h0IT09dGhpcy5wcmV2U2l6ZS5oZWlnaHQmJihlLmhlaWdodD10aGlzLnNpemUuaGVpZ2h0KyJweCIpLHRoaXMuaGVscGVyLmNzcyhlKSxlfSxfdXBkYXRlVmlydHVhbEJvdW5kYXJpZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzLG4sYSxvPXRoaXMub3B0aW9uczthPXttaW5XaWR0aDp0aGlzLl9pc051bWJlcihvLm1pbldpZHRoKT9vLm1pbldpZHRoOjAsbWF4V2lkdGg6dGhpcy5faXNOdW1iZXIoby5tYXhXaWR0aCk/by5tYXhXaWR0aDoxLzAsbWluSGVpZ2h0OnRoaXMuX2lzTnVtYmVyKG8ubWluSGVpZ2h0KT9vLm1pbkhlaWdodDowLG1heEhlaWdodDp0aGlzLl9pc051bWJlcihvLm1heEhlaWdodCk/by5tYXhIZWlnaHQ6MS8wfSwodGhpcy5fYXNwZWN0UmF0aW98fGUpJiYodD1hLm1pbkhlaWdodCp0aGlzLmFzcGVjdFJhdGlvLHM9YS5taW5XaWR0aC90aGlzLmFzcGVjdFJhdGlvLGk9YS5tYXhIZWlnaHQqdGhpcy5hc3BlY3RSYXRpbyxuPWEubWF4V2lkdGgvdGhpcy5hc3BlY3RSYXRpbyx0PmEubWluV2lkdGgmJihhLm1pbldpZHRoPXQpLHM+YS5taW5IZWlnaHQmJihhLm1pbkhlaWdodD1zKSxhLm1heFdpZHRoPmkmJihhLm1heFdpZHRoPWkpLGEubWF4SGVpZ2h0Pm4mJihhLm1heEhlaWdodD1uKSksdGhpcy5fdkJvdW5kYXJpZXM9YX0sX3VwZGF0ZUNhY2hlOmZ1bmN0aW9uKGUpe3RoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMuX2lzTnVtYmVyKGUubGVmdCkmJih0aGlzLnBvc2l0aW9uLmxlZnQ9ZS5sZWZ0KSx0aGlzLl9pc051bWJlcihlLnRvcCkmJih0aGlzLnBvc2l0aW9uLnRvcD1lLnRvcCksdGhpcy5faXNOdW1iZXIoZS5oZWlnaHQpJiYodGhpcy5zaXplLmhlaWdodD1lLmhlaWdodCksdGhpcy5faXNOdW1iZXIoZS53aWR0aCkmJih0aGlzLnNpemUud2lkdGg9ZS53aWR0aCl9LF91cGRhdGVSYXRpbzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnBvc2l0aW9uLGk9dGhpcy5zaXplLHM9dGhpcy5heGlzO3JldHVybiB0aGlzLl9pc051bWJlcihlLmhlaWdodCk/ZS53aWR0aD1lLmhlaWdodCp0aGlzLmFzcGVjdFJhdGlvOnRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiYoZS5oZWlnaHQ9ZS53aWR0aC90aGlzLmFzcGVjdFJhdGlvKSwic3ciPT09cyYmKGUubGVmdD10LmxlZnQrKGkud2lkdGgtZS53aWR0aCksZS50b3A9bnVsbCksIm53Ij09PXMmJihlLnRvcD10LnRvcCsoaS5oZWlnaHQtZS5oZWlnaHQpLGUubGVmdD10LmxlZnQrKGkud2lkdGgtZS53aWR0aCkpLGV9LF9yZXNwZWN0U2l6ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl92Qm91bmRhcmllcyxpPXRoaXMuYXhpcyxzPXRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiZ0Lm1heFdpZHRoJiZ0Lm1heFdpZHRoPGUud2lkdGgsbj10aGlzLl9pc051bWJlcihlLmhlaWdodCkmJnQubWF4SGVpZ2h0JiZ0Lm1heEhlaWdodDxlLmhlaWdodCxhPXRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiZ0Lm1pbldpZHRoJiZ0Lm1pbldpZHRoPmUud2lkdGgsbz10aGlzLl9pc051bWJlcihlLmhlaWdodCkmJnQubWluSGVpZ2h0JiZ0Lm1pbkhlaWdodD5lLmhlaWdodCxyPXRoaXMub3JpZ2luYWxQb3NpdGlvbi5sZWZ0K3RoaXMub3JpZ2luYWxTaXplLndpZHRoLGg9dGhpcy5wb3NpdGlvbi50b3ArdGhpcy5zaXplLmhlaWdodCxsPS9zd3xud3x3Ly50ZXN0KGkpLHU9L253fG5lfG4vLnRlc3QoaSk7cmV0dXJuIGEmJihlLndpZHRoPXQubWluV2lkdGgpLG8mJihlLmhlaWdodD10Lm1pbkhlaWdodCkscyYmKGUud2lkdGg9dC5tYXhXaWR0aCksbiYmKGUuaGVpZ2h0PXQubWF4SGVpZ2h0KSxhJiZsJiYoZS5sZWZ0PXItdC5taW5XaWR0aCkscyYmbCYmKGUubGVmdD1yLXQubWF4V2lkdGgpLG8mJnUmJihlLnRvcD1oLXQubWluSGVpZ2h0KSxuJiZ1JiYoZS50b3A9aC10Lm1heEhlaWdodCksZS53aWR0aHx8ZS5oZWlnaHR8fGUubGVmdHx8IWUudG9wP2Uud2lkdGh8fGUuaGVpZ2h0fHxlLnRvcHx8IWUubGVmdHx8KGUubGVmdD1udWxsKTplLnRvcD1udWxsLGV9LF9nZXRQYWRkaW5nUGx1c0JvcmRlckRpbWVuc2lvbnM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsaT1bXSxzPVtlLmNzcygiYm9yZGVyVG9wV2lkdGgiKSxlLmNzcygiYm9yZGVyUmlnaHRXaWR0aCIpLGUuY3NzKCJib3JkZXJCb3R0b21XaWR0aCIpLGUuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKV0sbj1bZS5jc3MoInBhZGRpbmdUb3AiKSxlLmNzcygicGFkZGluZ1JpZ2h0IiksZS5jc3MoInBhZGRpbmdCb3R0b20iKSxlLmNzcygicGFkZGluZ0xlZnQiKV07ND50O3QrKylpW3RdPXBhcnNlSW50KHNbdF0sMTApfHwwLGlbdF0rPXBhcnNlSW50KG5bdF0sMTApfHwwO3JldHVybntoZWlnaHQ6aVswXStpWzJdLHdpZHRoOmlbMV0raVszXX19LF9wcm9wb3J0aW9uYWxseVJlc2l6ZTpmdW5jdGlvbigpe2lmKHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoKWZvcih2YXIgZSx0PTAsaT10aGlzLmhlbHBlcnx8dGhpcy5lbGVtZW50O3RoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoPnQ7dCsrKWU9dGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50c1t0XSx0aGlzLm91dGVyRGltZW5zaW9uc3x8KHRoaXMub3V0ZXJEaW1lbnNpb25zPXRoaXMuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyhlKSksZS5jc3Moe2hlaWdodDppLmhlaWdodCgpLXRoaXMub3V0ZXJEaW1lbnNpb25zLmhlaWdodHx8MCx3aWR0aDppLndpZHRoKCktdGhpcy5vdXRlckRpbWVuc2lvbnMud2lkdGh8fDB9KX0sX3JlbmRlclByb3h5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LGk9dGhpcy5vcHRpb25zO3RoaXMuZWxlbWVudE9mZnNldD10Lm9mZnNldCgpLHRoaXMuX2hlbHBlcj8odGhpcy5oZWxwZXI9dGhpcy5oZWxwZXJ8fGUoIjxkaXYgc3R5bGU9J292ZXJmbG93OmhpZGRlbjsnPjwvZGl2PiIpLHRoaXMuaGVscGVyLmFkZENsYXNzKHRoaXMuX2hlbHBlcikuY3NzKHt3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLTEsaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpLTEscG9zaXRpb246ImFic29sdXRlIixsZWZ0OnRoaXMuZWxlbWVudE9mZnNldC5sZWZ0KyJweCIsdG9wOnRoaXMuZWxlbWVudE9mZnNldC50b3ArInB4Iix6SW5kZXg6KytpLnpJbmRleH0pLHRoaXMuaGVscGVyLmFwcGVuZFRvKCJib2R5IikuZGlzYWJsZVNlbGVjdGlvbigpKTp0aGlzLmhlbHBlcj10aGlzLmVsZW1lbnR9LF9jaGFuZ2U6e2U6ZnVuY3Rpb24oZSx0KXtyZXR1cm57d2lkdGg6dGhpcy5vcmlnaW5hbFNpemUud2lkdGgrdH19LHc6ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLm9yaWdpbmFsU2l6ZSxzPXRoaXMub3JpZ2luYWxQb3NpdGlvbjtyZXR1cm57bGVmdDpzLmxlZnQrdCx3aWR0aDppLndpZHRoLXR9fSxuOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcz10aGlzLm9yaWdpbmFsU2l6ZSxuPXRoaXMub3JpZ2luYWxQb3NpdGlvbjtyZXR1cm57dG9wOm4udG9wK2ksaGVpZ2h0OnMuaGVpZ2h0LWl9fSxzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm57aGVpZ2h0OnRoaXMub3JpZ2luYWxTaXplLmhlaWdodCtpfX0sc2U6ZnVuY3Rpb24odCxpLHMpe3JldHVybiBlLmV4dGVuZCh0aGlzLl9jaGFuZ2Uucy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLmUuYXBwbHkodGhpcyxbdCxpLHNdKSl9LHN3OmZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gZS5leHRlbmQodGhpcy5fY2hhbmdlLnMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2NoYW5nZS53LmFwcGx5KHRoaXMsW3QsaSxzXSkpfSxuZTpmdW5jdGlvbih0LGkscyl7cmV0dXJuIGUuZXh0ZW5kKHRoaXMuX2NoYW5nZS5uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9jaGFuZ2UuZS5hcHBseSh0aGlzLFt0LGksc10pKX0sbnc6ZnVuY3Rpb24odCxpLHMpe3JldHVybiBlLmV4dGVuZCh0aGlzLl9jaGFuZ2Uubi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLncuYXBwbHkodGhpcyxbdCxpLHNdKSl9fSxfcHJvcGFnYXRlOmZ1bmN0aW9uKHQsaSl7ZS51aS5wbHVnaW4uY2FsbCh0aGlzLHQsW2ksdGhpcy51aSgpXSksInJlc2l6ZSIhPT10JiZ0aGlzLl90cmlnZ2VyKHQsaSx0aGlzLnVpKCkpfSxwbHVnaW5zOnt9LHVpOmZ1bmN0aW9uKCl7cmV0dXJue29yaWdpbmFsRWxlbWVudDp0aGlzLm9yaWdpbmFsRWxlbWVudCxlbGVtZW50OnRoaXMuZWxlbWVudCxoZWxwZXI6dGhpcy5oZWxwZXIscG9zaXRpb246dGhpcy5wb3NpdGlvbixzaXplOnRoaXMuc2l6ZSxvcmlnaW5hbFNpemU6dGhpcy5vcmlnaW5hbFNpemUsb3JpZ2luYWxQb3NpdGlvbjp0aGlzLm9yaWdpbmFsUG9zaXRpb259fX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiYW5pbWF0ZSIse3N0b3A6ZnVuY3Rpb24odCl7dmFyIGk9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIikscz1pLm9wdGlvbnMsbj1pLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLGE9bi5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoblswXS5ub2RlTmFtZSksbz1hJiZpLl9oYXNTY3JvbGwoblswXSwibGVmdCIpPzA6aS5zaXplRGlmZi5oZWlnaHQscj1hPzA6aS5zaXplRGlmZi53aWR0aCxoPXt3aWR0aDppLnNpemUud2lkdGgtcixoZWlnaHQ6aS5zaXplLmhlaWdodC1vfSxsPXBhcnNlSW50KGkuZWxlbWVudC5jc3MoImxlZnQiKSwxMCkrKGkucG9zaXRpb24ubGVmdC1pLm9yaWdpbmFsUG9zaXRpb24ubGVmdCl8fG51bGwsdT1wYXJzZUludChpLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCkrKGkucG9zaXRpb24udG9wLWkub3JpZ2luYWxQb3NpdGlvbi50b3ApfHxudWxsO2kuZWxlbWVudC5hbmltYXRlKGUuZXh0ZW5kKGgsdSYmbD97dG9wOnUsbGVmdDpsfTp7fSkse2R1cmF0aW9uOnMuYW5pbWF0ZUR1cmF0aW9uLGVhc2luZzpzLmFuaW1hdGVFYXNpbmcsc3RlcDpmdW5jdGlvbigpe3ZhciBzPXt3aWR0aDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJ3aWR0aCIpLDEwKSxoZWlnaHQ6cGFyc2VJbnQoaS5lbGVtZW50LmNzcygiaGVpZ2h0IiksMTApLHRvcDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCksbGVmdDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJsZWZ0IiksMTApfTtuJiZuLmxlbmd0aCYmZShuWzBdKS5jc3Moe3dpZHRoOnMud2lkdGgsaGVpZ2h0OnMuaGVpZ2h0fSksaS5fdXBkYXRlQ2FjaGUocyksaS5fcHJvcGFnYXRlKCJyZXNpemUiLHQpfX0pfX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiY29udGFpbm1lbnQiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0LGkscyxuLGEsbyxyLGg9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIiksbD1oLm9wdGlvbnMsdT1oLmVsZW1lbnQsZD1sLmNvbnRhaW5tZW50LGM9ZCBpbnN0YW5jZW9mIGU/ZC5nZXQoMCk6L3BhcmVudC8udGVzdChkKT91LnBhcmVudCgpLmdldCgwKTpkO2MmJihoLmNvbnRhaW5lckVsZW1lbnQ9ZShjKSwvZG9jdW1lbnQvLnRlc3QoZCl8fGQ9PT1kb2N1bWVudD8oaC5jb250YWluZXJPZmZzZXQ9e2xlZnQ6MCx0b3A6MH0saC5jb250YWluZXJQb3NpdGlvbj17bGVmdDowLHRvcDowfSxoLnBhcmVudERhdGE9e2VsZW1lbnQ6ZShkb2N1bWVudCksbGVmdDowLHRvcDowLHdpZHRoOmUoZG9jdW1lbnQpLndpZHRoKCksaGVpZ2h0OmUoZG9jdW1lbnQpLmhlaWdodCgpfHxkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0fSk6KHQ9ZShjKSxpPVtdLGUoWyJUb3AiLCJSaWdodCIsIkxlZnQiLCJCb3R0b20iXSkuZWFjaChmdW5jdGlvbihlLHMpe2lbZV09aC5fbnVtKHQuY3NzKCJwYWRkaW5nIitzKSl9KSxoLmNvbnRhaW5lck9mZnNldD10Lm9mZnNldCgpLGguY29udGFpbmVyUG9zaXRpb249dC5wb3NpdGlvbigpLGguY29udGFpbmVyU2l6ZT17aGVpZ2h0OnQuaW5uZXJIZWlnaHQoKS1pWzNdLHdpZHRoOnQuaW5uZXJXaWR0aCgpLWlbMV19LHM9aC5jb250YWluZXJPZmZzZXQsbj1oLmNvbnRhaW5lclNpemUuaGVpZ2h0LGE9aC5jb250YWluZXJTaXplLndpZHRoLG89aC5faGFzU2Nyb2xsKGMsImxlZnQiKT9jLnNjcm9sbFdpZHRoOmEscj1oLl9oYXNTY3JvbGwoYyk/Yy5zY3JvbGxIZWlnaHQ6bixoLnBhcmVudERhdGE9e2VsZW1lbnQ6YyxsZWZ0OnMubGVmdCx0b3A6cy50b3Asd2lkdGg6byxoZWlnaHQ6cn0pKX0scmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG89ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIikscj1vLm9wdGlvbnMsaD1vLmNvbnRhaW5lck9mZnNldCxsPW8ucG9zaXRpb24sdT1vLl9hc3BlY3RSYXRpb3x8dC5zaGlmdEtleSxkPXt0b3A6MCxsZWZ0OjB9LGM9by5jb250YWluZXJFbGVtZW50LHA9ITA7Y1swXSE9PWRvY3VtZW50JiYvc3RhdGljLy50ZXN0KGMuY3NzKCJwb3NpdGlvbiIpKSYmKGQ9aCksbC5sZWZ0PChvLl9oZWxwZXI/aC5sZWZ0OjApJiYoby5zaXplLndpZHRoPW8uc2l6ZS53aWR0aCsoby5faGVscGVyP28ucG9zaXRpb24ubGVmdC1oLmxlZnQ6by5wb3NpdGlvbi5sZWZ0LWQubGVmdCksdSYmKG8uc2l6ZS5oZWlnaHQ9by5zaXplLndpZHRoL28uYXNwZWN0UmF0aW8scD0hMSksby5wb3NpdGlvbi5sZWZ0PXIuaGVscGVyP2gubGVmdDowKSxsLnRvcDwoby5faGVscGVyP2gudG9wOjApJiYoby5zaXplLmhlaWdodD1vLnNpemUuaGVpZ2h0KyhvLl9oZWxwZXI/by5wb3NpdGlvbi50b3AtaC50b3A6by5wb3NpdGlvbi50b3ApLHUmJihvLnNpemUud2lkdGg9by5zaXplLmhlaWdodCpvLmFzcGVjdFJhdGlvLHA9ITEpLG8ucG9zaXRpb24udG9wPW8uX2hlbHBlcj9oLnRvcDowKSxuPW8uY29udGFpbmVyRWxlbWVudC5nZXQoMCk9PT1vLmVsZW1lbnQucGFyZW50KCkuZ2V0KDApLGE9L3JlbGF0aXZlfGFic29sdXRlLy50ZXN0KG8uY29udGFpbmVyRWxlbWVudC5jc3MoInBvc2l0aW9uIikpLG4mJmE/KG8ub2Zmc2V0LmxlZnQ9by5wYXJlbnREYXRhLmxlZnQrby5wb3NpdGlvbi5sZWZ0LG8ub2Zmc2V0LnRvcD1vLnBhcmVudERhdGEudG9wK28ucG9zaXRpb24udG9wKTooby5vZmZzZXQubGVmdD1vLmVsZW1lbnQub2Zmc2V0KCkubGVmdCxvLm9mZnNldC50b3A9by5lbGVtZW50Lm9mZnNldCgpLnRvcCksaT1NYXRoLmFicyhvLnNpemVEaWZmLndpZHRoKyhvLl9oZWxwZXI/by5vZmZzZXQubGVmdC1kLmxlZnQ6by5vZmZzZXQubGVmdC1oLmxlZnQpKSxzPU1hdGguYWJzKG8uc2l6ZURpZmYuaGVpZ2h0KyhvLl9oZWxwZXI/by5vZmZzZXQudG9wLWQudG9wOm8ub2Zmc2V0LnRvcC1oLnRvcCkpLGkrby5zaXplLndpZHRoPj1vLnBhcmVudERhdGEud2lkdGgmJihvLnNpemUud2lkdGg9by5wYXJlbnREYXRhLndpZHRoLWksdSYmKG8uc2l6ZS5oZWlnaHQ9by5zaXplLndpZHRoL28uYXNwZWN0UmF0aW8scD0hMSkpLHMrby5zaXplLmhlaWdodD49by5wYXJlbnREYXRhLmhlaWdodCYmKG8uc2l6ZS5oZWlnaHQ9by5wYXJlbnREYXRhLmhlaWdodC1zLHUmJihvLnNpemUud2lkdGg9by5zaXplLmhlaWdodCpvLmFzcGVjdFJhdGlvLHA9ITEpKSxwfHwoby5wb3NpdGlvbi5sZWZ0PW8ucHJldlBvc2l0aW9uLmxlZnQsby5wb3NpdGlvbi50b3A9by5wcmV2UG9zaXRpb24udG9wLG8uc2l6ZS53aWR0aD1vLnByZXZTaXplLndpZHRoLG8uc2l6ZS5oZWlnaHQ9by5wcmV2U2l6ZS5oZWlnaHQpfSxzdG9wOmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIiksaT10Lm9wdGlvbnMscz10LmNvbnRhaW5lck9mZnNldCxuPXQuY29udGFpbmVyUG9zaXRpb24sYT10LmNvbnRhaW5lckVsZW1lbnQsbz1lKHQuaGVscGVyKSxyPW8ub2Zmc2V0KCksaD1vLm91dGVyV2lkdGgoKS10LnNpemVEaWZmLndpZHRoLGw9by5vdXRlckhlaWdodCgpLXQuc2l6ZURpZmYuaGVpZ2h0O3QuX2hlbHBlciYmIWkuYW5pbWF0ZSYmL3JlbGF0aXZlLy50ZXN0KGEuY3NzKCJwb3NpdGlvbiIpKSYmZSh0aGlzKS5jc3Moe2xlZnQ6ci5sZWZ0LW4ubGVmdC1zLmxlZnQsd2lkdGg6aCxoZWlnaHQ6bH0pLHQuX2hlbHBlciYmIWkuYW5pbWF0ZSYmL3N0YXRpYy8udGVzdChhLmNzcygicG9zaXRpb24iKSkmJmUodGhpcykuY3NzKHtsZWZ0OnIubGVmdC1uLmxlZnQtcy5sZWZ0LHdpZHRoOmgsaGVpZ2h0Omx9KX19KSxlLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImFsc29SZXNpemUiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0PWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLGk9dC5vcHRpb25zO2UoaS5hbHNvUmVzaXplKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTt0LmRhdGEoInVpLXJlc2l6YWJsZS1hbHNvcmVzaXplIix7d2lkdGg6cGFyc2VJbnQodC53aWR0aCgpLDEwKSxoZWlnaHQ6cGFyc2VJbnQodC5oZWlnaHQoKSwxMCksbGVmdDpwYXJzZUludCh0LmNzcygibGVmdCIpLDEwKSx0b3A6cGFyc2VJbnQodC5jc3MoInRvcCIpLDEwKX0pfSl9LHJlc2l6ZTpmdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLG49cy5vcHRpb25zLGE9cy5vcmlnaW5hbFNpemUsbz1zLm9yaWdpbmFsUG9zaXRpb24scj17aGVpZ2h0OnMuc2l6ZS5oZWlnaHQtYS5oZWlnaHR8fDAsd2lkdGg6cy5zaXplLndpZHRoLWEud2lkdGh8fDAsdG9wOnMucG9zaXRpb24udG9wLW8udG9wfHwwLGxlZnQ6cy5wb3NpdGlvbi5sZWZ0LW8ubGVmdHx8MH07ZShuLmFsc29SZXNpemUpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLHM9ZSh0aGlzKS5kYXRhKCJ1aS1yZXNpemFibGUtYWxzb3Jlc2l6ZSIpLG49e30sYT10LnBhcmVudHMoaS5vcmlnaW5hbEVsZW1lbnRbMF0pLmxlbmd0aD9bIndpZHRoIiwiaGVpZ2h0Il06WyJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiXTtlLmVhY2goYSxmdW5jdGlvbihlLHQpe3ZhciBpPShzW3RdfHwwKSsoclt0XXx8MCk7aSYmaT49MCYmKG5bdF09aXx8bnVsbCl9KSx0LmNzcyhuKX0pfSxzdG9wOmZ1bmN0aW9uKCl7ZSh0aGlzKS5yZW1vdmVEYXRhKCJyZXNpemFibGUtYWxzb3Jlc2l6ZSIpfX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiZ2hvc3QiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0PWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLGk9dC5vcHRpb25zLHM9dC5zaXplO3QuZ2hvc3Q9dC5vcmlnaW5hbEVsZW1lbnQuY2xvbmUoKSx0Lmdob3N0LmNzcyh7b3BhY2l0eTouMjUsZGlzcGxheToiYmxvY2siLHBvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OnMuaGVpZ2h0LHdpZHRoOnMud2lkdGgsbWFyZ2luOjAsbGVmdDowLHRvcDowfSkuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1naG9zdCIpLmFkZENsYXNzKCJzdHJpbmciPT10eXBlb2YgaS5naG9zdD9pLmdob3N0OiIiKSx0Lmdob3N0LmFwcGVuZFRvKHQuaGVscGVyKX0scmVzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIik7dC5naG9zdCYmdC5naG9zdC5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OnQuc2l6ZS5oZWlnaHQsd2lkdGg6dC5zaXplLndpZHRofSl9LHN0b3A6ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLnJlc2l6YWJsZSgiaW5zdGFuY2UiKTt0Lmdob3N0JiZ0LmhlbHBlciYmdC5oZWxwZXIuZ2V0KDApLnJlbW92ZUNoaWxkKHQuZ2hvc3QuZ2V0KDApKX19KSxlLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImdyaWQiLHtyZXNpemU6ZnVuY3Rpb24oKXt2YXIgdCxpPWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLHM9aS5vcHRpb25zLG49aS5zaXplLGE9aS5vcmlnaW5hbFNpemUsbz1pLm9yaWdpbmFsUG9zaXRpb24scj1pLmF4aXMsaD0ibnVtYmVyIj09dHlwZW9mIHMuZ3JpZD9bcy5ncmlkLHMuZ3JpZF06cy5ncmlkLGw9aFswXXx8MSx1PWhbMV18fDEsZD1NYXRoLnJvdW5kKChuLndpZHRoLWEud2lkdGgpL2wpKmwsYz1NYXRoLnJvdW5kKChuLmhlaWdodC1hLmhlaWdodCkvdSkqdSxwPWEud2lkdGgrZCxmPWEuaGVpZ2h0K2MsbT1zLm1heFdpZHRoJiZwPnMubWF4V2lkdGgsZz1zLm1heEhlaWdodCYmZj5zLm1heEhlaWdodCx2PXMubWluV2lkdGgmJnMubWluV2lkdGg+cCx5PXMubWluSGVpZ2h0JiZzLm1pbkhlaWdodD5mO3MuZ3JpZD1oLHYmJihwKz1sKSx5JiYoZis9dSksbSYmKHAtPWwpLGcmJihmLT11KSwvXihzZXxzfGUpJC8udGVzdChyKT8oaS5zaXplLndpZHRoPXAsaS5zaXplLmhlaWdodD1mKTovXihuZSkkLy50ZXN0KHIpPyhpLnNpemUud2lkdGg9cCxpLnNpemUuaGVpZ2h0PWYsaS5wb3NpdGlvbi50b3A9by50b3AtYyk6L14oc3cpJC8udGVzdChyKT8oaS5zaXplLndpZHRoPXAsaS5zaXplLmhlaWdodD1mLGkucG9zaXRpb24ubGVmdD1vLmxlZnQtZCk6KCgwPj1mLXV8fDA+PXAtbCkmJih0PWkuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyh0aGlzKSksZi11PjA/KGkuc2l6ZS5oZWlnaHQ9ZixpLnBvc2l0aW9uLnRvcD1vLnRvcC1jKTooZj11LXQuaGVpZ2h0LGkuc2l6ZS5oZWlnaHQ9ZixpLnBvc2l0aW9uLnRvcD1vLnRvcCthLmhlaWdodC1mKSxwLWw+MD8oaS5zaXplLndpZHRoPXAsaS5wb3NpdGlvbi5sZWZ0PW8ubGVmdC1kKToocD1sLXQud2lkdGgsaS5zaXplLndpZHRoPXAsaS5wb3NpdGlvbi5sZWZ0PW8ubGVmdCthLndpZHRoLXApKX19KSxlLnVpLnJlc2l6YWJsZSxlLndpZGdldCgidWkuc2VsZWN0YWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthcHBlbmRUbzoiYm9keSIsYXV0b1JlZnJlc2g6ITAsZGlzdGFuY2U6MCxmaWx0ZXI6IioiLHRvbGVyYW5jZToidG91Y2giLHNlbGVjdGVkOm51bGwsc2VsZWN0aW5nOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGwsdW5zZWxlY3RlZDpudWxsLHVuc2VsZWN0aW5nOm51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdCxpPXRoaXM7dGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1zZWxlY3RhYmxlIiksdGhpcy5kcmFnZ2VkPSExLHRoaXMucmVmcmVzaD1mdW5jdGlvbigpe3Q9ZShpLm9wdGlvbnMuZmlsdGVyLGkuZWxlbWVudFswXSksdC5hZGRDbGFzcygidWktc2VsZWN0ZWUiKSx0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5vZmZzZXQoKTtlLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIix7ZWxlbWVudDp0aGlzLCRlbGVtZW50OnQsbGVmdDppLmxlZnQsdG9wOmkudG9wLHJpZ2h0OmkubGVmdCt0Lm91dGVyV2lkdGgoKSxib3R0b206aS50b3ArdC5vdXRlckhlaWdodCgpLHN0YXJ0c2VsZWN0ZWQ6ITEsc2VsZWN0ZWQ6dC5oYXNDbGFzcygidWktc2VsZWN0ZWQiKSxzZWxlY3Rpbmc6dC5oYXNDbGFzcygidWktc2VsZWN0aW5nIiksdW5zZWxlY3Rpbmc6dC5oYXNDbGFzcygidWktdW5zZWxlY3RpbmciKX0pfSl9LHRoaXMucmVmcmVzaCgpLHRoaXMuc2VsZWN0ZWVzPXQuYWRkQ2xhc3MoInVpLXNlbGVjdGVlIiksdGhpcy5fbW91c2VJbml0KCksdGhpcy5oZWxwZXI9ZSgiPGRpdiBjbGFzcz0ndWktc2VsZWN0YWJsZS1oZWxwZXInPjwvZGl2PiIpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuc2VsZWN0ZWVzLnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZSIpLnJlbW92ZURhdGEoInNlbGVjdGFibGUtaXRlbSIpLHRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0YWJsZSB1aS1zZWxlY3RhYmxlLWRpc2FibGVkIiksdGhpcy5fbW91c2VEZXN0cm95KCl9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz10aGlzLm9wdGlvbnM7dGhpcy5vcG9zPVt0LnBhZ2VYLHQucGFnZVldLHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWVzPWUocy5maWx0ZXIsdGhpcy5lbGVtZW50WzBdKSx0aGlzLl90cmlnZ2VyKCJzdGFydCIsdCksZShzLmFwcGVuZFRvKS5hcHBlbmQodGhpcy5oZWxwZXIpLHRoaXMuaGVscGVyLmNzcyh7bGVmdDp0LnBhZ2VYLHRvcDp0LnBhZ2VZLHdpZHRoOjAsaGVpZ2h0OjB9KSxzLmF1dG9SZWZyZXNoJiZ0aGlzLnJlZnJlc2goKSx0aGlzLnNlbGVjdGVlcy5maWx0ZXIoIi51aS1zZWxlY3RlZCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgcz1lLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIik7cy5zdGFydHNlbGVjdGVkPSEwLHQubWV0YUtleXx8dC5jdHJsS2V5fHwocy4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0ZWQiKSxzLnNlbGVjdGVkPSExLHMuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIikscy51bnNlbGVjdGluZz0hMCxpLl90cmlnZ2VyKCJ1bnNlbGVjdGluZyIsdCx7dW5zZWxlY3Rpbmc6cy5lbGVtZW50fSkpfSksZSh0LnRhcmdldCkucGFyZW50cygpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHMsbj1lLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIik7cmV0dXJuIG4/KHM9IXQubWV0YUtleSYmIXQuY3RybEtleXx8IW4uJGVsZW1lbnQuaGFzQ2xhc3MoInVpLXNlbGVjdGVkIiksbi4kZWxlbWVudC5yZW1vdmVDbGFzcyhzPyJ1aS11bnNlbGVjdGluZyI6InVpLXNlbGVjdGVkIikuYWRkQ2xhc3Mocz8idWktc2VsZWN0aW5nIjoidWktdW5zZWxlY3RpbmciKSxuLnVuc2VsZWN0aW5nPSFzLG4uc2VsZWN0aW5nPXMsbi5zZWxlY3RlZD1zLHM/aS5fdHJpZ2dlcigic2VsZWN0aW5nIix0LHtzZWxlY3Rpbmc6bi5lbGVtZW50fSk6aS5fdHJpZ2dlcigidW5zZWxlY3RpbmciLHQse3Vuc2VsZWN0aW5nOm4uZWxlbWVudH0pLCExKTp2b2lkIDB9KSl9LF9tb3VzZURyYWc6ZnVuY3Rpb24odCl7aWYodGhpcy5kcmFnZ2VkPSEwLCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQpe3ZhciBpLHM9dGhpcyxuPXRoaXMub3B0aW9ucyxhPXRoaXMub3Bvc1swXSxvPXRoaXMub3Bvc1sxXSxyPXQucGFnZVgsaD10LnBhZ2VZO3JldHVybiBhPnImJihpPXIscj1hLGE9aSksbz5oJiYoaT1oLGg9byxvPWkpLHRoaXMuaGVscGVyLmNzcyh7bGVmdDphLHRvcDpvLHdpZHRoOnItYSxoZWlnaHQ6aC1vfSksdGhpcy5zZWxlY3RlZXMuZWFjaChmdW5jdGlvbigpe3ZhciBpPWUuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKSxsPSExOwppJiZpLmVsZW1lbnQhPT1zLmVsZW1lbnRbMF0mJigidG91Y2giPT09bi50b2xlcmFuY2U/bD0hKGkubGVmdD5yfHxhPmkucmlnaHR8fGkudG9wPmh8fG8+aS5ib3R0b20pOiJmaXQiPT09bi50b2xlcmFuY2UmJihsPWkubGVmdD5hJiZyPmkucmlnaHQmJmkudG9wPm8mJmg+aS5ib3R0b20pLGw/KGkuc2VsZWN0ZWQmJihpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIpLGkuc2VsZWN0ZWQ9ITEpLGkudW5zZWxlY3RpbmcmJihpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS11bnNlbGVjdGluZyIpLGkudW5zZWxlY3Rpbmc9ITEpLGkuc2VsZWN0aW5nfHwoaS4kZWxlbWVudC5hZGRDbGFzcygidWktc2VsZWN0aW5nIiksaS5zZWxlY3Rpbmc9ITAscy5fdHJpZ2dlcigic2VsZWN0aW5nIix0LHtzZWxlY3Rpbmc6aS5lbGVtZW50fSkpKTooaS5zZWxlY3RpbmcmJigodC5tZXRhS2V5fHx0LmN0cmxLZXkpJiZpLnN0YXJ0c2VsZWN0ZWQ/KGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLGkuc2VsZWN0aW5nPSExLGkuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXNlbGVjdGVkIiksaS5zZWxlY3RlZD0hMCk6KGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLGkuc2VsZWN0aW5nPSExLGkuc3RhcnRzZWxlY3RlZCYmKGkuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIiksaS51bnNlbGVjdGluZz0hMCkscy5fdHJpZ2dlcigidW5zZWxlY3RpbmciLHQse3Vuc2VsZWN0aW5nOmkuZWxlbWVudH0pKSksaS5zZWxlY3RlZCYmKHQubWV0YUtleXx8dC5jdHJsS2V5fHxpLnN0YXJ0c2VsZWN0ZWR8fChpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIpLGkuc2VsZWN0ZWQ9ITEsaS4kZWxlbWVudC5hZGRDbGFzcygidWktdW5zZWxlY3RpbmciKSxpLnVuc2VsZWN0aW5nPSEwLHMuX3RyaWdnZXIoInVuc2VsZWN0aW5nIix0LHt1bnNlbGVjdGluZzppLmVsZW1lbnR9KSkpKSl9KSwhMX19LF9tb3VzZVN0b3A6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5kcmFnZ2VkPSExLGUoIi51aS11bnNlbGVjdGluZyIsdGhpcy5lbGVtZW50WzBdKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHM9ZS5kYXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIpO3MuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXVuc2VsZWN0aW5nIikscy51bnNlbGVjdGluZz0hMSxzLnN0YXJ0c2VsZWN0ZWQ9ITEsaS5fdHJpZ2dlcigidW5zZWxlY3RlZCIsdCx7dW5zZWxlY3RlZDpzLmVsZW1lbnR9KX0pLGUoIi51aS1zZWxlY3RpbmciLHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe3ZhciBzPWUuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKTtzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RpbmciKS5hZGRDbGFzcygidWktc2VsZWN0ZWQiKSxzLnNlbGVjdGluZz0hMSxzLnNlbGVjdGVkPSEwLHMuc3RhcnRzZWxlY3RlZD0hMCxpLl90cmlnZ2VyKCJzZWxlY3RlZCIsdCx7c2VsZWN0ZWQ6cy5lbGVtZW50fSl9KSx0aGlzLl90cmlnZ2VyKCJzdG9wIix0KSx0aGlzLmhlbHBlci5yZW1vdmUoKSwhMX19KSxlLndpZGdldCgidWkuc29ydGFibGUiLGUudWkubW91c2Use3ZlcnNpb246IjEuMTEuNCIsd2lkZ2V0RXZlbnRQcmVmaXg6InNvcnQiLHJlYWR5OiExLG9wdGlvbnM6e2FwcGVuZFRvOiJwYXJlbnQiLGF4aXM6ITEsY29ubmVjdFdpdGg6ITEsY29udGFpbm1lbnQ6ITEsY3Vyc29yOiJhdXRvIixjdXJzb3JBdDohMSxkcm9wT25FbXB0eTohMCxmb3JjZVBsYWNlaG9sZGVyU2l6ZTohMSxmb3JjZUhlbHBlclNpemU6ITEsZ3JpZDohMSxoYW5kbGU6ITEsaGVscGVyOiJvcmlnaW5hbCIsaXRlbXM6Ij4gKiIsb3BhY2l0eTohMSxwbGFjZWhvbGRlcjohMSxyZXZlcnQ6ITEsc2Nyb2xsOiEwLHNjcm9sbFNlbnNpdGl2aXR5OjIwLHNjcm9sbFNwZWVkOjIwLHNjb3BlOiJkZWZhdWx0Iix0b2xlcmFuY2U6ImludGVyc2VjdCIsekluZGV4OjFlMyxhY3RpdmF0ZTpudWxsLGJlZm9yZVN0b3A6bnVsbCxjaGFuZ2U6bnVsbCxkZWFjdGl2YXRlOm51bGwsb3V0Om51bGwsb3ZlcjpudWxsLHJlY2VpdmU6bnVsbCxyZW1vdmU6bnVsbCxzb3J0Om51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGwsdXBkYXRlOm51bGx9LF9pc092ZXJBeGlzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gZT49dCYmdCtpPmV9LF9pc0Zsb2F0aW5nOmZ1bmN0aW9uKGUpe3JldHVybi9sZWZ0fHJpZ2h0Ly50ZXN0KGUuY3NzKCJmbG9hdCIpKXx8L2lubGluZXx0YWJsZS1jZWxsLy50ZXN0KGUuY3NzKCJkaXNwbGF5IikpfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXJDYWNoZT17fSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNvcnRhYmxlIiksdGhpcy5yZWZyZXNoKCksdGhpcy5vZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpLHRoaXMuX21vdXNlSW5pdCgpLHRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpLHRoaXMucmVhZHk9ITB9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJoYW5kbGUiPT09ZSYmdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCl9LF9zZXRIYW5kbGVDbGFzc05hbWU6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuZmluZCgiLnVpLXNvcnRhYmxlLWhhbmRsZSIpLnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZS1oYW5kbGUiKSxlLmVhY2godGhpcy5pdGVtcyxmdW5jdGlvbigpeyh0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGFuZGxlP3RoaXMuaXRlbS5maW5kKHRoaXMuaW5zdGFuY2Uub3B0aW9ucy5oYW5kbGUpOnRoaXMuaXRlbSkuYWRkQ2xhc3MoInVpLXNvcnRhYmxlLWhhbmRsZSIpfSl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZSB1aS1zb3J0YWJsZS1kaXNhYmxlZCIpLmZpbmQoIi51aS1zb3J0YWJsZS1oYW5kbGUiKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGFuZGxlIiksdGhpcy5fbW91c2VEZXN0cm95KCk7Zm9yKHZhciBlPXRoaXMuaXRlbXMubGVuZ3RoLTE7ZT49MDtlLS0pdGhpcy5pdGVtc1tlXS5pdGVtLnJlbW92ZURhdGEodGhpcy53aWRnZXROYW1lKyItaXRlbSIpO3JldHVybiB0aGlzfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKHQsaSl7dmFyIHM9bnVsbCxuPSExLGE9dGhpcztyZXR1cm4gdGhpcy5yZXZlcnRpbmc/ITE6dGhpcy5vcHRpb25zLmRpc2FibGVkfHwic3RhdGljIj09PXRoaXMub3B0aW9ucy50eXBlPyExOih0aGlzLl9yZWZyZXNoSXRlbXModCksZSh0LnRhcmdldCkucGFyZW50cygpLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gZS5kYXRhKHRoaXMsYS53aWRnZXROYW1lKyItaXRlbSIpPT09YT8ocz1lKHRoaXMpLCExKTp2b2lkIDB9KSxlLmRhdGEodC50YXJnZXQsYS53aWRnZXROYW1lKyItaXRlbSIpPT09YSYmKHM9ZSh0LnRhcmdldCkpLHM/IXRoaXMub3B0aW9ucy5oYW5kbGV8fGl8fChlKHRoaXMub3B0aW9ucy5oYW5kbGUscykuZmluZCgiKiIpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09PXQudGFyZ2V0JiYobj0hMCl9KSxuKT8odGhpcy5jdXJyZW50SXRlbT1zLHRoaXMuX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zKCksITApOiExOiExKX0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbz10aGlzLm9wdGlvbnM7aWYodGhpcy5jdXJyZW50Q29udGFpbmVyPXRoaXMsdGhpcy5yZWZyZXNoUG9zaXRpb25zKCksdGhpcy5oZWxwZXI9dGhpcy5fY3JlYXRlSGVscGVyKHQpLHRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKSx0aGlzLl9jYWNoZU1hcmdpbnMoKSx0aGlzLnNjcm9sbFBhcmVudD10aGlzLmhlbHBlci5zY3JvbGxQYXJlbnQoKSx0aGlzLm9mZnNldD10aGlzLmN1cnJlbnRJdGVtLm9mZnNldCgpLHRoaXMub2Zmc2V0PXt0b3A6dGhpcy5vZmZzZXQudG9wLXRoaXMubWFyZ2lucy50b3AsbGVmdDp0aGlzLm9mZnNldC5sZWZ0LXRoaXMubWFyZ2lucy5sZWZ0fSxlLmV4dGVuZCh0aGlzLm9mZnNldCx7Y2xpY2s6e2xlZnQ6dC5wYWdlWC10aGlzLm9mZnNldC5sZWZ0LHRvcDp0LnBhZ2VZLXRoaXMub2Zmc2V0LnRvcH0scGFyZW50OnRoaXMuX2dldFBhcmVudE9mZnNldCgpLHJlbGF0aXZlOnRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCl9KSx0aGlzLmhlbHBlci5jc3MoInBvc2l0aW9uIiwiYWJzb2x1dGUiKSx0aGlzLmNzc1Bvc2l0aW9uPXRoaXMuaGVscGVyLmNzcygicG9zaXRpb24iKSx0aGlzLm9yaWdpbmFsUG9zaXRpb249dGhpcy5fZ2VuZXJhdGVQb3NpdGlvbih0KSx0aGlzLm9yaWdpbmFsUGFnZVg9dC5wYWdlWCx0aGlzLm9yaWdpbmFsUGFnZVk9dC5wYWdlWSxvLmN1cnNvckF0JiZ0aGlzLl9hZGp1c3RPZmZzZXRGcm9tSGVscGVyKG8uY3Vyc29yQXQpLHRoaXMuZG9tUG9zaXRpb249e3ByZXY6dGhpcy5jdXJyZW50SXRlbS5wcmV2KClbMF0scGFyZW50OnRoaXMuY3VycmVudEl0ZW0ucGFyZW50KClbMF19LHRoaXMuaGVscGVyWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXSYmdGhpcy5jdXJyZW50SXRlbS5oaWRlKCksdGhpcy5fY3JlYXRlUGxhY2Vob2xkZXIoKSxvLmNvbnRhaW5tZW50JiZ0aGlzLl9zZXRDb250YWlubWVudCgpLG8uY3Vyc29yJiYiYXV0byIhPT1vLmN1cnNvciYmKGE9dGhpcy5kb2N1bWVudC5maW5kKCJib2R5IiksdGhpcy5zdG9yZWRDdXJzb3I9YS5jc3MoImN1cnNvciIpLGEuY3NzKCJjdXJzb3IiLG8uY3Vyc29yKSx0aGlzLnN0b3JlZFN0eWxlc2hlZXQ9ZSgiPHN0eWxlPip7IGN1cnNvcjogIitvLmN1cnNvcisiICFpbXBvcnRhbnQ7IH08L3N0eWxlPiIpLmFwcGVuZFRvKGEpKSxvLm9wYWNpdHkmJih0aGlzLmhlbHBlci5jc3MoIm9wYWNpdHkiKSYmKHRoaXMuX3N0b3JlZE9wYWNpdHk9dGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5IikpLHRoaXMuaGVscGVyLmNzcygib3BhY2l0eSIsby5vcGFjaXR5KSksby56SW5kZXgmJih0aGlzLmhlbHBlci5jc3MoInpJbmRleCIpJiYodGhpcy5fc3RvcmVkWkluZGV4PXRoaXMuaGVscGVyLmNzcygiekluZGV4IikpLHRoaXMuaGVscGVyLmNzcygiekluZGV4IixvLnpJbmRleCkpLHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmIkhUTUwiIT09dGhpcy5zY3JvbGxQYXJlbnRbMF0udGFnTmFtZSYmKHRoaXMub3ZlcmZsb3dPZmZzZXQ9dGhpcy5zY3JvbGxQYXJlbnQub2Zmc2V0KCkpLHRoaXMuX3RyaWdnZXIoInN0YXJ0Iix0LHRoaXMuX3VpSGFzaCgpKSx0aGlzLl9wcmVzZXJ2ZUhlbHBlclByb3BvcnRpb25zfHx0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksIXMpZm9yKG49dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO24+PTA7bi0tKXRoaXMuY29udGFpbmVyc1tuXS5fdHJpZ2dlcigiYWN0aXZhdGUiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKTtyZXR1cm4gZS51aS5kZG1hbmFnZXImJihlLnVpLmRkbWFuYWdlci5jdXJyZW50PXRoaXMpLGUudWkuZGRtYW5hZ2VyJiYhby5kcm9wQmVoYXZpb3VyJiZlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0aGlzLHQpLHRoaXMuZHJhZ2dpbmc9ITAsdGhpcy5oZWxwZXIuYWRkQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpLHRoaXMuX21vdXNlRHJhZyh0KSwhMH0sX21vdXNlRHJhZzpmdW5jdGlvbih0KXt2YXIgaSxzLG4sYSxvPXRoaXMub3B0aW9ucyxyPSExO2Zvcih0aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24odCksdGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSx0aGlzLmxhc3RQb3NpdGlvbkFic3x8KHRoaXMubGFzdFBvc2l0aW9uQWJzPXRoaXMucG9zaXRpb25BYnMpLHRoaXMub3B0aW9ucy5zY3JvbGwmJih0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJiJIVE1MIiE9PXRoaXMuc2Nyb2xsUGFyZW50WzBdLnRhZ05hbWU/KHRoaXMub3ZlcmZsb3dPZmZzZXQudG9wK3RoaXMuc2Nyb2xsUGFyZW50WzBdLm9mZnNldEhlaWdodC10LnBhZ2VZPG8uc2Nyb2xsU2Vuc2l0aXZpdHk/dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wPXI9dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wK28uc2Nyb2xsU3BlZWQ6dC5wYWdlWS10aGlzLm92ZXJmbG93T2Zmc2V0LnRvcDxvLnNjcm9sbFNlbnNpdGl2aXR5JiYodGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wPXI9dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wLW8uc2Nyb2xsU3BlZWQpLHRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdCt0aGlzLnNjcm9sbFBhcmVudFswXS5vZmZzZXRXaWR0aC10LnBhZ2VYPG8uc2Nyb2xsU2Vuc2l0aXZpdHk/dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdD1yPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQrby5zY3JvbGxTcGVlZDp0LnBhZ2VYLXRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdDxvLnNjcm9sbFNlbnNpdGl2aXR5JiYodGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdD1yPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQtby5zY3JvbGxTcGVlZCkpOih0LnBhZ2VZLXRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKCk8by5zY3JvbGxTZW5zaXRpdml0eT9yPXRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKHRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKCktby5zY3JvbGxTcGVlZCk6dGhpcy53aW5kb3cuaGVpZ2h0KCktKHQucGFnZVktdGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKSk8by5zY3JvbGxTZW5zaXRpdml0eSYmKHI9dGhpcy5kb2N1bWVudC5zY3JvbGxUb3AodGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKStvLnNjcm9sbFNwZWVkKSksdC5wYWdlWC10aGlzLmRvY3VtZW50LnNjcm9sbExlZnQoKTxvLnNjcm9sbFNlbnNpdGl2aXR5P3I9dGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KHRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCgpLW8uc2Nyb2xsU3BlZWQpOnRoaXMud2luZG93LndpZHRoKCktKHQucGFnZVgtdGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KCkpPG8uc2Nyb2xsU2Vuc2l0aXZpdHkmJihyPXRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCh0aGlzLmRvY3VtZW50LnNjcm9sbExlZnQoKStvLnNjcm9sbFNwZWVkKSkpLHIhPT0hMSYmZS51aS5kZG1hbmFnZXImJiFvLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsdCkpLHRoaXMucG9zaXRpb25BYnM9dGhpcy5fY29udmVydFBvc2l0aW9uVG8oImFic29sdXRlIiksdGhpcy5vcHRpb25zLmF4aXMmJiJ5Ij09PXRoaXMub3B0aW9ucy5heGlzfHwodGhpcy5oZWxwZXJbMF0uc3R5bGUubGVmdD10aGlzLnBvc2l0aW9uLmxlZnQrInB4IiksdGhpcy5vcHRpb25zLmF4aXMmJiJ4Ij09PXRoaXMub3B0aW9ucy5heGlzfHwodGhpcy5oZWxwZXJbMF0uc3R5bGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIpLGk9dGhpcy5pdGVtcy5sZW5ndGgtMTtpPj0wO2ktLSlpZihzPXRoaXMuaXRlbXNbaV0sbj1zLml0ZW1bMF0sYT10aGlzLl9pbnRlcnNlY3RzV2l0aFBvaW50ZXIocyksYSYmcy5pbnN0YW5jZT09PXRoaXMuY3VycmVudENvbnRhaW5lciYmbiE9PXRoaXMuY3VycmVudEl0ZW1bMF0mJnRoaXMucGxhY2Vob2xkZXJbMT09PWE/Im5leHQiOiJwcmV2Il0oKVswXSE9PW4mJiFlLmNvbnRhaW5zKHRoaXMucGxhY2Vob2xkZXJbMF0sbikmJigic2VtaS1keW5hbWljIj09PXRoaXMub3B0aW9ucy50eXBlPyFlLmNvbnRhaW5zKHRoaXMuZWxlbWVudFswXSxuKTohMCkpe2lmKHRoaXMuZGlyZWN0aW9uPTE9PT1hPyJkb3duIjoidXAiLCJwb2ludGVyIiE9PXRoaXMub3B0aW9ucy50b2xlcmFuY2UmJiF0aGlzLl9pbnRlcnNlY3RzV2l0aFNpZGVzKHMpKWJyZWFrO3RoaXMuX3JlYXJyYW5nZSh0LHMpLHRoaXMuX3RyaWdnZXIoImNoYW5nZSIsdCx0aGlzLl91aUhhc2goKSk7YnJlYWt9cmV0dXJuIHRoaXMuX2NvbnRhY3RDb250YWluZXJzKHQpLGUudWkuZGRtYW5hZ2VyJiZlLnVpLmRkbWFuYWdlci5kcmFnKHRoaXMsdCksdGhpcy5fdHJpZ2dlcigic29ydCIsdCx0aGlzLl91aUhhc2goKSksdGhpcy5sYXN0UG9zaXRpb25BYnM9dGhpcy5wb3NpdGlvbkFicywhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0LGkpe2lmKHQpe2lmKGUudWkuZGRtYW5hZ2VyJiYhdGhpcy5vcHRpb25zLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLmRyb3AodGhpcyx0KSx0aGlzLm9wdGlvbnMucmV2ZXJ0KXt2YXIgcz10aGlzLG49dGhpcy5wbGFjZWhvbGRlci5vZmZzZXQoKSxhPXRoaXMub3B0aW9ucy5heGlzLG89e307YSYmIngiIT09YXx8KG8ubGVmdD1uLmxlZnQtdGhpcy5vZmZzZXQucGFyZW50LmxlZnQtdGhpcy5tYXJnaW5zLmxlZnQrKHRoaXMub2Zmc2V0UGFyZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5ib2R5PzA6dGhpcy5vZmZzZXRQYXJlbnRbMF0uc2Nyb2xsTGVmdCkpLGEmJiJ5IiE9PWF8fChvLnRvcD1uLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wLXRoaXMubWFyZ2lucy50b3ArKHRoaXMub2Zmc2V0UGFyZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5ib2R5PzA6dGhpcy5vZmZzZXRQYXJlbnRbMF0uc2Nyb2xsVG9wKSksdGhpcy5yZXZlcnRpbmc9ITAsZSh0aGlzLmhlbHBlcikuYW5pbWF0ZShvLHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnQsMTApfHw1MDAsZnVuY3Rpb24oKXtzLl9jbGVhcih0KX0pfWVsc2UgdGhpcy5fY2xlYXIodCxpKTtyZXR1cm4hMX19LGNhbmNlbDpmdW5jdGlvbigpe2lmKHRoaXMuZHJhZ2dpbmcpe3RoaXMuX21vdXNlVXAoe3RhcmdldDpudWxsfSksIm9yaWdpbmFsIj09PXRoaXMub3B0aW9ucy5oZWxwZXI/dGhpcy5jdXJyZW50SXRlbS5jc3ModGhpcy5fc3RvcmVkQ1NTKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIik6dGhpcy5jdXJyZW50SXRlbS5zaG93KCk7Zm9yKHZhciB0PXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTt0Pj0wO3QtLSl0aGlzLmNvbnRhaW5lcnNbdF0uX3RyaWdnZXIoImRlYWN0aXZhdGUiLG51bGwsdGhpcy5fdWlIYXNoKHRoaXMpKSx0aGlzLmNvbnRhaW5lcnNbdF0uY29udGFpbmVyQ2FjaGUub3ZlciYmKHRoaXMuY29udGFpbmVyc1t0XS5fdHJpZ2dlcigib3V0IixudWxsLHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW3RdLmNvbnRhaW5lckNhY2hlLm92ZXI9MCl9cmV0dXJuIHRoaXMucGxhY2Vob2xkZXImJih0aGlzLnBsYWNlaG9sZGVyWzBdLnBhcmVudE5vZGUmJnRoaXMucGxhY2Vob2xkZXJbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKSwib3JpZ2luYWwiIT09dGhpcy5vcHRpb25zLmhlbHBlciYmdGhpcy5oZWxwZXImJnRoaXMuaGVscGVyWzBdLnBhcmVudE5vZGUmJnRoaXMuaGVscGVyLnJlbW92ZSgpLGUuZXh0ZW5kKHRoaXMse2hlbHBlcjpudWxsLGRyYWdnaW5nOiExLHJldmVydGluZzohMSxfbm9GaW5hbFNvcnQ6bnVsbH0pLHRoaXMuZG9tUG9zaXRpb24ucHJldj9lKHRoaXMuZG9tUG9zaXRpb24ucHJldikuYWZ0ZXIodGhpcy5jdXJyZW50SXRlbSk6ZSh0aGlzLmRvbVBvc2l0aW9uLnBhcmVudCkucHJlcGVuZCh0aGlzLmN1cnJlbnRJdGVtKSksdGhpc30sc2VyaWFsaXplOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuX2dldEl0ZW1zQXNqUXVlcnkodCYmdC5jb25uZWN0ZWQpLHM9W107cmV0dXJuIHQ9dHx8e30sZShpKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9KGUodC5pdGVtfHx0aGlzKS5hdHRyKHQuYXR0cmlidXRlfHwiaWQiKXx8IiIpLm1hdGNoKHQuZXhwcmVzc2lvbnx8LyguKylbXC09X10oLispLyk7aSYmcy5wdXNoKCh0LmtleXx8aVsxXSsiW10iKSsiPSIrKHQua2V5JiZ0LmV4cHJlc3Npb24/aVsxXTppWzJdKSl9KSwhcy5sZW5ndGgmJnQua2V5JiZzLnB1c2godC5rZXkrIj0iKSxzLmpvaW4oIiYiKX0sdG9BcnJheTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLl9nZXRJdGVtc0FzalF1ZXJ5KHQmJnQuY29ubmVjdGVkKSxzPVtdO3JldHVybiB0PXR8fHt9LGkuZWFjaChmdW5jdGlvbigpe3MucHVzaChlKHQuaXRlbXx8dGhpcykuYXR0cih0LmF0dHJpYnV0ZXx8ImlkIil8fCIiKX0pLHN9LF9pbnRlcnNlY3RzV2l0aDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnBvc2l0aW9uQWJzLmxlZnQsaT10K3RoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgscz10aGlzLnBvc2l0aW9uQWJzLnRvcCxuPXMrdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsYT1lLmxlZnQsbz1hK2Uud2lkdGgscj1lLnRvcCxoPXIrZS5oZWlnaHQsbD10aGlzLm9mZnNldC5jbGljay50b3AsdT10aGlzLm9mZnNldC5jbGljay5sZWZ0LGQ9IngiPT09dGhpcy5vcHRpb25zLmF4aXN8fHMrbD5yJiZoPnMrbCxjPSJ5Ij09PXRoaXMub3B0aW9ucy5heGlzfHx0K3U+YSYmbz50K3UscD1kJiZjO3JldHVybiJwb2ludGVyIj09PXRoaXMub3B0aW9ucy50b2xlcmFuY2V8fHRoaXMub3B0aW9ucy5mb3JjZVBvaW50ZXJGb3JDb250YWluZXJzfHwicG9pbnRlciIhPT10aGlzLm9wdGlvbnMudG9sZXJhbmNlJiZ0aGlzLmhlbHBlclByb3BvcnRpb25zW3RoaXMuZmxvYXRpbmc/IndpZHRoIjoiaGVpZ2h0Il0+ZVt0aGlzLmZsb2F0aW5nPyJ3aWR0aCI6ImhlaWdodCJdP3A6dCt0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLzI+YSYmbz5pLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMiYmcyt0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yPnImJmg+bi10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yfSxfaW50ZXJzZWN0c1dpdGhQb2ludGVyOmZ1bmN0aW9uKGUpe3ZhciB0PSJ4Ij09PXRoaXMub3B0aW9ucy5heGlzfHx0aGlzLl9pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMudG9wK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCxlLnRvcCxlLmhlaWdodCksaT0ieSI9PT10aGlzLm9wdGlvbnMuYXhpc3x8dGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLmxlZnQrdGhpcy5vZmZzZXQuY2xpY2subGVmdCxlLmxlZnQsZS53aWR0aCkscz10JiZpLG49dGhpcy5fZ2V0RHJhZ1ZlcnRpY2FsRGlyZWN0aW9uKCksYT10aGlzLl9nZXREcmFnSG9yaXpvbnRhbERpcmVjdGlvbigpO3JldHVybiBzP3RoaXMuZmxvYXRpbmc/YSYmInJpZ2h0Ij09PWF8fCJkb3duIj09PW4/MjoxOm4mJigiZG93biI9PT1uPzI6MSk6ITF9LF9pbnRlcnNlY3RzV2l0aFNpZGVzOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2lzT3ZlckF4aXModGhpcy5wb3NpdGlvbkFicy50b3ArdGhpcy5vZmZzZXQuY2xpY2sudG9wLGUudG9wK2UuaGVpZ2h0LzIsZS5oZWlnaHQpLGk9dGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLmxlZnQrdGhpcy5vZmZzZXQuY2xpY2subGVmdCxlLmxlZnQrZS53aWR0aC8yLGUud2lkdGgpLHM9dGhpcy5fZ2V0RHJhZ1ZlcnRpY2FsRGlyZWN0aW9uKCksbj10aGlzLl9nZXREcmFnSG9yaXpvbnRhbERpcmVjdGlvbigpO3JldHVybiB0aGlzLmZsb2F0aW5nJiZuPyJyaWdodCI9PT1uJiZpfHwibGVmdCI9PT1uJiYhaTpzJiYoImRvd24iPT09cyYmdHx8InVwIj09PXMmJiF0KX0sX2dldERyYWdWZXJ0aWNhbERpcmVjdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMucG9zaXRpb25BYnMudG9wLXRoaXMubGFzdFBvc2l0aW9uQWJzLnRvcDtyZXR1cm4gMCE9PWUmJihlPjA/ImRvd24iOiJ1cCIpfSxfZ2V0RHJhZ0hvcml6b250YWxEaXJlY3Rpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBvc2l0aW9uQWJzLmxlZnQtdGhpcy5sYXN0UG9zaXRpb25BYnMubGVmdDtyZXR1cm4gMCE9PWUmJihlPjA/InJpZ2h0IjoibGVmdCIpfSxyZWZyZXNoOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9yZWZyZXNoSXRlbXMoZSksdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5yZWZyZXNoUG9zaXRpb25zKCksdGhpc30sX2Nvbm5lY3RXaXRoOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO3JldHVybiBlLmNvbm5lY3RXaXRoLmNvbnN0cnVjdG9yPT09U3RyaW5nP1tlLmNvbm5lY3RXaXRoXTplLmNvbm5lY3RXaXRofSxfZ2V0SXRlbXNBc2pRdWVyeTpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7ci5wdXNoKHRoaXMpfXZhciBzLG4sYSxvLHI9W10saD1bXSxsPXRoaXMuX2Nvbm5lY3RXaXRoKCk7aWYobCYmdClmb3Iocz1sLmxlbmd0aC0xO3M+PTA7cy0tKWZvcihhPWUobFtzXSx0aGlzLmRvY3VtZW50WzBdKSxuPWEubGVuZ3RoLTE7bj49MDtuLS0pbz1lLmRhdGEoYVtuXSx0aGlzLndpZGdldEZ1bGxOYW1lKSxvJiZvIT09dGhpcyYmIW8ub3B0aW9ucy5kaXNhYmxlZCYmaC5wdXNoKFtlLmlzRnVuY3Rpb24oby5vcHRpb25zLml0ZW1zKT9vLm9wdGlvbnMuaXRlbXMuY2FsbChvLmVsZW1lbnQpOmUoby5vcHRpb25zLml0ZW1zLG8uZWxlbWVudCkubm90KCIudWktc29ydGFibGUtaGVscGVyIikubm90KCIudWktc29ydGFibGUtcGxhY2Vob2xkZXIiKSxvXSk7Zm9yKGgucHVzaChbZS5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5pdGVtcyk/dGhpcy5vcHRpb25zLml0ZW1zLmNhbGwodGhpcy5lbGVtZW50LG51bGwse29wdGlvbnM6dGhpcy5vcHRpb25zLGl0ZW06dGhpcy5jdXJyZW50SXRlbX0pOmUodGhpcy5vcHRpb25zLml0ZW1zLHRoaXMuZWxlbWVudCkubm90KCIudWktc29ydGFibGUtaGVscGVyIikubm90KCIudWktc29ydGFibGUtcGxhY2Vob2xkZXIiKSx0aGlzXSkscz1oLmxlbmd0aC0xO3M+PTA7cy0tKWhbc11bMF0uZWFjaChpKTtyZXR1cm4gZShyKX0sX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jdXJyZW50SXRlbS5maW5kKCI6ZGF0YSgiK3RoaXMud2lkZ2V0TmFtZSsiLWl0ZW0pIik7dGhpcy5pdGVtcz1lLmdyZXAodGhpcy5pdGVtcyxmdW5jdGlvbihlKXtmb3IodmFyIGk9MDt0Lmxlbmd0aD5pO2krKylpZih0W2ldPT09ZS5pdGVtWzBdKXJldHVybiExO3JldHVybiEwfSl9LF9yZWZyZXNoSXRlbXM6ZnVuY3Rpb24odCl7dGhpcy5pdGVtcz1bXSx0aGlzLmNvbnRhaW5lcnM9W3RoaXNdO3ZhciBpLHMsbixhLG8scixoLGwsdT10aGlzLml0ZW1zLGQ9W1tlLmlzRnVuY3Rpb24odGhpcy5vcHRpb25zLml0ZW1zKT90aGlzLm9wdGlvbnMuaXRlbXMuY2FsbCh0aGlzLmVsZW1lbnRbMF0sdCx7aXRlbTp0aGlzLmN1cnJlbnRJdGVtfSk6ZSh0aGlzLm9wdGlvbnMuaXRlbXMsdGhpcy5lbGVtZW50KSx0aGlzXV0sYz10aGlzLl9jb25uZWN0V2l0aCgpO2lmKGMmJnRoaXMucmVhZHkpZm9yKGk9Yy5sZW5ndGgtMTtpPj0wO2ktLSlmb3Iobj1lKGNbaV0sdGhpcy5kb2N1bWVudFswXSkscz1uLmxlbmd0aC0xO3M+PTA7cy0tKWE9ZS5kYXRhKG5bc10sdGhpcy53aWRnZXRGdWxsTmFtZSksYSYmYSE9PXRoaXMmJiFhLm9wdGlvbnMuZGlzYWJsZWQmJihkLnB1c2goW2UuaXNGdW5jdGlvbihhLm9wdGlvbnMuaXRlbXMpP2Eub3B0aW9ucy5pdGVtcy5jYWxsKGEuZWxlbWVudFswXSx0LHtpdGVtOnRoaXMuY3VycmVudEl0ZW19KTplKGEub3B0aW9ucy5pdGVtcyxhLmVsZW1lbnQpLGFdKSx0aGlzLmNvbnRhaW5lcnMucHVzaChhKSk7Zm9yKGk9ZC5sZW5ndGgtMTtpPj0wO2ktLSlmb3Iobz1kW2ldWzFdLHI9ZFtpXVswXSxzPTAsbD1yLmxlbmd0aDtsPnM7cysrKWg9ZShyW3NdKSxoLmRhdGEodGhpcy53aWRnZXROYW1lKyItaXRlbSIsbyksdS5wdXNoKHtpdGVtOmgsaW5zdGFuY2U6byx3aWR0aDowLGhlaWdodDowLGxlZnQ6MCx0b3A6MH0pfSxyZWZyZXNoUG9zaXRpb25zOmZ1bmN0aW9uKHQpe3RoaXMuZmxvYXRpbmc9dGhpcy5pdGVtcy5sZW5ndGg/IngiPT09dGhpcy5vcHRpb25zLmF4aXN8fHRoaXMuX2lzRmxvYXRpbmcodGhpcy5pdGVtc1swXS5pdGVtKTohMSx0aGlzLm9mZnNldFBhcmVudCYmdGhpcy5oZWxwZXImJih0aGlzLm9mZnNldC5wYXJlbnQ9dGhpcy5fZ2V0UGFyZW50T2Zmc2V0KCkpO3ZhciBpLHMsbixhO2ZvcihpPXRoaXMuaXRlbXMubGVuZ3RoLTE7aT49MDtpLS0pcz10aGlzLml0ZW1zW2ldLHMuaW5zdGFuY2UhPT10aGlzLmN1cnJlbnRDb250YWluZXImJnRoaXMuY3VycmVudENvbnRhaW5lciYmcy5pdGVtWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXXx8KG49dGhpcy5vcHRpb25zLnRvbGVyYW5jZUVsZW1lbnQ/ZSh0aGlzLm9wdGlvbnMudG9sZXJhbmNlRWxlbWVudCxzLml0ZW0pOnMuaXRlbSx0fHwocy53aWR0aD1uLm91dGVyV2lkdGgoKSxzLmhlaWdodD1uLm91dGVySGVpZ2h0KCkpLGE9bi5vZmZzZXQoKSxzLmxlZnQ9YS5sZWZ0LHMudG9wPWEudG9wKTtpZih0aGlzLm9wdGlvbnMuY3VzdG9tJiZ0aGlzLm9wdGlvbnMuY3VzdG9tLnJlZnJlc2hDb250YWluZXJzKXRoaXMub3B0aW9ucy5jdXN0b20ucmVmcmVzaENvbnRhaW5lcnMuY2FsbCh0aGlzKTtlbHNlIGZvcihpPXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTtpPj0wO2ktLSlhPXRoaXMuY29udGFpbmVyc1tpXS5lbGVtZW50Lm9mZnNldCgpLHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS5sZWZ0PWEubGVmdCx0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUudG9wPWEudG9wLHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS53aWR0aD10aGlzLmNvbnRhaW5lcnNbaV0uZWxlbWVudC5vdXRlcldpZHRoKCksdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLmhlaWdodD10aGlzLmNvbnRhaW5lcnNbaV0uZWxlbWVudC5vdXRlckhlaWdodCgpO3JldHVybiB0aGlzfSxfY3JlYXRlUGxhY2Vob2xkZXI6ZnVuY3Rpb24odCl7dD10fHx0aGlzO3ZhciBpLHM9dC5vcHRpb25zO3MucGxhY2Vob2xkZXImJnMucGxhY2Vob2xkZXIuY29uc3RydWN0b3IhPT1TdHJpbmd8fChpPXMucGxhY2Vob2xkZXIscy5wbGFjZWhvbGRlcj17ZWxlbWVudDpmdW5jdGlvbigpe3ZhciBzPXQuY3VycmVudEl0ZW1bMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxuPWUoIjwiK3MrIj4iLHQuZG9jdW1lbnRbMF0pLmFkZENsYXNzKGl8fHQuY3VycmVudEl0ZW1bMF0uY2xhc3NOYW1lKyIgdWktc29ydGFibGUtcGxhY2Vob2xkZXIiKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIik7cmV0dXJuInRib2R5Ij09PXM/dC5fY3JlYXRlVHJQbGFjZWhvbGRlcih0LmN1cnJlbnRJdGVtLmZpbmQoInRyIikuZXEoMCksZSgiPHRyPiIsdC5kb2N1bWVudFswXSkuYXBwZW5kVG8obikpOiJ0ciI9PT1zP3QuX2NyZWF0ZVRyUGxhY2Vob2xkZXIodC5jdXJyZW50SXRlbSxuKToiaW1nIj09PXMmJm4uYXR0cigic3JjIix0LmN1cnJlbnRJdGVtLmF0dHIoInNyYyIpKSxpfHxuLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpLG59LHVwZGF0ZTpmdW5jdGlvbihlLG4peyghaXx8cy5mb3JjZVBsYWNlaG9sZGVyU2l6ZSkmJihuLmhlaWdodCgpfHxuLmhlaWdodCh0LmN1cnJlbnRJdGVtLmlubmVySGVpZ2h0KCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdUb3AiKXx8MCwxMCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdCb3R0b20iKXx8MCwxMCkpLG4ud2lkdGgoKXx8bi53aWR0aCh0LmN1cnJlbnRJdGVtLmlubmVyV2lkdGgoKS1wYXJzZUludCh0LmN1cnJlbnRJdGVtLmNzcygicGFkZGluZ0xlZnQiKXx8MCwxMCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdSaWdodCIpfHwwLDEwKSkpfX0pLHQucGxhY2Vob2xkZXI9ZShzLnBsYWNlaG9sZGVyLmVsZW1lbnQuY2FsbCh0LmVsZW1lbnQsdC5jdXJyZW50SXRlbSkpLHQuY3VycmVudEl0ZW0uYWZ0ZXIodC5wbGFjZWhvbGRlcikscy5wbGFjZWhvbGRlci51cGRhdGUodCx0LnBsYWNlaG9sZGVyKX0sX2NyZWF0ZVRyUGxhY2Vob2xkZXI6ZnVuY3Rpb24odCxpKXt2YXIgcz10aGlzO3QuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKCl7ZSgiPHRkPiYjMTYwOzwvdGQ+IixzLmRvY3VtZW50WzBdKS5hdHRyKCJjb2xzcGFuIixlKHRoaXMpLmF0dHIoImNvbHNwYW4iKXx8MSkuYXBwZW5kVG8oaSl9KX0sX2NvbnRhY3RDb250YWluZXJzOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG8scixoLGwsdSxkLGM9bnVsbCxwPW51bGw7Zm9yKGk9dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO2k+PTA7aS0tKWlmKCFlLmNvbnRhaW5zKHRoaXMuY3VycmVudEl0ZW1bMF0sdGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnRbMF0pKWlmKHRoaXMuX2ludGVyc2VjdHNXaXRoKHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZSkpe2lmKGMmJmUuY29udGFpbnModGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnRbMF0sYy5lbGVtZW50WzBdKSljb250aW51ZTtjPXRoaXMuY29udGFpbmVyc1tpXSxwPWl9ZWxzZSB0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUub3ZlciYmKHRoaXMuY29udGFpbmVyc1tpXS5fdHJpZ2dlcigib3V0Iix0LHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLm92ZXI9MCk7aWYoYylpZigxPT09dGhpcy5jb250YWluZXJzLmxlbmd0aCl0aGlzLmNvbnRhaW5lcnNbcF0uY29udGFpbmVyQ2FjaGUub3Zlcnx8KHRoaXMuY29udGFpbmVyc1twXS5fdHJpZ2dlcigib3ZlciIsdCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY29udGFpbmVyc1twXS5jb250YWluZXJDYWNoZS5vdmVyPTEpO2Vsc2V7Zm9yKG49MWU0LGE9bnVsbCx1PWMuZmxvYXRpbmd8fHRoaXMuX2lzRmxvYXRpbmcodGhpcy5jdXJyZW50SXRlbSksbz11PyJsZWZ0IjoidG9wIixyPXU/IndpZHRoIjoiaGVpZ2h0IixkPXU/ImNsaWVudFgiOiJjbGllbnRZIixzPXRoaXMuaXRlbXMubGVuZ3RoLTE7cz49MDtzLS0pZS5jb250YWlucyh0aGlzLmNvbnRhaW5lcnNbcF0uZWxlbWVudFswXSx0aGlzLml0ZW1zW3NdLml0ZW1bMF0pJiZ0aGlzLml0ZW1zW3NdLml0ZW1bMF0hPT10aGlzLmN1cnJlbnRJdGVtWzBdJiYoaD10aGlzLml0ZW1zW3NdLml0ZW0ub2Zmc2V0KClbb10sbD0hMSx0W2RdLWg+dGhpcy5pdGVtc1tzXVtyXS8yJiYobD0hMCksbj5NYXRoLmFicyh0W2RdLWgpJiYobj1NYXRoLmFicyh0W2RdLWgpLGE9dGhpcy5pdGVtc1tzXSx0aGlzLmRpcmVjdGlvbj1sPyJ1cCI6ImRvd24iKSk7aWYoIWEmJiF0aGlzLm9wdGlvbnMuZHJvcE9uRW1wdHkpcmV0dXJuO2lmKHRoaXMuY3VycmVudENvbnRhaW5lcj09PXRoaXMuY29udGFpbmVyc1twXSlyZXR1cm4gdGhpcy5jdXJyZW50Q29udGFpbmVyLmNvbnRhaW5lckNhY2hlLm92ZXJ8fCh0aGlzLmNvbnRhaW5lcnNbcF0uX3RyaWdnZXIoIm92ZXIiLHQsdGhpcy5fdWlIYXNoKCkpLHRoaXMuY3VycmVudENvbnRhaW5lci5jb250YWluZXJDYWNoZS5vdmVyPTEpLHZvaWQgMDthP3RoaXMuX3JlYXJyYW5nZSh0LGEsbnVsbCwhMCk6dGhpcy5fcmVhcnJhbmdlKHQsbnVsbCx0aGlzLmNvbnRhaW5lcnNbcF0uZWxlbWVudCwhMCksdGhpcy5fdHJpZ2dlcigiY2hhbmdlIix0LHRoaXMuX3VpSGFzaCgpKSx0aGlzLmNvbnRhaW5lcnNbcF0uX3RyaWdnZXIoImNoYW5nZSIsdCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY3VycmVudENvbnRhaW5lcj10aGlzLmNvbnRhaW5lcnNbcF0sdGhpcy5vcHRpb25zLnBsYWNlaG9sZGVyLnVwZGF0ZSh0aGlzLmN1cnJlbnRDb250YWluZXIsdGhpcy5wbGFjZWhvbGRlciksdGhpcy5jb250YWluZXJzW3BdLl90cmlnZ2VyKCJvdmVyIix0LHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW3BdLmNvbnRhaW5lckNhY2hlLm92ZXI9MX19LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9ZS5pc0Z1bmN0aW9uKGkuaGVscGVyKT9lKGkuaGVscGVyLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbdCx0aGlzLmN1cnJlbnRJdGVtXSkpOiJjbG9uZSI9PT1pLmhlbHBlcj90aGlzLmN1cnJlbnRJdGVtLmNsb25lKCk6dGhpcy5jdXJyZW50SXRlbTtyZXR1cm4gcy5wYXJlbnRzKCJib2R5IikubGVuZ3RofHxlKCJwYXJlbnQiIT09aS5hcHBlbmRUbz9pLmFwcGVuZFRvOnRoaXMuY3VycmVudEl0ZW1bMF0ucGFyZW50Tm9kZSlbMF0uYXBwZW5kQ2hpbGQoc1swXSksc1swXT09PXRoaXMuY3VycmVudEl0ZW1bMF0mJih0aGlzLl9zdG9yZWRDU1M9e3dpZHRoOnRoaXMuY3VycmVudEl0ZW1bMF0uc3R5bGUud2lkdGgsaGVpZ2h0OnRoaXMuY3VycmVudEl0ZW1bMF0uc3R5bGUuaGVpZ2h0LHBvc2l0aW9uOnRoaXMuY3VycmVudEl0ZW0uY3NzKCJwb3NpdGlvbiIpLHRvcDp0aGlzLmN1cnJlbnRJdGVtLmNzcygidG9wIiksbGVmdDp0aGlzLmN1cnJlbnRJdGVtLmNzcygibGVmdCIpfSksKCFzWzBdLnN0eWxlLndpZHRofHxpLmZvcmNlSGVscGVyU2l6ZSkmJnMud2lkdGgodGhpcy5jdXJyZW50SXRlbS53aWR0aCgpKSwoIXNbMF0uc3R5bGUuaGVpZ2h0fHxpLmZvcmNlSGVscGVyU2l6ZSkmJnMuaGVpZ2h0KHRoaXMuY3VycmVudEl0ZW0uaGVpZ2h0KCkpLHN9LF9hZGp1c3RPZmZzZXRGcm9tSGVscGVyOmZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC5zcGxpdCgiICIpKSxlLmlzQXJyYXkodCkmJih0PXtsZWZ0Oit0WzBdLHRvcDordFsxXXx8MH0pLCJsZWZ0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXQubGVmdCt0aGlzLm1hcmdpbnMubGVmdCksInJpZ2h0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdC5yaWdodCt0aGlzLm1hcmdpbnMubGVmdCksInRvcCJpbiB0JiYodGhpcy5vZmZzZXQuY2xpY2sudG9wPXQudG9wK3RoaXMubWFyZ2lucy50b3ApLCJib3R0b20iaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10LmJvdHRvbSt0aGlzLm1hcmdpbnMudG9wKX0sX2dldFBhcmVudE9mZnNldDpmdW5jdGlvbigpe3RoaXMub2Zmc2V0UGFyZW50PXRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpO3ZhciB0PXRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpO3JldHVybiJhYnNvbHV0ZSI9PT10aGlzLmNzc1Bvc2l0aW9uJiZ0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJmUuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pJiYodC5sZWZ0Kz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCksdC50b3ArPXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpKSwodGhpcy5vZmZzZXRQYXJlbnRbMF09PT10aGlzLmRvY3VtZW50WzBdLmJvZHl8fHRoaXMub2Zmc2V0UGFyZW50WzBdLnRhZ05hbWUmJiJodG1sIj09PXRoaXMub2Zmc2V0UGFyZW50WzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSYmZS51aS5pZSkmJih0PXt0b3A6MCxsZWZ0OjB9KSx7dG9wOnQudG9wKyhwYXJzZUludCh0aGlzLm9mZnNldFBhcmVudC5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSxsZWZ0OnQubGVmdCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApfX0sX2dldFJlbGF0aXZlT2Zmc2V0OmZ1bmN0aW9uKCl7aWYoInJlbGF0aXZlIj09PXRoaXMuY3NzUG9zaXRpb24pe3ZhciBlPXRoaXMuY3VycmVudEl0ZW0ucG9zaXRpb24oKTtyZXR1cm57dG9wOmUudG9wLShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoInRvcCIpLDEwKXx8MCkrdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCksbGVmdDplLmxlZnQtKHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcygibGVmdCIpLDEwKXx8MCkrdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpfX1yZXR1cm57dG9wOjAsbGVmdDowfX0sX2NhY2hlTWFyZ2luczpmdW5jdGlvbigpe3RoaXMubWFyZ2lucz17bGVmdDpwYXJzZUludCh0aGlzLmN1cnJlbnRJdGVtLmNzcygibWFyZ2luTGVmdCIpLDEwKXx8MCx0b3A6cGFyc2VJbnQodGhpcy5jdXJyZW50SXRlbS5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MH19LF9jYWNoZUhlbHBlclByb3BvcnRpb25zOmZ1bmN0aW9uKCl7dGhpcy5oZWxwZXJQcm9wb3J0aW9ucz17d2lkdGg6dGhpcy5oZWxwZXIub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmhlbHBlci5vdXRlckhlaWdodCgpfX0sX3NldENvbnRhaW5tZW50OmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG49dGhpcy5vcHRpb25zOyJwYXJlbnQiPT09bi5jb250YWlubWVudCYmKG4uY29udGFpbm1lbnQ9dGhpcy5oZWxwZXJbMF0ucGFyZW50Tm9kZSksKCJkb2N1bWVudCI9PT1uLmNvbnRhaW5tZW50fHwid2luZG93Ij09PW4uY29udGFpbm1lbnQpJiYodGhpcy5jb250YWlubWVudD1bMC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0LDAtdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3AsImRvY3VtZW50Ij09PW4uY29udGFpbm1lbnQ/dGhpcy5kb2N1bWVudC53aWR0aCgpOnRoaXMud2luZG93LndpZHRoKCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdCwoImRvY3VtZW50Ij09PW4uY29udGFpbm1lbnQ/dGhpcy5kb2N1bWVudC53aWR0aCgpOnRoaXMud2luZG93LmhlaWdodCgpfHx0aGlzLmRvY3VtZW50WzBdLmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdKSwvXihkb2N1bWVudHx3aW5kb3d8cGFyZW50KSQvLnRlc3Qobi5jb250YWlubWVudCl8fCh0PWUobi5jb250YWlubWVudClbMF0saT1lKG4uY29udGFpbm1lbnQpLm9mZnNldCgpLHM9ImhpZGRlbiIhPT1lKHQpLmNzcygib3ZlcmZsb3ciKSx0aGlzLmNvbnRhaW5tZW50PVtpLmxlZnQrKHBhcnNlSW50KGUodCkuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChlKHQpLmNzcygicGFkZGluZ0xlZnQiKSwxMCl8fDApLXRoaXMubWFyZ2lucy5sZWZ0LGkudG9wKyhwYXJzZUludChlKHQpLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChlKHQpLmNzcygicGFkZGluZ1RvcCIpLDEwKXx8MCktdGhpcy5tYXJnaW5zLnRvcCxpLmxlZnQrKHM/TWF0aC5tYXgodC5zY3JvbGxXaWR0aCx0Lm9mZnNldFdpZHRoKTp0Lm9mZnNldFdpZHRoKS0ocGFyc2VJbnQoZSh0KS5jc3MoImJvcmRlckxlZnRXaWR0aCIpLDEwKXx8MCktKHBhcnNlSW50KGUodCkuY3NzKCJwYWRkaW5nUmlnaHQiKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQsaS50b3ArKHM/TWF0aC5tYXgodC5zY3JvbGxIZWlnaHQsdC5vZmZzZXRIZWlnaHQpOnQub2Zmc2V0SGVpZ2h0KS0ocGFyc2VJbnQoZSh0KS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoZSh0KS5jc3MoInBhZGRpbmdCb3R0b20iKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdKX0sX2NvbnZlcnRQb3NpdGlvblRvOmZ1bmN0aW9uKHQsaSl7aXx8KGk9dGhpcy5wb3NpdGlvbik7dmFyIHM9ImFic29sdXRlIj09PXQ/MTotMSxuPSJhYnNvbHV0ZSIhPT10aGlzLmNzc1Bvc2l0aW9ufHx0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJmUuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pP3RoaXMuc2Nyb2xsUGFyZW50OnRoaXMub2Zmc2V0UGFyZW50LGE9LyhodG1sfGJvZHkpL2kudGVzdChuWzBdLnRhZ05hbWUpO3JldHVybnt0b3A6aS50b3ArdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wKnMrdGhpcy5vZmZzZXQucGFyZW50LnRvcCpzLSgiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCk6YT8wOm4uc2Nyb2xsVG9wKCkpKnMsbGVmdDppLmxlZnQrdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdCpzK3RoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KnMtKCJmaXhlZCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCk6YT8wOm4uc2Nyb2xsTGVmdCgpKSpzfX0sX2dlbmVyYXRlUG9zaXRpb246ZnVuY3Rpb24odCl7dmFyIGkscyxuPXRoaXMub3B0aW9ucyxhPXQucGFnZVgsbz10LnBhZ2VZLHI9ImFic29sdXRlIiE9PXRoaXMuY3NzUG9zaXRpb258fHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmZS5jb250YWlucyh0aGlzLnNjcm9sbFBhcmVudFswXSx0aGlzLm9mZnNldFBhcmVudFswXSk/dGhpcy5zY3JvbGxQYXJlbnQ6dGhpcy5vZmZzZXRQYXJlbnQsaD0vKGh0bWx8Ym9keSkvaS50ZXN0KHJbMF0udGFnTmFtZSk7cmV0dXJuInJlbGF0aXZlIiE9PXRoaXMuY3NzUG9zaXRpb258fHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmdGhpcy5zY3JvbGxQYXJlbnRbMF0hPT10aGlzLm9mZnNldFBhcmVudFswXXx8KHRoaXMub2Zmc2V0LnJlbGF0aXZlPXRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCkpLHRoaXMub3JpZ2luYWxQb3NpdGlvbiYmKHRoaXMuY29udGFpbm1lbnQmJih0LnBhZ2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8dGhpcy5jb250YWlubWVudFswXSYmKGE9dGhpcy5jb250YWlubWVudFswXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0KSx0LnBhZ2VZLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDx0aGlzLmNvbnRhaW5tZW50WzFdJiYobz10aGlzLmNvbnRhaW5tZW50WzFdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCksdC5wYWdlWC10aGlzLm9mZnNldC5jbGljay5sZWZ0PnRoaXMuY29udGFpbm1lbnRbMl0mJihhPXRoaXMuY29udGFpbm1lbnRbMl0rdGhpcy5vZmZzZXQuY2xpY2subGVmdCksdC5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A+dGhpcy5jb250YWlubWVudFszXSYmKG89dGhpcy5jb250YWlubWVudFszXSt0aGlzLm9mZnNldC5jbGljay50b3ApKSxuLmdyaWQmJihpPXRoaXMub3JpZ2luYWxQYWdlWStNYXRoLnJvdW5kKChvLXRoaXMub3JpZ2luYWxQYWdlWSkvbi5ncmlkWzFdKSpuLmdyaWRbMV0sbz10aGlzLmNvbnRhaW5tZW50P2ktdGhpcy5vZmZzZXQuY2xpY2sudG9wPj10aGlzLmNvbnRhaW5tZW50WzFdJiZpLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDw9dGhpcy5jb250YWlubWVudFszXT9pOmktdGhpcy5vZmZzZXQuY2xpY2sudG9wPj10aGlzLmNvbnRhaW5tZW50WzFdP2ktbi5ncmlkWzFdOmkrbi5ncmlkWzFdOmkscz10aGlzLm9yaWdpbmFsUGFnZVgrTWF0aC5yb3VuZCgoYS10aGlzLm9yaWdpbmFsUGFnZVgpL24uZ3JpZFswXSkqbi5ncmlkWzBdLGE9dGhpcy5jb250YWlubWVudD9zLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+PXRoaXMuY29udGFpbm1lbnRbMF0mJnMtdGhpcy5vZmZzZXQuY2xpY2subGVmdDw9dGhpcy5jb250YWlubWVudFsyXT9zOnMtdGhpcy5vZmZzZXQuY2xpY2subGVmdD49dGhpcy5jb250YWlubWVudFswXT9zLW4uZ3JpZFswXTpzK24uZ3JpZFswXTpzKSkse3RvcDpvLXRoaXMub2Zmc2V0LmNsaWNrLnRvcC10aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AtdGhpcy5vZmZzZXQucGFyZW50LnRvcCsoImZpeGVkIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpOmg/MDpyLnNjcm9sbFRvcCgpKSxsZWZ0OmEtdGhpcy5vZmZzZXQuY2xpY2subGVmdC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KygiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpOmg/MDpyLnNjcm9sbExlZnQoKSl9fSxfcmVhcnJhbmdlOmZ1bmN0aW9uKGUsdCxpLHMpe2k/aVswXS5hcHBlbmRDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKTp0Lml0ZW1bMF0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5wbGFjZWhvbGRlclswXSwiZG93biI9PT10aGlzLmRpcmVjdGlvbj90Lml0ZW1bMF06dC5pdGVtWzBdLm5leHRTaWJsaW5nKSx0aGlzLmNvdW50ZXI9dGhpcy5jb3VudGVyPysrdGhpcy5jb3VudGVyOjE7dmFyIG49dGhpcy5jb3VudGVyO3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7bj09PXRoaXMuY291bnRlciYmdGhpcy5yZWZyZXNoUG9zaXRpb25zKCFzKX0pfSxfY2xlYXI6ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKGUsdCxpKXtyZXR1cm4gZnVuY3Rpb24ocyl7aS5fdHJpZ2dlcihlLHMsdC5fdWlIYXNoKHQpKX19dGhpcy5yZXZlcnRpbmc9ITE7dmFyIHMsbj1bXTtpZighdGhpcy5fbm9GaW5hbFNvcnQmJnRoaXMuY3VycmVudEl0ZW0ucGFyZW50KCkubGVuZ3RoJiZ0aGlzLnBsYWNlaG9sZGVyLmJlZm9yZSh0aGlzLmN1cnJlbnRJdGVtKSx0aGlzLl9ub0ZpbmFsU29ydD1udWxsLHRoaXMuaGVscGVyWzBdPT09dGhpcy5jdXJyZW50SXRlbVswXSl7Zm9yKHMgaW4gdGhpcy5fc3RvcmVkQ1NTKSgiYXV0byI9PT10aGlzLl9zdG9yZWRDU1Nbc118fCJzdGF0aWMiPT09dGhpcy5fc3RvcmVkQ1NTW3NdKSYmKHRoaXMuX3N0b3JlZENTU1tzXT0iIik7dGhpcy5jdXJyZW50SXRlbS5jc3ModGhpcy5fc3RvcmVkQ1NTKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIil9ZWxzZSB0aGlzLmN1cnJlbnRJdGVtLnNob3coKTtmb3IodGhpcy5mcm9tT3V0c2lkZSYmIXQmJm4ucHVzaChmdW5jdGlvbihlKXt0aGlzLl90cmlnZ2VyKCJyZWNlaXZlIixlLHRoaXMuX3VpSGFzaCh0aGlzLmZyb21PdXRzaWRlKSl9KSwhdGhpcy5mcm9tT3V0c2lkZSYmdGhpcy5kb21Qb3NpdGlvbi5wcmV2PT09dGhpcy5jdXJyZW50SXRlbS5wcmV2KCkubm90KCIudWktc29ydGFibGUtaGVscGVyIilbMF0mJnRoaXMuZG9tUG9zaXRpb24ucGFyZW50PT09dGhpcy5jdXJyZW50SXRlbS5wYXJlbnQoKVswXXx8dHx8bi5wdXNoKGZ1bmN0aW9uKGUpe3RoaXMuX3RyaWdnZXIoInVwZGF0ZSIsZSx0aGlzLl91aUhhc2goKSl9KSx0aGlzIT09dGhpcy5jdXJyZW50Q29udGFpbmVyJiYodHx8KG4ucHVzaChmdW5jdGlvbihlKXt0aGlzLl90cmlnZ2VyKCJyZW1vdmUiLGUsdGhpcy5fdWlIYXNoKCkpfSksbi5wdXNoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtlLl90cmlnZ2VyKCJyZWNlaXZlIix0LHRoaXMuX3VpSGFzaCh0aGlzKSl9fS5jYWxsKHRoaXMsdGhpcy5jdXJyZW50Q29udGFpbmVyKSksbi5wdXNoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtlLl90cmlnZ2VyKCJ1cGRhdGUiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKX19LmNhbGwodGhpcyx0aGlzLmN1cnJlbnRDb250YWluZXIpKSkpLHM9dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO3M+PTA7cy0tKXR8fG4ucHVzaChpKCJkZWFjdGl2YXRlIix0aGlzLHRoaXMuY29udGFpbmVyc1tzXSkpLHRoaXMuY29udGFpbmVyc1tzXS5jb250YWluZXJDYWNoZS5vdmVyJiYobi5wdXNoKGkoIm91dCIsdGhpcyx0aGlzLmNvbnRhaW5lcnNbc10pKSx0aGlzLmNvbnRhaW5lcnNbc10uY29udGFpbmVyQ2FjaGUub3Zlcj0wKTtpZih0aGlzLnN0b3JlZEN1cnNvciYmKHRoaXMuZG9jdW1lbnQuZmluZCgiYm9keSIpLmNzcygiY3Vyc29yIix0aGlzLnN0b3JlZEN1cnNvciksdGhpcy5zdG9yZWRTdHlsZXNoZWV0LnJlbW92ZSgpKSx0aGlzLl9zdG9yZWRPcGFjaXR5JiZ0aGlzLmhlbHBlci5jc3MoIm9wYWNpdHkiLHRoaXMuX3N0b3JlZE9wYWNpdHkpLHRoaXMuX3N0b3JlZFpJbmRleCYmdGhpcy5oZWxwZXIuY3NzKCJ6SW5kZXgiLCJhdXRvIj09PXRoaXMuX3N0b3JlZFpJbmRleD8iIjp0aGlzLl9zdG9yZWRaSW5kZXgpLHRoaXMuZHJhZ2dpbmc9ITEsdHx8dGhpcy5fdHJpZ2dlcigiYmVmb3JlU3RvcCIsZSx0aGlzLl91aUhhc2goKSksdGhpcy5wbGFjZWhvbGRlclswXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMucGxhY2Vob2xkZXJbMF0pLHRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbHx8KHRoaXMuaGVscGVyWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXSYmdGhpcy5oZWxwZXIucmVtb3ZlKCksdGhpcy5oZWxwZXI9bnVsbCksIXQpe2ZvcihzPTA7bi5sZW5ndGg+cztzKyspbltzXS5jYWxsKHRoaXMsZSk7dGhpcy5fdHJpZ2dlcigic3RvcCIsZSx0aGlzLl91aUhhc2goKSl9cmV0dXJuIHRoaXMuZnJvbU91dHNpZGU9ITEsIXRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbH0sX3RyaWdnZXI6ZnVuY3Rpb24oKXtlLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpPT09ITEmJnRoaXMuY2FuY2VsKCl9LF91aUhhc2g6ZnVuY3Rpb24odCl7dmFyIGk9dHx8dGhpcztyZXR1cm57aGVscGVyOmkuaGVscGVyLHBsYWNlaG9sZGVyOmkucGxhY2Vob2xkZXJ8fGUoW10pLHBvc2l0aW9uOmkucG9zaXRpb24sb3JpZ2luYWxQb3NpdGlvbjppLm9yaWdpbmFsUG9zaXRpb24sb2Zmc2V0OmkucG9zaXRpb25BYnMsaXRlbTppLmN1cnJlbnRJdGVtLHNlbmRlcjp0P3QuZWxlbWVudDpudWxsfX19KSxlLndpZGdldCgidWkuYWNjb3JkaW9uIix7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthY3RpdmU6MCxhbmltYXRlOnt9LGNvbGxhcHNpYmxlOiExLGV2ZW50OiJjbGljayIsaGVhZGVyOiI+IGxpID4gOmZpcnN0LWNoaWxkLD4gOm5vdChsaSk6ZXZlbiIsaGVpZ2h0U3R5bGU6ImF1dG8iLGljb25zOnthY3RpdmVIZWFkZXI6InVpLWljb24tdHJpYW5nbGUtMS1zIixoZWFkZXI6InVpLWljb24tdHJpYW5nbGUtMS1lIn0sYWN0aXZhdGU6bnVsbCxiZWZvcmVBY3RpdmF0ZTpudWxsfSxoaWRlUHJvcHM6e2JvcmRlclRvcFdpZHRoOiJoaWRlIixib3JkZXJCb3R0b21XaWR0aDoiaGlkZSIscGFkZGluZ1RvcDoiaGlkZSIscGFkZGluZ0JvdHRvbToiaGlkZSIsaGVpZ2h0OiJoaWRlIn0sc2hvd1Byb3BzOntib3JkZXJUb3BXaWR0aDoic2hvdyIsYm9yZGVyQm90dG9tV2lkdGg6InNob3ciLHBhZGRpbmdUb3A6InNob3ciLHBhZGRpbmdCb3R0b206InNob3ciLGhlaWdodDoic2hvdyJ9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnM7dGhpcy5wcmV2U2hvdz10aGlzLnByZXZIaWRlPWUoKSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWFjY29yZGlvbiB1aS13aWRnZXQgdWktaGVscGVyLXJlc2V0IikuYXR0cigicm9sZSIsInRhYmxpc3QiKSx0LmNvbGxhcHNpYmxlfHx0LmFjdGl2ZSE9PSExJiZudWxsIT10LmFjdGl2ZXx8KHQuYWN0aXZlPTApLHRoaXMuX3Byb2Nlc3NQYW5lbHMoKSwwPnQuYWN0aXZlJiYodC5hY3RpdmUrPXRoaXMuaGVhZGVycy5sZW5ndGgpLHRoaXMuX3JlZnJlc2goKX0sX2dldENyZWF0ZUV2ZW50RGF0YTpmdW5jdGlvbigpe3JldHVybntoZWFkZXI6dGhpcy5hY3RpdmUscGFuZWw6dGhpcy5hY3RpdmUubGVuZ3RoP3RoaXMuYWN0aXZlLm5leHQoKTplKCl9fSxfY3JlYXRlSWNvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuaWNvbnM7dCYmKGUoIjxzcGFuPiIpLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24taGVhZGVyLWljb24gdWktaWNvbiAiK3QuaGVhZGVyKS5wcmVwZW5kVG8odGhpcy5oZWFkZXJzKSx0aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZUNsYXNzKHQuaGVhZGVyKS5hZGRDbGFzcyh0LmFjdGl2ZUhlYWRlciksdGhpcy5oZWFkZXJzLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24taWNvbnMiKSl9LF9kZXN0cm95SWNvbnM6ZnVuY3Rpb24oKXt0aGlzLmhlYWRlcnMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1pY29ucyIpLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIikucmVtb3ZlKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hY2NvcmRpb24gdWktd2lkZ2V0IHVpLWhlbHBlci1yZXNldCIpLnJlbW92ZUF0dHIoInJvbGUiKSx0aGlzLmhlYWRlcnMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXIgdWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWFjdGl2ZSB1aS1zdGF0ZS1kaXNhYmxlZCB1aS1jb3JuZXItdG9wIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtZXhwYW5kZWQiKS5yZW1vdmVBdHRyKCJhcmlhLXNlbGVjdGVkIikucmVtb3ZlQXR0cigiYXJpYS1jb250cm9scyIpLnJlbW92ZUF0dHIoInRhYkluZGV4IikucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLl9kZXN0cm95SWNvbnMoKSxlPXRoaXMuaGVhZGVycy5uZXh0KCkucmVtb3ZlQ2xhc3MoInVpLWhlbHBlci1yZXNldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIHVpLWFjY29yZGlvbi1jb250ZW50IHVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSB1aS1zdGF0ZS1kaXNhYmxlZCIpLmNzcygiZGlzcGxheSIsIiIpLnJlbW92ZUF0dHIoInJvbGUiKS5yZW1vdmVBdHRyKCJhcmlhLWhpZGRlbiIpLnJlbW92ZUF0dHIoImFyaWEtbGFiZWxsZWRieSIpLnJlbW92ZVVuaXF1ZUlkKCksImNvbnRlbnQiIT09dGhpcy5vcHRpb25zLmhlaWdodFN0eWxlJiZlLmNzcygiaGVpZ2h0IiwiIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4iYWN0aXZlIj09PWU/KHRoaXMuX2FjdGl2YXRlKHQpLHZvaWQgMCk6KCJldmVudCI9PT1lJiYodGhpcy5vcHRpb25zLmV2ZW50JiZ0aGlzLl9vZmYodGhpcy5oZWFkZXJzLHRoaXMub3B0aW9ucy5ldmVudCksdGhpcy5fc2V0dXBFdmVudHModCkpLHRoaXMuX3N1cGVyKGUsdCksImNvbGxhcHNpYmxlIiE9PWV8fHR8fHRoaXMub3B0aW9ucy5hY3RpdmUhPT0hMXx8dGhpcy5fYWN0aXZhdGUoMCksImljb25zIj09PWUmJih0aGlzLl9kZXN0cm95SWNvbnMoKSx0JiZ0aGlzLl9jcmVhdGVJY29ucygpKSwiZGlzYWJsZWQiPT09ZSYmKHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKS50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkpLHZvaWQgMCl9LF9rZXlkb3duOmZ1bmN0aW9uKHQpe2lmKCF0LmFsdEtleSYmIXQuY3RybEtleSl7dmFyIGk9ZS51aS5rZXlDb2RlLHM9dGhpcy5oZWFkZXJzLmxlbmd0aCxuPXRoaXMuaGVhZGVycy5pbmRleCh0LnRhcmdldCksYT0hMTtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIGkuUklHSFQ6Y2FzZSBpLkRPV046YT10aGlzLmhlYWRlcnNbKG4rMSklc107YnJlYWs7Y2FzZSBpLkxFRlQ6Y2FzZSBpLlVQOmE9dGhpcy5oZWFkZXJzWyhuLTErcyklc107YnJlYWs7Y2FzZSBpLlNQQUNFOmNhc2UgaS5FTlRFUjp0aGlzLl9ldmVudEhhbmRsZXIodCk7YnJlYWs7Y2FzZSBpLkhPTUU6YT10aGlzLmhlYWRlcnNbMF07YnJlYWs7Y2FzZSBpLkVORDphPXRoaXMuaGVhZGVyc1tzLTFdfWEmJihlKHQudGFyZ2V0KS5hdHRyKCJ0YWJJbmRleCIsLTEpLGUoYSkuYXR0cigidGFiSW5kZXgiLDApLGEuZm9jdXMoKSx0LnByZXZlbnREZWZhdWx0KCkpfX0sX3BhbmVsS2V5RG93bjpmdW5jdGlvbih0KXt0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuVVAmJnQuY3RybEtleSYmZSh0LmN1cnJlbnRUYXJnZXQpLnByZXYoKS5mb2N1cygpfSxyZWZyZXNoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zO3RoaXMuX3Byb2Nlc3NQYW5lbHMoKSx0LmFjdGl2ZT09PSExJiZ0LmNvbGxhcHNpYmxlPT09ITB8fCF0aGlzLmhlYWRlcnMubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnQuYWN0aXZlPT09ITE/dGhpcy5fYWN0aXZhdGUoMCk6dGhpcy5hY3RpdmUubGVuZ3RoJiYhZS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sdGhpcy5hY3RpdmVbMF0pP3RoaXMuaGVhZGVycy5sZW5ndGg9PT10aGlzLmhlYWRlcnMuZmluZCgiLnVpLXN0YXRlLWRpc2FibGVkIikubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnRoaXMuX2FjdGl2YXRlKE1hdGgubWF4KDAsdC5hY3RpdmUtMSkpOnQuYWN0aXZlPXRoaXMuaGVhZGVycy5pbmRleCh0aGlzLmFjdGl2ZSksdGhpcy5fZGVzdHJveUljb25zKCksdGhpcy5fcmVmcmVzaCgpfSxfcHJvY2Vzc1BhbmVsczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuaGVhZGVycyx0PXRoaXMucGFuZWxzO3RoaXMuaGVhZGVycz10aGlzLmVsZW1lbnQuZmluZCh0aGlzLm9wdGlvbnMuaGVhZGVyKS5hZGRDbGFzcygidWktYWNjb3JkaW9uLWhlYWRlciB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKSx0aGlzLnBhbmVscz10aGlzLmhlYWRlcnMubmV4dCgpLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24tY29udGVudCB1aS1oZWxwZXItcmVzZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIpLmZpbHRlcigiOm5vdCgudWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlKSIpLmhpZGUoKSx0JiYodGhpcy5fb2ZmKGUubm90KHRoaXMuaGVhZGVycykpLHRoaXMuX29mZih0Lm5vdCh0aGlzLnBhbmVscykpKX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxpPXRoaXMub3B0aW9ucyxzPWkuaGVpZ2h0U3R5bGUsbj10aGlzLmVsZW1lbnQucGFyZW50KCk7dGhpcy5hY3RpdmU9dGhpcy5fZmluZEFjdGl2ZShpLmFjdGl2ZSkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIikucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwiKSx0aGlzLmFjdGl2ZS5uZXh0KCkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpLnNob3coKSx0aGlzLmhlYWRlcnMuYXR0cigicm9sZSIsInRhYiIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC51bmlxdWVJZCgpLmF0dHIoImlkIikscz10Lm5leHQoKSxuPXMudW5pcXVlSWQoKS5hdHRyKCJpZCIpO3QuYXR0cigiYXJpYS1jb250cm9scyIsbikscy5hdHRyKCJhcmlhLWxhYmVsbGVkYnkiLGkpfSkubmV4dCgpLmF0dHIoInJvbGUiLCJ0YWJwYW5lbCIpLHRoaXMuaGVhZGVycy5ub3QodGhpcy5hY3RpdmUpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UiLHRhYkluZGV4Oi0xfSkubmV4dCgpLmF0dHIoeyJhcmlhLWhpZGRlbiI6InRydWUifSkuaGlkZSgpLHRoaXMuYWN0aXZlLmxlbmd0aD90aGlzLmFjdGl2ZS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pLm5leHQoKS5hdHRyKHsiYXJpYS1oaWRkZW4iOiJmYWxzZSJ9KTp0aGlzLmhlYWRlcnMuZXEoMCkuYXR0cigidGFiSW5kZXgiLDApLHRoaXMuX2NyZWF0ZUljb25zKCksdGhpcy5fc2V0dXBFdmVudHMoaS5ldmVudCksImZpbGwiPT09cz8odD1uLmhlaWdodCgpLHRoaXMuZWxlbWVudC5zaWJsaW5ncygiOnZpc2libGUiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKSxzPWkuY3NzKCJwb3NpdGlvbiIpOyJhYnNvbHV0ZSIhPT1zJiYiZml4ZWQiIT09cyYmKHQtPWkub3V0ZXJIZWlnaHQoITApKX0pLHRoaXMuaGVhZGVycy5lYWNoKGZ1bmN0aW9uKCl7dC09ZSh0aGlzKS5vdXRlckhlaWdodCghMCl9KSx0aGlzLmhlYWRlcnMubmV4dCgpLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmhlaWdodChNYXRoLm1heCgwLHQtZSh0aGlzKS5pbm5lckhlaWdodCgpK2UodGhpcykuaGVpZ2h0KCkpKX0pLmNzcygib3ZlcmZsb3ciLCJhdXRvIikpOiJhdXRvIj09PXMmJih0PTAsdGhpcy5oZWFkZXJzLm5leHQoKS5lYWNoKGZ1bmN0aW9uKCl7dD1NYXRoLm1heCh0LGUodGhpcykuY3NzKCJoZWlnaHQiLCIiKS5oZWlnaHQoKSl9KS5oZWlnaHQodCkpfSxfYWN0aXZhdGU6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5fZmluZEFjdGl2ZSh0KVswXTtpIT09dGhpcy5hY3RpdmVbMF0mJihpPWl8fHRoaXMuYWN0aXZlWzBdLHRoaXMuX2V2ZW50SGFuZGxlcih7dGFyZ2V0OmksY3VycmVudFRhcmdldDppLHByZXZlbnREZWZhdWx0OmUubm9vcH0pKX0sX2ZpbmRBY3RpdmU6ZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3RoaXMuaGVhZGVycy5lcSh0KTplKCl9LF9zZXR1cEV2ZW50czpmdW5jdGlvbih0KXt2YXIgaT17a2V5ZG93bjoiX2tleWRvd24ifTt0JiZlLmVhY2godC5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsdCl7aVt0XT0iX2V2ZW50SGFuZGxlciJ9KSx0aGlzLl9vZmYodGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKSksdGhpcy5fb24odGhpcy5oZWFkZXJzLGkpLHRoaXMuX29uKHRoaXMuaGVhZGVycy5uZXh0KCkse2tleWRvd246Il9wYW5lbEtleURvd24ifSksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGVhZGVycyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGVhZGVycyl9LF9ldmVudEhhbmRsZXI6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9dGhpcy5hY3RpdmUsbj1lKHQuY3VycmVudFRhcmdldCksYT1uWzBdPT09c1swXSxvPWEmJmkuY29sbGFwc2libGUscj1vP2UoKTpuLm5leHQoKSxoPXMubmV4dCgpLGw9e29sZEhlYWRlcjpzLG9sZFBhbmVsOmgsbmV3SGVhZGVyOm8/ZSgpOm4sbmV3UGFuZWw6cn07CnQucHJldmVudERlZmF1bHQoKSxhJiYhaS5jb2xsYXBzaWJsZXx8dGhpcy5fdHJpZ2dlcigiYmVmb3JlQWN0aXZhdGUiLHQsbCk9PT0hMXx8KGkuYWN0aXZlPW8/ITE6dGhpcy5oZWFkZXJzLmluZGV4KG4pLHRoaXMuYWN0aXZlPWE/ZSgpOm4sdGhpcy5fdG9nZ2xlKGwpLHMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLGkuaWNvbnMmJnMuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKS5yZW1vdmVDbGFzcyhpLmljb25zLmFjdGl2ZUhlYWRlcikuYWRkQ2xhc3MoaS5pY29ucy5oZWFkZXIpLGF8fChuLnJlbW92ZUNsYXNzKCJ1aS1jb3JuZXItYWxsIikuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIiksaS5pY29ucyYmbi5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZUNsYXNzKGkuaWNvbnMuaGVhZGVyKS5hZGRDbGFzcyhpLmljb25zLmFjdGl2ZUhlYWRlciksbi5uZXh0KCkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpKSl9LF90b2dnbGU6ZnVuY3Rpb24odCl7dmFyIGk9dC5uZXdQYW5lbCxzPXRoaXMucHJldlNob3cubGVuZ3RoP3RoaXMucHJldlNob3c6dC5vbGRQYW5lbDt0aGlzLnByZXZTaG93LmFkZCh0aGlzLnByZXZIaWRlKS5zdG9wKCEwLCEwKSx0aGlzLnByZXZTaG93PWksdGhpcy5wcmV2SGlkZT1zLHRoaXMub3B0aW9ucy5hbmltYXRlP3RoaXMuX2FuaW1hdGUoaSxzLHQpOihzLmhpZGUoKSxpLnNob3coKSx0aGlzLl90b2dnbGVDb21wbGV0ZSh0KSkscy5hdHRyKHsiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLHMucHJldigpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSksaS5sZW5ndGgmJnMubGVuZ3RoP3MucHJldigpLmF0dHIoe3RhYkluZGV4Oi0xLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSk6aS5sZW5ndGgmJnRoaXMuaGVhZGVycy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMD09PXBhcnNlSW50KGUodGhpcykuYXR0cigidGFiSW5kZXgiKSwxMCl9KS5hdHRyKCJ0YWJJbmRleCIsLTEpLGkuYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLnByZXYoKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pfSxfYW5pbWF0ZTpmdW5jdGlvbihlLHQsaSl7dmFyIHMsbixhLG89dGhpcyxyPTAsaD1lLmNzcygiYm94LXNpemluZyIpLGw9ZS5sZW5ndGgmJighdC5sZW5ndGh8fGUuaW5kZXgoKTx0LmluZGV4KCkpLHU9dGhpcy5vcHRpb25zLmFuaW1hdGV8fHt9LGQ9bCYmdS5kb3dufHx1LGM9ZnVuY3Rpb24oKXtvLl90b2dnbGVDb21wbGV0ZShpKX07cmV0dXJuIm51bWJlciI9PXR5cGVvZiBkJiYoYT1kKSwic3RyaW5nIj09dHlwZW9mIGQmJihuPWQpLG49bnx8ZC5lYXNpbmd8fHUuZWFzaW5nLGE9YXx8ZC5kdXJhdGlvbnx8dS5kdXJhdGlvbix0Lmxlbmd0aD9lLmxlbmd0aD8ocz1lLnNob3coKS5vdXRlckhlaWdodCgpLHQuYW5pbWF0ZSh0aGlzLmhpZGVQcm9wcyx7ZHVyYXRpb246YSxlYXNpbmc6bixzdGVwOmZ1bmN0aW9uKGUsdCl7dC5ub3c9TWF0aC5yb3VuZChlKX19KSxlLmhpZGUoKS5hbmltYXRlKHRoaXMuc2hvd1Byb3BzLHtkdXJhdGlvbjphLGVhc2luZzpuLGNvbXBsZXRlOmMsc3RlcDpmdW5jdGlvbihlLGkpe2kubm93PU1hdGgucm91bmQoZSksImhlaWdodCIhPT1pLnByb3A/ImNvbnRlbnQtYm94Ij09PWgmJihyKz1pLm5vdyk6ImNvbnRlbnQiIT09by5vcHRpb25zLmhlaWdodFN0eWxlJiYoaS5ub3c9TWF0aC5yb3VuZChzLXQub3V0ZXJIZWlnaHQoKS1yKSxyPTApfX0pLHZvaWQgMCk6dC5hbmltYXRlKHRoaXMuaGlkZVByb3BzLGEsbixjKTplLmFuaW1hdGUodGhpcy5zaG93UHJvcHMsYSxuLGMpfSxfdG9nZ2xlQ29tcGxldGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vbGRQYW5lbDt0LnJlbW92ZUNsYXNzKCJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiKS5wcmV2KCkucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci10b3AiKS5hZGRDbGFzcygidWktY29ybmVyLWFsbCIpLHQubGVuZ3RoJiYodC5wYXJlbnQoKVswXS5jbGFzc05hbWU9dC5wYXJlbnQoKVswXS5jbGFzc05hbWUpLHRoaXMuX3RyaWdnZXIoImFjdGl2YXRlIixudWxsLGUpfX0pLGUud2lkZ2V0KCJ1aS5tZW51Iix7dmVyc2lvbjoiMS4xMS40IixkZWZhdWx0RWxlbWVudDoiPHVsPiIsZGVsYXk6MzAwLG9wdGlvbnM6e2ljb25zOntzdWJtZW51OiJ1aS1pY29uLWNhcmF0LTEtZSJ9LGl0ZW1zOiI+ICoiLG1lbnVzOiJ1bCIscG9zaXRpb246e215OiJsZWZ0LTEgdG9wIixhdDoicmlnaHQgdG9wIn0scm9sZToibWVudSIsYmx1cjpudWxsLGZvY3VzOm51bGwsc2VsZWN0Om51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZU1lbnU9dGhpcy5lbGVtZW50LHRoaXMubW91c2VIYW5kbGVkPSExLHRoaXMuZWxlbWVudC51bmlxdWVJZCgpLmFkZENsYXNzKCJ1aS1tZW51IHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCIpLnRvZ2dsZUNsYXNzKCJ1aS1tZW51LWljb25zIiwhIXRoaXMuZWxlbWVudC5maW5kKCIudWktaWNvbiIpLmxlbmd0aCkuYXR0cih7cm9sZTp0aGlzLm9wdGlvbnMucm9sZSx0YWJJbmRleDowfSksdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsInRydWUiKSx0aGlzLl9vbih7Im1vdXNlZG93biAudWktbWVudS1pdGVtIjpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9LCJjbGljayAudWktbWVudS1pdGVtIjpmdW5jdGlvbih0KXt2YXIgaT1lKHQudGFyZ2V0KTshdGhpcy5tb3VzZUhhbmRsZWQmJmkubm90KCIudWktc3RhdGUtZGlzYWJsZWQiKS5sZW5ndGgmJih0aGlzLnNlbGVjdCh0KSx0LmlzUHJvcGFnYXRpb25TdG9wcGVkKCl8fCh0aGlzLm1vdXNlSGFuZGxlZD0hMCksaS5oYXMoIi51aS1tZW51IikubGVuZ3RoP3RoaXMuZXhwYW5kKHQpOiF0aGlzLmVsZW1lbnQuaXMoIjpmb2N1cyIpJiZlKHRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudCkuY2xvc2VzdCgiLnVpLW1lbnUiKS5sZW5ndGgmJih0aGlzLmVsZW1lbnQudHJpZ2dlcigiZm9jdXMiLFshMF0pLHRoaXMuYWN0aXZlJiYxPT09dGhpcy5hY3RpdmUucGFyZW50cygiLnVpLW1lbnUiKS5sZW5ndGgmJmNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSkpfSwibW91c2VlbnRlciAudWktbWVudS1pdGVtIjpmdW5jdGlvbih0KXtpZighdGhpcy5wcmV2aW91c0ZpbHRlcil7dmFyIGk9ZSh0LmN1cnJlbnRUYXJnZXQpO2kuc2libGluZ3MoIi51aS1zdGF0ZS1hY3RpdmUiKS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdGhpcy5mb2N1cyh0LGkpfX0sbW91c2VsZWF2ZToiY29sbGFwc2VBbGwiLCJtb3VzZWxlYXZlIC51aS1tZW51IjoiY29sbGFwc2VBbGwiLGZvY3VzOmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcy5hY3RpdmV8fHRoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcykuZXEoMCk7dHx8dGhpcy5mb2N1cyhlLGkpfSxibHVyOmZ1bmN0aW9uKHQpe3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7ZS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sdGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50KXx8dGhpcy5jb2xsYXBzZUFsbCh0KX0pfSxrZXlkb3duOiJfa2V5ZG93biJ9KSx0aGlzLnJlZnJlc2goKSx0aGlzLl9vbih0aGlzLmRvY3VtZW50LHtjbGljazpmdW5jdGlvbihlKXt0aGlzLl9jbG9zZU9uRG9jdW1lbnRDbGljayhlKSYmdGhpcy5jb2xsYXBzZUFsbChlKSx0aGlzLm1vdXNlSGFuZGxlZD0hMX19KX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cigiYXJpYS1hY3RpdmVkZXNjZW5kYW50IikuZmluZCgiLnVpLW1lbnUiKS5hZGRCYWNrKCkucmVtb3ZlQ2xhc3MoInVpLW1lbnUgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLW1lbnUtaWNvbnMgdWktZnJvbnQiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVBdHRyKCJhcmlhLWxhYmVsbGVkYnkiKS5yZW1vdmVBdHRyKCJhcmlhLWV4cGFuZGVkIikucmVtb3ZlQXR0cigiYXJpYS1oaWRkZW4iKS5yZW1vdmVBdHRyKCJhcmlhLWRpc2FibGVkIikucmVtb3ZlVW5pcXVlSWQoKS5zaG93KCksdGhpcy5lbGVtZW50LmZpbmQoIi51aS1tZW51LWl0ZW0iKS5yZW1vdmVDbGFzcygidWktbWVudS1pdGVtIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtZGlzYWJsZWQiKS5yZW1vdmVVbmlxdWVJZCgpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLnJlbW92ZUF0dHIoInRhYkluZGV4IikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtaGFzcG9wdXAiKS5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3QuZGF0YSgidWktbWVudS1zdWJtZW51LWNhcmF0IikmJnQucmVtb3ZlKCl9KSx0aGlzLmVsZW1lbnQuZmluZCgiLnVpLW1lbnUtZGl2aWRlciIpLnJlbW92ZUNsYXNzKCJ1aS1tZW51LWRpdmlkZXIgdWktd2lkZ2V0LWNvbnRlbnQiKX0sX2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGkscyxuLGEsbz0hMDtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIGUudWkua2V5Q29kZS5QQUdFX1VQOnRoaXMucHJldmlvdXNQYWdlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlBBR0VfRE9XTjp0aGlzLm5leHRQYWdlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6dGhpcy5fbW92ZSgiZmlyc3QiLCJmaXJzdCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5EOnRoaXMuX21vdmUoImxhc3QiLCJsYXN0Iix0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDp0aGlzLnByZXZpb3VzKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkRPV046dGhpcy5uZXh0KHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkxFRlQ6dGhpcy5jb2xsYXBzZSh0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5SSUdIVDp0aGlzLmFjdGl2ZSYmIXRoaXMuYWN0aXZlLmlzKCIudWktc3RhdGUtZGlzYWJsZWQiKSYmdGhpcy5leHBhbmQodCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5URVI6Y2FzZSBlLnVpLmtleUNvZGUuU1BBQ0U6dGhpcy5fYWN0aXZhdGUodCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRVNDQVBFOnRoaXMuY29sbGFwc2UodCk7YnJlYWs7ZGVmYXVsdDpvPSExLHM9dGhpcy5wcmV2aW91c0ZpbHRlcnx8IiIsbj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQua2V5Q29kZSksYT0hMSxjbGVhclRpbWVvdXQodGhpcy5maWx0ZXJUaW1lciksbj09PXM/YT0hMDpuPXMrbixpPXRoaXMuX2ZpbHRlck1lbnVJdGVtcyhuKSxpPWEmJi0xIT09aS5pbmRleCh0aGlzLmFjdGl2ZS5uZXh0KCkpP3RoaXMuYWN0aXZlLm5leHRBbGwoIi51aS1tZW51LWl0ZW0iKTppLGkubGVuZ3RofHwobj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQua2V5Q29kZSksaT10aGlzLl9maWx0ZXJNZW51SXRlbXMobikpLGkubGVuZ3RoPyh0aGlzLmZvY3VzKHQsaSksdGhpcy5wcmV2aW91c0ZpbHRlcj1uLHRoaXMuZmlsdGVyVGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5wcmV2aW91c0ZpbHRlcn0sMWUzKSk6ZGVsZXRlIHRoaXMucHJldmlvdXNGaWx0ZXJ9byYmdC5wcmV2ZW50RGVmYXVsdCgpfSxfYWN0aXZhdGU6ZnVuY3Rpb24oZSl7dGhpcy5hY3RpdmUuaXMoIi51aS1zdGF0ZS1kaXNhYmxlZCIpfHwodGhpcy5hY3RpdmUuaXMoIlthcmlhLWhhc3BvcHVwPSd0cnVlJ10iKT90aGlzLmV4cGFuZChlKTp0aGlzLnNlbGVjdChlKSl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxpLHM9dGhpcyxuPXRoaXMub3B0aW9ucy5pY29ucy5zdWJtZW51LGE9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLm1lbnVzKTt0aGlzLmVsZW1lbnQudG9nZ2xlQ2xhc3MoInVpLW1lbnUtaWNvbnMiLCEhdGhpcy5lbGVtZW50LmZpbmQoIi51aS1pY29uIikubGVuZ3RoKSxhLmZpbHRlcigiOm5vdCgudWktbWVudSkiKS5hZGRDbGFzcygidWktbWVudSB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktZnJvbnQiKS5oaWRlKCkuYXR0cih7cm9sZTp0aGlzLm9wdGlvbnMucm9sZSwiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIn0pLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5wYXJlbnQoKSxzPWUoIjxzcGFuPiIpLmFkZENsYXNzKCJ1aS1tZW51LWljb24gdWktaWNvbiAiK24pLmRhdGEoInVpLW1lbnUtc3VibWVudS1jYXJhdCIsITApO2kuYXR0cigiYXJpYS1oYXNwb3B1cCIsInRydWUiKS5wcmVwZW5kKHMpLHQuYXR0cigiYXJpYS1sYWJlbGxlZGJ5IixpLmF0dHIoImlkIikpfSksdD1hLmFkZCh0aGlzLmVsZW1lbnQpLGk9dC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcyksaS5ub3QoIi51aS1tZW51LWl0ZW0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtzLl9pc0RpdmlkZXIodCkmJnQuYWRkQ2xhc3MoInVpLXdpZGdldC1jb250ZW50IHVpLW1lbnUtZGl2aWRlciIpfSksaS5ub3QoIi51aS1tZW51LWl0ZW0sIC51aS1tZW51LWRpdmlkZXIiKS5hZGRDbGFzcygidWktbWVudS1pdGVtIikudW5pcXVlSWQoKS5hdHRyKHt0YWJJbmRleDotMSxyb2xlOnRoaXMuX2l0ZW1Sb2xlKCl9KSxpLmZpbHRlcigiLnVpLXN0YXRlLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsInRydWUiKSx0aGlzLmFjdGl2ZSYmIWUuY29udGFpbnModGhpcy5lbGVtZW50WzBdLHRoaXMuYWN0aXZlWzBdKSYmdGhpcy5ibHVyKCl9LF9pdGVtUm9sZTpmdW5jdGlvbigpe3JldHVybnttZW51OiJtZW51aXRlbSIsbGlzdGJveDoib3B0aW9uIn1bdGhpcy5vcHRpb25zLnJvbGVdfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7Imljb25zIj09PWUmJnRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudS1pY29uIikucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmljb25zLnN1Ym1lbnUpLmFkZENsYXNzKHQuc3VibWVudSksImRpc2FibGVkIj09PWUmJnRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5fc3VwZXIoZSx0KX0sZm9jdXM6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzO3RoaXMuYmx1cihlLGUmJiJmb2N1cyI9PT1lLnR5cGUpLHRoaXMuX3Njcm9sbEludG9WaWV3KHQpLHRoaXMuYWN0aXZlPXQuZmlyc3QoKSxzPXRoaXMuYWN0aXZlLmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx0aGlzLm9wdGlvbnMucm9sZSYmdGhpcy5lbGVtZW50LmF0dHIoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIscy5hdHRyKCJpZCIpKSx0aGlzLmFjdGl2ZS5wYXJlbnQoKS5jbG9zZXN0KCIudWktbWVudS1pdGVtIikuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLGUmJiJrZXlkb3duIj09PWUudHlwZT90aGlzLl9jbG9zZSgpOnRoaXMudGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLl9jbG9zZSgpfSx0aGlzLmRlbGF5KSxpPXQuY2hpbGRyZW4oIi51aS1tZW51IiksaS5sZW5ndGgmJmUmJi9ebW91c2UvLnRlc3QoZS50eXBlKSYmdGhpcy5fc3RhcnRPcGVuaW5nKGkpLHRoaXMuYWN0aXZlTWVudT10LnBhcmVudCgpLHRoaXMuX3RyaWdnZXIoImZvY3VzIixlLHtpdGVtOnR9KX0sX3Njcm9sbEludG9WaWV3OmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG8scjt0aGlzLl9oYXNTY3JvbGwoKSYmKGk9cGFyc2VGbG9hdChlLmNzcyh0aGlzLmFjdGl2ZU1lbnVbMF0sImJvcmRlclRvcFdpZHRoIikpfHwwLHM9cGFyc2VGbG9hdChlLmNzcyh0aGlzLmFjdGl2ZU1lbnVbMF0sInBhZGRpbmdUb3AiKSl8fDAsbj10Lm9mZnNldCgpLnRvcC10aGlzLmFjdGl2ZU1lbnUub2Zmc2V0KCkudG9wLWktcyxhPXRoaXMuYWN0aXZlTWVudS5zY3JvbGxUb3AoKSxvPXRoaXMuYWN0aXZlTWVudS5oZWlnaHQoKSxyPXQub3V0ZXJIZWlnaHQoKSwwPm4/dGhpcy5hY3RpdmVNZW51LnNjcm9sbFRvcChhK24pOm4rcj5vJiZ0aGlzLmFjdGl2ZU1lbnUuc2Nyb2xsVG9wKGErbi1vK3IpKX0sYmx1cjpmdW5jdGlvbihlLHQpe3R8fGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmFjdGl2ZSYmKHRoaXMuYWN0aXZlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLHRoaXMuYWN0aXZlPW51bGwsdGhpcy5fdHJpZ2dlcigiYmx1ciIsZSx7aXRlbTp0aGlzLmFjdGl2ZX0pKX0sX3N0YXJ0T3BlbmluZzpmdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksInRydWUiPT09ZS5hdHRyKCJhcmlhLWhpZGRlbiIpJiYodGhpcy50aW1lcj10aGlzLl9kZWxheShmdW5jdGlvbigpe3RoaXMuX2Nsb3NlKCksdGhpcy5fb3BlbihlKX0sdGhpcy5kZWxheSkpfSxfb3BlbjpmdW5jdGlvbih0KXt2YXIgaT1lLmV4dGVuZCh7b2Y6dGhpcy5hY3RpdmV9LHRoaXMub3B0aW9ucy5wb3NpdGlvbik7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudSIpLm5vdCh0LnBhcmVudHMoIi51aS1tZW51IikpLmhpZGUoKS5hdHRyKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0LnNob3coKS5yZW1vdmVBdHRyKCJhcmlhLWhpZGRlbiIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJ0cnVlIikucG9zaXRpb24oaSl9LGNvbGxhcHNlQWxsOmZ1bmN0aW9uKHQsaSl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt2YXIgcz1pP3RoaXMuZWxlbWVudDplKHQmJnQudGFyZ2V0KS5jbG9zZXN0KHRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudSIpKTtzLmxlbmd0aHx8KHM9dGhpcy5lbGVtZW50KSx0aGlzLl9jbG9zZShzKSx0aGlzLmJsdXIodCksdGhpcy5hY3RpdmVNZW51PXN9LHRoaXMuZGVsYXkpfSxfY2xvc2U6ZnVuY3Rpb24oZSl7ZXx8KGU9dGhpcy5hY3RpdmU/dGhpcy5hY3RpdmUucGFyZW50KCk6dGhpcy5lbGVtZW50KSxlLmZpbmQoIi51aS1tZW51IikuaGlkZSgpLmF0dHIoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLmVuZCgpLmZpbmQoIi51aS1zdGF0ZS1hY3RpdmUiKS5ub3QoIi51aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKX0sX2Nsb3NlT25Eb2N1bWVudENsaWNrOmZ1bmN0aW9uKHQpe3JldHVybiFlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktbWVudSIpLmxlbmd0aH0sX2lzRGl2aWRlcjpmdW5jdGlvbihlKXtyZXR1cm4hL1teXC1cdTIwMTRcdTIwMTNcc10vLnRlc3QoZS50ZXh0KCkpfSxjb2xsYXBzZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmFjdGl2ZSYmdGhpcy5hY3RpdmUucGFyZW50KCkuY2xvc2VzdCgiLnVpLW1lbnUtaXRlbSIsdGhpcy5lbGVtZW50KTt0JiZ0Lmxlbmd0aCYmKHRoaXMuX2Nsb3NlKCksdGhpcy5mb2N1cyhlLHQpKX0sZXhwYW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYWN0aXZlJiZ0aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLW1lbnUgIikuZmluZCh0aGlzLm9wdGlvbnMuaXRlbXMpLmZpcnN0KCk7dCYmdC5sZW5ndGgmJih0aGlzLl9vcGVuKHQucGFyZW50KCkpLHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dGhpcy5mb2N1cyhlLHQpfSkpfSxuZXh0OmZ1bmN0aW9uKGUpe3RoaXMuX21vdmUoIm5leHQiLCJmaXJzdCIsZSl9LHByZXZpb3VzOmZ1bmN0aW9uKGUpe3RoaXMuX21vdmUoInByZXYiLCJsYXN0IixlKX0saXNGaXJzdEl0ZW06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmUmJiF0aGlzLmFjdGl2ZS5wcmV2QWxsKCIudWktbWVudS1pdGVtIikubGVuZ3RofSxpc0xhc3RJdGVtOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWN0aXZlJiYhdGhpcy5hY3RpdmUubmV4dEFsbCgiLnVpLW1lbnUtaXRlbSIpLmxlbmd0aH0sX21vdmU6ZnVuY3Rpb24oZSx0LGkpe3ZhciBzO3RoaXMuYWN0aXZlJiYocz0iZmlyc3QiPT09ZXx8Imxhc3QiPT09ZT90aGlzLmFjdGl2ZVsiZmlyc3QiPT09ZT8icHJldkFsbCI6Im5leHRBbGwiXSgiLnVpLW1lbnUtaXRlbSIpLmVxKC0xKTp0aGlzLmFjdGl2ZVtlKyJBbGwiXSgiLnVpLW1lbnUtaXRlbSIpLmVxKDApKSxzJiZzLmxlbmd0aCYmdGhpcy5hY3RpdmV8fChzPXRoaXMuYWN0aXZlTWVudS5maW5kKHRoaXMub3B0aW9ucy5pdGVtcylbdF0oKSksdGhpcy5mb2N1cyhpLHMpfSxuZXh0UGFnZTpmdW5jdGlvbih0KXt2YXIgaSxzLG47cmV0dXJuIHRoaXMuYWN0aXZlPyh0aGlzLmlzTGFzdEl0ZW0oKXx8KHRoaXMuX2hhc1Njcm9sbCgpPyhzPXRoaXMuYWN0aXZlLm9mZnNldCgpLnRvcCxuPXRoaXMuZWxlbWVudC5oZWlnaHQoKSx0aGlzLmFjdGl2ZS5uZXh0QWxsKCIudWktbWVudS1pdGVtIikuZWFjaChmdW5jdGlvbigpe3JldHVybiBpPWUodGhpcyksMD5pLm9mZnNldCgpLnRvcC1zLW59KSx0aGlzLmZvY3VzKHQsaSkpOnRoaXMuZm9jdXModCx0aGlzLmFjdGl2ZU1lbnUuZmluZCh0aGlzLm9wdGlvbnMuaXRlbXMpW3RoaXMuYWN0aXZlPyJsYXN0IjoiZmlyc3QiXSgpKSksdm9pZCAwKToodGhpcy5uZXh0KHQpLHZvaWQgMCl9LHByZXZpb3VzUGFnZTpmdW5jdGlvbih0KXt2YXIgaSxzLG47cmV0dXJuIHRoaXMuYWN0aXZlPyh0aGlzLmlzRmlyc3RJdGVtKCl8fCh0aGlzLl9oYXNTY3JvbGwoKT8ocz10aGlzLmFjdGl2ZS5vZmZzZXQoKS50b3Asbj10aGlzLmVsZW1lbnQuaGVpZ2h0KCksdGhpcy5hY3RpdmUucHJldkFsbCgiLnVpLW1lbnUtaXRlbSIpLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gaT1lKHRoaXMpLGkub2Zmc2V0KCkudG9wLXMrbj4wfSksdGhpcy5mb2N1cyh0LGkpKTp0aGlzLmZvY3VzKHQsdGhpcy5hY3RpdmVNZW51LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5maXJzdCgpKSksdm9pZCAwKToodGhpcy5uZXh0KHQpLHZvaWQgMCl9LF9oYXNTY3JvbGw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCk8dGhpcy5lbGVtZW50LnByb3AoInNjcm9sbEhlaWdodCIpfSxzZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmU9dGhpcy5hY3RpdmV8fGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1tZW51LWl0ZW0iKTt2YXIgaT17aXRlbTp0aGlzLmFjdGl2ZX07dGhpcy5hY3RpdmUuaGFzKCIudWktbWVudSIpLmxlbmd0aHx8dGhpcy5jb2xsYXBzZUFsbCh0LCEwKSx0aGlzLl90cmlnZ2VyKCJzZWxlY3QiLHQsaSl9LF9maWx0ZXJNZW51SXRlbXM6ZnVuY3Rpb24odCl7dmFyIGk9dC5yZXBsYWNlKC9bXC1cW1xde30oKSorPy4sXFxcXiR8I1xzXS9nLCJcXCQmIikscz1SZWdFeHAoIl4iK2ksImkiKTtyZXR1cm4gdGhpcy5hY3RpdmVNZW51LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5maWx0ZXIoIi51aS1tZW51LWl0ZW0iKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gcy50ZXN0KGUudHJpbShlKHRoaXMpLnRleHQoKSkpfSl9fSksZS53aWRnZXQoInVpLmF1dG9jb21wbGV0ZSIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxpbnB1dD4iLG9wdGlvbnM6e2FwcGVuZFRvOm51bGwsYXV0b0ZvY3VzOiExLGRlbGF5OjMwMCxtaW5MZW5ndGg6MSxwb3NpdGlvbjp7bXk6ImxlZnQgdG9wIixhdDoibGVmdCBib3R0b20iLGNvbGxpc2lvbjoibm9uZSJ9LHNvdXJjZTpudWxsLGNoYW5nZTpudWxsLGNsb3NlOm51bGwsZm9jdXM6bnVsbCxvcGVuOm51bGwscmVzcG9uc2U6bnVsbCxzZWFyY2g6bnVsbCxzZWxlY3Q6bnVsbH0scmVxdWVzdEluZGV4OjAscGVuZGluZzowLF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdCxpLHMsbj10aGlzLmVsZW1lbnRbMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxhPSJ0ZXh0YXJlYSI9PT1uLG89ImlucHV0Ij09PW47dGhpcy5pc011bHRpTGluZT1hPyEwOm8/ITE6dGhpcy5lbGVtZW50LnByb3AoImlzQ29udGVudEVkaXRhYmxlIiksdGhpcy52YWx1ZU1ldGhvZD10aGlzLmVsZW1lbnRbYXx8bz8idmFsIjoidGV4dCJdLHRoaXMuaXNOZXdNZW51PSEwLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktYXV0b2NvbXBsZXRlLWlucHV0IikuYXR0cigiYXV0b2NvbXBsZXRlIiwib2ZmIiksdGhpcy5fb24odGhpcy5lbGVtZW50LHtrZXlkb3duOmZ1bmN0aW9uKG4pe2lmKHRoaXMuZWxlbWVudC5wcm9wKCJyZWFkT25seSIpKXJldHVybiB0PSEwLHM9ITAsaT0hMCx2b2lkIDA7dD0hMSxzPSExLGk9ITE7dmFyIGE9ZS51aS5rZXlDb2RlO3N3aXRjaChuLmtleUNvZGUpe2Nhc2UgYS5QQUdFX1VQOnQ9ITAsdGhpcy5fbW92ZSgicHJldmlvdXNQYWdlIixuKTticmVhaztjYXNlIGEuUEFHRV9ET1dOOnQ9ITAsdGhpcy5fbW92ZSgibmV4dFBhZ2UiLG4pO2JyZWFrO2Nhc2UgYS5VUDp0PSEwLHRoaXMuX2tleUV2ZW50KCJwcmV2aW91cyIsbik7YnJlYWs7Y2FzZSBhLkRPV046dD0hMCx0aGlzLl9rZXlFdmVudCgibmV4dCIsbik7YnJlYWs7Y2FzZSBhLkVOVEVSOnRoaXMubWVudS5hY3RpdmUmJih0PSEwLG4ucHJldmVudERlZmF1bHQoKSx0aGlzLm1lbnUuc2VsZWN0KG4pKTticmVhaztjYXNlIGEuVEFCOnRoaXMubWVudS5hY3RpdmUmJnRoaXMubWVudS5zZWxlY3Qobik7YnJlYWs7Y2FzZSBhLkVTQ0FQRTp0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKSYmKHRoaXMuaXNNdWx0aUxpbmV8fHRoaXMuX3ZhbHVlKHRoaXMudGVybSksdGhpcy5jbG9zZShuKSxuLnByZXZlbnREZWZhdWx0KCkpO2JyZWFrO2RlZmF1bHQ6aT0hMCx0aGlzLl9zZWFyY2hUaW1lb3V0KG4pfX0sa2V5cHJlc3M6ZnVuY3Rpb24ocyl7aWYodClyZXR1cm4gdD0hMSwoIXRoaXMuaXNNdWx0aUxpbmV8fHRoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpKSYmcy5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgMDtpZighaSl7dmFyIG49ZS51aS5rZXlDb2RlO3N3aXRjaChzLmtleUNvZGUpe2Nhc2Ugbi5QQUdFX1VQOnRoaXMuX21vdmUoInByZXZpb3VzUGFnZSIscyk7YnJlYWs7Y2FzZSBuLlBBR0VfRE9XTjp0aGlzLl9tb3ZlKCJuZXh0UGFnZSIscyk7YnJlYWs7Y2FzZSBuLlVQOnRoaXMuX2tleUV2ZW50KCJwcmV2aW91cyIscyk7YnJlYWs7Y2FzZSBuLkRPV046dGhpcy5fa2V5RXZlbnQoIm5leHQiLHMpfX19LGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBzPyhzPSExLGUucHJldmVudERlZmF1bHQoKSx2b2lkIDApOih0aGlzLl9zZWFyY2hUaW1lb3V0KGUpLHZvaWQgMCl9LGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RlZEl0ZW09bnVsbCx0aGlzLnByZXZpb3VzPXRoaXMuX3ZhbHVlKCl9LGJsdXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2FuY2VsQmx1cj8oZGVsZXRlIHRoaXMuY2FuY2VsQmx1cix2b2lkIDApOihjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hpbmcpLHRoaXMuY2xvc2UoZSksdGhpcy5fY2hhbmdlKGUpLHZvaWQgMCl9fSksdGhpcy5faW5pdFNvdXJjZSgpLHRoaXMubWVudT1lKCI8dWw+IikuYWRkQ2xhc3MoInVpLWF1dG9jb21wbGV0ZSB1aS1mcm9udCIpLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLm1lbnUoe3JvbGU6bnVsbH0pLmhpZGUoKS5tZW51KCJpbnN0YW5jZSIpLHRoaXMuX29uKHRoaXMubWVudS5lbGVtZW50LHttb3VzZWRvd246ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2FuY2VsQmx1cj0hMCx0aGlzLl9kZWxheShmdW5jdGlvbigpe2RlbGV0ZSB0aGlzLmNhbmNlbEJsdXJ9KTt2YXIgaT10aGlzLm1lbnUuZWxlbWVudFswXTtlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktbWVudS1pdGVtIikubGVuZ3RofHx0aGlzLl9kZWxheShmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5kb2N1bWVudC5vbmUoIm1vdXNlZG93biIsZnVuY3Rpb24ocyl7cy50YXJnZXQ9PT10LmVsZW1lbnRbMF18fHMudGFyZ2V0PT09aXx8ZS5jb250YWlucyhpLHMudGFyZ2V0KXx8dC5jbG9zZSgpfSl9KX0sbWVudWZvY3VzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbjtyZXR1cm4gdGhpcy5pc05ld01lbnUmJih0aGlzLmlzTmV3TWVudT0hMSx0Lm9yaWdpbmFsRXZlbnQmJi9ebW91c2UvLnRlc3QodC5vcmlnaW5hbEV2ZW50LnR5cGUpKT8odGhpcy5tZW51LmJsdXIoKSx0aGlzLmRvY3VtZW50Lm9uZSgibW91c2Vtb3ZlIixmdW5jdGlvbigpe2UodC50YXJnZXQpLnRyaWdnZXIodC5vcmlnaW5hbEV2ZW50KX0pLHZvaWQgMCk6KG49aS5pdGVtLmRhdGEoInVpLWF1dG9jb21wbGV0ZS1pdGVtIiksITEhPT10aGlzLl90cmlnZ2VyKCJmb2N1cyIsdCx7aXRlbTpufSkmJnQub3JpZ2luYWxFdmVudCYmL15rZXkvLnRlc3QodC5vcmlnaW5hbEV2ZW50LnR5cGUpJiZ0aGlzLl92YWx1ZShuLnZhbHVlKSxzPWkuaXRlbS5hdHRyKCJhcmlhLWxhYmVsIil8fG4udmFsdWUscyYmZS50cmltKHMpLmxlbmd0aCYmKHRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKSxlKCI8ZGl2PiIpLnRleHQocykuYXBwZW5kVG8odGhpcy5saXZlUmVnaW9uKSksdm9pZCAwKX0sbWVudXNlbGVjdDpmdW5jdGlvbihlLHQpe3ZhciBpPXQuaXRlbS5kYXRhKCJ1aS1hdXRvY29tcGxldGUtaXRlbSIpLHM9dGhpcy5wcmV2aW91czt0aGlzLmVsZW1lbnRbMF0hPT10aGlzLmRvY3VtZW50WzBdLmFjdGl2ZUVsZW1lbnQmJih0aGlzLmVsZW1lbnQuZm9jdXMoKSx0aGlzLnByZXZpb3VzPXMsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnByZXZpb3VzPXMsdGhpcy5zZWxlY3RlZEl0ZW09aX0pKSwhMSE9PXRoaXMuX3RyaWdnZXIoInNlbGVjdCIsZSx7aXRlbTppfSkmJnRoaXMuX3ZhbHVlKGkudmFsdWUpLHRoaXMudGVybT10aGlzLl92YWx1ZSgpLHRoaXMuY2xvc2UoZSksdGhpcy5zZWxlY3RlZEl0ZW09aX19KSx0aGlzLmxpdmVSZWdpb249ZSgiPHNwYW4+Iix7cm9sZToic3RhdHVzIiwiYXJpYS1saXZlIjoiYXNzZXJ0aXZlIiwiYXJpYS1yZWxldmFudCI6ImFkZGl0aW9ucyJ9KS5hZGRDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIikuYXBwZW5kVG8odGhpcy5kb2N1bWVudFswXS5ib2R5KSx0aGlzLl9vbih0aGlzLndpbmRvdyx7YmVmb3JldW5sb2FkOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoImF1dG9jb21wbGV0ZSIpfX0pfSxfZGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnNlYXJjaGluZyksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hdXRvY29tcGxldGUtaW5wdXQiKS5yZW1vdmVBdHRyKCJhdXRvY29tcGxldGUiKSx0aGlzLm1lbnUuZWxlbWVudC5yZW1vdmUoKSx0aGlzLmxpdmVSZWdpb24ucmVtb3ZlKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJzb3VyY2UiPT09ZSYmdGhpcy5faW5pdFNvdXJjZSgpLCJhcHBlbmRUbyI9PT1lJiZ0aGlzLm1lbnUuZWxlbWVudC5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSwiZGlzYWJsZWQiPT09ZSYmdCYmdGhpcy54aHImJnRoaXMueGhyLmFib3J0KCl9LF9hcHBlbmRUbzpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy5hcHBlbmRUbztyZXR1cm4gdCYmKHQ9dC5qcXVlcnl8fHQubm9kZVR5cGU/ZSh0KTp0aGlzLmRvY3VtZW50LmZpbmQodCkuZXEoMCkpLHQmJnRbMF18fCh0PXRoaXMuZWxlbWVudC5jbG9zZXN0KCIudWktZnJvbnQiKSksdC5sZW5ndGh8fCh0PXRoaXMuZG9jdW1lbnRbMF0uYm9keSksdH0sX2luaXRTb3VyY2U6ZnVuY3Rpb24oKXt2YXIgdCxpLHM9dGhpcztlLmlzQXJyYXkodGhpcy5vcHRpb25zLnNvdXJjZSk/KHQ9dGhpcy5vcHRpb25zLnNvdXJjZSx0aGlzLnNvdXJjZT1mdW5jdGlvbihpLHMpe3MoZS51aS5hdXRvY29tcGxldGUuZmlsdGVyKHQsaS50ZXJtKSl9KToic3RyaW5nIj09dHlwZW9mIHRoaXMub3B0aW9ucy5zb3VyY2U/KGk9dGhpcy5vcHRpb25zLnNvdXJjZSx0aGlzLnNvdXJjZT1mdW5jdGlvbih0LG4pe3MueGhyJiZzLnhoci5hYm9ydCgpLHMueGhyPWUuYWpheCh7dXJsOmksZGF0YTp0LGRhdGFUeXBlOiJqc29uIixzdWNjZXNzOmZ1bmN0aW9uKGUpe24oZSl9LGVycm9yOmZ1bmN0aW9uKCl7bihbXSl9fSl9KTp0aGlzLnNvdXJjZT10aGlzLm9wdGlvbnMuc291cmNlfSxfc2VhcmNoVGltZW91dDpmdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hpbmcpLHRoaXMuc2VhcmNoaW5nPXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50ZXJtPT09dGhpcy5fdmFsdWUoKSxpPXRoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpLHM9ZS5hbHRLZXl8fGUuY3RybEtleXx8ZS5tZXRhS2V5fHxlLnNoaWZ0S2V5OyghdHx8dCYmIWkmJiFzKSYmKHRoaXMuc2VsZWN0ZWRJdGVtPW51bGwsdGhpcy5zZWFyY2gobnVsbCxlKSl9LHRoaXMub3B0aW9ucy5kZWxheSl9LHNlYXJjaDpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWU/ZTp0aGlzLl92YWx1ZSgpLHRoaXMudGVybT10aGlzLl92YWx1ZSgpLGUubGVuZ3RoPHRoaXMub3B0aW9ucy5taW5MZW5ndGg/dGhpcy5jbG9zZSh0KTp0aGlzLl90cmlnZ2VyKCJzZWFyY2giLHQpIT09ITE/dGhpcy5fc2VhcmNoKGUpOnZvaWQgMH0sX3NlYXJjaDpmdW5jdGlvbihlKXt0aGlzLnBlbmRpbmcrKyx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIiksdGhpcy5jYW5jZWxTZWFyY2g9ITEsdGhpcy5zb3VyY2Uoe3Rlcm06ZX0sdGhpcy5fcmVzcG9uc2UoKSl9LF9yZXNwb25zZTpmdW5jdGlvbigpe3ZhciB0PSsrdGhpcy5yZXF1ZXN0SW5kZXg7cmV0dXJuIGUucHJveHkoZnVuY3Rpb24oZSl7dD09PXRoaXMucmVxdWVzdEluZGV4JiZ0aGlzLl9fcmVzcG9uc2UoZSksdGhpcy5wZW5kaW5nLS0sdGhpcy5wZW5kaW5nfHx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIil9LHRoaXMpfSxfX3Jlc3BvbnNlOmZ1bmN0aW9uKGUpe2UmJihlPXRoaXMuX25vcm1hbGl6ZShlKSksdGhpcy5fdHJpZ2dlcigicmVzcG9uc2UiLG51bGwse2NvbnRlbnQ6ZX0pLCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJmUmJmUubGVuZ3RoJiYhdGhpcy5jYW5jZWxTZWFyY2g/KHRoaXMuX3N1Z2dlc3QoZSksdGhpcy5fdHJpZ2dlcigib3BlbiIpKTp0aGlzLl9jbG9zZSgpfSxjbG9zZTpmdW5jdGlvbihlKXt0aGlzLmNhbmNlbFNlYXJjaD0hMCx0aGlzLl9jbG9zZShlKX0sX2Nsb3NlOmZ1bmN0aW9uKGUpe3RoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpJiYodGhpcy5tZW51LmVsZW1lbnQuaGlkZSgpLHRoaXMubWVudS5ibHVyKCksdGhpcy5pc05ld01lbnU9ITAsdGhpcy5fdHJpZ2dlcigiY2xvc2UiLGUpKX0sX2NoYW5nZTpmdW5jdGlvbihlKXt0aGlzLnByZXZpb3VzIT09dGhpcy5fdmFsdWUoKSYmdGhpcy5fdHJpZ2dlcigiY2hhbmdlIixlLHtpdGVtOnRoaXMuc2VsZWN0ZWRJdGVtfSl9LF9ub3JtYWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoJiZ0WzBdLmxhYmVsJiZ0WzBdLnZhbHVlP3Q6ZS5tYXAodCxmdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/e2xhYmVsOnQsdmFsdWU6dH06ZS5leHRlbmQoe30sdCx7bGFiZWw6dC5sYWJlbHx8dC52YWx1ZSx2YWx1ZTp0LnZhbHVlfHx0LmxhYmVsfSl9KX0sX3N1Z2dlc3Q6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5tZW51LmVsZW1lbnQuZW1wdHkoKTt0aGlzLl9yZW5kZXJNZW51KGksdCksdGhpcy5pc05ld01lbnU9ITAsdGhpcy5tZW51LnJlZnJlc2goKSxpLnNob3coKSx0aGlzLl9yZXNpemVNZW51KCksaS5wb3NpdGlvbihlLmV4dGVuZCh7b2Y6dGhpcy5lbGVtZW50fSx0aGlzLm9wdGlvbnMucG9zaXRpb24pKSx0aGlzLm9wdGlvbnMuYXV0b0ZvY3VzJiZ0aGlzLm1lbnUubmV4dCgpfSxfcmVzaXplTWVudTpmdW5jdGlvbigpe3ZhciBlPXRoaXMubWVudS5lbGVtZW50O2Uub3V0ZXJXaWR0aChNYXRoLm1heChlLndpZHRoKCIiKS5vdXRlcldpZHRoKCkrMSx0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpKSl9LF9yZW5kZXJNZW51OmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcztlLmVhY2goaSxmdW5jdGlvbihlLGkpe3MuX3JlbmRlckl0ZW1EYXRhKHQsaSl9KX0sX3JlbmRlckl0ZW1EYXRhOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3JlbmRlckl0ZW0oZSx0KS5kYXRhKCJ1aS1hdXRvY29tcGxldGUtaXRlbSIsdCl9LF9yZW5kZXJJdGVtOmZ1bmN0aW9uKHQsaSl7cmV0dXJuIGUoIjxsaT4iKS50ZXh0KGkubGFiZWwpLmFwcGVuZFRvKHQpfSxfbW92ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKT90aGlzLm1lbnUuaXNGaXJzdEl0ZW0oKSYmL15wcmV2aW91cy8udGVzdChlKXx8dGhpcy5tZW51LmlzTGFzdEl0ZW0oKSYmL15uZXh0Ly50ZXN0KGUpPyh0aGlzLmlzTXVsdGlMaW5lfHx0aGlzLl92YWx1ZSh0aGlzLnRlcm0pLHRoaXMubWVudS5ibHVyKCksdm9pZCAwKToodGhpcy5tZW51W2VdKHQpLHZvaWQgMCk6KHRoaXMuc2VhcmNoKG51bGwsdCksdm9pZCAwKX0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVudS5lbGVtZW50fSxfdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZU1ldGhvZC5hcHBseSh0aGlzLmVsZW1lbnQsYXJndW1lbnRzKX0sX2tleUV2ZW50OmZ1bmN0aW9uKGUsdCl7KCF0aGlzLmlzTXVsdGlMaW5lfHx0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKSkmJih0aGlzLl9tb3ZlKGUsdCksdC5wcmV2ZW50RGVmYXVsdCgpKX19KSxlLmV4dGVuZChlLnVpLmF1dG9jb21wbGV0ZSx7ZXNjYXBlUmVnZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvW1wtXFtcXXt9KCkqKz8uLFxcXF4kfCNcc10vZywiXFwkJiIpfSxmaWx0ZXI6ZnVuY3Rpb24odCxpKXt2YXIgcz1SZWdFeHAoZS51aS5hdXRvY29tcGxldGUuZXNjYXBlUmVnZXgoaSksImkiKTtyZXR1cm4gZS5ncmVwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIHMudGVzdChlLmxhYmVsfHxlLnZhbHVlfHxlKX0pfX0pLGUud2lkZ2V0KCJ1aS5hdXRvY29tcGxldGUiLGUudWkuYXV0b2NvbXBsZXRlLHtvcHRpb25zOnttZXNzYWdlczp7bm9SZXN1bHRzOiJObyBzZWFyY2ggcmVzdWx0cy4iLHJlc3VsdHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrKGU+MT8iIHJlc3VsdHMgYXJlIjoiIHJlc3VsdCBpcyIpKyIgYXZhaWxhYmxlLCB1c2UgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZS4ifX19LF9fcmVzcG9uc2U6ZnVuY3Rpb24odCl7dmFyIGk7dGhpcy5fc3VwZXJBcHBseShhcmd1bWVudHMpLHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8dGhpcy5jYW5jZWxTZWFyY2h8fChpPXQmJnQubGVuZ3RoP3RoaXMub3B0aW9ucy5tZXNzYWdlcy5yZXN1bHRzKHQubGVuZ3RoKTp0aGlzLm9wdGlvbnMubWVzc2FnZXMubm9SZXN1bHRzLHRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKSxlKCI8ZGl2PiIpLnRleHQoaSkuYXBwZW5kVG8odGhpcy5saXZlUmVnaW9uKSl9fSksZS51aS5hdXRvY29tcGxldGU7dmFyIHIsaD0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiLGw9InVpLWJ1dHRvbi1pY29ucy1vbmx5IHVpLWJ1dHRvbi1pY29uLW9ubHkgdWktYnV0dG9uLXRleHQtaWNvbnMgdWktYnV0dG9uLXRleHQtaWNvbi1wcmltYXJ5IHVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IHVpLWJ1dHRvbi10ZXh0LW9ubHkiLHU9ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmZpbmQoIjp1aS1idXR0b24iKS5idXR0b24oInJlZnJlc2giKX0sMSl9LGQ9ZnVuY3Rpb24odCl7dmFyIGk9dC5uYW1lLHM9dC5mb3JtLG49ZShbXSk7cmV0dXJuIGkmJihpPWkucmVwbGFjZSgvJy9nLCJcXCciKSxuPXM/ZShzKS5maW5kKCJbbmFtZT0nIitpKyInXVt0eXBlPXJhZGlvXSIpOmUoIltuYW1lPSciK2krIiddW3R5cGU9cmFkaW9dIix0Lm93bmVyRG9jdW1lbnQpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiF0aGlzLmZvcm19KSksbn07ZS53aWRnZXQoInVpLmJ1dHRvbiIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxidXR0b24+IixvcHRpb25zOntkaXNhYmxlZDpudWxsLHRleHQ6ITAsbGFiZWw6bnVsbCxpY29uczp7cHJpbWFyeTpudWxsLHNlY29uZGFyeTpudWxsfX0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5jbG9zZXN0KCJmb3JtIikudW5iaW5kKCJyZXNldCIrdGhpcy5ldmVudE5hbWVzcGFjZSkuYmluZCgicmVzZXQiK3RoaXMuZXZlbnROYW1lc3BhY2UsdSksImJvb2xlYW4iIT10eXBlb2YgdGhpcy5vcHRpb25zLmRpc2FibGVkP3RoaXMub3B0aW9ucy5kaXNhYmxlZD0hIXRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIpOnRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsdGhpcy5vcHRpb25zLmRpc2FibGVkKSx0aGlzLl9kZXRlcm1pbmVCdXR0b25UeXBlKCksdGhpcy5oYXNUaXRsZT0hIXRoaXMuYnV0dG9uRWxlbWVudC5hdHRyKCJ0aXRsZSIpO3ZhciB0PXRoaXMsaT10aGlzLm9wdGlvbnMscz0iY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlLG49cz8iIjoidWktc3RhdGUtYWN0aXZlIjtudWxsPT09aS5sYWJlbCYmKGkubGFiZWw9ImlucHV0Ij09PXRoaXMudHlwZT90aGlzLmJ1dHRvbkVsZW1lbnQudmFsKCk6dGhpcy5idXR0b25FbGVtZW50Lmh0bWwoKSksdGhpcy5faG92ZXJhYmxlKHRoaXMuYnV0dG9uRWxlbWVudCksdGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKGgpLmF0dHIoInJvbGUiLCJidXR0b24iKS5iaW5kKCJtb3VzZWVudGVyIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7aS5kaXNhYmxlZHx8dGhpcz09PXImJmUodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSkuYmluZCgibW91c2VsZWF2ZSIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2kuZGlzYWJsZWR8fGUodGhpcykucmVtb3ZlQ2xhc3Mobil9KS5iaW5kKCJjbGljayIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbihlKXtpLmRpc2FibGVkJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfSksdGhpcy5fb24oe2ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSxibHVyOmZ1bmN0aW9uKCl7dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfX0pLHMmJnRoaXMuZWxlbWVudC5iaW5kKCJjaGFuZ2UiK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24oKXt0LnJlZnJlc2goKX0pLCJjaGVja2JveCI9PT10aGlzLnR5cGU/dGhpcy5idXR0b25FbGVtZW50LmJpbmQoImNsaWNrIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGlzYWJsZWQ/ITE6dm9pZCAwfSk6InJhZGlvIj09PXRoaXMudHlwZT90aGlzLmJ1dHRvbkVsZW1lbnQuYmluZCgiY2xpY2siK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24oKXtpZihpLmRpc2FibGVkKXJldHVybiExO2UodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLHQuYnV0dG9uRWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCJ0cnVlIik7dmFyIHM9dC5lbGVtZW50WzBdO2Qocykubm90KHMpLm1hcChmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmJ1dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIikuYXR0cigiYXJpYS1wcmVzc2VkIiwiZmFsc2UiKX0pOih0aGlzLmJ1dHRvbkVsZW1lbnQuYmluZCgibW91c2Vkb3duIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGlzYWJsZWQ/ITE6KGUodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLHI9dGhpcyx0LmRvY3VtZW50Lm9uZSgibW91c2V1cCIsZnVuY3Rpb24oKXtyPW51bGx9KSx2b2lkIDApfSkuYmluZCgibW91c2V1cCIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe3JldHVybiBpLmRpc2FibGVkPyExOihlKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx2b2lkIDApfSkuYmluZCgia2V5ZG93biIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbih0KXtyZXR1cm4gaS5kaXNhYmxlZD8hMTooKHQua2V5Q29kZT09PWUudWkua2V5Q29kZS5TUEFDRXx8dC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLkVOVEVSKSYmZSh0aGlzKS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdm9pZCAwKX0pLmJpbmQoImtleXVwIit0aGlzLmV2ZW50TmFtZXNwYWNlKyIgYmx1ciIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2UodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSksdGhpcy5idXR0b25FbGVtZW50LmlzKCJhIikmJnRoaXMuYnV0dG9uRWxlbWVudC5rZXl1cChmdW5jdGlvbih0KXt0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuU1BBQ0UmJmUodGhpcykuY2xpY2soKX0pKSx0aGlzLl9zZXRPcHRpb24oImRpc2FibGVkIixpLmRpc2FibGVkKSx0aGlzLl9yZXNldEJ1dHRvbigpfSxfZGV0ZXJtaW5lQnV0dG9uVHlwZTpmdW5jdGlvbigpe3ZhciBlLHQsaTt0aGlzLnR5cGU9dGhpcy5lbGVtZW50LmlzKCJbdHlwZT1jaGVja2JveF0iKT8iY2hlY2tib3giOnRoaXMuZWxlbWVudC5pcygiW3R5cGU9cmFkaW9dIik/InJhZGlvIjp0aGlzLmVsZW1lbnQuaXMoImlucHV0Iik/ImlucHV0IjoiYnV0dG9uIiwiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlPyhlPXRoaXMuZWxlbWVudC5wYXJlbnRzKCkubGFzdCgpLHQ9ImxhYmVsW2Zvcj0nIit0aGlzLmVsZW1lbnQuYXR0cigiaWQiKSsiJ10iLHRoaXMuYnV0dG9uRWxlbWVudD1lLmZpbmQodCksdGhpcy5idXR0b25FbGVtZW50Lmxlbmd0aHx8KGU9ZS5sZW5ndGg/ZS5zaWJsaW5ncygpOnRoaXMuZWxlbWVudC5zaWJsaW5ncygpLHRoaXMuYnV0dG9uRWxlbWVudD1lLmZpbHRlcih0KSx0aGlzLmJ1dHRvbkVsZW1lbnQubGVuZ3RofHwodGhpcy5idXR0b25FbGVtZW50PWUuZmluZCh0KSkpLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIiksaT10aGlzLmVsZW1lbnQuaXMoIjpjaGVja2VkIiksaSYmdGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx0aGlzLmJ1dHRvbkVsZW1lbnQucHJvcCgiYXJpYS1wcmVzc2VkIixpKSk6dGhpcy5idXR0b25FbGVtZW50PXRoaXMuZWxlbWVudH0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYnV0dG9uRWxlbWVudH0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSIpLHRoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcyhoKyIgdWktc3RhdGUtYWN0aXZlICIrbCkucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtcHJlc3NlZCIpLmh0bWwodGhpcy5idXR0b25FbGVtZW50LmZpbmQoIi51aS1idXR0b24tdGV4dCIpLmh0bWwoKSksdGhpcy5oYXNUaXRsZXx8dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUF0dHIoInRpdGxlIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fc3VwZXIoZSx0KSwiZGlzYWJsZWQiPT09ZT8odGhpcy53aWRnZXQoKS50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCksdGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIiwhIXQpLHQmJigiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlP3RoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcygidWktc3RhdGUtZm9jdXMiKTp0aGlzLmJ1dHRvbkVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWZvY3VzIHVpLXN0YXRlLWFjdGl2ZSIpKSx2b2lkIDApOih0aGlzLl9yZXNldEJ1dHRvbigpLHZvaWQgMCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQuaXMoImlucHV0LCBidXR0b24iKT90aGlzLmVsZW1lbnQuaXMoIjpkaXNhYmxlZCIpOnRoaXMuZWxlbWVudC5oYXNDbGFzcygidWktYnV0dG9uLWRpc2FibGVkIik7dCE9PXRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdCksInJhZGlvIj09PXRoaXMudHlwZT9kKHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe2UodGhpcykuaXMoIjpjaGVja2VkIik/ZSh0aGlzKS5idXR0b24oIndpZGdldCIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLCJ0cnVlIik6ZSh0aGlzKS5idXR0b24oIndpZGdldCIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLCJmYWxzZSIpfSk6ImNoZWNrYm94Ij09PXRoaXMudHlwZSYmKHRoaXMuZWxlbWVudC5pcygiOmNoZWNrZWQiKT90aGlzLmJ1dHRvbkVsZW1lbnQuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsInRydWUiKTp0aGlzLmJ1dHRvbkVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsImZhbHNlIikpfSxfcmVzZXRCdXR0b246ZnVuY3Rpb24oKXtpZigiaW5wdXQiPT09dGhpcy50eXBlKXJldHVybiB0aGlzLm9wdGlvbnMubGFiZWwmJnRoaXMuZWxlbWVudC52YWwodGhpcy5vcHRpb25zLmxhYmVsKSx2b2lkIDA7dmFyIHQ9dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKGwpLGk9ZSgiPHNwYW4+PC9zcGFuPiIsdGhpcy5kb2N1bWVudFswXSkuYWRkQ2xhc3MoInVpLWJ1dHRvbi10ZXh0IikuaHRtbCh0aGlzLm9wdGlvbnMubGFiZWwpLmFwcGVuZFRvKHQuZW1wdHkoKSkudGV4dCgpLHM9dGhpcy5vcHRpb25zLmljb25zLG49cy5wcmltYXJ5JiZzLnNlY29uZGFyeSxhPVtdO3MucHJpbWFyeXx8cy5zZWNvbmRhcnk/KHRoaXMub3B0aW9ucy50ZXh0JiZhLnB1c2goInVpLWJ1dHRvbi10ZXh0LWljb24iKyhuPyJzIjpzLnByaW1hcnk/Ii1wcmltYXJ5IjoiLXNlY29uZGFyeSIpKSxzLnByaW1hcnkmJnQucHJlcGVuZCgiPHNwYW4gY2xhc3M9J3VpLWJ1dHRvbi1pY29uLXByaW1hcnkgdWktaWNvbiAiK3MucHJpbWFyeSsiJz48L3NwYW4+Iikscy5zZWNvbmRhcnkmJnQuYXBwZW5kKCI8c3BhbiBjbGFzcz0ndWktYnV0dG9uLWljb24tc2Vjb25kYXJ5IHVpLWljb24gIitzLnNlY29uZGFyeSsiJz48L3NwYW4+IiksdGhpcy5vcHRpb25zLnRleHR8fChhLnB1c2gobj8idWktYnV0dG9uLWljb25zLW9ubHkiOiJ1aS1idXR0b24taWNvbi1vbmx5IiksdGhpcy5oYXNUaXRsZXx8dC5hdHRyKCJ0aXRsZSIsZS50cmltKGkpKSkpOmEucHVzaCgidWktYnV0dG9uLXRleHQtb25seSIpLHQuYWRkQ2xhc3MoYS5qb2luKCIgIikpfX0pLGUud2lkZ2V0KCJ1aS5idXR0b25zZXQiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2l0ZW1zOiJidXR0b24sIGlucHV0W3R5cGU9YnV0dG9uXSwgaW5wdXRbdHlwZT1zdWJtaXRdLCBpbnB1dFt0eXBlPXJlc2V0XSwgaW5wdXRbdHlwZT1jaGVja2JveF0sIGlucHV0W3R5cGU9cmFkaW9dLCBhLCA6ZGF0YSh1aS1idXR0b24pIn0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWktYnV0dG9uc2V0Iil9LF9pbml0OmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiZGlzYWJsZWQiPT09ZSYmdGhpcy5idXR0b25zLmJ1dHRvbigib3B0aW9uIixlLHQpLHRoaXMuX3N1cGVyKGUsdCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD0icnRsIj09PXRoaXMuZWxlbWVudC5jc3MoImRpcmVjdGlvbiIpLGk9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKSxzPWkuZmlsdGVyKCI6dWktYnV0dG9uIik7aS5ub3QoIjp1aS1idXR0b24iKS5idXR0b24oKSxzLmJ1dHRvbigicmVmcmVzaCIpLHRoaXMuYnV0dG9ucz1pLm1hcChmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmJ1dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFzcygidWktY29ybmVyLWFsbCB1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiKS5maWx0ZXIoIjpmaXJzdCIpLmFkZENsYXNzKHQ/InVpLWNvcm5lci1yaWdodCI6InVpLWNvcm5lci1sZWZ0IikuZW5kKCkuZmlsdGVyKCI6bGFzdCIpLmFkZENsYXNzKHQ/InVpLWNvcm5lci1sZWZ0IjoidWktY29ybmVyLXJpZ2h0IikuZW5kKCkuZW5kKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1idXR0b25zZXQiKSx0aGlzLmJ1dHRvbnMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcykuYnV0dG9uKCJ3aWRnZXQiKVswXX0pLnJlbW92ZUNsYXNzKCJ1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiKS5lbmQoKS5idXR0b24oImRlc3Ryb3kiKX19KSxlLnVpLmJ1dHRvbixlLndpZGdldCgidWkuZGlhbG9nIix7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthcHBlbmRUbzoiYm9keSIsYXV0b09wZW46ITAsYnV0dG9uczpbXSxjbG9zZU9uRXNjYXBlOiEwLGNsb3NlVGV4dDoiQ2xvc2UiLGRpYWxvZ0NsYXNzOiIiLGRyYWdnYWJsZTohMCxoaWRlOm51bGwsaGVpZ2h0OiJhdXRvIixtYXhIZWlnaHQ6bnVsbCxtYXhXaWR0aDpudWxsLG1pbkhlaWdodDoxNTAsbWluV2lkdGg6MTUwLG1vZGFsOiExLHBvc2l0aW9uOntteToiY2VudGVyIixhdDoiY2VudGVyIixvZjp3aW5kb3csY29sbGlzaW9uOiJmaXQiLHVzaW5nOmZ1bmN0aW9uKHQpe3ZhciBpPWUodGhpcykuY3NzKHQpLm9mZnNldCgpLnRvcDswPmkmJmUodGhpcykuY3NzKCJ0b3AiLHQudG9wLWkpfX0scmVzaXphYmxlOiEwLHNob3c6bnVsbCx0aXRsZTpudWxsLHdpZHRoOjMwMCxiZWZvcmVDbG9zZTpudWxsLGNsb3NlOm51bGwsZHJhZzpudWxsLGRyYWdTdGFydDpudWxsLGRyYWdTdG9wOm51bGwsZm9jdXM6bnVsbCxvcGVuOm51bGwscmVzaXplOm51bGwscmVzaXplU3RhcnQ6bnVsbCxyZXNpemVTdG9wOm51bGx9LHNpemVSZWxhdGVkT3B0aW9uczp7YnV0dG9uczohMCxoZWlnaHQ6ITAsbWF4SGVpZ2h0OiEwLG1heFdpZHRoOiEwLG1pbkhlaWdodDohMCxtaW5XaWR0aDohMCx3aWR0aDohMH0scmVzaXphYmxlUmVsYXRlZE9wdGlvbnM6e21heEhlaWdodDohMCxtYXhXaWR0aDohMCxtaW5IZWlnaHQ6ITAsbWluV2lkdGg6ITB9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLm9yaWdpbmFsQ3NzPXtkaXNwbGF5OnRoaXMuZWxlbWVudFswXS5zdHlsZS5kaXNwbGF5LHdpZHRoOnRoaXMuZWxlbWVudFswXS5zdHlsZS53aWR0aCxtaW5IZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLm1pbkhlaWdodCxtYXhIZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLm1heEhlaWdodCxoZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLmhlaWdodH0sdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtwYXJlbnQ6dGhpcy5lbGVtZW50LnBhcmVudCgpLGluZGV4OnRoaXMuZWxlbWVudC5wYXJlbnQoKS5jaGlsZHJlbigpLmluZGV4KHRoaXMuZWxlbWVudCl9LHRoaXMub3JpZ2luYWxUaXRsZT10aGlzLmVsZW1lbnQuYXR0cigidGl0bGUiKSx0aGlzLm9wdGlvbnMudGl0bGU9dGhpcy5vcHRpb25zLnRpdGxlfHx0aGlzLm9yaWdpbmFsVGl0bGUsdGhpcy5fY3JlYXRlV3JhcHBlcigpLHRoaXMuZWxlbWVudC5zaG93KCkucmVtb3ZlQXR0cigidGl0bGUiKS5hZGRDbGFzcygidWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiKS5hcHBlbmRUbyh0aGlzLnVpRGlhbG9nKSx0aGlzLl9jcmVhdGVUaXRsZWJhcigpLHRoaXMuX2NyZWF0ZUJ1dHRvblBhbmUoKSx0aGlzLm9wdGlvbnMuZHJhZ2dhYmxlJiZlLmZuLmRyYWdnYWJsZSYmdGhpcy5fbWFrZURyYWdnYWJsZSgpLHRoaXMub3B0aW9ucy5yZXNpemFibGUmJmUuZm4ucmVzaXphYmxlJiZ0aGlzLl9tYWtlUmVzaXphYmxlKCksdGhpcy5faXNPcGVuPSExLHRoaXMuX3RyYWNrRm9jdXMoKX0sX2luaXQ6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuYXV0b09wZW4mJnRoaXMub3BlbigpfSxfYXBwZW5kVG86ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYXBwZW5kVG87cmV0dXJuIHQmJih0LmpxdWVyeXx8dC5ub2RlVHlwZSk/ZSh0KTp0aGlzLmRvY3VtZW50LmZpbmQodHx8ImJvZHkiKS5lcSgwKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMub3JpZ2luYWxQb3NpdGlvbjt0aGlzLl91bnRyYWNrSW5zdGFuY2UoKSx0aGlzLl9kZXN0cm95T3ZlcmxheSgpLHRoaXMuZWxlbWVudC5yZW1vdmVVbmlxdWVJZCgpLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIpLmNzcyh0aGlzLm9yaWdpbmFsQ3NzKS5kZXRhY2goKSx0aGlzLnVpRGlhbG9nLnN0b3AoITAsITApLnJlbW92ZSgpLHRoaXMub3JpZ2luYWxUaXRsZSYmdGhpcy5lbGVtZW50LmF0dHIoInRpdGxlIix0aGlzLm9yaWdpbmFsVGl0bGUpLGU9dC5wYXJlbnQuY2hpbGRyZW4oKS5lcSh0LmluZGV4KSxlLmxlbmd0aCYmZVswXSE9PXRoaXMuZWxlbWVudFswXT9lLmJlZm9yZSh0aGlzLmVsZW1lbnQpOnQucGFyZW50LmFwcGVuZCh0aGlzLmVsZW1lbnQpfSx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51aURpYWxvZ30sZGlzYWJsZTplLm5vb3AsZW5hYmxlOmUubm9vcCxjbG9zZTpmdW5jdGlvbih0KXt2YXIgaSxzPXRoaXM7aWYodGhpcy5faXNPcGVuJiZ0aGlzLl90cmlnZ2VyKCJiZWZvcmVDbG9zZSIsdCkhPT0hMSl7aWYodGhpcy5faXNPcGVuPSExLHRoaXMuX2ZvY3VzZWRFbGVtZW50PW51bGwsdGhpcy5fZGVzdHJveU92ZXJsYXkoKSx0aGlzLl91bnRyYWNrSW5zdGFuY2UoKSwhdGhpcy5vcGVuZXIuZmlsdGVyKCI6Zm9jdXNhYmxlIikuZm9jdXMoKS5sZW5ndGgpdHJ5e2k9dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50LGkmJiJib2R5IiE9PWkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZShpKS5ibHVyKCl9Y2F0Y2gobil7fXRoaXMuX2hpZGUodGhpcy51aURpYWxvZyx0aGlzLm9wdGlvbnMuaGlkZSxmdW5jdGlvbigpe3MuX3RyaWdnZXIoImNsb3NlIix0KX0pfX0saXNPcGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzT3Blbn0sbW92ZVRvVG9wOmZ1bmN0aW9uKCl7dGhpcy5fbW92ZVRvVG9wKCl9LF9tb3ZlVG9Ub3A6ZnVuY3Rpb24odCxpKXt2YXIgcz0hMSxuPXRoaXMudWlEaWFsb2cuc2libGluZ3MoIi51aS1mcm9udDp2aXNpYmxlIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuK2UodGhpcykuY3NzKCJ6LWluZGV4Iil9KS5nZXQoKSxhPU1hdGgubWF4LmFwcGx5KG51bGwsbik7cmV0dXJuIGE+PSt0aGlzLnVpRGlhbG9nLmNzcygiei1pbmRleCIpJiYodGhpcy51aURpYWxvZy5jc3MoInotaW5kZXgiLGErMSkscz0hMCkscyYmIWkmJnRoaXMuX3RyaWdnZXIoImZvY3VzIix0KSxzfSxvcGVuOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5faXNPcGVuPyh0aGlzLl9tb3ZlVG9Ub3AoKSYmdGhpcy5fZm9jdXNUYWJiYWJsZSgpLHZvaWQgMCk6KHRoaXMuX2lzT3Blbj0hMCx0aGlzLm9wZW5lcj1lKHRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudCksdGhpcy5fc2l6ZSgpLHRoaXMuX3Bvc2l0aW9uKCksdGhpcy5fY3JlYXRlT3ZlcmxheSgpLHRoaXMuX21vdmVUb1RvcChudWxsLCEwKSx0aGlzLm92ZXJsYXkmJnRoaXMub3ZlcmxheS5jc3MoInotaW5kZXgiLHRoaXMudWlEaWFsb2cuY3NzKCJ6LWluZGV4IiktMSksdGhpcy5fc2hvdyh0aGlzLnVpRGlhbG9nLHRoaXMub3B0aW9ucy5zaG93LGZ1bmN0aW9uKCl7dC5fZm9jdXNUYWJiYWJsZSgpLHQuX3RyaWdnZXIoImZvY3VzIil9KSx0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKSx0aGlzLl90cmlnZ2VyKCJvcGVuIiksdm9pZCAwKX0sX2ZvY3VzVGFiYmFibGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9mb2N1c2VkRWxlbWVudDtlfHwoZT10aGlzLmVsZW1lbnQuZmluZCgiW2F1dG9mb2N1c10iKSksZS5sZW5ndGh8fChlPXRoaXMuZWxlbWVudC5maW5kKCI6dGFiYmFibGUiKSksZS5sZW5ndGh8fChlPXRoaXMudWlEaWFsb2dCdXR0b25QYW5lLmZpbmQoIjp0YWJiYWJsZSIpKSxlLmxlbmd0aHx8KGU9dGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2UuZmlsdGVyKCI6dGFiYmFibGUiKSksZS5sZW5ndGh8fChlPXRoaXMudWlEaWFsb2cpLGUuZXEoMCkuZm9jdXMoKX0sX2tlZXBGb2N1czpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7dmFyIHQ9dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50LGk9dGhpcy51aURpYWxvZ1swXT09PXR8fGUuY29udGFpbnModGhpcy51aURpYWxvZ1swXSx0KTtpfHx0aGlzLl9mb2N1c1RhYmJhYmxlKCl9dC5wcmV2ZW50RGVmYXVsdCgpLGkuY2FsbCh0aGlzKSx0aGlzLl9kZWxheShpKX0sX2NyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24oKXt0aGlzLnVpRGlhbG9nPWUoIjxkaXY+IikuYWRkQ2xhc3MoInVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1mcm9udCAiK3RoaXMub3B0aW9ucy5kaWFsb2dDbGFzcykuaGlkZSgpLmF0dHIoe3RhYkluZGV4Oi0xLHJvbGU6ImRpYWxvZyJ9KS5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSx0aGlzLl9vbih0aGlzLnVpRGlhbG9nLHtrZXlkb3duOmZ1bmN0aW9uKHQpe2lmKHRoaXMub3B0aW9ucy5jbG9zZU9uRXNjYXBlJiYhdC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmdC5rZXlDb2RlJiZ0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuRVNDQVBFKXJldHVybiB0LnByZXZlbnREZWZhdWx0KCksdGhpcy5jbG9zZSh0KSx2b2lkIDA7aWYodC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLlRBQiYmIXQuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBpPXRoaXMudWlEaWFsb2cuZmluZCgiOnRhYmJhYmxlIikscz1pLmZpbHRlcigiOmZpcnN0Iiksbj1pLmZpbHRlcigiOmxhc3QiKTt0LnRhcmdldCE9PW5bMF0mJnQudGFyZ2V0IT09dGhpcy51aURpYWxvZ1swXXx8dC5zaGlmdEtleT90LnRhcmdldCE9PXNbMF0mJnQudGFyZ2V0IT09dGhpcy51aURpYWxvZ1swXXx8IXQuc2hpZnRLZXl8fCh0aGlzLl9kZWxheShmdW5jdGlvbigpe24uZm9jdXMoKX0pLHQucHJldmVudERlZmF1bHQoKSk6KHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7cy5mb2N1cygpfSksdC5wcmV2ZW50RGVmYXVsdCgpKX19LG1vdXNlZG93bjpmdW5jdGlvbihlKXt0aGlzLl9tb3ZlVG9Ub3AoZSkmJnRoaXMuX2ZvY3VzVGFiYmFibGUoKX19KSx0aGlzLmVsZW1lbnQuZmluZCgiW2FyaWEtZGVzY3JpYmVkYnldIikubGVuZ3RofHx0aGlzLnVpRGlhbG9nLmF0dHIoeyJhcmlhLWRlc2NyaWJlZGJ5Ijp0aGlzLmVsZW1lbnQudW5pcXVlSWQoKS5hdHRyKCJpZCIpfSl9LF9jcmVhdGVUaXRsZWJhcjpmdW5jdGlvbigpe3ZhciB0O3RoaXMudWlEaWFsb2dUaXRsZWJhcj1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIHVpLWhlbHBlci1jbGVhcmZpeCIpLnByZXBlbmRUbyh0aGlzLnVpRGlhbG9nKSx0aGlzLl9vbih0aGlzLnVpRGlhbG9nVGl0bGViYXIse21vdXNlZG93bjpmdW5jdGlvbih0KXtlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIil8fHRoaXMudWlEaWFsb2cuZm9jdXMoKX19KSx0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZT1lKCI8YnV0dG9uIHR5cGU9J2J1dHRvbic+PC9idXR0b24+IikuYnV0dG9uKHtsYWJlbDp0aGlzLm9wdGlvbnMuY2xvc2VUZXh0LGljb25zOntwcmltYXJ5OiJ1aS1pY29uLWNsb3NldGhpY2sifSx0ZXh0OiExfSkuYWRkQ2xhc3MoInVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSIpLmFwcGVuZFRvKHRoaXMudWlEaWFsb2dUaXRsZWJhciksdGhpcy5fb24odGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2Use2NsaWNrOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlKGUpfX0pLHQ9ZSgiPHNwYW4+IikudW5pcXVlSWQoKS5hZGRDbGFzcygidWktZGlhbG9nLXRpdGxlIikucHJlcGVuZFRvKHRoaXMudWlEaWFsb2dUaXRsZWJhciksdGhpcy5fdGl0bGUodCksdGhpcy51aURpYWxvZy5hdHRyKHsiYXJpYS1sYWJlbGxlZGJ5Ijp0LmF0dHIoImlkIil9KX0sX3RpdGxlOmZ1bmN0aW9uKGUpe3RoaXMub3B0aW9ucy50aXRsZXx8ZS5odG1sKCImIzE2MDsiKSxlLnRleHQodGhpcy5vcHRpb25zLnRpdGxlKQp9LF9jcmVhdGVCdXR0b25QYW5lOmZ1bmN0aW9uKCl7dGhpcy51aURpYWxvZ0J1dHRvblBhbmU9ZSgiPGRpdj4iKS5hZGRDbGFzcygidWktZGlhbG9nLWJ1dHRvbnBhbmUgdWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNsZWFyZml4IiksdGhpcy51aUJ1dHRvblNldD1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctYnV0dG9uc2V0IikuYXBwZW5kVG8odGhpcy51aURpYWxvZ0J1dHRvblBhbmUpLHRoaXMuX2NyZWF0ZUJ1dHRvbnMoKX0sX2NyZWF0ZUJ1dHRvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGk9dGhpcy5vcHRpb25zLmJ1dHRvbnM7cmV0dXJuIHRoaXMudWlEaWFsb2dCdXR0b25QYW5lLnJlbW92ZSgpLHRoaXMudWlCdXR0b25TZXQuZW1wdHkoKSxlLmlzRW1wdHlPYmplY3QoaSl8fGUuaXNBcnJheShpKSYmIWkubGVuZ3RoPyh0aGlzLnVpRGlhbG9nLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctYnV0dG9ucyIpLHZvaWQgMCk6KGUuZWFjaChpLGZ1bmN0aW9uKGkscyl7dmFyIG4sYTtzPWUuaXNGdW5jdGlvbihzKT97Y2xpY2s6cyx0ZXh0Oml9OnMscz1lLmV4dGVuZCh7dHlwZToiYnV0dG9uIn0scyksbj1zLmNsaWNrLHMuY2xpY2s9ZnVuY3Rpb24oKXtuLmFwcGx5KHQuZWxlbWVudFswXSxhcmd1bWVudHMpfSxhPXtpY29uczpzLmljb25zLHRleHQ6cy5zaG93VGV4dH0sZGVsZXRlIHMuaWNvbnMsZGVsZXRlIHMuc2hvd1RleHQsZSgiPGJ1dHRvbj48L2J1dHRvbj4iLHMpLmJ1dHRvbihhKS5hcHBlbmRUbyh0LnVpQnV0dG9uU2V0KX0pLHRoaXMudWlEaWFsb2cuYWRkQ2xhc3MoInVpLWRpYWxvZy1idXR0b25zIiksdGhpcy51aURpYWxvZ0J1dHRvblBhbmUuYXBwZW5kVG8odGhpcy51aURpYWxvZyksdm9pZCAwKX0sX21ha2VEcmFnZ2FibGU6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3JldHVybntwb3NpdGlvbjplLnBvc2l0aW9uLG9mZnNldDplLm9mZnNldH19dmFyIGk9dGhpcyxzPXRoaXMub3B0aW9uczt0aGlzLnVpRGlhbG9nLmRyYWdnYWJsZSh7Y2FuY2VsOiIudWktZGlhbG9nLWNvbnRlbnQsIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UiLGhhbmRsZToiLnVpLWRpYWxvZy10aXRsZWJhciIsY29udGFpbm1lbnQ6ImRvY3VtZW50IixzdGFydDpmdW5jdGlvbihzLG4pe2UodGhpcykuYWRkQ2xhc3MoInVpLWRpYWxvZy1kcmFnZ2luZyIpLGkuX2Jsb2NrRnJhbWVzKCksaS5fdHJpZ2dlcigiZHJhZ1N0YXJ0IixzLHQobikpfSxkcmFnOmZ1bmN0aW9uKGUscyl7aS5fdHJpZ2dlcigiZHJhZyIsZSx0KHMpKX0sc3RvcDpmdW5jdGlvbihuLGEpe3ZhciBvPWEub2Zmc2V0LmxlZnQtaS5kb2N1bWVudC5zY3JvbGxMZWZ0KCkscj1hLm9mZnNldC50b3AtaS5kb2N1bWVudC5zY3JvbGxUb3AoKTtzLnBvc2l0aW9uPXtteToibGVmdCB0b3AiLGF0OiJsZWZ0Iisobz49MD8iKyI6IiIpK28rIiAiKyJ0b3AiKyhyPj0wPyIrIjoiIikrcixvZjppLndpbmRvd30sZSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGlhbG9nLWRyYWdnaW5nIiksaS5fdW5ibG9ja0ZyYW1lcygpLGkuX3RyaWdnZXIoImRyYWdTdG9wIixuLHQoYSkpfX0pfSxfbWFrZVJlc2l6YWJsZTpmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7cmV0dXJue29yaWdpbmFsUG9zaXRpb246ZS5vcmlnaW5hbFBvc2l0aW9uLG9yaWdpbmFsU2l6ZTplLm9yaWdpbmFsU2l6ZSxwb3NpdGlvbjplLnBvc2l0aW9uLHNpemU6ZS5zaXplfX12YXIgaT10aGlzLHM9dGhpcy5vcHRpb25zLG49cy5yZXNpemFibGUsYT10aGlzLnVpRGlhbG9nLmNzcygicG9zaXRpb24iKSxvPSJzdHJpbmciPT10eXBlb2Ygbj9uOiJuLGUscyx3LHNlLHN3LG5lLG53Ijt0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSh7Y2FuY2VsOiIudWktZGlhbG9nLWNvbnRlbnQiLGNvbnRhaW5tZW50OiJkb2N1bWVudCIsYWxzb1Jlc2l6ZTp0aGlzLmVsZW1lbnQsbWF4V2lkdGg6cy5tYXhXaWR0aCxtYXhIZWlnaHQ6cy5tYXhIZWlnaHQsbWluV2lkdGg6cy5taW5XaWR0aCxtaW5IZWlnaHQ6dGhpcy5fbWluSGVpZ2h0KCksaGFuZGxlczpvLHN0YXJ0OmZ1bmN0aW9uKHMsbil7ZSh0aGlzKS5hZGRDbGFzcygidWktZGlhbG9nLXJlc2l6aW5nIiksaS5fYmxvY2tGcmFtZXMoKSxpLl90cmlnZ2VyKCJyZXNpemVTdGFydCIscyx0KG4pKX0scmVzaXplOmZ1bmN0aW9uKGUscyl7aS5fdHJpZ2dlcigicmVzaXplIixlLHQocykpfSxzdG9wOmZ1bmN0aW9uKG4sYSl7dmFyIG89aS51aURpYWxvZy5vZmZzZXQoKSxyPW8ubGVmdC1pLmRvY3VtZW50LnNjcm9sbExlZnQoKSxoPW8udG9wLWkuZG9jdW1lbnQuc2Nyb2xsVG9wKCk7cy5oZWlnaHQ9aS51aURpYWxvZy5oZWlnaHQoKSxzLndpZHRoPWkudWlEaWFsb2cud2lkdGgoKSxzLnBvc2l0aW9uPXtteToibGVmdCB0b3AiLGF0OiJsZWZ0Iisocj49MD8iKyI6IiIpK3IrIiAiKyJ0b3AiKyhoPj0wPyIrIjoiIikraCxvZjppLndpbmRvd30sZSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGlhbG9nLXJlc2l6aW5nIiksaS5fdW5ibG9ja0ZyYW1lcygpLGkuX3RyaWdnZXIoInJlc2l6ZVN0b3AiLG4sdChhKSl9fSkuY3NzKCJwb3NpdGlvbiIsYSl9LF90cmFja0ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5fb24odGhpcy53aWRnZXQoKSx7Zm9jdXNpbjpmdW5jdGlvbih0KXt0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKSx0aGlzLl9mb2N1c2VkRWxlbWVudD1lKHQudGFyZ2V0KX19KX0sX21ha2VGb2N1c1RhcmdldDpmdW5jdGlvbigpe3RoaXMuX3VudHJhY2tJbnN0YW5jZSgpLHRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKCkudW5zaGlmdCh0aGlzKX0sX3VudHJhY2tJbnN0YW5jZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKCksaT1lLmluQXJyYXkodGhpcyx0KTstMSE9PWkmJnQuc3BsaWNlKGksMSl9LF90cmFja2luZ0luc3RhbmNlczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLWluc3RhbmNlcyIpO3JldHVybiBlfHwoZT1bXSx0aGlzLmRvY3VtZW50LmRhdGEoInVpLWRpYWxvZy1pbnN0YW5jZXMiLGUpKSxlfSxfbWluSGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO3JldHVybiJhdXRvIj09PWUuaGVpZ2h0P2UubWluSGVpZ2h0Ok1hdGgubWluKGUubWluSGVpZ2h0LGUuaGVpZ2h0KX0sX3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy51aURpYWxvZy5pcygiOnZpc2libGUiKTtlfHx0aGlzLnVpRGlhbG9nLnNob3coKSx0aGlzLnVpRGlhbG9nLnBvc2l0aW9uKHRoaXMub3B0aW9ucy5wb3NpdGlvbiksZXx8dGhpcy51aURpYWxvZy5oaWRlKCl9LF9zZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz0hMSxuPXt9O2UuZWFjaCh0LGZ1bmN0aW9uKGUsdCl7aS5fc2V0T3B0aW9uKGUsdCksZSBpbiBpLnNpemVSZWxhdGVkT3B0aW9ucyYmKHM9ITApLGUgaW4gaS5yZXNpemFibGVSZWxhdGVkT3B0aW9ucyYmKG5bZV09dCl9KSxzJiYodGhpcy5fc2l6ZSgpLHRoaXMuX3Bvc2l0aW9uKCkpLHRoaXMudWlEaWFsb2cuaXMoIjpkYXRhKHVpLXJlc2l6YWJsZSkiKSYmdGhpcy51aURpYWxvZy5yZXNpemFibGUoIm9wdGlvbiIsbil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49dGhpcy51aURpYWxvZzsiZGlhbG9nQ2xhc3MiPT09ZSYmbi5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuZGlhbG9nQ2xhc3MpLmFkZENsYXNzKHQpLCJkaXNhYmxlZCIhPT1lJiYodGhpcy5fc3VwZXIoZSx0KSwiYXBwZW5kVG8iPT09ZSYmdGhpcy51aURpYWxvZy5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSwiYnV0dG9ucyI9PT1lJiZ0aGlzLl9jcmVhdGVCdXR0b25zKCksImNsb3NlVGV4dCI9PT1lJiZ0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZS5idXR0b24oe2xhYmVsOiIiK3R9KSwiZHJhZ2dhYmxlIj09PWUmJihpPW4uaXMoIjpkYXRhKHVpLWRyYWdnYWJsZSkiKSxpJiYhdCYmbi5kcmFnZ2FibGUoImRlc3Ryb3kiKSwhaSYmdCYmdGhpcy5fbWFrZURyYWdnYWJsZSgpKSwicG9zaXRpb24iPT09ZSYmdGhpcy5fcG9zaXRpb24oKSwicmVzaXphYmxlIj09PWUmJihzPW4uaXMoIjpkYXRhKHVpLXJlc2l6YWJsZSkiKSxzJiYhdCYmbi5yZXNpemFibGUoImRlc3Ryb3kiKSxzJiYic3RyaW5nIj09dHlwZW9mIHQmJm4ucmVzaXphYmxlKCJvcHRpb24iLCJoYW5kbGVzIix0KSxzfHx0PT09ITF8fHRoaXMuX21ha2VSZXNpemFibGUoKSksInRpdGxlIj09PWUmJnRoaXMuX3RpdGxlKHRoaXMudWlEaWFsb2dUaXRsZWJhci5maW5kKCIudWktZGlhbG9nLXRpdGxlIikpKX0sX3NpemU6ZnVuY3Rpb24oKXt2YXIgZSx0LGkscz10aGlzLm9wdGlvbnM7dGhpcy5lbGVtZW50LnNob3coKS5jc3Moe3dpZHRoOiJhdXRvIixtaW5IZWlnaHQ6MCxtYXhIZWlnaHQ6Im5vbmUiLGhlaWdodDowfSkscy5taW5XaWR0aD5zLndpZHRoJiYocy53aWR0aD1zLm1pbldpZHRoKSxlPXRoaXMudWlEaWFsb2cuY3NzKHtoZWlnaHQ6ImF1dG8iLHdpZHRoOnMud2lkdGh9KS5vdXRlckhlaWdodCgpLHQ9TWF0aC5tYXgoMCxzLm1pbkhlaWdodC1lKSxpPSJudW1iZXIiPT10eXBlb2Ygcy5tYXhIZWlnaHQ/TWF0aC5tYXgoMCxzLm1heEhlaWdodC1lKToibm9uZSIsImF1dG8iPT09cy5oZWlnaHQ/dGhpcy5lbGVtZW50LmNzcyh7bWluSGVpZ2h0OnQsbWF4SGVpZ2h0OmksaGVpZ2h0OiJhdXRvIn0pOnRoaXMuZWxlbWVudC5oZWlnaHQoTWF0aC5tYXgoMCxzLmhlaWdodC1lKSksdGhpcy51aURpYWxvZy5pcygiOmRhdGEodWktcmVzaXphYmxlKSIpJiZ0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSgib3B0aW9uIiwibWluSGVpZ2h0Iix0aGlzLl9taW5IZWlnaHQoKSl9LF9ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzPXRoaXMuZG9jdW1lbnQuZmluZCgiaWZyYW1lIikubWFwKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gZSgiPGRpdj4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6dC5vdXRlcldpZHRoKCksaGVpZ2h0OnQub3V0ZXJIZWlnaHQoKX0pLmFwcGVuZFRvKHQucGFyZW50KCkpLm9mZnNldCh0Lm9mZnNldCgpKVswXX0pfSxfdW5ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzJiYodGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCksZGVsZXRlIHRoaXMuaWZyYW1lQmxvY2tzKX0sX2FsbG93SW50ZXJhY3Rpb246ZnVuY3Rpb24odCl7cmV0dXJuIGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1kaWFsb2ciKS5sZW5ndGg/ITA6ISFlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktZGF0ZXBpY2tlciIpLmxlbmd0aH0sX2NyZWF0ZU92ZXJsYXk6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMubW9kYWwpe3ZhciB0PSEwO3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dD0hMX0pLHRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIil8fHRoaXMuX29uKHRoaXMuZG9jdW1lbnQse2ZvY3VzaW46ZnVuY3Rpb24oZSl7dHx8dGhpcy5fYWxsb3dJbnRlcmFjdGlvbihlKXx8KGUucHJldmVudERlZmF1bHQoKSx0aGlzLl90cmFja2luZ0luc3RhbmNlcygpWzBdLl9mb2N1c1RhYmJhYmxlKCkpfX0pLHRoaXMub3ZlcmxheT1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS13aWRnZXQtb3ZlcmxheSB1aS1mcm9udCIpLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLHRoaXMuX29uKHRoaXMub3ZlcmxheSx7bW91c2Vkb3duOiJfa2VlcEZvY3VzIn0pLHRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIiwodGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiKXx8MCkrMSl9fSxfZGVzdHJveU92ZXJsYXk6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMubW9kYWwmJnRoaXMub3ZlcmxheSl7dmFyIGU9dGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiKS0xO2U/dGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiLGUpOnRoaXMuZG9jdW1lbnQudW5iaW5kKCJmb2N1c2luIikucmVtb3ZlRGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIiksdGhpcy5vdmVybGF5LnJlbW92ZSgpLHRoaXMub3ZlcmxheT1udWxsfX19KSxlLndpZGdldCgidWkucHJvZ3Jlc3NiYXIiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e21heDoxMDAsdmFsdWU6MCxjaGFuZ2U6bnVsbCxjb21wbGV0ZTpudWxsfSxtaW46MCxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5vbGRWYWx1ZT10aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fY29uc3RyYWluZWRWYWx1ZSgpLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktcHJvZ3Jlc3NiYXIgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS5hdHRyKHtyb2xlOiJwcm9ncmVzc2JhciIsImFyaWEtdmFsdWVtaW4iOnRoaXMubWlufSksdGhpcy52YWx1ZURpdj1lKCI8ZGl2IGNsYXNzPSd1aS1wcm9ncmVzc2Jhci12YWx1ZSB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1sZWZ0Jz48L2Rpdj4iKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktcHJvZ3Jlc3NiYXIgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigiYXJpYS12YWx1ZW1pbiIpLnJlbW92ZUF0dHIoImFyaWEtdmFsdWVtYXgiKS5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy52YWx1ZURpdi5yZW1vdmUoKX0sdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWU/dGhpcy5vcHRpb25zLnZhbHVlOih0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fY29uc3RyYWluZWRWYWx1ZShlKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx2b2lkIDApfSxfY29uc3RyYWluZWRWYWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9dGhpcy5vcHRpb25zLnZhbHVlKSx0aGlzLmluZGV0ZXJtaW5hdGU9ZT09PSExLCJudW1iZXIiIT10eXBlb2YgZSYmKGU9MCksdGhpcy5pbmRldGVybWluYXRlPyExOk1hdGgubWluKHRoaXMub3B0aW9ucy5tYXgsTWF0aC5tYXgodGhpcy5taW4sZSkpfSxfc2V0T3B0aW9uczpmdW5jdGlvbihlKXt2YXIgdD1lLnZhbHVlO2RlbGV0ZSBlLnZhbHVlLHRoaXMuX3N1cGVyKGUpLHRoaXMub3B0aW9ucy52YWx1ZT10aGlzLl9jb25zdHJhaW5lZFZhbHVlKHQpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7Im1heCI9PT1lJiYodD1NYXRoLm1heCh0aGlzLm1pbix0KSksImRpc2FibGVkIj09PWUmJnRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5fc3VwZXIoZSx0KX0sX3BlcmNlbnRhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmRldGVybWluYXRlPzEwMDoxMDAqKHRoaXMub3B0aW9ucy52YWx1ZS10aGlzLm1pbikvKHRoaXMub3B0aW9ucy5tYXgtdGhpcy5taW4pfSxfcmVmcmVzaFZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLnZhbHVlLGk9dGhpcy5fcGVyY2VudGFnZSgpO3RoaXMudmFsdWVEaXYudG9nZ2xlKHRoaXMuaW5kZXRlcm1pbmF0ZXx8dD50aGlzLm1pbikudG9nZ2xlQ2xhc3MoInVpLWNvcm5lci1yaWdodCIsdD09PXRoaXMub3B0aW9ucy5tYXgpLndpZHRoKGkudG9GaXhlZCgwKSsiJSIpLHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZSIsdGhpcy5pbmRldGVybWluYXRlKSx0aGlzLmluZGV0ZXJtaW5hdGU/KHRoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy5vdmVybGF5RGl2fHwodGhpcy5vdmVybGF5RGl2PWUoIjxkaXYgY2xhc3M9J3VpLXByb2dyZXNzYmFyLW92ZXJsYXknPjwvZGl2PiIpLmFwcGVuZFRvKHRoaXMudmFsdWVEaXYpKSk6KHRoaXMuZWxlbWVudC5hdHRyKHsiYXJpYS12YWx1ZW1heCI6dGhpcy5vcHRpb25zLm1heCwiYXJpYS12YWx1ZW5vdyI6dH0pLHRoaXMub3ZlcmxheURpdiYmKHRoaXMub3ZlcmxheURpdi5yZW1vdmUoKSx0aGlzLm92ZXJsYXlEaXY9bnVsbCkpLHRoaXMub2xkVmFsdWUhPT10JiYodGhpcy5vbGRWYWx1ZT10LHRoaXMuX3RyaWdnZXIoImNoYW5nZSIpKSx0PT09dGhpcy5vcHRpb25zLm1heCYmdGhpcy5fdHJpZ2dlcigiY29tcGxldGUiKX19KSxlLndpZGdldCgidWkuc2VsZWN0bWVudSIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxzZWxlY3Q+IixvcHRpb25zOnthcHBlbmRUbzpudWxsLGRpc2FibGVkOm51bGwsaWNvbnM6e2J1dHRvbjoidWktaWNvbi10cmlhbmdsZS0xLXMifSxwb3NpdGlvbjp7bXk6ImxlZnQgdG9wIixhdDoibGVmdCBib3R0b20iLGNvbGxpc2lvbjoibm9uZSJ9LHdpZHRoOm51bGwsY2hhbmdlOm51bGwsY2xvc2U6bnVsbCxmb2N1czpudWxsLG9wZW46bnVsbCxzZWxlY3Q6bnVsbH0sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZWxlbWVudC51bmlxdWVJZCgpLmF0dHIoImlkIik7dGhpcy5pZHM9e2VsZW1lbnQ6ZSxidXR0b246ZSsiLWJ1dHRvbiIsbWVudTplKyItbWVudSJ9LHRoaXMuX2RyYXdCdXR0b24oKSx0aGlzLl9kcmF3TWVudSgpLHRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5kaXNhYmxlKCl9LF9kcmF3QnV0dG9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmxhYmVsPWUoImxhYmVsW2Zvcj0nIit0aGlzLmlkcy5lbGVtZW50KyInXSIpLmF0dHIoImZvciIsdGhpcy5pZHMuYnV0dG9uKSx0aGlzLl9vbih0aGlzLmxhYmVsLHtjbGljazpmdW5jdGlvbihlKXt0aGlzLmJ1dHRvbi5mb2N1cygpLGUucHJldmVudERlZmF1bHQoKX19KSx0aGlzLmVsZW1lbnQuaGlkZSgpLHRoaXMuYnV0dG9uPWUoIjxzcGFuPiIseyJjbGFzcyI6InVpLXNlbGVjdG1lbnUtYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiLHRhYmluZGV4OnRoaXMub3B0aW9ucy5kaXNhYmxlZD8tMTowLGlkOnRoaXMuaWRzLmJ1dHRvbixyb2xlOiJjb21ib2JveCIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsImFyaWEtYXV0b2NvbXBsZXRlIjoibGlzdCIsImFyaWEtb3ducyI6dGhpcy5pZHMubWVudSwiYXJpYS1oYXNwb3B1cCI6InRydWUifSkuaW5zZXJ0QWZ0ZXIodGhpcy5lbGVtZW50KSxlKCI8c3Bhbj4iLHsiY2xhc3MiOiJ1aS1pY29uICIrdGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbn0pLnByZXBlbmRUbyh0aGlzLmJ1dHRvbiksdGhpcy5idXR0b25UZXh0PWUoIjxzcGFuPiIseyJjbGFzcyI6InVpLXNlbGVjdG1lbnUtdGV4dCJ9KS5hcHBlbmRUbyh0aGlzLmJ1dHRvbiksdGhpcy5fc2V0VGV4dCh0aGlzLmJ1dHRvblRleHQsdGhpcy5lbGVtZW50LmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLnRleHQoKSksdGhpcy5fcmVzaXplQnV0dG9uKCksdGhpcy5fb24odGhpcy5idXR0b24sdGhpcy5fYnV0dG9uRXZlbnRzKSx0aGlzLmJ1dHRvbi5vbmUoImZvY3VzaW4iLGZ1bmN0aW9uKCl7dC5tZW51SXRlbXN8fHQuX3JlZnJlc2hNZW51KCl9KSx0aGlzLl9ob3ZlcmFibGUodGhpcy5idXR0b24pLHRoaXMuX2ZvY3VzYWJsZSh0aGlzLmJ1dHRvbil9LF9kcmF3TWVudTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5tZW51PWUoIjx1bD4iLHsiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiYXJpYS1sYWJlbGxlZGJ5Ijp0aGlzLmlkcy5idXR0b24saWQ6dGhpcy5pZHMubWVudX0pLHRoaXMubWVudVdyYXA9ZSgiPGRpdj4iLHsiY2xhc3MiOiJ1aS1zZWxlY3RtZW51LW1lbnUgdWktZnJvbnQifSkuYXBwZW5kKHRoaXMubWVudSkuYXBwZW5kVG8odGhpcy5fYXBwZW5kVG8oKSksdGhpcy5tZW51SW5zdGFuY2U9dGhpcy5tZW51Lm1lbnUoe3JvbGU6Imxpc3Rib3giLHNlbGVjdDpmdW5jdGlvbihlLGkpe2UucHJldmVudERlZmF1bHQoKSx0Ll9zZXRTZWxlY3Rpb24oKSx0Ll9zZWxlY3QoaS5pdGVtLmRhdGEoInVpLXNlbGVjdG1lbnUtaXRlbSIpLGUpfSxmb2N1czpmdW5jdGlvbihlLGkpe3ZhciBzPWkuaXRlbS5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKTtudWxsIT10LmZvY3VzSW5kZXgmJnMuaW5kZXghPT10LmZvY3VzSW5kZXgmJih0Ll90cmlnZ2VyKCJmb2N1cyIsZSx7aXRlbTpzfSksdC5pc09wZW58fHQuX3NlbGVjdChzLGUpKSx0LmZvY3VzSW5kZXg9cy5pbmRleCx0LmJ1dHRvbi5hdHRyKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLHQubWVudUl0ZW1zLmVxKHMuaW5kZXgpLmF0dHIoImlkIikpfX0pLm1lbnUoImluc3RhbmNlIiksdGhpcy5tZW51LmFkZENsYXNzKCJ1aS1jb3JuZXItYm90dG9tIikucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwiKSx0aGlzLm1lbnVJbnN0YW5jZS5fb2ZmKHRoaXMubWVudSwibW91c2VsZWF2ZSIpLHRoaXMubWVudUluc3RhbmNlLl9jbG9zZU9uRG9jdW1lbnRDbGljaz1mdW5jdGlvbigpe3JldHVybiExfSx0aGlzLm1lbnVJbnN0YW5jZS5faXNEaXZpZGVyPWZ1bmN0aW9uKCl7cmV0dXJuITF9fSxyZWZyZXNoOmZ1bmN0aW9uKCl7dGhpcy5fcmVmcmVzaE1lbnUoKSx0aGlzLl9zZXRUZXh0KHRoaXMuYnV0dG9uVGV4dCx0aGlzLl9nZXRTZWxlY3RlZEl0ZW0oKS50ZXh0KCkpLHRoaXMub3B0aW9ucy53aWR0aHx8dGhpcy5fcmVzaXplQnV0dG9uKCl9LF9yZWZyZXNoTWVudTpmdW5jdGlvbigpe3RoaXMubWVudS5lbXB0eSgpO3ZhciBlLHQ9dGhpcy5lbGVtZW50LmZpbmQoIm9wdGlvbiIpO3QubGVuZ3RoJiYodGhpcy5fcGFyc2VPcHRpb25zKHQpLHRoaXMuX3JlbmRlck1lbnUodGhpcy5tZW51LHRoaXMuaXRlbXMpLHRoaXMubWVudUluc3RhbmNlLnJlZnJlc2goKSx0aGlzLm1lbnVJdGVtcz10aGlzLm1lbnUuZmluZCgibGkiKS5ub3QoIi51aS1zZWxlY3RtZW51LW9wdGdyb3VwIiksZT10aGlzLl9nZXRTZWxlY3RlZEl0ZW0oKSx0aGlzLm1lbnVJbnN0YW5jZS5mb2N1cyhudWxsLGUpLHRoaXMuX3NldEFyaWEoZS5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKSksdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIikpKX0sb3BlbjpmdW5jdGlvbihlKXt0aGlzLm9wdGlvbnMuZGlzYWJsZWR8fCh0aGlzLm1lbnVJdGVtcz8odGhpcy5tZW51LmZpbmQoIi51aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLHRoaXMubWVudUluc3RhbmNlLmZvY3VzKG51bGwsdGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkpKTp0aGlzLl9yZWZyZXNoTWVudSgpLHRoaXMuaXNPcGVuPSEwLHRoaXMuX3RvZ2dsZUF0dHIoKSx0aGlzLl9yZXNpemVNZW51KCksdGhpcy5fcG9zaXRpb24oKSx0aGlzLl9vbih0aGlzLmRvY3VtZW50LHRoaXMuX2RvY3VtZW50Q2xpY2spLHRoaXMuX3RyaWdnZXIoIm9wZW4iLGUpKX0sX3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dGhpcy5tZW51V3JhcC5wb3NpdGlvbihlLmV4dGVuZCh7b2Y6dGhpcy5idXR0b259LHRoaXMub3B0aW9ucy5wb3NpdGlvbikpfSxjbG9zZTpmdW5jdGlvbihlKXt0aGlzLmlzT3BlbiYmKHRoaXMuaXNPcGVuPSExLHRoaXMuX3RvZ2dsZUF0dHIoKSx0aGlzLnJhbmdlPW51bGwsdGhpcy5fb2ZmKHRoaXMuZG9jdW1lbnQpLHRoaXMuX3RyaWdnZXIoImNsb3NlIixlKSl9LHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1dHRvbn0sbWVudVdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1lbnV9LF9yZW5kZXJNZW51OmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcyxuPSIiO2UuZWFjaChpLGZ1bmN0aW9uKGksYSl7YS5vcHRncm91cCE9PW4mJihlKCI8bGk+Iix7ImNsYXNzIjoidWktc2VsZWN0bWVudS1vcHRncm91cCB1aS1tZW51LWRpdmlkZXIiKyhhLmVsZW1lbnQucGFyZW50KCJvcHRncm91cCIpLnByb3AoImRpc2FibGVkIik/IiB1aS1zdGF0ZS1kaXNhYmxlZCI6IiIpLHRleHQ6YS5vcHRncm91cH0pLmFwcGVuZFRvKHQpLG49YS5vcHRncm91cCkscy5fcmVuZGVySXRlbURhdGEodCxhKX0pfSxfcmVuZGVySXRlbURhdGE6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fcmVuZGVySXRlbShlLHQpLmRhdGEoInVpLXNlbGVjdG1lbnUtaXRlbSIsdCl9LF9yZW5kZXJJdGVtOmZ1bmN0aW9uKHQsaSl7dmFyIHM9ZSgiPGxpPiIpO3JldHVybiBpLmRpc2FibGVkJiZzLmFkZENsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpLHRoaXMuX3NldFRleHQocyxpLmxhYmVsKSxzLmFwcGVuZFRvKHQpfSxfc2V0VGV4dDpmdW5jdGlvbihlLHQpe3Q/ZS50ZXh0KHQpOmUuaHRtbCgiJiMxNjA7Iil9LF9tb3ZlOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPSIudWktbWVudS1pdGVtIjt0aGlzLmlzT3Blbj9pPXRoaXMubWVudUl0ZW1zLmVxKHRoaXMuZm9jdXNJbmRleCk6KGk9dGhpcy5tZW51SXRlbXMuZXEodGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXgpLG4rPSI6bm90KC51aS1zdGF0ZS1kaXNhYmxlZCkiKSxzPSJmaXJzdCI9PT1lfHwibGFzdCI9PT1lP2lbImZpcnN0Ij09PWU/InByZXZBbGwiOiJuZXh0QWxsIl0obikuZXEoLTEpOmlbZSsiQWxsIl0obikuZXEoMCkscy5sZW5ndGgmJnRoaXMubWVudUluc3RhbmNlLmZvY3VzKHQscyl9LF9nZXRTZWxlY3RlZEl0ZW06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZW51SXRlbXMuZXEodGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXgpfSxfdG9nZ2xlOmZ1bmN0aW9uKGUpe3RoaXNbdGhpcy5pc09wZW4/ImNsb3NlIjoib3BlbiJdKGUpfSxfc2V0U2VsZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5yYW5nZSYmKHdpbmRvdy5nZXRTZWxlY3Rpb24/KGU9d2luZG93LmdldFNlbGVjdGlvbigpLGUucmVtb3ZlQWxsUmFuZ2VzKCksZS5hZGRSYW5nZSh0aGlzLnJhbmdlKSk6dGhpcy5yYW5nZS5zZWxlY3QoKSx0aGlzLmJ1dHRvbi5mb2N1cygpKX0sX2RvY3VtZW50Q2xpY2s6e21vdXNlZG93bjpmdW5jdGlvbih0KXt0aGlzLmlzT3BlbiYmKGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1zZWxlY3RtZW51LW1lbnUsICMiK3RoaXMuaWRzLmJ1dHRvbikubGVuZ3RofHx0aGlzLmNsb3NlKHQpKX19LF9idXR0b25FdmVudHM6e21vdXNlZG93bjpmdW5jdGlvbigpe3ZhciBlO3dpbmRvdy5nZXRTZWxlY3Rpb24/KGU9d2luZG93LmdldFNlbGVjdGlvbigpLGUucmFuZ2VDb3VudCYmKHRoaXMucmFuZ2U9ZS5nZXRSYW5nZUF0KDApKSk6dGhpcy5yYW5nZT1kb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKX0sY2xpY2s6ZnVuY3Rpb24oZSl7dGhpcy5fc2V0U2VsZWN0aW9uKCksdGhpcy5fdG9nZ2xlKGUpfSxrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPSEwO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLlRBQjpjYXNlIGUudWkua2V5Q29kZS5FU0NBUEU6dGhpcy5jbG9zZSh0KSxpPSExO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkVOVEVSOnRoaXMuaXNPcGVuJiZ0aGlzLl9zZWxlY3RGb2N1c2VkSXRlbSh0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDp0LmFsdEtleT90aGlzLl90b2dnbGUodCk6dGhpcy5fbW92ZSgicHJldiIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRE9XTjp0LmFsdEtleT90aGlzLl90b2dnbGUodCk6dGhpcy5fbW92ZSgibmV4dCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuU1BBQ0U6dGhpcy5pc09wZW4/dGhpcy5fc2VsZWN0Rm9jdXNlZEl0ZW0odCk6dGhpcy5fdG9nZ2xlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkxFRlQ6dGhpcy5fbW92ZSgicHJldiIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUklHSFQ6dGhpcy5fbW92ZSgibmV4dCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuSE9NRTpjYXNlIGUudWkua2V5Q29kZS5QQUdFX1VQOnRoaXMuX21vdmUoImZpcnN0Iix0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5FTkQ6Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOnRoaXMuX21vdmUoImxhc3QiLHQpO2JyZWFrO2RlZmF1bHQ6dGhpcy5tZW51LnRyaWdnZXIodCksaT0hMX1pJiZ0LnByZXZlbnREZWZhdWx0KCl9fSxfc2VsZWN0Rm9jdXNlZEl0ZW06ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5tZW51SXRlbXMuZXEodGhpcy5mb2N1c0luZGV4KTt0Lmhhc0NsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpfHx0aGlzLl9zZWxlY3QodC5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKSxlKX0sX3NlbGVjdDpmdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuZWxlbWVudFswXS5zZWxlY3RlZEluZGV4O3RoaXMuZWxlbWVudFswXS5zZWxlY3RlZEluZGV4PWUuaW5kZXgsdGhpcy5fc2V0VGV4dCh0aGlzLmJ1dHRvblRleHQsZS5sYWJlbCksdGhpcy5fc2V0QXJpYShlKSx0aGlzLl90cmlnZ2VyKCJzZWxlY3QiLHQse2l0ZW06ZX0pLGUuaW5kZXghPT1pJiZ0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLHQse2l0ZW06ZX0pLHRoaXMuY2xvc2UodCl9LF9zZXRBcmlhOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMubWVudUl0ZW1zLmVxKGUuaW5kZXgpLmF0dHIoImlkIik7dGhpcy5idXR0b24uYXR0cih7ImFyaWEtbGFiZWxsZWRieSI6dCwiYXJpYS1hY3RpdmVkZXNjZW5kYW50Ijp0fSksdGhpcy5tZW51LmF0dHIoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsdCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiaWNvbnMiPT09ZSYmdGhpcy5idXR0b24uZmluZCgic3Bhbi51aS1pY29uIikucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbikuYWRkQ2xhc3ModC5idXR0b24pLHRoaXMuX3N1cGVyKGUsdCksImFwcGVuZFRvIj09PWUmJnRoaXMubWVudVdyYXAuYXBwZW5kVG8odGhpcy5fYXBwZW5kVG8oKSksImRpc2FibGVkIj09PWUmJih0aGlzLm1lbnVJbnN0YW5jZS5vcHRpb24oImRpc2FibGVkIix0KSx0aGlzLmJ1dHRvbi50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLHQpLmF0dHIoImFyaWEtZGlzYWJsZWQiLHQpLHRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsdCksdD8odGhpcy5idXR0b24uYXR0cigidGFiaW5kZXgiLC0xKSx0aGlzLmNsb3NlKCkpOnRoaXMuYnV0dG9uLmF0dHIoInRhYmluZGV4IiwwKSksIndpZHRoIj09PWUmJnRoaXMuX3Jlc2l6ZUJ1dHRvbigpfSxfYXBwZW5kVG86ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYXBwZW5kVG87cmV0dXJuIHQmJih0PXQuanF1ZXJ5fHx0Lm5vZGVUeXBlP2UodCk6dGhpcy5kb2N1bWVudC5maW5kKHQpLmVxKDApKSx0JiZ0WzBdfHwodD10aGlzLmVsZW1lbnQuY2xvc2VzdCgiLnVpLWZyb250IikpLHQubGVuZ3RofHwodD10aGlzLmRvY3VtZW50WzBdLmJvZHkpLHR9LF90b2dnbGVBdHRyOmZ1bmN0aW9uKCl7dGhpcy5idXR0b24udG9nZ2xlQ2xhc3MoInVpLWNvcm5lci10b3AiLHRoaXMuaXNPcGVuKS50b2dnbGVDbGFzcygidWktY29ybmVyLWFsbCIsIXRoaXMuaXNPcGVuKS5hdHRyKCJhcmlhLWV4cGFuZGVkIix0aGlzLmlzT3BlbiksdGhpcy5tZW51V3JhcC50b2dnbGVDbGFzcygidWktc2VsZWN0bWVudS1vcGVuIix0aGlzLmlzT3BlbiksdGhpcy5tZW51LmF0dHIoImFyaWEtaGlkZGVuIiwhdGhpcy5pc09wZW4pfSxfcmVzaXplQnV0dG9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLndpZHRoO2V8fChlPXRoaXMuZWxlbWVudC5zaG93KCkub3V0ZXJXaWR0aCgpLHRoaXMuZWxlbWVudC5oaWRlKCkpLHRoaXMuYnV0dG9uLm91dGVyV2lkdGgoZSl9LF9yZXNpemVNZW51OmZ1bmN0aW9uKCl7dGhpcy5tZW51Lm91dGVyV2lkdGgoTWF0aC5tYXgodGhpcy5idXR0b24ub3V0ZXJXaWR0aCgpLHRoaXMubWVudS53aWR0aCgiIikub3V0ZXJXaWR0aCgpKzEpKX0sX2dldENyZWF0ZU9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm57ZGlzYWJsZWQ6dGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIil9fSxfcGFyc2VPcHRpb25zOmZ1bmN0aW9uKHQpe3ZhciBpPVtdO3QuZWFjaChmdW5jdGlvbih0LHMpe3ZhciBuPWUocyksYT1uLnBhcmVudCgib3B0Z3JvdXAiKTtpLnB1c2goe2VsZW1lbnQ6bixpbmRleDp0LHZhbHVlOm4udmFsKCksbGFiZWw6bi50ZXh0KCksb3B0Z3JvdXA6YS5hdHRyKCJsYWJlbCIpfHwiIixkaXNhYmxlZDphLnByb3AoImRpc2FibGVkIil8fG4ucHJvcCgiZGlzYWJsZWQiKX0pfSksdGhpcy5pdGVtcz1pfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMubWVudVdyYXAucmVtb3ZlKCksdGhpcy5idXR0b24ucmVtb3ZlKCksdGhpcy5lbGVtZW50LnNob3coKSx0aGlzLmVsZW1lbnQucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLmxhYmVsLmF0dHIoImZvciIsdGhpcy5pZHMuZWxlbWVudCl9fSksZS53aWRnZXQoInVpLnNsaWRlciIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoic2xpZGUiLG9wdGlvbnM6e2FuaW1hdGU6ITEsZGlzdGFuY2U6MCxtYXg6MTAwLG1pbjowLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixyYW5nZTohMSxzdGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbCxjaGFuZ2U6bnVsbCxzbGlkZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxudW1QYWdlczo1LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNsaWRlciB1aS1zbGlkZXItIit0aGlzLm9yaWVudGF0aW9uKyIgdWktd2lkZ2V0IisiIHVpLXdpZGdldC1jb250ZW50IisiIHVpLWNvcm5lci1hbGwiKSx0aGlzLl9yZWZyZXNoKCksdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdGhpcy5vcHRpb25zLmRpc2FibGVkKSx0aGlzLl9hbmltYXRlT2ZmPSExfSxfcmVmcmVzaDpmdW5jdGlvbigpe3RoaXMuX2NyZWF0ZVJhbmdlKCksdGhpcy5fY3JlYXRlSGFuZGxlcygpLHRoaXMuX3NldHVwRXZlbnRzKCksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9jcmVhdGVIYW5kbGVzOmZ1bmN0aW9uKCl7dmFyIHQsaSxzPXRoaXMub3B0aW9ucyxuPXRoaXMuZWxlbWVudC5maW5kKCIudWktc2xpZGVyLWhhbmRsZSIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKSxhPSI8c3BhbiBjbGFzcz0ndWktc2xpZGVyLWhhbmRsZSB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwnIHRhYmluZGV4PScwJz48L3NwYW4+IixvPVtdO2ZvcihpPXMudmFsdWVzJiZzLnZhbHVlcy5sZW5ndGh8fDEsbi5sZW5ndGg+aSYmKG4uc2xpY2UoaSkucmVtb3ZlKCksbj1uLnNsaWNlKDAsaSkpLHQ9bi5sZW5ndGg7aT50O3QrKylvLnB1c2goYSk7dGhpcy5oYW5kbGVzPW4uYWRkKGUoby5qb2luKCIiKSkuYXBwZW5kVG8odGhpcy5lbGVtZW50KSksdGhpcy5oYW5kbGU9dGhpcy5oYW5kbGVzLmVxKDApLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKHQpe2UodGhpcykuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIsdCl9KX0sX2NyZWF0ZVJhbmdlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLGk9IiI7dC5yYW5nZT8odC5yYW5nZT09PSEwJiYodC52YWx1ZXM/dC52YWx1ZXMubGVuZ3RoJiYyIT09dC52YWx1ZXMubGVuZ3RoP3QudmFsdWVzPVt0LnZhbHVlc1swXSx0LnZhbHVlc1swXV06ZS5pc0FycmF5KHQudmFsdWVzKSYmKHQudmFsdWVzPXQudmFsdWVzLnNsaWNlKDApKTp0LnZhbHVlcz1bdGhpcy5fdmFsdWVNaW4oKSx0aGlzLl92YWx1ZU1pbigpXSksdGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5sZW5ndGg/dGhpcy5yYW5nZS5yZW1vdmVDbGFzcygidWktc2xpZGVyLXJhbmdlLW1pbiB1aS1zbGlkZXItcmFuZ2UtbWF4IikuY3NzKHtsZWZ0OiIiLGJvdHRvbToiIn0pOih0aGlzLnJhbmdlPWUoIjxkaXY+PC9kaXY+IikuYXBwZW5kVG8odGhpcy5lbGVtZW50KSxpPSJ1aS1zbGlkZXItcmFuZ2UgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIiksdGhpcy5yYW5nZS5hZGRDbGFzcyhpKygibWluIj09PXQucmFuZ2V8fCJtYXgiPT09dC5yYW5nZT8iIHVpLXNsaWRlci1yYW5nZS0iK3QucmFuZ2U6IiIpKSk6KHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5yYW5nZT1udWxsKX0sX3NldHVwRXZlbnRzOmZ1bmN0aW9uKCl7dGhpcy5fb2ZmKHRoaXMuaGFuZGxlcyksdGhpcy5fb24odGhpcy5oYW5kbGVzLHRoaXMuX2hhbmRsZUV2ZW50cyksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGFuZGxlcyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGFuZGxlcyl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVzLnJlbW92ZSgpLHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zbGlkZXIgdWktc2xpZGVyLWhvcml6b250YWwgdWktc2xpZGVyLXZlcnRpY2FsIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIiksdGhpcy5fbW91c2VEZXN0cm95KCl9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24odCl7dmFyIGkscyxuLGEsbyxyLGgsbCx1PXRoaXMsZD10aGlzLm9wdGlvbnM7cmV0dXJuIGQuZGlzYWJsZWQ/ITE6KHRoaXMuZWxlbWVudFNpemU9e3dpZHRoOnRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpfSx0aGlzLmVsZW1lbnRPZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpLGk9e3g6dC5wYWdlWCx5OnQucGFnZVl9LHM9dGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKGkpLG49dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKzEsdGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24odCl7dmFyIGk9TWF0aC5hYnMocy11LnZhbHVlcyh0KSk7KG4+aXx8bj09PWkmJih0PT09dS5fbGFzdENoYW5nZWRWYWx1ZXx8dS52YWx1ZXModCk9PT1kLm1pbikpJiYobj1pLGE9ZSh0aGlzKSxvPXQpfSkscj10aGlzLl9zdGFydCh0LG8pLHI9PT0hMT8hMToodGhpcy5fbW91c2VTbGlkaW5nPSEwLHRoaXMuX2hhbmRsZUluZGV4PW8sYS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIikuZm9jdXMoKSxoPWEub2Zmc2V0KCksbD0hZSh0LnRhcmdldCkucGFyZW50cygpLmFkZEJhY2soKS5pcygiLnVpLXNsaWRlci1oYW5kbGUiKSx0aGlzLl9jbGlja09mZnNldD1sP3tsZWZ0OjAsdG9wOjB9OntsZWZ0OnQucGFnZVgtaC5sZWZ0LWEud2lkdGgoKS8yLHRvcDp0LnBhZ2VZLWgudG9wLWEuaGVpZ2h0KCkvMi0ocGFyc2VJbnQoYS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoYS5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoYS5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MCl9LHRoaXMuaGFuZGxlcy5oYXNDbGFzcygidWktc3RhdGUtaG92ZXIiKXx8dGhpcy5fc2xpZGUodCxvLHMpLHRoaXMuX2FuaW1hdGVPZmY9ITAsITApKX0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sX21vdXNlRHJhZzpmdW5jdGlvbihlKXt2YXIgdD17eDplLnBhZ2VYLHk6ZS5wYWdlWX0saT10aGlzLl9ub3JtVmFsdWVGcm9tTW91c2UodCk7cmV0dXJuIHRoaXMuX3NsaWRlKGUsdGhpcy5faGFuZGxlSW5kZXgsaSksITF9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaGFuZGxlcy5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdGhpcy5fbW91c2VTbGlkaW5nPSExLHRoaXMuX3N0b3AoZSx0aGlzLl9oYW5kbGVJbmRleCksdGhpcy5fY2hhbmdlKGUsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fY2xpY2tPZmZzZXQ9bnVsbCx0aGlzLl9hbmltYXRlT2ZmPSExLCExfSxfZGV0ZWN0T3JpZW50YXRpb246ZnVuY3Rpb24oKXt0aGlzLm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI9PT10aGlzLm9wdGlvbnMub3JpZW50YXRpb24/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCJ9LF9ub3JtVmFsdWVGcm9tTW91c2U6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzLG4sYTtyZXR1cm4iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyh0PXRoaXMuZWxlbWVudFNpemUud2lkdGgsaT1lLngtdGhpcy5lbGVtZW50T2Zmc2V0LmxlZnQtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LmxlZnQ6MCkpOih0PXRoaXMuZWxlbWVudFNpemUuaGVpZ2h0LGk9ZS55LXRoaXMuZWxlbWVudE9mZnNldC50b3AtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LnRvcDowKSkscz1pL3Qscz4xJiYocz0xKSwwPnMmJihzPTApLCJ2ZXJ0aWNhbCI9PT10aGlzLm9yaWVudGF0aW9uJiYocz0xLXMpLG49dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpLGE9dGhpcy5fdmFsdWVNaW4oKStzKm4sdGhpcy5fdHJpbUFsaWduVmFsdWUoYSl9LF9zdGFydDpmdW5jdGlvbihlLHQpe3ZhciBpPXtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOnRoaXMudmFsdWUoKX07cmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYoaS52YWx1ZT10aGlzLnZhbHVlcyh0KSxpLnZhbHVlcz10aGlzLnZhbHVlcygpKSx0aGlzLl90cmlnZ2VyKCJzdGFydCIsZSxpKX0sX3NsaWRlOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcyxuLGE7dGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg/KHM9dGhpcy52YWx1ZXModD8wOjEpLDI9PT10aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCYmdGhpcy5vcHRpb25zLnJhbmdlPT09ITAmJigwPT09dCYmaT5zfHwxPT09dCYmcz5pKSYmKGk9cyksaSE9PXRoaXMudmFsdWVzKHQpJiYobj10aGlzLnZhbHVlcygpLG5bdF09aSxhPXRoaXMuX3RyaWdnZXIoInNsaWRlIixlLHtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOmksdmFsdWVzOm59KSxzPXRoaXMudmFsdWVzKHQ/MDoxKSxhIT09ITEmJnRoaXMudmFsdWVzKHQsaSkpKTppIT09dGhpcy52YWx1ZSgpJiYoYT10aGlzLl90cmlnZ2VyKCJzbGlkZSIsZSx7aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSx2YWx1ZTppfSksYSE9PSExJiZ0aGlzLnZhbHVlKGkpKX0sX3N0b3A6ZnVuY3Rpb24oZSx0KXt2YXIgaT17aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSx2YWx1ZTp0aGlzLnZhbHVlKCl9O3RoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYoaS52YWx1ZT10aGlzLnZhbHVlcyh0KSxpLnZhbHVlcz10aGlzLnZhbHVlcygpKSx0aGlzLl90cmlnZ2VyKCJzdG9wIixlLGkpfSxfY2hhbmdlOmZ1bmN0aW9uKGUsdCl7aWYoIXRoaXMuX2tleVNsaWRpbmcmJiF0aGlzLl9tb3VzZVNsaWRpbmcpe3ZhciBpPXtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOnRoaXMudmFsdWUoKX07dGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgmJihpLnZhbHVlPXRoaXMudmFsdWVzKHQpLGkudmFsdWVzPXRoaXMudmFsdWVzKCkpLHRoaXMuX2xhc3RDaGFuZ2VkVmFsdWU9dCx0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLGUsaSl9fSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2NoYW5nZShudWxsLDApLHZvaWQgMCk6dGhpcy5fdmFsdWUoKX0sdmFsdWVzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlc1t0XT10aGlzLl90cmltQWxpZ25WYWx1ZShpKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCx0KSx2b2lkIDA7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX3ZhbHVlcygpO2lmKCFlLmlzQXJyYXkoYXJndW1lbnRzWzBdKSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg/dGhpcy5fdmFsdWVzKHQpOnRoaXMudmFsdWUoKTtmb3Iocz10aGlzLm9wdGlvbnMudmFsdWVzLG49YXJndW1lbnRzWzBdLGE9MDtzLmxlbmd0aD5hO2ErPTEpc1thXT10aGlzLl90cmltQWxpZ25WYWx1ZShuW2FdKSx0aGlzLl9jaGFuZ2UobnVsbCxhKTt0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGkpe3ZhciBzLG49MDtzd2l0Y2goInJhbmdlIj09PXQmJnRoaXMub3B0aW9ucy5yYW5nZT09PSEwJiYoIm1pbiI9PT1pPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKDApLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCk6Im1heCI9PT1pJiYodGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcyh0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aC0xKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpKSxlLmlzQXJyYXkodGhpcy5vcHRpb25zLnZhbHVlcykmJihuPXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSwiZGlzYWJsZWQiPT09dCYmdGhpcy5lbGVtZW50LnRvZ2dsZUNsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISFpKSx0aGlzLl9zdXBlcih0LGkpLHQpe2Nhc2Uib3JpZW50YXRpb24iOnRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zbGlkZXItaG9yaXpvbnRhbCB1aS1zbGlkZXItdmVydGljYWwiKS5hZGRDbGFzcygidWktc2xpZGVyLSIrdGhpcy5vcmllbnRhdGlvbiksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5oYW5kbGVzLmNzcygiaG9yaXpvbnRhbCI9PT1pPyJib3R0b20iOiJsZWZ0IiwiIik7YnJlYWs7Y2FzZSJ2YWx1ZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCwwKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UidmFsdWVzIjpmb3IodGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSxzPTA7bj5zO3MrPTEpdGhpcy5fY2hhbmdlKG51bGwscyk7dGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlInN0ZXAiOmNhc2UibWluIjpjYXNlIm1heCI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UicmFuZ2UiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fcmVmcmVzaCgpLHRoaXMuX2FuaW1hdGVPZmY9ITF9fSxfdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnMudmFsdWU7cmV0dXJuIGU9dGhpcy5fdHJpbUFsaWduVmFsdWUoZSl9LF92YWx1ZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzO2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHQ9dGhpcy5vcHRpb25zLnZhbHVlc1tlXSx0PXRoaXMuX3RyaW1BbGlnblZhbHVlKHQpO2lmKHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKXtmb3IoaT10aGlzLm9wdGlvbnMudmFsdWVzLnNsaWNlKCkscz0wO2kubGVuZ3RoPnM7cys9MSlpW3NdPXRoaXMuX3RyaW1BbGlnblZhbHVlKGlbc10pO3JldHVybiBpfXJldHVybltdfSxfdHJpbUFsaWduVmFsdWU6ZnVuY3Rpb24oZSl7aWYodGhpcy5fdmFsdWVNaW4oKT49ZSlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTtpZihlPj10aGlzLl92YWx1ZU1heCgpKXJldHVybiB0aGlzLl92YWx1ZU1heCgpO3ZhciB0PXRoaXMub3B0aW9ucy5zdGVwPjA/dGhpcy5vcHRpb25zLnN0ZXA6MSxpPShlLXRoaXMuX3ZhbHVlTWluKCkpJXQscz1lLWk7cmV0dXJuIDIqTWF0aC5hYnMoaSk+PXQmJihzKz1pPjA/dDotdCkscGFyc2VGbG9hdChzLnRvRml4ZWQoNSkpfSxfY2FsY3VsYXRlTmV3TWF4OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLm1heCx0PXRoaXMuX3ZhbHVlTWluKCksaT10aGlzLm9wdGlvbnMuc3RlcCxzPU1hdGguZmxvb3IoKyhlLXQpLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpL2kpKmk7ZT1zK3QsdGhpcy5tYXg9cGFyc2VGbG9hdChlLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpKX0sX3ByZWNpc2lvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5zdGVwKTtyZXR1cm4gbnVsbCE9PXRoaXMub3B0aW9ucy5taW4mJihlPU1hdGgubWF4KGUsdGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLm1pbikpKSxlfSxfcHJlY2lzaW9uT2Y6ZnVuY3Rpb24oZSl7dmFyIHQ9IiIrZSxpPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09aT8wOnQubGVuZ3RoLWktMX0sX3ZhbHVlTWluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5taW59LF92YWx1ZU1heDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heH0sX3JlZnJlc2hWYWx1ZTpmdW5jdGlvbigpe3ZhciB0LGkscyxuLGEsbz10aGlzLm9wdGlvbnMucmFuZ2Uscj10aGlzLm9wdGlvbnMsaD10aGlzLGw9dGhpcy5fYW5pbWF0ZU9mZj8hMTpyLmFuaW1hdGUsdT17fTt0aGlzLm9wdGlvbnMudmFsdWVzJiZ0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aD90aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbihzKXtpPTEwMCooKGgudmFsdWVzKHMpLWguX3ZhbHVlTWluKCkpLyhoLl92YWx1ZU1heCgpLWguX3ZhbHVlTWluKCkpKSx1WyJob3Jpem9udGFsIj09PWgub3JpZW50YXRpb24/ImxlZnQiOiJib3R0b20iXT1pKyIlIixlKHRoaXMpLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0odSxyLmFuaW1hdGUpLGgub3B0aW9ucy5yYW5nZT09PSEwJiYoImhvcml6b250YWwiPT09aC5vcmllbnRhdGlvbj8oMD09PXMmJmgucmFuZ2Uuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh7bGVmdDppKyIlIn0sci5hbmltYXRlKSwxPT09cyYmaC5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmktdCsiJSJ9LHtxdWV1ZTohMSxkdXJhdGlvbjpyLmFuaW1hdGV9KSk6KDA9PT1zJiZoLnJhbmdlLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0oe2JvdHRvbTppKyIlIn0sci5hbmltYXRlKSwxPT09cyYmaC5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDppLXQrIiUifSx7cXVldWU6ITEsZHVyYXRpb246ci5hbmltYXRlfSkpKSx0PWl9KToocz10aGlzLnZhbHVlKCksbj10aGlzLl92YWx1ZU1pbigpLGE9dGhpcy5fdmFsdWVNYXgoKSxpPWEhPT1uPzEwMCooKHMtbikvKGEtbikpOjAsdVsiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyJsZWZ0IjoiYm90dG9tIl09aSsiJSIsdGhpcy5oYW5kbGUuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh1LHIuYW5pbWF0ZSksIm1pbiI9PT1vJiYiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmkrIiUifSxyLmFuaW1hdGUpLCJtYXgiPT09byYmImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOjEwMC1pKyIlIn0se3F1ZXVlOiExLGR1cmF0aW9uOnIuYW5pbWF0ZX0pLCJtaW4iPT09byYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0OmkrIiUifSxyLmFuaW1hdGUpLCJtYXgiPT09byYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2VbbD8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6MTAwLWkrIiUifSx7cXVldWU6ITEsZHVyYXRpb246ci5hbmltYXRlfSkpfSxfaGFuZGxlRXZlbnRzOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG89ZSh0LnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6Y2FzZSBlLnVpLmtleUNvZGUuRU5EOmNhc2UgZS51aS5rZXlDb2RlLlBBR0VfVVA6Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOmNhc2UgZS51aS5rZXlDb2RlLlVQOmNhc2UgZS51aS5rZXlDb2RlLlJJR0hUOmNhc2UgZS51aS5rZXlDb2RlLkRPV046Y2FzZSBlLnVpLmtleUNvZGUuTEVGVDppZih0LnByZXZlbnREZWZhdWx0KCksIXRoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSEwLGUodC50YXJnZXQpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSxpPXRoaXMuX3N0YXJ0KHQsbyksaT09PSExKSlyZXR1cm59c3dpdGNoKGE9dGhpcy5vcHRpb25zLnN0ZXAscz1uPXRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoP3RoaXMudmFsdWVzKG8pOnRoaXMudmFsdWUoKSx0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6bj10aGlzLl92YWx1ZU1pbigpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkVORDpuPXRoaXMuX3ZhbHVlTWF4KCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9VUDpuPXRoaXMuX3RyaW1BbGlnblZhbHVlKHMrKHRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSkvdGhpcy5udW1QYWdlcyk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOm49dGhpcy5fdHJpbUFsaWduVmFsdWUocy0odGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKS90aGlzLm51bVBhZ2VzKTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDpjYXNlIGUudWkua2V5Q29kZS5SSUdIVDppZihzPT09dGhpcy5fdmFsdWVNYXgoKSlyZXR1cm47bj10aGlzLl90cmltQWxpZ25WYWx1ZShzK2EpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkRPV046Y2FzZSBlLnVpLmtleUNvZGUuTEVGVDppZihzPT09dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm47bj10aGlzLl90cmltQWxpZ25WYWx1ZShzLWEpfXRoaXMuX3NsaWRlKHQsbyxuKX0sa2V5dXA6ZnVuY3Rpb24odCl7dmFyIGk9ZSh0LnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3RoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX3N0b3AodCxpKSx0aGlzLl9jaGFuZ2UodCxpKSxlKHQudGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIikpfX19KSxlLndpZGdldCgidWkuc3Bpbm5lciIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxpbnB1dD4iLHdpZGdldEV2ZW50UHJlZml4OiJzcGluIixvcHRpb25zOntjdWx0dXJlOm51bGwsaWNvbnM6e2Rvd246InVpLWljb24tdHJpYW5nbGUtMS1zIix1cDoidWktaWNvbi10cmlhbmdsZS0xLW4ifSxpbmNyZW1lbnRhbDohMCxtYXg6bnVsbCxtaW46bnVsbCxudW1iZXJGb3JtYXQ6bnVsbCxwYWdlOjEwLHN0ZXA6MSxjaGFuZ2U6bnVsbCxzcGluOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9zZXRPcHRpb24oIm1heCIsdGhpcy5vcHRpb25zLm1heCksdGhpcy5fc2V0T3B0aW9uKCJtaW4iLHRoaXMub3B0aW9ucy5taW4pLHRoaXMuX3NldE9wdGlvbigic3RlcCIsdGhpcy5vcHRpb25zLnN0ZXApLCIiIT09dGhpcy52YWx1ZSgpJiZ0aGlzLl92YWx1ZSh0aGlzLmVsZW1lbnQudmFsKCksITApLHRoaXMuX2RyYXcoKSx0aGlzLl9vbih0aGlzLl9ldmVudHMpLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9vbih0aGlzLndpbmRvdyx7YmVmb3JldW5sb2FkOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoImF1dG9jb21wbGV0ZSIpfX0pfSxfZ2V0Q3JlYXRlT3B0aW9uczpmdW5jdGlvbigpe3ZhciB0PXt9LGk9dGhpcy5lbGVtZW50O3JldHVybiBlLmVhY2goWyJtaW4iLCJtYXgiLCJzdGVwIl0sZnVuY3Rpb24oZSxzKXt2YXIgbj1pLmF0dHIocyk7dm9pZCAwIT09biYmbi5sZW5ndGgmJih0W3NdPW4pfSksdH0sX2V2ZW50czp7a2V5ZG93bjpmdW5jdGlvbihlKXt0aGlzLl9zdGFydChlKSYmdGhpcy5fa2V5ZG93bihlKSYmZS5wcmV2ZW50RGVmYXVsdCgpfSxrZXl1cDoiX3N0b3AiLGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5wcmV2aW91cz10aGlzLmVsZW1lbnQudmFsKCl9LGJsdXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2FuY2VsQmx1cj8oZGVsZXRlIHRoaXMuY2FuY2VsQmx1cix2b2lkIDApOih0aGlzLl9zdG9wKCksdGhpcy5fcmVmcmVzaCgpLHRoaXMucHJldmlvdXMhPT10aGlzLmVsZW1lbnQudmFsKCkmJnRoaXMuX3RyaWdnZXIoImNoYW5nZSIsZSksdm9pZCAwKX0sbW91c2V3aGVlbDpmdW5jdGlvbihlLHQpe2lmKHQpe2lmKCF0aGlzLnNwaW5uaW5nJiYhdGhpcy5fc3RhcnQoZSkpcmV0dXJuITE7dGhpcy5fc3BpbigodD4wPzE6LTEpKnRoaXMub3B0aW9ucy5zdGVwLGUpLGNsZWFyVGltZW91dCh0aGlzLm1vdXNld2hlZWxUaW1lciksdGhpcy5tb3VzZXdoZWVsVGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnNwaW5uaW5nJiZ0aGlzLl9zdG9wKGUpfSwxMDApLGUucHJldmVudERlZmF1bHQoKX19LCJtb3VzZWRvd24gLnVpLXNwaW5uZXItYnV0dG9uIjpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7dmFyIGU9dGhpcy5lbGVtZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50O2V8fCh0aGlzLmVsZW1lbnQuZm9jdXMoKSx0aGlzLnByZXZpb3VzPXMsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnByZXZpb3VzPXN9KSl9dmFyIHM7cz10aGlzLmVsZW1lbnRbMF09PT10aGlzLmRvY3VtZW50WzBdLmFjdGl2ZUVsZW1lbnQ/dGhpcy5wcmV2aW91czp0aGlzLmVsZW1lbnQudmFsKCksdC5wcmV2ZW50RGVmYXVsdCgpLGkuY2FsbCh0aGlzKSx0aGlzLmNhbmNlbEJsdXI9ITAsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5jYW5jZWxCbHVyLGkuY2FsbCh0aGlzKX0pLHRoaXMuX3N0YXJ0KHQpIT09ITEmJnRoaXMuX3JlcGVhdChudWxsLGUodC5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygidWktc3Bpbm5lci11cCIpPzE6LTEsdCl9LCJtb3VzZXVwIC51aS1zcGlubmVyLWJ1dHRvbiI6Il9zdG9wIiwibW91c2VlbnRlciAudWktc3Bpbm5lci1idXR0b24iOmZ1bmN0aW9uKHQpe3JldHVybiBlKHQuY3VycmVudFRhcmdldCkuaGFzQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpP3RoaXMuX3N0YXJ0KHQpPT09ITE/ITE6KHRoaXMuX3JlcGVhdChudWxsLGUodC5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygidWktc3Bpbm5lci11cCIpPzE6LTEsdCksdm9pZCAwKTp2b2lkIDB9LCJtb3VzZWxlYXZlIC51aS1zcGlubmVyLWJ1dHRvbiI6Il9zdG9wIn0sX2RyYXc6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnVpU3Bpbm5lcj10aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNwaW5uZXItaW5wdXQiKS5hdHRyKCJhdXRvY29tcGxldGUiLCJvZmYiKS53cmFwKHRoaXMuX3VpU3Bpbm5lckh0bWwoKSkucGFyZW50KCkuYXBwZW5kKHRoaXMuX2J1dHRvbkh0bWwoKSk7dGhpcy5lbGVtZW50LmF0dHIoInJvbGUiLCJzcGluYnV0dG9uIiksdGhpcy5idXR0b25zPWUuZmluZCgiLnVpLXNwaW5uZXItYnV0dG9uIikuYXR0cigidGFiSW5kZXgiLC0xKS5idXR0b24oKS5yZW1vdmVDbGFzcygidWktY29ybmVyLWFsbCIpLHRoaXMuYnV0dG9ucy5oZWlnaHQoKT5NYXRoLmNlaWwoLjUqZS5oZWlnaHQoKSkmJmUuaGVpZ2h0KCk+MCYmZS5oZWlnaHQoZS5oZWlnaHQoKSksdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLmRpc2FibGUoKX0sX2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9ZS51aS5rZXlDb2RlO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2Ugcy5VUDpyZXR1cm4gdGhpcy5fcmVwZWF0KG51bGwsMSx0KSwhMDtjYXNlIHMuRE9XTjpyZXR1cm4gdGhpcy5fcmVwZWF0KG51bGwsLTEsdCksITA7Y2FzZSBzLlBBR0VfVVA6cmV0dXJuIHRoaXMuX3JlcGVhdChudWxsLGkucGFnZSx0KSwhMDtjYXNlIHMuUEFHRV9ET1dOOnJldHVybiB0aGlzLl9yZXBlYXQobnVsbCwtaS5wYWdlLHQpLCEwfXJldHVybiExfSxfdWlTcGlubmVySHRtbDpmdW5jdGlvbigpe3JldHVybiI8c3BhbiBjbGFzcz0ndWktc3Bpbm5lciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCc+PC9zcGFuPiJ9LF9idXR0b25IdG1sOmZ1bmN0aW9uKCl7cmV0dXJuIjxhIGNsYXNzPSd1aS1zcGlubmVyLWJ1dHRvbiB1aS1zcGlubmVyLXVwIHVpLWNvcm5lci10cic+PHNwYW4gY2xhc3M9J3VpLWljb24gIit0aGlzLm9wdGlvbnMuaWNvbnMudXArIic+JiM5NjUwOzwvc3Bhbj4iKyI8L2E+IisiPGEgY2xhc3M9J3VpLXNwaW5uZXItYnV0dG9uIHVpLXNwaW5uZXItZG93biB1aS1jb3JuZXItYnInPiIrIjxzcGFuIGNsYXNzPSd1aS1pY29uICIrdGhpcy5vcHRpb25zLmljb25zLmRvd24rIic+JiM5NjYwOzwvc3Bhbj4iKyI8L2E+In0sX3N0YXJ0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNwaW5uaW5nfHx0aGlzLl90cmlnZ2VyKCJzdGFydCIsZSkhPT0hMT8odGhpcy5jb3VudGVyfHwodGhpcy5jb3VudGVyPTEpLHRoaXMuc3Bpbm5pbmc9ITAsITApOiExfSxfcmVwZWF0OmZ1bmN0aW9uKGUsdCxpKXtlPWV8fDUwMCxjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj10aGlzLl9kZWxheShmdW5jdGlvbigpe3RoaXMuX3JlcGVhdCg0MCx0LGkpfSxlKSx0aGlzLl9zcGluKHQqdGhpcy5vcHRpb25zLnN0ZXAsaSl9LF9zcGluOmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcy52YWx1ZSgpfHwwO3RoaXMuY291bnRlcnx8KHRoaXMuY291bnRlcj0xKSxpPXRoaXMuX2FkanVzdFZhbHVlKGkrZSp0aGlzLl9pbmNyZW1lbnQodGhpcy5jb3VudGVyKSksdGhpcy5zcGlubmluZyYmdGhpcy5fdHJpZ2dlcigic3BpbiIsdCx7dmFsdWU6aX0pPT09ITF8fCh0aGlzLl92YWx1ZShpKSx0aGlzLmNvdW50ZXIrKyl9LF9pbmNyZW1lbnQ6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLmluY3JlbWVudGFsO3JldHVybiBpP2UuaXNGdW5jdGlvbihpKT9pKHQpOk1hdGguZmxvb3IodCp0KnQvNWU0LXQqdC81MDArMTcqdC8yMDArMSk6MX0sX3ByZWNpc2lvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5zdGVwKTtyZXR1cm4gbnVsbCE9PXRoaXMub3B0aW9ucy5taW4mJihlPU1hdGgubWF4KGUsdGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLm1pbikpKSxlfSxfcHJlY2lzaW9uT2Y6ZnVuY3Rpb24oZSl7dmFyIHQ9IiIrZSxpPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09aT8wOnQubGVuZ3RoLWktMX0sX2FkanVzdFZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LGkscz10aGlzLm9wdGlvbnM7cmV0dXJuIHQ9bnVsbCE9PXMubWluP3MubWluOjAsaT1lLXQsaT1NYXRoLnJvdW5kKGkvcy5zdGVwKSpzLnN0ZXAsZT10K2ksZT1wYXJzZUZsb2F0KGUudG9GaXhlZCh0aGlzLl9wcmVjaXNpb24oKSkpLG51bGwhPT1zLm1heCYmZT5zLm1heD9zLm1heDpudWxsIT09cy5taW4mJnMubWluPmU/cy5taW46ZX0sX3N0b3A6ZnVuY3Rpb24oZSl7dGhpcy5zcGlubmluZyYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSxjbGVhclRpbWVvdXQodGhpcy5tb3VzZXdoZWVsVGltZXIpLHRoaXMuY291bnRlcj0wLHRoaXMuc3Bpbm5pbmc9ITEsdGhpcy5fdHJpZ2dlcigic3RvcCIsZSkpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7aWYoImN1bHR1cmUiPT09ZXx8Im51bWJlckZvcm1hdCI9PT1lKXt2YXIgaT10aGlzLl9wYXJzZSh0aGlzLmVsZW1lbnQudmFsKCkpO3JldHVybiB0aGlzLm9wdGlvbnNbZV09dCx0aGlzLmVsZW1lbnQudmFsKHRoaXMuX2Zvcm1hdChpKSksdm9pZCAwfSgibWF4Ij09PWV8fCJtaW4iPT09ZXx8InN0ZXAiPT09ZSkmJiJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dGhpcy5fcGFyc2UodCkpLCJpY29ucyI9PT1lJiYodGhpcy5idXR0b25zLmZpcnN0KCkuZmluZCgiLnVpLWljb24iKS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaWNvbnMudXApLmFkZENsYXNzKHQudXApLHRoaXMuYnV0dG9ucy5sYXN0KCkuZmluZCgiLnVpLWljb24iKS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaWNvbnMuZG93bikuYWRkQ2xhc3ModC5kb3duKSksdGhpcy5fc3VwZXIoZSx0KSwiZGlzYWJsZWQiPT09ZSYmKHRoaXMud2lkZ2V0KCkudG9nZ2xlQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIiwhIXQpLHRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsISF0KSx0aGlzLmJ1dHRvbnMuYnV0dG9uKHQ/ImRpc2FibGUiOiJlbmFibGUiKSl9LF9zZXRPcHRpb25zOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3VwZXIoZSl9KSxfcGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiYiIiE9PWUmJihlPXdpbmRvdy5HbG9iYWxpemUmJnRoaXMub3B0aW9ucy5udW1iZXJGb3JtYXQ/R2xvYmFsaXplLnBhcnNlRmxvYXQoZSwxMCx0aGlzLm9wdGlvbnMuY3VsdHVyZSk6K2UpLCIiPT09ZXx8aXNOYU4oZSk/bnVsbDplCn0sX2Zvcm1hdDpmdW5jdGlvbihlKXtyZXR1cm4iIj09PWU/IiI6d2luZG93Lkdsb2JhbGl6ZSYmdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdD9HbG9iYWxpemUuZm9ybWF0KGUsdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdCx0aGlzLm9wdGlvbnMuY3VsdHVyZSk6ZX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuYXR0cih7ImFyaWEtdmFsdWVtaW4iOnRoaXMub3B0aW9ucy5taW4sImFyaWEtdmFsdWVtYXgiOnRoaXMub3B0aW9ucy5tYXgsImFyaWEtdmFsdWVub3ciOnRoaXMuX3BhcnNlKHRoaXMuZWxlbWVudC52YWwoKSl9KX0saXNWYWxpZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMudmFsdWUoKTtyZXR1cm4gbnVsbD09PWU/ITE6ZT09PXRoaXMuX2FkanVzdFZhbHVlKGUpfSxfdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgaTsiIiE9PWUmJihpPXRoaXMuX3BhcnNlKGUpLG51bGwhPT1pJiYodHx8KGk9dGhpcy5fYWRqdXN0VmFsdWUoaSkpLGU9dGhpcy5fZm9ybWF0KGkpKSksdGhpcy5lbGVtZW50LnZhbChlKSx0aGlzLl9yZWZyZXNoKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zcGlubmVyLWlucHV0IikucHJvcCgiZGlzYWJsZWQiLCExKS5yZW1vdmVBdHRyKCJhdXRvY29tcGxldGUiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigiYXJpYS12YWx1ZW1pbiIpLnJlbW92ZUF0dHIoImFyaWEtdmFsdWVtYXgiKS5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy51aVNwaW5uZXIucmVwbGFjZVdpdGgodGhpcy5lbGVtZW50KX0sc3RlcFVwOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcFVwKGUpfSksX3N0ZXBVcDpmdW5jdGlvbihlKXt0aGlzLl9zdGFydCgpJiYodGhpcy5fc3BpbigoZXx8MSkqdGhpcy5vcHRpb25zLnN0ZXApLHRoaXMuX3N0b3AoKSl9LHN0ZXBEb3duOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcERvd24oZSl9KSxfc3RlcERvd246ZnVuY3Rpb24oZSl7dGhpcy5fc3RhcnQoKSYmKHRoaXMuX3NwaW4oKGV8fDEpKi10aGlzLm9wdGlvbnMuc3RlcCksdGhpcy5fc3RvcCgpKX0scGFnZVVwOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcFVwKChlfHwxKSp0aGlzLm9wdGlvbnMucGFnZSl9KSxwYWdlRG93bjpzKGZ1bmN0aW9uKGUpe3RoaXMuX3N0ZXBEb3duKChlfHwxKSp0aGlzLm9wdGlvbnMucGFnZSl9KSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocyh0aGlzLl92YWx1ZSkuY2FsbCh0aGlzLGUpLHZvaWQgMCk6dGhpcy5fcGFyc2UodGhpcy5lbGVtZW50LnZhbCgpKX0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudWlTcGlubmVyfX0pLGUud2lkZ2V0KCJ1aS50YWJzIix7dmVyc2lvbjoiMS4xMS40IixkZWxheTozMDAsb3B0aW9uczp7YWN0aXZlOm51bGwsY29sbGFwc2libGU6ITEsZXZlbnQ6ImNsaWNrIixoZWlnaHRTdHlsZToiY29udGVudCIsaGlkZTpudWxsLHNob3c6bnVsbCxhY3RpdmF0ZTpudWxsLGJlZm9yZUFjdGl2YXRlOm51bGwsYmVmb3JlTG9hZDpudWxsLGxvYWQ6bnVsbH0sX2lzTG9jYWw6ZnVuY3Rpb24oKXt2YXIgZT0vIy4qJC87cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBpLHM7dD10LmNsb25lTm9kZSghMSksaT10LmhyZWYucmVwbGFjZShlLCIiKSxzPWxvY2F0aW9uLmhyZWYucmVwbGFjZShlLCIiKTt0cnl7aT1kZWNvZGVVUklDb21wb25lbnQoaSl9Y2F0Y2gobil7fXRyeXtzPWRlY29kZVVSSUNvbXBvbmVudChzKX1jYXRjaChuKXt9cmV0dXJuIHQuaGFzaC5sZW5ndGg+MSYmaT09PXN9fSgpLF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGk9dGhpcy5vcHRpb25zO3RoaXMucnVubmluZz0hMSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXRhYnMgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS50b2dnbGVDbGFzcygidWktdGFicy1jb2xsYXBzaWJsZSIsaS5jb2xsYXBzaWJsZSksdGhpcy5fcHJvY2Vzc1RhYnMoKSxpLmFjdGl2ZT10aGlzLl9pbml0aWFsQWN0aXZlKCksZS5pc0FycmF5KGkuZGlzYWJsZWQpJiYoaS5kaXNhYmxlZD1lLnVuaXF1ZShpLmRpc2FibGVkLmNvbmNhdChlLm1hcCh0aGlzLnRhYnMuZmlsdGVyKCIudWktc3RhdGUtZGlzYWJsZWQiKSxmdW5jdGlvbihlKXtyZXR1cm4gdC50YWJzLmluZGV4KGUpfSkpKS5zb3J0KCkpLHRoaXMuYWN0aXZlPXRoaXMub3B0aW9ucy5hY3RpdmUhPT0hMSYmdGhpcy5hbmNob3JzLmxlbmd0aD90aGlzLl9maW5kQWN0aXZlKGkuYWN0aXZlKTplKCksdGhpcy5fcmVmcmVzaCgpLHRoaXMuYWN0aXZlLmxlbmd0aCYmdGhpcy5sb2FkKGkuYWN0aXZlKX0sX2luaXRpYWxBY3RpdmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYWN0aXZlLGk9dGhpcy5vcHRpb25zLmNvbGxhcHNpYmxlLHM9bG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSk7cmV0dXJuIG51bGw9PT10JiYocyYmdGhpcy50YWJzLmVhY2goZnVuY3Rpb24oaSxuKXtyZXR1cm4gZShuKS5hdHRyKCJhcmlhLWNvbnRyb2xzIik9PT1zPyh0PWksITEpOnZvaWQgMH0pLG51bGw9PT10JiYodD10aGlzLnRhYnMuaW5kZXgodGhpcy50YWJzLmZpbHRlcigiLnVpLXRhYnMtYWN0aXZlIikpKSwobnVsbD09PXR8fC0xPT09dCkmJih0PXRoaXMudGFicy5sZW5ndGg/MDohMSkpLHQhPT0hMSYmKHQ9dGhpcy50YWJzLmluZGV4KHRoaXMudGFicy5lcSh0KSksLTE9PT10JiYodD1pPyExOjApKSwhaSYmdD09PSExJiZ0aGlzLmFuY2hvcnMubGVuZ3RoJiYodD0wKSx0fSxfZ2V0Q3JlYXRlRXZlbnREYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3RhYjp0aGlzLmFjdGl2ZSxwYW5lbDp0aGlzLmFjdGl2ZS5sZW5ndGg/dGhpcy5fZ2V0UGFuZWxGb3JUYWIodGhpcy5hY3RpdmUpOmUoKX19LF90YWJLZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWUodGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50KS5jbG9zZXN0KCJsaSIpLHM9dGhpcy50YWJzLmluZGV4KGkpLG49ITA7aWYoIXRoaXMuX2hhbmRsZVBhZ2VOYXYodCkpe3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLlJJR0hUOmNhc2UgZS51aS5rZXlDb2RlLkRPV046cysrO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlVQOmNhc2UgZS51aS5rZXlDb2RlLkxFRlQ6bj0hMSxzLS07YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5EOnM9dGhpcy5hbmNob3JzLmxlbmd0aC0xO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6cz0wO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlNQQUNFOnJldHVybiB0LnByZXZlbnREZWZhdWx0KCksY2xlYXJUaW1lb3V0KHRoaXMuYWN0aXZhdGluZyksdGhpcy5fYWN0aXZhdGUocyksdm9pZCAwO2Nhc2UgZS51aS5rZXlDb2RlLkVOVEVSOnJldHVybiB0LnByZXZlbnREZWZhdWx0KCksY2xlYXJUaW1lb3V0KHRoaXMuYWN0aXZhdGluZyksdGhpcy5fYWN0aXZhdGUocz09PXRoaXMub3B0aW9ucy5hY3RpdmU/ITE6cyksdm9pZCAwO2RlZmF1bHQ6cmV0dXJufXQucHJldmVudERlZmF1bHQoKSxjbGVhclRpbWVvdXQodGhpcy5hY3RpdmF0aW5nKSxzPXRoaXMuX2ZvY3VzTmV4dFRhYihzLG4pLHQuY3RybEtleXx8dC5tZXRhS2V5fHwoaS5hdHRyKCJhcmlhLXNlbGVjdGVkIiwiZmFsc2UiKSx0aGlzLnRhYnMuZXEocykuYXR0cigiYXJpYS1zZWxlY3RlZCIsInRydWUiKSx0aGlzLmFjdGl2YXRpbmc9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLm9wdGlvbigiYWN0aXZlIixzKX0sdGhpcy5kZWxheSkpfX0sX3BhbmVsS2V5ZG93bjpmdW5jdGlvbih0KXt0aGlzLl9oYW5kbGVQYWdlTmF2KHQpfHx0LmN0cmxLZXkmJnQua2V5Q29kZT09PWUudWkua2V5Q29kZS5VUCYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLmFjdGl2ZS5mb2N1cygpKX0sX2hhbmRsZVBhZ2VOYXY6ZnVuY3Rpb24odCl7cmV0dXJuIHQuYWx0S2V5JiZ0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuUEFHRV9VUD8odGhpcy5fYWN0aXZhdGUodGhpcy5fZm9jdXNOZXh0VGFiKHRoaXMub3B0aW9ucy5hY3RpdmUtMSwhMSkpLCEwKTp0LmFsdEtleSYmdC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLlBBR0VfRE9XTj8odGhpcy5fYWN0aXZhdGUodGhpcy5fZm9jdXNOZXh0VGFiKHRoaXMub3B0aW9ucy5hY3RpdmUrMSwhMCkpLCEwKTp2b2lkIDB9LF9maW5kTmV4dFRhYjpmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHMoKXtyZXR1cm4gdD5uJiYodD0wKSwwPnQmJih0PW4pLHR9Zm9yKHZhciBuPXRoaXMudGFicy5sZW5ndGgtMTstMSE9PWUuaW5BcnJheShzKCksdGhpcy5vcHRpb25zLmRpc2FibGVkKTspdD1pP3QrMTp0LTE7cmV0dXJuIHR9LF9mb2N1c05leHRUYWI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT10aGlzLl9maW5kTmV4dFRhYihlLHQpLHRoaXMudGFicy5lcShlKS5mb2N1cygpLGV9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4iYWN0aXZlIj09PWU/KHRoaXMuX2FjdGl2YXRlKHQpLHZvaWQgMCk6ImRpc2FibGVkIj09PWU/KHRoaXMuX3NldHVwRGlzYWJsZWQodCksdm9pZCAwKToodGhpcy5fc3VwZXIoZSx0KSwiY29sbGFwc2libGUiPT09ZSYmKHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktdGFicy1jb2xsYXBzaWJsZSIsdCksdHx8dGhpcy5vcHRpb25zLmFjdGl2ZSE9PSExfHx0aGlzLl9hY3RpdmF0ZSgwKSksImV2ZW50Ij09PWUmJnRoaXMuX3NldHVwRXZlbnRzKHQpLCJoZWlnaHRTdHlsZSI9PT1lJiZ0aGlzLl9zZXR1cEhlaWdodFN0eWxlKHQpLHZvaWQgMCl9LF9zYW5pdGl6ZVNlbGVjdG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlP2UucmVwbGFjZSgvWyEiJCUmJygpKissLlwvOjs8PT4/QFxbXF1cXmB7fH1+XS9nLCJcXCQmIik6IiJ9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMsaT10aGlzLnRhYmxpc3QuY2hpbGRyZW4oIjpoYXMoYVtocmVmXSkiKTt0LmRpc2FibGVkPWUubWFwKGkuZmlsdGVyKCIudWktc3RhdGUtZGlzYWJsZWQiKSxmdW5jdGlvbihlKXtyZXR1cm4gaS5pbmRleChlKX0pLHRoaXMuX3Byb2Nlc3NUYWJzKCksdC5hY3RpdmUhPT0hMSYmdGhpcy5hbmNob3JzLmxlbmd0aD90aGlzLmFjdGl2ZS5sZW5ndGgmJiFlLmNvbnRhaW5zKHRoaXMudGFibGlzdFswXSx0aGlzLmFjdGl2ZVswXSk/dGhpcy50YWJzLmxlbmd0aD09PXQuZGlzYWJsZWQubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnRoaXMuX2FjdGl2YXRlKHRoaXMuX2ZpbmROZXh0VGFiKE1hdGgubWF4KDAsdC5hY3RpdmUtMSksITEpKTp0LmFjdGl2ZT10aGlzLnRhYnMuaW5kZXgodGhpcy5hY3RpdmUpOih0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpLHRoaXMuX3JlZnJlc2goKX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLl9zZXR1cERpc2FibGVkKHRoaXMub3B0aW9ucy5kaXNhYmxlZCksdGhpcy5fc2V0dXBFdmVudHModGhpcy5vcHRpb25zLmV2ZW50KSx0aGlzLl9zZXR1cEhlaWdodFN0eWxlKHRoaXMub3B0aW9ucy5oZWlnaHRTdHlsZSksdGhpcy50YWJzLm5vdCh0aGlzLmFjdGl2ZSkuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsdGFiSW5kZXg6LTF9KSx0aGlzLnBhbmVscy5ub3QodGhpcy5fZ2V0UGFuZWxGb3JUYWIodGhpcy5hY3RpdmUpKS5oaWRlKCkuYXR0cih7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KSx0aGlzLmFjdGl2ZS5sZW5ndGg/KHRoaXMuYWN0aXZlLmFkZENsYXNzKCJ1aS10YWJzLWFjdGl2ZSB1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pLHRoaXMuX2dldFBhbmVsRm9yVGFiKHRoaXMuYWN0aXZlKS5zaG93KCkuYXR0cih7ImFyaWEtaGlkZGVuIjoiZmFsc2UifSkpOnRoaXMudGFicy5lcSgwKS5hdHRyKCJ0YWJJbmRleCIsMCl9LF9wcm9jZXNzVGFiczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsaT10aGlzLnRhYnMscz10aGlzLmFuY2hvcnMsbj10aGlzLnBhbmVsczt0aGlzLnRhYmxpc3Q9dGhpcy5fZ2V0TGlzdCgpLmFkZENsYXNzKCJ1aS10YWJzLW5hdiB1aS1oZWxwZXItcmVzZXQgdWktaGVscGVyLWNsZWFyZml4IHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWFsbCIpLmF0dHIoInJvbGUiLCJ0YWJsaXN0IikuZGVsZWdhdGUoIj4gbGkiLCJtb3VzZWRvd24iK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24odCl7ZSh0aGlzKS5pcygiLnVpLXN0YXRlLWRpc2FibGVkIikmJnQucHJldmVudERlZmF1bHQoKX0pLmRlbGVnYXRlKCIudWktdGFicy1hbmNob3IiLCJmb2N1cyIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2UodGhpcykuY2xvc2VzdCgibGkiKS5pcygiLnVpLXN0YXRlLWRpc2FibGVkIikmJnRoaXMuYmx1cigpfSksdGhpcy50YWJzPXRoaXMudGFibGlzdC5maW5kKCI+IGxpOmhhcyhhW2hyZWZdKSIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci10b3AiKS5hdHRyKHtyb2xlOiJ0YWIiLHRhYkluZGV4Oi0xfSksdGhpcy5hbmNob3JzPXRoaXMudGFicy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gZSgiYSIsdGhpcylbMF19KS5hZGRDbGFzcygidWktdGFicy1hbmNob3IiKS5hdHRyKHtyb2xlOiJwcmVzZW50YXRpb24iLHRhYkluZGV4Oi0xfSksdGhpcy5wYW5lbHM9ZSgpLHRoaXMuYW5jaG9ycy5lYWNoKGZ1bmN0aW9uKGkscyl7dmFyIG4sYSxvLHI9ZShzKS51bmlxdWVJZCgpLmF0dHIoImlkIiksaD1lKHMpLmNsb3Nlc3QoImxpIiksbD1oLmF0dHIoImFyaWEtY29udHJvbHMiKTt0Ll9pc0xvY2FsKHMpPyhuPXMuaGFzaCxvPW4uc3Vic3RyaW5nKDEpLGE9dC5lbGVtZW50LmZpbmQodC5fc2FuaXRpemVTZWxlY3RvcihuKSkpOihvPWguYXR0cigiYXJpYS1jb250cm9scyIpfHxlKHt9KS51bmlxdWVJZCgpWzBdLmlkLG49IiMiK28sYT10LmVsZW1lbnQuZmluZChuKSxhLmxlbmd0aHx8KGE9dC5fY3JlYXRlUGFuZWwobyksYS5pbnNlcnRBZnRlcih0LnBhbmVsc1tpLTFdfHx0LnRhYmxpc3QpKSxhLmF0dHIoImFyaWEtbGl2ZSIsInBvbGl0ZSIpKSxhLmxlbmd0aCYmKHQucGFuZWxzPXQucGFuZWxzLmFkZChhKSksbCYmaC5kYXRhKCJ1aS10YWJzLWFyaWEtY29udHJvbHMiLGwpLGguYXR0cih7ImFyaWEtY29udHJvbHMiOm8sImFyaWEtbGFiZWxsZWRieSI6cn0pLGEuYXR0cigiYXJpYS1sYWJlbGxlZGJ5IixyKX0pLHRoaXMucGFuZWxzLmFkZENsYXNzKCJ1aS10YWJzLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1ib3R0b20iKS5hdHRyKCJyb2xlIiwidGFicGFuZWwiKSxpJiYodGhpcy5fb2ZmKGkubm90KHRoaXMudGFicykpLHRoaXMuX29mZihzLm5vdCh0aGlzLmFuY2hvcnMpKSx0aGlzLl9vZmYobi5ub3QodGhpcy5wYW5lbHMpKSl9LF9nZXRMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFibGlzdHx8dGhpcy5lbGVtZW50LmZpbmQoIm9sLHVsIikuZXEoMCl9LF9jcmVhdGVQYW5lbDpmdW5jdGlvbih0KXtyZXR1cm4gZSgiPGRpdj4iKS5hdHRyKCJpZCIsdCkuYWRkQ2xhc3MoInVpLXRhYnMtcGFuZWwgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIpLmRhdGEoInVpLXRhYnMtZGVzdHJveSIsITApfSxfc2V0dXBEaXNhYmxlZDpmdW5jdGlvbih0KXtlLmlzQXJyYXkodCkmJih0Lmxlbmd0aD90Lmxlbmd0aD09PXRoaXMuYW5jaG9ycy5sZW5ndGgmJih0PSEwKTp0PSExKTtmb3IodmFyIGkscz0wO2k9dGhpcy50YWJzW3NdO3MrKyl0PT09ITB8fC0xIT09ZS5pbkFycmF5KHMsdCk/ZShpKS5hZGRDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKS5hdHRyKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpOmUoaSkucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikucmVtb3ZlQXR0cigiYXJpYS1kaXNhYmxlZCIpO3RoaXMub3B0aW9ucy5kaXNhYmxlZD10fSxfc2V0dXBFdmVudHM6ZnVuY3Rpb24odCl7dmFyIGk9e307dCYmZS5lYWNoKHQuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe2lbdF09Il9ldmVudEhhbmRsZXIifSksdGhpcy5fb2ZmKHRoaXMuYW5jaG9ycy5hZGQodGhpcy50YWJzKS5hZGQodGhpcy5wYW5lbHMpKSx0aGlzLl9vbighMCx0aGlzLmFuY2hvcnMse2NsaWNrOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKX19KSx0aGlzLl9vbih0aGlzLmFuY2hvcnMsaSksdGhpcy5fb24odGhpcy50YWJzLHtrZXlkb3duOiJfdGFiS2V5ZG93biJ9KSx0aGlzLl9vbih0aGlzLnBhbmVscyx7a2V5ZG93bjoiX3BhbmVsS2V5ZG93biJ9KSx0aGlzLl9mb2N1c2FibGUodGhpcy50YWJzKSx0aGlzLl9ob3ZlcmFibGUodGhpcy50YWJzKX0sX3NldHVwSGVpZ2h0U3R5bGU6ZnVuY3Rpb24odCl7dmFyIGkscz10aGlzLmVsZW1lbnQucGFyZW50KCk7ImZpbGwiPT09dD8oaT1zLmhlaWdodCgpLGktPXRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpLXRoaXMuZWxlbWVudC5oZWlnaHQoKSx0aGlzLmVsZW1lbnQuc2libGluZ3MoIjp2aXNpYmxlIikuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcykscz10LmNzcygicG9zaXRpb24iKTsiYWJzb2x1dGUiIT09cyYmImZpeGVkIiE9PXMmJihpLT10Lm91dGVySGVpZ2h0KCEwKSl9KSx0aGlzLmVsZW1lbnQuY2hpbGRyZW4oKS5ub3QodGhpcy5wYW5lbHMpLmVhY2goZnVuY3Rpb24oKXtpLT1lKHRoaXMpLm91dGVySGVpZ2h0KCEwKX0pLHRoaXMucGFuZWxzLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmhlaWdodChNYXRoLm1heCgwLGktZSh0aGlzKS5pbm5lckhlaWdodCgpK2UodGhpcykuaGVpZ2h0KCkpKX0pLmNzcygib3ZlcmZsb3ciLCJhdXRvIikpOiJhdXRvIj09PXQmJihpPTAsdGhpcy5wYW5lbHMuZWFjaChmdW5jdGlvbigpe2k9TWF0aC5tYXgoaSxlKHRoaXMpLmhlaWdodCgiIikuaGVpZ2h0KCkpfSkuaGVpZ2h0KGkpKX0sX2V2ZW50SGFuZGxlcjpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnMscz10aGlzLmFjdGl2ZSxuPWUodC5jdXJyZW50VGFyZ2V0KSxhPW4uY2xvc2VzdCgibGkiKSxvPWFbMF09PT1zWzBdLHI9byYmaS5jb2xsYXBzaWJsZSxoPXI/ZSgpOnRoaXMuX2dldFBhbmVsRm9yVGFiKGEpLGw9cy5sZW5ndGg/dGhpcy5fZ2V0UGFuZWxGb3JUYWIocyk6ZSgpLHU9e29sZFRhYjpzLG9sZFBhbmVsOmwsbmV3VGFiOnI/ZSgpOmEsbmV3UGFuZWw6aH07dC5wcmV2ZW50RGVmYXVsdCgpLGEuaGFzQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIil8fGEuaGFzQ2xhc3MoInVpLXRhYnMtbG9hZGluZyIpfHx0aGlzLnJ1bm5pbmd8fG8mJiFpLmNvbGxhcHNpYmxlfHx0aGlzLl90cmlnZ2VyKCJiZWZvcmVBY3RpdmF0ZSIsdCx1KT09PSExfHwoaS5hY3RpdmU9cj8hMTp0aGlzLnRhYnMuaW5kZXgoYSksdGhpcy5hY3RpdmU9bz9lKCk6YSx0aGlzLnhociYmdGhpcy54aHIuYWJvcnQoKSxsLmxlbmd0aHx8aC5sZW5ndGh8fGUuZXJyb3IoImpRdWVyeSBVSSBUYWJzOiBNaXNtYXRjaGluZyBmcmFnbWVudCBpZGVudGlmaWVyLiIpLGgubGVuZ3RoJiZ0aGlzLmxvYWQodGhpcy50YWJzLmluZGV4KGEpLHQpLHRoaXMuX3RvZ2dsZSh0LHUpKX0sX3RvZ2dsZTpmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHMoKXthLnJ1bm5pbmc9ITEsYS5fdHJpZ2dlcigiYWN0aXZhdGUiLHQsaSl9ZnVuY3Rpb24gbigpe2kubmV3VGFiLmNsb3Nlc3QoImxpIikuYWRkQ2xhc3MoInVpLXRhYnMtYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLG8ubGVuZ3RoJiZhLm9wdGlvbnMuc2hvdz9hLl9zaG93KG8sYS5vcHRpb25zLnNob3cscyk6KG8uc2hvdygpLHMoKSl9dmFyIGE9dGhpcyxvPWkubmV3UGFuZWwscj1pLm9sZFBhbmVsO3RoaXMucnVubmluZz0hMCxyLmxlbmd0aCYmdGhpcy5vcHRpb25zLmhpZGU/dGhpcy5faGlkZShyLHRoaXMub3B0aW9ucy5oaWRlLGZ1bmN0aW9uKCl7aS5vbGRUYWIuY2xvc2VzdCgibGkiKS5yZW1vdmVDbGFzcygidWktdGFicy1hY3RpdmUgdWktc3RhdGUtYWN0aXZlIiksbigpfSk6KGkub2xkVGFiLmNsb3Nlc3QoImxpIikucmVtb3ZlQ2xhc3MoInVpLXRhYnMtYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLHIuaGlkZSgpLG4oKSksci5hdHRyKCJhcmlhLWhpZGRlbiIsInRydWUiKSxpLm9sZFRhYi5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6ImZhbHNlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIn0pLG8ubGVuZ3RoJiZyLmxlbmd0aD9pLm9sZFRhYi5hdHRyKCJ0YWJJbmRleCIsLTEpOm8ubGVuZ3RoJiZ0aGlzLnRhYnMuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDA9PT1lKHRoaXMpLmF0dHIoInRhYkluZGV4Iil9KS5hdHRyKCJ0YWJJbmRleCIsLTEpLG8uYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLGkubmV3VGFiLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoidHJ1ZSIsImFyaWEtZXhwYW5kZWQiOiJ0cnVlIix0YWJJbmRleDowfSl9LF9hY3RpdmF0ZTpmdW5jdGlvbih0KXt2YXIgaSxzPXRoaXMuX2ZpbmRBY3RpdmUodCk7c1swXSE9PXRoaXMuYWN0aXZlWzBdJiYocy5sZW5ndGh8fChzPXRoaXMuYWN0aXZlKSxpPXMuZmluZCgiLnVpLXRhYnMtYW5jaG9yIilbMF0sdGhpcy5fZXZlbnRIYW5kbGVyKHt0YXJnZXQ6aSxjdXJyZW50VGFyZ2V0OmkscHJldmVudERlZmF1bHQ6ZS5ub29wfSkpfSxfZmluZEFjdGl2ZTpmdW5jdGlvbih0KXtyZXR1cm4gdD09PSExP2UoKTp0aGlzLnRhYnMuZXEodCl9LF9nZXRJbmRleDpmdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJihlPXRoaXMuYW5jaG9ycy5pbmRleCh0aGlzLmFuY2hvcnMuZmlsdGVyKCJbaHJlZiQ9JyIrZSsiJ10iKSkpLGV9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy54aHImJnRoaXMueGhyLmFib3J0KCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS10YWJzIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXRhYnMtY29sbGFwc2libGUiKSx0aGlzLnRhYmxpc3QucmVtb3ZlQ2xhc3MoInVpLXRhYnMtbmF2IHVpLWhlbHBlci1yZXNldCB1aS1oZWxwZXItY2xlYXJmaXggdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIikucmVtb3ZlQXR0cigicm9sZSIpLHRoaXMuYW5jaG9ycy5yZW1vdmVDbGFzcygidWktdGFicy1hbmNob3IiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVVbmlxdWVJZCgpLHRoaXMudGFibGlzdC51bmJpbmQodGhpcy5ldmVudE5hbWVzcGFjZSksdGhpcy50YWJzLmFkZCh0aGlzLnBhbmVscykuZWFjaChmdW5jdGlvbigpe2UuZGF0YSh0aGlzLCJ1aS10YWJzLWRlc3Ryb3kiKT9lKHRoaXMpLnJlbW92ZSgpOmUodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWRlZmF1bHQgdWktc3RhdGUtYWN0aXZlIHVpLXN0YXRlLWRpc2FibGVkIHVpLWNvcm5lci10b3AgdWktY29ybmVyLWJvdHRvbSB1aS13aWRnZXQtY29udGVudCB1aS10YWJzLWFjdGl2ZSB1aS10YWJzLXBhbmVsIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVBdHRyKCJhcmlhLWxpdmUiKS5yZW1vdmVBdHRyKCJhcmlhLWJ1c3kiKS5yZW1vdmVBdHRyKCJhcmlhLXNlbGVjdGVkIikucmVtb3ZlQXR0cigiYXJpYS1sYWJlbGxlZGJ5IikucmVtb3ZlQXR0cigiYXJpYS1oaWRkZW4iKS5yZW1vdmVBdHRyKCJhcmlhLWV4cGFuZGVkIikucmVtb3ZlQXR0cigicm9sZSIpfSksdGhpcy50YWJzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5kYXRhKCJ1aS10YWJzLWFyaWEtY29udHJvbHMiKTtpP3QuYXR0cigiYXJpYS1jb250cm9scyIsaSkucmVtb3ZlRGF0YSgidWktdGFicy1hcmlhLWNvbnRyb2xzIik6dC5yZW1vdmVBdHRyKCJhcmlhLWNvbnRyb2xzIil9KSx0aGlzLnBhbmVscy5zaG93KCksImNvbnRlbnQiIT09dGhpcy5vcHRpb25zLmhlaWdodFN0eWxlJiZ0aGlzLnBhbmVscy5jc3MoImhlaWdodCIsIiIpfSxlbmFibGU6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLmRpc2FibGVkO2khPT0hMSYmKHZvaWQgMD09PXQ/aT0hMToodD10aGlzLl9nZXRJbmRleCh0KSxpPWUuaXNBcnJheShpKT9lLm1hcChpLGZ1bmN0aW9uKGUpe3JldHVybiBlIT09dD9lOm51bGx9KTplLm1hcCh0aGlzLnRhYnMsZnVuY3Rpb24oZSxpKXtyZXR1cm4gaSE9PXQ/aTpudWxsfSkpLHRoaXMuX3NldHVwRGlzYWJsZWQoaSkpfSxkaXNhYmxlOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucy5kaXNhYmxlZDtpZihpIT09ITApe2lmKHZvaWQgMD09PXQpaT0hMDtlbHNle2lmKHQ9dGhpcy5fZ2V0SW5kZXgodCksLTEhPT1lLmluQXJyYXkodCxpKSlyZXR1cm47aT1lLmlzQXJyYXkoaSk/ZS5tZXJnZShbdF0saSkuc29ydCgpOlt0XX10aGlzLl9zZXR1cERpc2FibGVkKGkpfX0sbG9hZDpmdW5jdGlvbih0LGkpe3Q9dGhpcy5fZ2V0SW5kZXgodCk7dmFyIHM9dGhpcyxuPXRoaXMudGFicy5lcSh0KSxhPW4uZmluZCgiLnVpLXRhYnMtYW5jaG9yIiksbz10aGlzLl9nZXRQYW5lbEZvclRhYihuKSxyPXt0YWI6bixwYW5lbDpvfSxoPWZ1bmN0aW9uKGUsdCl7ImFib3J0Ij09PXQmJnMucGFuZWxzLnN0b3AoITEsITApLG4ucmVtb3ZlQ2xhc3MoInVpLXRhYnMtbG9hZGluZyIpLG8ucmVtb3ZlQXR0cigiYXJpYS1idXN5IiksZT09PXMueGhyJiZkZWxldGUgcy54aHJ9O3RoaXMuX2lzTG9jYWwoYVswXSl8fCh0aGlzLnhocj1lLmFqYXgodGhpcy5fYWpheFNldHRpbmdzKGEsaSxyKSksdGhpcy54aHImJiJjYW5jZWxlZCIhPT10aGlzLnhoci5zdGF0dXNUZXh0JiYobi5hZGRDbGFzcygidWktdGFicy1sb2FkaW5nIiksby5hdHRyKCJhcmlhLWJ1c3kiLCJ0cnVlIiksdGhpcy54aHIuZG9uZShmdW5jdGlvbihlLHQsbil7c2V0VGltZW91dChmdW5jdGlvbigpe28uaHRtbChlKSxzLl90cmlnZ2VyKCJsb2FkIixpLHIpLGgobix0KX0sMSl9KS5mYWlsKGZ1bmN0aW9uKGUsdCl7c2V0VGltZW91dChmdW5jdGlvbigpe2goZSx0KX0sMSl9KSkpfSxfYWpheFNldHRpbmdzOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj10aGlzO3JldHVybnt1cmw6dC5hdHRyKCJocmVmIiksYmVmb3JlU2VuZDpmdW5jdGlvbih0LGEpe3JldHVybiBuLl90cmlnZ2VyKCJiZWZvcmVMb2FkIixpLGUuZXh0ZW5kKHtqcVhIUjp0LGFqYXhTZXR0aW5nczphfSxzKSl9fX0sX2dldFBhbmVsRm9yVGFiOmZ1bmN0aW9uKHQpe3ZhciBpPWUodCkuYXR0cigiYXJpYS1jb250cm9scyIpO3JldHVybiB0aGlzLmVsZW1lbnQuZmluZCh0aGlzLl9zYW5pdGl6ZVNlbGVjdG9yKCIjIitpKSl9fSksZS53aWRnZXQoInVpLnRvb2x0aXAiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2NvbnRlbnQ6ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLmF0dHIoInRpdGxlIil8fCIiO3JldHVybiBlKCI8YT4iKS50ZXh0KHQpLmh0bWwoKX0saGlkZTohMCxpdGVtczoiW3RpdGxlXTpub3QoW2Rpc2FibGVkXSkiLHBvc2l0aW9uOntteToibGVmdCB0b3ArMTUiLGF0OiJsZWZ0IGJvdHRvbSIsY29sbGlzaW9uOiJmbGlwZml0IGZsaXAifSxzaG93OiEwLHRvb2x0aXBDbGFzczpudWxsLHRyYWNrOiExLGNsb3NlOm51bGwsb3BlbjpudWxsfSxfYWRkRGVzY3JpYmVkQnk6ZnVuY3Rpb24odCxpKXt2YXIgcz0odC5hdHRyKCJhcmlhLWRlc2NyaWJlZGJ5Iil8fCIiKS5zcGxpdCgvXHMrLyk7cy5wdXNoKGkpLHQuZGF0YSgidWktdG9vbHRpcC1pZCIsaSkuYXR0cigiYXJpYS1kZXNjcmliZWRieSIsZS50cmltKHMuam9pbigiICIpKSl9LF9yZW1vdmVEZXNjcmliZWRCeTpmdW5jdGlvbih0KXt2YXIgaT10LmRhdGEoInVpLXRvb2x0aXAtaWQiKSxzPSh0LmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiKXx8IiIpLnNwbGl0KC9ccysvKSxuPWUuaW5BcnJheShpLHMpOy0xIT09biYmcy5zcGxpY2UobiwxKSx0LnJlbW92ZURhdGEoInVpLXRvb2x0aXAtaWQiKSxzPWUudHJpbShzLmpvaW4oIiAiKSkscz90LmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiLHMpOnQucmVtb3ZlQXR0cigiYXJpYS1kZXNjcmliZWRieSIpfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5fb24oe21vdXNlb3Zlcjoib3BlbiIsZm9jdXNpbjoib3BlbiJ9KSx0aGlzLnRvb2x0aXBzPXt9LHRoaXMucGFyZW50cz17fSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuX2Rpc2FibGUoKSx0aGlzLmxpdmVSZWdpb249ZSgiPGRpdj4iKS5hdHRyKHtyb2xlOiJsb2ciLCJhcmlhLWxpdmUiOiJhc3NlcnRpdmUiLCJhcmlhLXJlbGV2YW50IjoiYWRkaXRpb25zIn0pLmFkZENsYXNzKCJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiKS5hcHBlbmRUbyh0aGlzLmRvY3VtZW50WzBdLmJvZHkpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcztyZXR1cm4iZGlzYWJsZWQiPT09dD8odGhpc1tpPyJfZGlzYWJsZSI6Il9lbmFibGUiXSgpLHRoaXMub3B0aW9uc1t0XT1pLHZvaWQgMCk6KHRoaXMuX3N1cGVyKHQsaSksImNvbnRlbnQiPT09dCYmZS5lYWNoKHRoaXMudG9vbHRpcHMsZnVuY3Rpb24oZSx0KXtzLl91cGRhdGVDb250ZW50KHQuZWxlbWVudCl9KSx2b2lkIDApfSxfZGlzYWJsZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7ZS5lYWNoKHRoaXMudG9vbHRpcHMsZnVuY3Rpb24oaSxzKXt2YXIgbj1lLkV2ZW50KCJibHVyIik7bi50YXJnZXQ9bi5jdXJyZW50VGFyZ2V0PXMuZWxlbWVudFswXSx0LmNsb3NlKG4sITApfSksdGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5hZGRCYWNrKCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcyk7dC5pcygiW3RpdGxlXSIpJiZ0LmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiLHQuYXR0cigidGl0bGUiKSkucmVtb3ZlQXR0cigidGl0bGUiKX0pfSxfZW5hYmxlOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5hZGRCYWNrKCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcyk7dC5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIikmJnQuYXR0cigidGl0bGUiLHQuZGF0YSgidWktdG9vbHRpcC10aXRsZSIpKX0pfSxvcGVuOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz1lKHQ/dC50YXJnZXQ6dGhpcy5lbGVtZW50KS5jbG9zZXN0KHRoaXMub3B0aW9ucy5pdGVtcyk7cy5sZW5ndGgmJiFzLmRhdGEoInVpLXRvb2x0aXAtaWQiKSYmKHMuYXR0cigidGl0bGUiKSYmcy5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIixzLmF0dHIoInRpdGxlIikpLHMuZGF0YSgidWktdG9vbHRpcC1vcGVuIiwhMCksdCYmIm1vdXNlb3ZlciI9PT10LnR5cGUmJnMucGFyZW50cygpLmVhY2goZnVuY3Rpb24oKXt2YXIgdCxzPWUodGhpcyk7cy5kYXRhKCJ1aS10b29sdGlwLW9wZW4iKSYmKHQ9ZS5FdmVudCgiYmx1ciIpLHQudGFyZ2V0PXQuY3VycmVudFRhcmdldD10aGlzLGkuY2xvc2UodCwhMCkpLHMuYXR0cigidGl0bGUiKSYmKHMudW5pcXVlSWQoKSxpLnBhcmVudHNbdGhpcy5pZF09e2VsZW1lbnQ6dGhpcyx0aXRsZTpzLmF0dHIoInRpdGxlIil9LHMuYXR0cigidGl0bGUiLCIiKSl9KSx0aGlzLl9yZWdpc3RlckNsb3NlSGFuZGxlcnModCxzKSx0aGlzLl91cGRhdGVDb250ZW50KHMsdCkpfSxfdXBkYXRlQ29udGVudDpmdW5jdGlvbihlLHQpe3ZhciBpLHM9dGhpcy5vcHRpb25zLmNvbnRlbnQsbj10aGlzLGE9dD90LnR5cGU6bnVsbDtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHM/dGhpcy5fb3Blbih0LGUscyk6KGk9cy5jYWxsKGVbMF0sZnVuY3Rpb24oaSl7bi5fZGVsYXkoZnVuY3Rpb24oKXtlLmRhdGEoInVpLXRvb2x0aXAtb3BlbiIpJiYodCYmKHQudHlwZT1hKSx0aGlzLl9vcGVuKHQsZSxpKSl9KX0pLGkmJnRoaXMuX29wZW4odCxlLGkpLHZvaWQgMCl9LF9vcGVuOmZ1bmN0aW9uKHQsaSxzKXtmdW5jdGlvbiBuKGUpe2wub2Y9ZSxvLmlzKCI6aGlkZGVuIil8fG8ucG9zaXRpb24obCl9dmFyIGEsbyxyLGgsbD1lLmV4dGVuZCh7fSx0aGlzLm9wdGlvbnMucG9zaXRpb24pO2lmKHMpe2lmKGE9dGhpcy5fZmluZChpKSlyZXR1cm4gYS50b29sdGlwLmZpbmQoIi51aS10b29sdGlwLWNvbnRlbnQiKS5odG1sKHMpLHZvaWQgMDtpLmlzKCJbdGl0bGVdIikmJih0JiYibW91c2VvdmVyIj09PXQudHlwZT9pLmF0dHIoInRpdGxlIiwiIik6aS5yZW1vdmVBdHRyKCJ0aXRsZSIpKSxhPXRoaXMuX3Rvb2x0aXAoaSksbz1hLnRvb2x0aXAsdGhpcy5fYWRkRGVzY3JpYmVkQnkoaSxvLmF0dHIoImlkIikpLG8uZmluZCgiLnVpLXRvb2x0aXAtY29udGVudCIpLmh0bWwocyksdGhpcy5saXZlUmVnaW9uLmNoaWxkcmVuKCkuaGlkZSgpLHMuY2xvbmU/KGg9cy5jbG9uZSgpLGgucmVtb3ZlQXR0cigiaWQiKS5maW5kKCJbaWRdIikucmVtb3ZlQXR0cigiaWQiKSk6aD1zLGUoIjxkaXY+IikuaHRtbChoKS5hcHBlbmRUbyh0aGlzLmxpdmVSZWdpb24pLHRoaXMub3B0aW9ucy50cmFjayYmdCYmL15tb3VzZS8udGVzdCh0LnR5cGUpPyh0aGlzLl9vbih0aGlzLmRvY3VtZW50LHttb3VzZW1vdmU6bn0pLG4odCkpOm8ucG9zaXRpb24oZS5leHRlbmQoe29mOml9LHRoaXMub3B0aW9ucy5wb3NpdGlvbikpLG8uaGlkZSgpLHRoaXMuX3Nob3cobyx0aGlzLm9wdGlvbnMuc2hvdyksdGhpcy5vcHRpb25zLnNob3cmJnRoaXMub3B0aW9ucy5zaG93LmRlbGF5JiYocj10aGlzLmRlbGF5ZWRTaG93PXNldEludGVydmFsKGZ1bmN0aW9uKCl7by5pcygiOnZpc2libGUiKSYmKG4obC5vZiksY2xlYXJJbnRlcnZhbChyKSl9LGUuZnguaW50ZXJ2YWwpKSx0aGlzLl90cmlnZ2VyKCJvcGVuIix0LHt0b29sdGlwOm99KX19LF9yZWdpc3RlckNsb3NlSGFuZGxlcnM6ZnVuY3Rpb24odCxpKXt2YXIgcz17a2V5dXA6ZnVuY3Rpb24odCl7aWYodC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLkVTQ0FQRSl7dmFyIHM9ZS5FdmVudCh0KTtzLmN1cnJlbnRUYXJnZXQ9aVswXSx0aGlzLmNsb3NlKHMsITApfX19O2lbMF0hPT10aGlzLmVsZW1lbnRbMF0mJihzLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuX3JlbW92ZVRvb2x0aXAodGhpcy5fZmluZChpKS50b29sdGlwKX0pLHQmJiJtb3VzZW92ZXIiIT09dC50eXBlfHwocy5tb3VzZWxlYXZlPSJjbG9zZSIpLHQmJiJmb2N1c2luIiE9PXQudHlwZXx8KHMuZm9jdXNvdXQ9ImNsb3NlIiksdGhpcy5fb24oITAsaSxzKX0sY2xvc2U6ZnVuY3Rpb24odCl7dmFyIGkscz10aGlzLG49ZSh0P3QuY3VycmVudFRhcmdldDp0aGlzLmVsZW1lbnQpLGE9dGhpcy5fZmluZChuKTtyZXR1cm4gYT8oaT1hLnRvb2x0aXAsYS5jbG9zaW5nfHwoY2xlYXJJbnRlcnZhbCh0aGlzLmRlbGF5ZWRTaG93KSxuLmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiKSYmIW4uYXR0cigidGl0bGUiKSYmbi5hdHRyKCJ0aXRsZSIsbi5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIikpLHRoaXMuX3JlbW92ZURlc2NyaWJlZEJ5KG4pLGEuaGlkaW5nPSEwLGkuc3RvcCghMCksdGhpcy5faGlkZShpLHRoaXMub3B0aW9ucy5oaWRlLGZ1bmN0aW9uKCl7cy5fcmVtb3ZlVG9vbHRpcChlKHRoaXMpKX0pLG4ucmVtb3ZlRGF0YSgidWktdG9vbHRpcC1vcGVuIiksdGhpcy5fb2ZmKG4sIm1vdXNlbGVhdmUgZm9jdXNvdXQga2V5dXAiKSxuWzBdIT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLl9vZmYobiwicmVtb3ZlIiksdGhpcy5fb2ZmKHRoaXMuZG9jdW1lbnQsIm1vdXNlbW92ZSIpLHQmJiJtb3VzZWxlYXZlIj09PXQudHlwZSYmZS5lYWNoKHRoaXMucGFyZW50cyxmdW5jdGlvbih0LGkpe2UoaS5lbGVtZW50KS5hdHRyKCJ0aXRsZSIsaS50aXRsZSksZGVsZXRlIHMucGFyZW50c1t0XX0pLGEuY2xvc2luZz0hMCx0aGlzLl90cmlnZ2VyKCJjbG9zZSIsdCx7dG9vbHRpcDppfSksYS5oaWRpbmd8fChhLmNsb3Npbmc9ITEpKSx2b2lkIDApOihuLnJlbW92ZURhdGEoInVpLXRvb2x0aXAtb3BlbiIpLHZvaWQgMCl9LF90b29sdGlwOmZ1bmN0aW9uKHQpe3ZhciBpPWUoIjxkaXY+IikuYXR0cigicm9sZSIsInRvb2x0aXAiKS5hZGRDbGFzcygidWktdG9vbHRpcCB1aS13aWRnZXQgdWktY29ybmVyLWFsbCB1aS13aWRnZXQtY29udGVudCAiKyh0aGlzLm9wdGlvbnMudG9vbHRpcENsYXNzfHwiIikpLHM9aS51bmlxdWVJZCgpLmF0dHIoImlkIik7cmV0dXJuIGUoIjxkaXY+IikuYWRkQ2xhc3MoInVpLXRvb2x0aXAtY29udGVudCIpLmFwcGVuZFRvKGkpLGkuYXBwZW5kVG8odGhpcy5kb2N1bWVudFswXS5ib2R5KSx0aGlzLnRvb2x0aXBzW3NdPXtlbGVtZW50OnQsdG9vbHRpcDppfX0sX2ZpbmQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kYXRhKCJ1aS10b29sdGlwLWlkIik7cmV0dXJuIHQ/dGhpcy50b29sdGlwc1t0XTpudWxsfSxfcmVtb3ZlVG9vbHRpcDpmdW5jdGlvbihlKXtlLnJlbW92ZSgpLGRlbGV0ZSB0aGlzLnRvb2x0aXBzW2UuYXR0cigiaWQiKV19LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztlLmVhY2godGhpcy50b29sdGlwcyxmdW5jdGlvbihpLHMpe3ZhciBuPWUuRXZlbnQoImJsdXIiKSxhPXMuZWxlbWVudDtuLnRhcmdldD1uLmN1cnJlbnRUYXJnZXQ9YVswXSx0LmNsb3NlKG4sITApLGUoIiMiK2kpLnJlbW92ZSgpLGEuZGF0YSgidWktdG9vbHRpcC10aXRsZSIpJiYoYS5hdHRyKCJ0aXRsZSIpfHxhLmF0dHIoInRpdGxlIixhLmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiKSksYS5yZW1vdmVEYXRhKCJ1aS10b29sdGlwLXRpdGxlIikpfSksdGhpcy5saXZlUmVnaW9uLnJlbW92ZSgpfX0pO3ZhciBjPSJ1aS1lZmZlY3RzLSIscD1lO2UuZWZmZWN0cz17ZWZmZWN0Ont9fSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoZSx0LGkpe3ZhciBzPWRbdC50eXBlXXx8e307cmV0dXJuIG51bGw9PWU/aXx8IXQuZGVmP251bGw6dC5kZWY6KGU9cy5mbG9vcj9+fmU6cGFyc2VGbG9hdChlKSxpc05hTihlKT90LmRlZjpzLm1vZD8oZStzLm1vZCklcy5tb2Q6MD5lPzA6ZT5zLm1heD9zLm1heDplKX1mdW5jdGlvbiBzKGkpe3ZhciBzPWwoKSxuPXMuX3JnYmE9W107cmV0dXJuIGk9aS50b0xvd2VyQ2FzZSgpLGYoaCxmdW5jdGlvbihlLGEpe3ZhciBvLHI9YS5yZS5leGVjKGkpLGg9ciYmYS5wYXJzZShyKSxsPWEuc3BhY2V8fCJyZ2JhIjtyZXR1cm4gaD8obz1zW2xdKGgpLHNbdVtsXS5jYWNoZV09b1t1W2xdLmNhY2hlXSxuPXMuX3JnYmE9by5fcmdiYSwhMSk6dH0pLG4ubGVuZ3RoPygiMCwwLDAsMCI9PT1uLmpvaW4oKSYmZS5leHRlbmQobixhLnRyYW5zcGFyZW50KSxzKTphW2ldfWZ1bmN0aW9uIG4oZSx0LGkpe3JldHVybiBpPShpKzEpJTEsMT42Kmk/ZSs2Kih0LWUpKmk6MT4yKmk/dDoyPjMqaT9lKzYqKHQtZSkqKDIvMy1pKTplfXZhciBhLG89ImJhY2tncm91bmRDb2xvciBib3JkZXJCb3R0b21Db2xvciBib3JkZXJMZWZ0Q29sb3IgYm9yZGVyUmlnaHRDb2xvciBib3JkZXJUb3BDb2xvciBjb2xvciBjb2x1bW5SdWxlQ29sb3Igb3V0bGluZUNvbG9yIHRleHREZWNvcmF0aW9uQ29sb3IgdGV4dEVtcGhhc2lzQ29sb3IiLHI9L14oW1wtK10pPVxzKihcZCtcLj9cZCopLyxoPVt7cmU6L3JnYmE/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bZVsxXSxlWzJdLGVbM10sZVs0XV19fSx7cmU6L3JnYmE/XChccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bMi41NSplWzFdLDIuNTUqZVsyXSwyLjU1KmVbM10sZVs0XV19fSx7cmU6LyMoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdLDE2KSxwYXJzZUludChlWzJdLDE2KSxwYXJzZUludChlWzNdLDE2KV19fSx7cmU6LyMoW2EtZjAtOV0pKFthLWYwLTldKShbYS1mMC05XSkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdK2VbMV0sMTYpLHBhcnNlSW50KGVbMl0rZVsyXSwxNikscGFyc2VJbnQoZVszXStlWzNdLDE2KV19fSx7cmU6L2hzbGE/XChccyooXGQrKD86XC5cZCspPylccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyooPzosXHMqKFxkPyg/OlwuXGQrKT8pXHMqKT9cKS8sc3BhY2U6ImhzbGEiLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltlWzFdLGVbMl0vMTAwLGVbM10vMTAwLGVbNF1dfX1dLGw9ZS5Db2xvcj1mdW5jdGlvbih0LGkscyxuKXtyZXR1cm4gbmV3IGUuQ29sb3IuZm4ucGFyc2UodCxpLHMsbil9LHU9e3JnYmE6e3Byb3BzOntyZWQ6e2lkeDowLHR5cGU6ImJ5dGUifSxncmVlbjp7aWR4OjEsdHlwZToiYnl0ZSJ9LGJsdWU6e2lkeDoyLHR5cGU6ImJ5dGUifX19LGhzbGE6e3Byb3BzOntodWU6e2lkeDowLHR5cGU6ImRlZ3JlZXMifSxzYXR1cmF0aW9uOntpZHg6MSx0eXBlOiJwZXJjZW50In0sbGlnaHRuZXNzOntpZHg6Mix0eXBlOiJwZXJjZW50In19fX0sZD17ImJ5dGUiOntmbG9vcjohMCxtYXg6MjU1fSxwZXJjZW50OnttYXg6MX0sZGVncmVlczp7bW9kOjM2MCxmbG9vcjohMH19LGM9bC5zdXBwb3J0PXt9LHA9ZSgiPHA+IilbMF0sZj1lLmVhY2g7cC5zdHlsZS5jc3NUZXh0PSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMSwxLDEsLjUpIixjLnJnYmE9cC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IuaW5kZXhPZigicmdiYSIpPi0xLGYodSxmdW5jdGlvbihlLHQpe3QuY2FjaGU9Il8iK2UsdC5wcm9wcy5hbHBoYT17aWR4OjMsdHlwZToicGVyY2VudCIsZGVmOjF9fSksbC5mbj1lLmV4dGVuZChsLnByb3RvdHlwZSx7cGFyc2U6ZnVuY3Rpb24obixvLHIsaCl7aWYobj09PXQpcmV0dXJuIHRoaXMuX3JnYmE9W251bGwsbnVsbCxudWxsLG51bGxdLHRoaXM7KG4uanF1ZXJ5fHxuLm5vZGVUeXBlKSYmKG49ZShuKS5jc3Mobyksbz10KTt2YXIgZD10aGlzLGM9ZS50eXBlKG4pLHA9dGhpcy5fcmdiYT1bXTtyZXR1cm4gbyE9PXQmJihuPVtuLG8scixoXSxjPSJhcnJheSIpLCJzdHJpbmciPT09Yz90aGlzLnBhcnNlKHMobil8fGEuX2RlZmF1bHQpOiJhcnJheSI9PT1jPyhmKHUucmdiYS5wcm9wcyxmdW5jdGlvbihlLHQpe3BbdC5pZHhdPWkoblt0LmlkeF0sdCl9KSx0aGlzKToib2JqZWN0Ij09PWM/KG4gaW5zdGFuY2VvZiBsP2YodSxmdW5jdGlvbihlLHQpe25bdC5jYWNoZV0mJihkW3QuY2FjaGVdPW5bdC5jYWNoZV0uc2xpY2UoKSl9KTpmKHUsZnVuY3Rpb24odCxzKXt2YXIgYT1zLmNhY2hlO2Yocy5wcm9wcyxmdW5jdGlvbihlLHQpe2lmKCFkW2FdJiZzLnRvKXtpZigiYWxwaGEiPT09ZXx8bnVsbD09bltlXSlyZXR1cm47ZFthXT1zLnRvKGQuX3JnYmEpfWRbYV1bdC5pZHhdPWkobltlXSx0LCEwKX0pLGRbYV0mJjA+ZS5pbkFycmF5KG51bGwsZFthXS5zbGljZSgwLDMpKSYmKGRbYV1bM109MSxzLmZyb20mJihkLl9yZ2JhPXMuZnJvbShkW2FdKSkpfSksdGhpcyk6dH0saXM6ZnVuY3Rpb24oZSl7dmFyIGk9bChlKSxzPSEwLG49dGhpcztyZXR1cm4gZih1LGZ1bmN0aW9uKGUsYSl7dmFyIG8scj1pW2EuY2FjaGVdO3JldHVybiByJiYobz1uW2EuY2FjaGVdfHxhLnRvJiZhLnRvKG4uX3JnYmEpfHxbXSxmKGEucHJvcHMsZnVuY3Rpb24oZSxpKXtyZXR1cm4gbnVsbCE9cltpLmlkeF0/cz1yW2kuaWR4XT09PW9baS5pZHhdOnR9KSksc30pLHN9LF9zcGFjZTpmdW5jdGlvbigpe3ZhciBlPVtdLHQ9dGhpcztyZXR1cm4gZih1LGZ1bmN0aW9uKGkscyl7dFtzLmNhY2hlXSYmZS5wdXNoKGkpfSksZS5wb3AoKX0sdHJhbnNpdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBzPWwoZSksbj1zLl9zcGFjZSgpLGE9dVtuXSxvPTA9PT10aGlzLmFscGhhKCk/bCgidHJhbnNwYXJlbnQiKTp0aGlzLHI9b1thLmNhY2hlXXx8YS50byhvLl9yZ2JhKSxoPXIuc2xpY2UoKTtyZXR1cm4gcz1zW2EuY2FjaGVdLGYoYS5wcm9wcyxmdW5jdGlvbihlLG4pe3ZhciBhPW4uaWR4LG89clthXSxsPXNbYV0sdT1kW24udHlwZV18fHt9O251bGwhPT1sJiYobnVsbD09PW8/aFthXT1sOih1Lm1vZCYmKGwtbz51Lm1vZC8yP28rPXUubW9kOm8tbD51Lm1vZC8yJiYoby09dS5tb2QpKSxoW2FdPWkoKGwtbykqdCtvLG4pKSl9KSx0aGlzW25dKGgpfSxibGVuZDpmdW5jdGlvbih0KXtpZigxPT09dGhpcy5fcmdiYVszXSlyZXR1cm4gdGhpczt2YXIgaT10aGlzLl9yZ2JhLnNsaWNlKCkscz1pLnBvcCgpLG49bCh0KS5fcmdiYTtyZXR1cm4gbChlLm1hcChpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDEtcykqblt0XStzKmV9KSl9LHRvUmdiYVN0cmluZzpmdW5jdGlvbigpe3ZhciB0PSJyZ2JhKCIsaT1lLm1hcCh0aGlzLl9yZ2JhLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWU/dD4yPzE6MDplfSk7cmV0dXJuIDE9PT1pWzNdJiYoaS5wb3AoKSx0PSJyZ2IoIiksdCtpLmpvaW4oKSsiKSJ9LHRvSHNsYVN0cmluZzpmdW5jdGlvbigpe3ZhciB0PSJoc2xhKCIsaT1lLm1hcCh0aGlzLmhzbGEoKSxmdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lJiYoZT10PjI/MTowKSx0JiYzPnQmJihlPU1hdGgucm91bmQoMTAwKmUpKyIlIiksZX0pO3JldHVybiAxPT09aVszXSYmKGkucG9wKCksdD0iaHNsKCIpLHQraS5qb2luKCkrIikifSx0b0hleFN0cmluZzpmdW5jdGlvbih0KXt2YXIgaT10aGlzLl9yZ2JhLnNsaWNlKCkscz1pLnBvcCgpO3JldHVybiB0JiZpLnB1c2gofn4oMjU1KnMpKSwiIyIrZS5tYXAoaSxmdW5jdGlvbihlKXtyZXR1cm4gZT0oZXx8MCkudG9TdHJpbmcoMTYpLDE9PT1lLmxlbmd0aD8iMCIrZTplfSkuam9pbigiIil9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLl9yZ2JhWzNdPyJ0cmFuc3BhcmVudCI6dGhpcy50b1JnYmFTdHJpbmcoKX19KSxsLmZuLnBhcnNlLnByb3RvdHlwZT1sLmZuLHUuaHNsYS50bz1mdW5jdGlvbihlKXtpZihudWxsPT1lWzBdfHxudWxsPT1lWzFdfHxudWxsPT1lWzJdKXJldHVybltudWxsLG51bGwsbnVsbCxlWzNdXTt2YXIgdCxpLHM9ZVswXS8yNTUsbj1lWzFdLzI1NSxhPWVbMl0vMjU1LG89ZVszXSxyPU1hdGgubWF4KHMsbixhKSxoPU1hdGgubWluKHMsbixhKSxsPXItaCx1PXIraCxkPS41KnU7cmV0dXJuIHQ9aD09PXI/MDpzPT09cj82MCoobi1hKS9sKzM2MDpuPT09cj82MCooYS1zKS9sKzEyMDo2MCoocy1uKS9sKzI0MCxpPTA9PT1sPzA6LjU+PWQ/bC91OmwvKDItdSksW01hdGgucm91bmQodCklMzYwLGksZCxudWxsPT1vPzE6b119LHUuaHNsYS5mcm9tPWZ1bmN0aW9uKGUpe2lmKG51bGw9PWVbMF18fG51bGw9PWVbMV18fG51bGw9PWVbMl0pcmV0dXJuW251bGwsbnVsbCxudWxsLGVbM11dO3ZhciB0PWVbMF0vMzYwLGk9ZVsxXSxzPWVbMl0sYT1lWzNdLG89LjU+PXM/cyooMStpKTpzK2ktcyppLHI9MipzLW87cmV0dXJuW01hdGgucm91bmQoMjU1Km4ocixvLHQrMS8zKSksTWF0aC5yb3VuZCgyNTUqbihyLG8sdCkpLE1hdGgucm91bmQoMjU1Km4ocixvLHQtMS8zKSksYV19LGYodSxmdW5jdGlvbihzLG4pe3ZhciBhPW4ucHJvcHMsbz1uLmNhY2hlLGg9bi50byx1PW4uZnJvbTtsLmZuW3NdPWZ1bmN0aW9uKHMpe2lmKGgmJiF0aGlzW29dJiYodGhpc1tvXT1oKHRoaXMuX3JnYmEpKSxzPT09dClyZXR1cm4gdGhpc1tvXS5zbGljZSgpO3ZhciBuLHI9ZS50eXBlKHMpLGQ9ImFycmF5Ij09PXJ8fCJvYmplY3QiPT09cj9zOmFyZ3VtZW50cyxjPXRoaXNbb10uc2xpY2UoKTtyZXR1cm4gZihhLGZ1bmN0aW9uKGUsdCl7dmFyIHM9ZFsib2JqZWN0Ij09PXI/ZTp0LmlkeF07bnVsbD09cyYmKHM9Y1t0LmlkeF0pLGNbdC5pZHhdPWkocyx0KX0pLHU/KG49bCh1KGMpKSxuW29dPWMsbik6bChjKX0sZihhLGZ1bmN0aW9uKHQsaSl7bC5mblt0XXx8KGwuZm5bdF09ZnVuY3Rpb24obil7dmFyIGEsbz1lLnR5cGUobiksaD0iYWxwaGEiPT09dD90aGlzLl9oc2xhPyJoc2xhIjoicmdiYSI6cyxsPXRoaXNbaF0oKSx1PWxbaS5pZHhdO3JldHVybiJ1bmRlZmluZWQiPT09bz91OigiZnVuY3Rpb24iPT09byYmKG49bi5jYWxsKHRoaXMsdSksbz1lLnR5cGUobikpLG51bGw9PW4mJmkuZW1wdHk/dGhpczooInN0cmluZyI9PT1vJiYoYT1yLmV4ZWMobiksYSYmKG49dStwYXJzZUZsb2F0KGFbMl0pKigiKyI9PT1hWzFdPzE6LTEpKSksbFtpLmlkeF09bix0aGlzW2hdKGwpKSl9KX0pfSksbC5ob29rPWZ1bmN0aW9uKHQpe3ZhciBpPXQuc3BsaXQoIiAiKTtmKGksZnVuY3Rpb24odCxpKXtlLmNzc0hvb2tzW2ldPXtzZXQ6ZnVuY3Rpb24odCxuKXt2YXIgYSxvLHI9IiI7aWYoInRyYW5zcGFyZW50IiE9PW4mJigic3RyaW5nIiE9PWUudHlwZShuKXx8KGE9cyhuKSkpKXtpZihuPWwoYXx8biksIWMucmdiYSYmMSE9PW4uX3JnYmFbM10pe2ZvcihvPSJiYWNrZ3JvdW5kQ29sb3IiPT09aT90LnBhcmVudE5vZGU6dDsoIiI9PT1yfHwidHJhbnNwYXJlbnQiPT09cikmJm8mJm8uc3R5bGU7KXRyeXtyPWUuY3NzKG8sImJhY2tncm91bmRDb2xvciIpLG89by5wYXJlbnROb2RlfWNhdGNoKGgpe31uPW4uYmxlbmQociYmInRyYW5zcGFyZW50IiE9PXI/cjoiX2RlZmF1bHQiKX1uPW4udG9SZ2JhU3RyaW5nKCl9dHJ5e3Quc3R5bGVbaV09bn1jYXRjaChoKXt9fX0sZS5meC5zdGVwW2ldPWZ1bmN0aW9uKHQpe3QuY29sb3JJbml0fHwodC5zdGFydD1sKHQuZWxlbSxpKSx0LmVuZD1sKHQuZW5kKSx0LmNvbG9ySW5pdD0hMCksZS5jc3NIb29rc1tpXS5zZXQodC5lbGVtLHQuc3RhcnQudHJhbnNpdGlvbih0LmVuZCx0LnBvcykpfX0pfSxsLmhvb2sobyksZS5jc3NIb29rcy5ib3JkZXJDb2xvcj17ZXhwYW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBmKFsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0sZnVuY3Rpb24oaSxzKXt0WyJib3JkZXIiK3MrIkNvbG9yIl09ZX0pLHR9fSxhPWUuQ29sb3IubmFtZXM9e2FxdWE6IiMwMGZmZmYiLGJsYWNrOiIjMDAwMDAwIixibHVlOiIjMDAwMGZmIixmdWNoc2lhOiIjZmYwMGZmIixncmF5OiIjODA4MDgwIixncmVlbjoiIzAwODAwMCIsbGltZToiIzAwZmYwMCIsbWFyb29uOiIjODAwMDAwIixuYXZ5OiIjMDAwMDgwIixvbGl2ZToiIzgwODAwMCIscHVycGxlOiIjODAwMDgwIixyZWQ6IiNmZjAwMDAiLHNpbHZlcjoiI2MwYzBjMCIsdGVhbDoiIzAwODA4MCIsd2hpdGU6IiNmZmZmZmYiLHllbGxvdzoiI2ZmZmYwMCIsdHJhbnNwYXJlbnQ6W251bGwsbnVsbCxudWxsLDBdLF9kZWZhdWx0OiIjZmZmZmZmIn19KHApLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgaSxzLG49dC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3P3Qub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCk6dC5jdXJyZW50U3R5bGUsYT17fTtpZihuJiZuLmxlbmd0aCYmblswXSYmbltuWzBdXSlmb3Iocz1uLmxlbmd0aDtzLS07KWk9bltzXSwic3RyaW5nIj09dHlwZW9mIG5baV0mJihhW2UuY2FtZWxDYXNlKGkpXT1uW2ldKTtlbHNlIGZvcihpIGluIG4pInN0cmluZyI9PXR5cGVvZiBuW2ldJiYoYVtpXT1uW2ldKTtyZXR1cm4gYX1mdW5jdGlvbiBpKHQsaSl7dmFyIHMsYSxvPXt9O2ZvcihzIGluIGkpYT1pW3NdLHRbc10hPT1hJiYobltzXXx8KGUuZnguc3RlcFtzXXx8IWlzTmFOKHBhcnNlRmxvYXQoYSkpKSYmKG9bc109YSkpO3JldHVybiBvfXZhciBzPVsiYWRkIiwicmVtb3ZlIiwidG9nZ2xlIl0sbj17Ym9yZGVyOjEsYm9yZGVyQm90dG9tOjEsYm9yZGVyQ29sb3I6MSxib3JkZXJMZWZ0OjEsYm9yZGVyUmlnaHQ6MSxib3JkZXJUb3A6MSxib3JkZXJXaWR0aDoxLG1hcmdpbjoxLHBhZGRpbmc6MX07ZS5lYWNoKFsiYm9yZGVyTGVmdFN0eWxlIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlckJvdHRvbVN0eWxlIiwiYm9yZGVyVG9wU3R5bGUiXSxmdW5jdGlvbih0LGkpe2UuZnguc3RlcFtpXT1mdW5jdGlvbihlKXsoIm5vbmUiIT09ZS5lbmQmJiFlLnNldEF0dHJ8fDE9PT1lLnBvcyYmIWUuc2V0QXR0cikmJihwLnN0eWxlKGUuZWxlbSxpLGUuZW5kKSxlLnNldEF0dHI9ITApfX0pLGUuZm4uYWRkQmFja3x8KGUuZm4uYWRkQmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9KSxlLmVmZmVjdHMuYW5pbWF0ZUNsYXNzPWZ1bmN0aW9uKG4sYSxvLHIpe3ZhciBoPWUuc3BlZWQoYSxvLHIpO3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGEsbz1lKHRoaXMpLHI9by5hdHRyKCJjbGFzcyIpfHwiIixsPWguY2hpbGRyZW4/by5maW5kKCIqIikuYWRkQmFjaygpOm87bD1sLm1hcChmdW5jdGlvbigpe3ZhciBpPWUodGhpcyk7cmV0dXJue2VsOmksc3RhcnQ6dCh0aGlzKX19KSxhPWZ1bmN0aW9uKCl7ZS5lYWNoKHMsZnVuY3Rpb24oZSx0KXtuW3RdJiZvW3QrIkNsYXNzIl0oblt0XSl9KX0sYSgpLGw9bC5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmQ9dCh0aGlzLmVsWzBdKSx0aGlzLmRpZmY9aSh0aGlzLnN0YXJ0LHRoaXMuZW5kKSx0aGlzfSksby5hdHRyKCJjbGFzcyIsciksbD1sLm1hcChmdW5jdGlvbigpe3ZhciB0PXRoaXMsaT1lLkRlZmVycmVkKCkscz1lLmV4dGVuZCh7fSxoLHtxdWV1ZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpe2kucmVzb2x2ZSh0KX19KTtyZXR1cm4gdGhpcy5lbC5hbmltYXRlKHRoaXMuZGlmZixzKSxpLnByb21pc2UoKX0pLGUud2hlbi5hcHBseShlLGwuZ2V0KCkpLmRvbmUoZnVuY3Rpb24oKXthKCksZS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWw7ZS5lYWNoKHRoaXMuZGlmZixmdW5jdGlvbihlKXt0LmNzcyhlLCIiKX0pfSksaC5jb21wbGV0ZS5jYWxsKG9bMF0pfSl9KX0sZS5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMsbixhKXtyZXR1cm4gcz9lLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7YWRkOml9LHMsbixhKTp0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KGUuZm4uYWRkQ2xhc3MpLHJlbW92ZUNsYXNzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMsbixhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP2UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHtyZW1vdmU6aX0scyxuLGEpOnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oZS5mbi5yZW1vdmVDbGFzcyksdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkscyxuLGEsbyl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2Ygc3x8dm9pZCAwPT09cz9uP2UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHM/e2FkZDppfTp7cmVtb3ZlOml9LG4sYSxvKTp0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTplLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7dG9nZ2xlOml9LHMsbixhKX19KGUuZm4udG9nZ2xlQ2xhc3MpLHN3aXRjaENsYXNzOmZ1bmN0aW9uKHQsaSxzLG4sYSl7cmV0dXJuIGUuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHthZGQ6aSxyZW1vdmU6dH0scyxuLGEpfX0pfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGkscyxuKXtyZXR1cm4gZS5pc1BsYWluT2JqZWN0KHQpJiYoaT10LHQ9dC5lZmZlY3QpLHQ9e2VmZmVjdDp0fSxudWxsPT1pJiYoaT17fSksZS5pc0Z1bmN0aW9uKGkpJiYobj1pLHM9bnVsbCxpPXt9KSwoIm51bWJlciI9PXR5cGVvZiBpfHxlLmZ4LnNwZWVkc1tpXSkmJihuPXMscz1pLGk9e30pLGUuaXNGdW5jdGlvbihzKSYmKG49cyxzPW51bGwpLGkmJmUuZXh0ZW5kKHQsaSkscz1zfHxpLmR1cmF0aW9uLHQuZHVyYXRpb249ZS5meC5vZmY/MDoibnVtYmVyIj09dHlwZW9mIHM/czpzIGluIGUuZnguc3BlZWRzP2UuZnguc3BlZWRzW3NdOmUuZnguc3BlZWRzLl9kZWZhdWx0LHQuY29tcGxldGU9bnx8aS5jb21wbGV0ZSx0fWZ1bmN0aW9uIGkodCl7cmV0dXJuIXR8fCJudW1iZXIiPT10eXBlb2YgdHx8ZS5meC5zcGVlZHNbdF0/ITA6InN0cmluZyIhPXR5cGVvZiB0fHxlLmVmZmVjdHMuZWZmZWN0W3RdP2UuaXNGdW5jdGlvbih0KT8hMDoib2JqZWN0IiE9dHlwZW9mIHR8fHQuZWZmZWN0PyExOiEwOiEwfWUuZXh0ZW5kKGUuZWZmZWN0cyx7dmVyc2lvbjoiMS4xMS40IixzYXZlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpPTA7dC5sZW5ndGg+aTtpKyspbnVsbCE9PXRbaV0mJmUuZGF0YShjK3RbaV0sZVswXS5zdHlsZVt0W2ldXSl9LHJlc3RvcmU6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzO2ZvcihzPTA7dC5sZW5ndGg+cztzKyspbnVsbCE9PXRbc10mJihpPWUuZGF0YShjK3Rbc10pLHZvaWQgMD09PWkmJihpPSIiKSxlLmNzcyh0W3NdLGkpKX0sc2V0TW9kZTpmdW5jdGlvbihlLHQpe3JldHVybiJ0b2dnbGUiPT09dCYmKHQ9ZS5pcygiOmhpZGRlbiIpPyJzaG93IjoiaGlkZSIpLHR9LGdldEJhc2VsaW5lOmZ1bmN0aW9uKGUsdCl7dmFyIGkscztzd2l0Y2goZVswXSl7Y2FzZSJ0b3AiOmk9MDticmVhaztjYXNlIm1pZGRsZSI6aT0uNTticmVhaztjYXNlImJvdHRvbSI6aT0xO2JyZWFrO2RlZmF1bHQ6aT1lWzBdL3QuaGVpZ2h0fXN3aXRjaChlWzFdKXtjYXNlImxlZnQiOnM9MDticmVhaztjYXNlImNlbnRlciI6cz0uNTticmVhaztjYXNlInJpZ2h0IjpzPTE7YnJlYWs7ZGVmYXVsdDpzPWVbMV0vdC53aWR0aH1yZXR1cm57eDpzLHk6aX19LGNyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24odCl7aWYodC5wYXJlbnQoKS5pcygiLnVpLWVmZmVjdHMtd3JhcHBlciIpKXJldHVybiB0LnBhcmVudCgpO3ZhciBpPXt3aWR0aDp0Lm91dGVyV2lkdGgoITApLGhlaWdodDp0Lm91dGVySGVpZ2h0KCEwKSwiZmxvYXQiOnQuY3NzKCJmbG9hdCIpfSxzPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoInVpLWVmZmVjdHMtd3JhcHBlciIpLmNzcyh7Zm9udFNpemU6IjEwMCUiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLG1hcmdpbjowLHBhZGRpbmc6MH0pLG49e3dpZHRoOnQud2lkdGgoKSxoZWlnaHQ6dC5oZWlnaHQoKX0sYT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3RyeXthLmlkfWNhdGNoKG8pe2E9ZG9jdW1lbnQuYm9keX1yZXR1cm4gdC53cmFwKHMpLCh0WzBdPT09YXx8ZS5jb250YWlucyh0WzBdLGEpKSYmZShhKS5mb2N1cygpLHM9dC5wYXJlbnQoKSwic3RhdGljIj09PXQuY3NzKCJwb3NpdGlvbiIpPyhzLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pLHQuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUifSkpOihlLmV4dGVuZChpLHtwb3NpdGlvbjp0LmNzcygicG9zaXRpb24iKSx6SW5kZXg6dC5jc3MoInotaW5kZXgiKX0pLGUuZWFjaChbInRvcCIsImxlZnQiLCJib3R0b20iLCJyaWdodCJdLGZ1bmN0aW9uKGUscyl7aVtzXT10LmNzcyhzKSxpc05hTihwYXJzZUludChpW3NdLDEwKSkmJihpW3NdPSJhdXRvIil9KSx0LmNzcyh7cG9zaXRpb246InJlbGF0aXZlIix0b3A6MCxsZWZ0OjAscmlnaHQ6ImF1dG8iLGJvdHRvbToiYXV0byJ9KSksdC5jc3Mobikscy5jc3MoaSkuc2hvdygpfSxyZW1vdmVXcmFwcGVyOmZ1bmN0aW9uKHQpe3ZhciBpPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIHQucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKSYmKHQucGFyZW50KCkucmVwbGFjZVdpdGgodCksKHRbMF09PT1pfHxlLmNvbnRhaW5zKHRbMF0saSkpJiZlKGkpLmZvY3VzKCkpLHR9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24odCxpLHMsbil7cmV0dXJuIG49bnx8e30sZS5lYWNoKGksZnVuY3Rpb24oZSxpKXt2YXIgYT10LmNzc1VuaXQoaSk7YVswXT4wJiYobltpXT1hWzBdKnMrYVsxXSl9KSxufX0pLGUuZm4uZXh0ZW5kKHtlZmZlY3Q6ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQpe2Z1bmN0aW9uIGkoKXtlLmlzRnVuY3Rpb24oYSkmJmEuY2FsbChuWzBdKSxlLmlzRnVuY3Rpb24odCkmJnQoKX12YXIgbj1lKHRoaXMpLGE9cy5jb21wbGV0ZSxyPXMubW9kZTsobi5pcygiOmhpZGRlbiIpPyJoaWRlIj09PXI6InNob3ciPT09cik/KG5bcl0oKSxpKCkpOm8uY2FsbChuWzBdLHMsaSl9dmFyIHM9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj1zLm1vZGUsYT1zLnF1ZXVlLG89ZS5lZmZlY3RzLmVmZmVjdFtzLmVmZmVjdF07cmV0dXJuIGUuZngub2ZmfHwhbz9uP3RoaXNbbl0ocy5kdXJhdGlvbixzLmNvbXBsZXRlKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtzLmNvbXBsZXRlJiZzLmNvbXBsZXRlLmNhbGwodGhpcyl9KTphPT09ITE/dGhpcy5lYWNoKGkpOnRoaXMucXVldWUoYXx8ImZ4IixpKX0sc2hvdzpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYoaShzKSlyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG4ubW9kZT0ic2hvdyIsdGhpcy5lZmZlY3QuY2FsbCh0aGlzLG4pfX0oZS5mbi5zaG93KSxoaWRlOmZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihzKXtpZihpKHMpKXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgbj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbi5tb2RlPSJoaWRlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsbil9fShlLmZuLmhpZGUpLHRvZ2dsZTpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYoaShzKXx8ImJvb2xlYW4iPT10eXBlb2YgcylyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG4ubW9kZT0idG9nZ2xlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsbil9fShlLmZuLnRvZ2dsZSksY3NzVW5pdDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLmNzcyh0KSxzPVtdO3JldHVybiBlLmVhY2goWyJlbSIsInB4IiwiJSIsInB0Il0sZnVuY3Rpb24oZSx0KXtpLmluZGV4T2YodCk+MCYmKHM9W3BhcnNlRmxvYXQoaSksdF0pfSksc319KX0oKSxmdW5jdGlvbigpe3ZhciB0PXt9O2UuZWFjaChbIlF1YWQiLCJDdWJpYyIsIlF1YXJ0IiwiUXVpbnQiLCJFeHBvIl0sZnVuY3Rpb24oZSxpKXt0W2ldPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyh0LGUrMil9fSksZS5leHRlbmQodCx7U2luZTpmdW5jdGlvbihlKXtyZXR1cm4gMS1NYXRoLmNvcyhlKk1hdGguUEkvMil9LENpcmM6ZnVuY3Rpb24oZSl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtZSplKX0sRWxhc3RpYzpmdW5jdGlvbihlKXtyZXR1cm4gMD09PWV8fDE9PT1lP2U6LU1hdGgucG93KDIsOCooZS0xKSkqTWF0aC5zaW4oKDgwKihlLTEpLTcuNSkqTWF0aC5QSS8xNSl9LEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIGUqZSooMyplLTIpfSxCb3VuY2U6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGk9NDsoKHQ9TWF0aC5wb3coMiwtLWkpKS0xKS8xMT5lOyk7cmV0dXJuIDEvTWF0aC5wb3coNCwzLWkpLTcuNTYyNSpNYXRoLnBvdygoMyp0LTIpLzIyLWUsMil9fSksZS5lYWNoKHQsZnVuY3Rpb24odCxpKXtlLmVhc2luZ1siZWFzZUluIit0XT1pLGUuZWFzaW5nWyJlYXNlT3V0Iit0XT1mdW5jdGlvbihlKXtyZXR1cm4gMS1pKDEtZSl9LGUuZWFzaW5nWyJlYXNlSW5PdXQiK3RdPWZ1bmN0aW9uKGUpe3JldHVybi41PmU/aSgyKmUpLzI6MS1pKC0yKmUrMikvMn19KX0oKSxlLmVmZmVjdHMsZS5lZmZlY3RzLmVmZmVjdC5ibGluZD1mdW5jdGlvbih0LGkpe3ZhciBzLG4sYSxvPWUodGhpcykscj0vdXB8ZG93bnx2ZXJ0aWNhbC8saD0vdXB8bGVmdHx2ZXJ0aWNhbHxob3Jpem9udGFsLyxsPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLHU9ZS5lZmZlY3RzLnNldE1vZGUobyx0Lm1vZGV8fCJoaWRlIiksZD10LmRpcmVjdGlvbnx8InVwIixjPXIudGVzdChkKSxwPWM/ImhlaWdodCI6IndpZHRoIixmPWM/InRvcCI6ImxlZnQiLG09aC50ZXN0KGQpLGc9e30sdj0ic2hvdyI9PT11O28ucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKT9lLmVmZmVjdHMuc2F2ZShvLnBhcmVudCgpLGwpOmUuZWZmZWN0cy5zYXZlKG8sbCksby5zaG93KCkscz1lLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihvKS5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSksbj1zW3BdKCksYT1wYXJzZUZsb2F0KHMuY3NzKGYpKXx8MCxnW3BdPXY/bjowLG18fChvLmNzcyhjPyJib3R0b20iOiJyaWdodCIsMCkuY3NzKGM/InRvcCI6ImxlZnQiLCJhdXRvIikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUifSksZ1tmXT12P2E6bithKSx2JiYocy5jc3MocCwwKSxtfHxzLmNzcyhmLGErbikpLHMuYW5pbWF0ZShnLHtkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxxdWV1ZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpeyJoaWRlIj09PXUmJm8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sbCksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpCn19KX0sZS5lZmZlY3RzLmVmZmVjdC5ib3VuY2U9ZnVuY3Rpb24odCxpKXt2YXIgcyxuLGEsbz1lKHRoaXMpLHI9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImhlaWdodCIsIndpZHRoIl0saD1lLmVmZmVjdHMuc2V0TW9kZShvLHQubW9kZXx8ImVmZmVjdCIpLGw9ImhpZGUiPT09aCx1PSJzaG93Ij09PWgsZD10LmRpcmVjdGlvbnx8InVwIixjPXQuZGlzdGFuY2UscD10LnRpbWVzfHw1LGY9MipwKyh1fHxsPzE6MCksbT10LmR1cmF0aW9uL2YsZz10LmVhc2luZyx2PSJ1cCI9PT1kfHwiZG93biI9PT1kPyJ0b3AiOiJsZWZ0Iix5PSJ1cCI9PT1kfHwibGVmdCI9PT1kLGI9by5xdWV1ZSgpLF89Yi5sZW5ndGg7Zm9yKCh1fHxsKSYmci5wdXNoKCJvcGFjaXR5IiksZS5lZmZlY3RzLnNhdmUobyxyKSxvLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihvKSxjfHwoYz1vWyJ0b3AiPT09dj8ib3V0ZXJIZWlnaHQiOiJvdXRlcldpZHRoIl0oKS8zKSx1JiYoYT17b3BhY2l0eToxfSxhW3ZdPTAsby5jc3MoIm9wYWNpdHkiLDApLmNzcyh2LHk/MiotYzoyKmMpLmFuaW1hdGUoYSxtLGcpKSxsJiYoYy89TWF0aC5wb3coMixwLTEpKSxhPXt9LGFbdl09MCxzPTA7cD5zO3MrKyluPXt9LG5bdl09KHk/Ii09IjoiKz0iKStjLG8uYW5pbWF0ZShuLG0sZykuYW5pbWF0ZShhLG0sZyksYz1sPzIqYzpjLzI7bCYmKG49e29wYWNpdHk6MH0sblt2XT0oeT8iLT0iOiIrPSIpK2Msby5hbmltYXRlKG4sbSxnKSksby5xdWV1ZShmdW5jdGlvbigpe2wmJm8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sciksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfSksXz4xJiZiLnNwbGljZS5hcHBseShiLFsxLDBdLmNvbmNhdChiLnNwbGljZShfLGYrMSkpKSxvLmRlcXVldWUoKX0sZS5lZmZlY3RzLmVmZmVjdC5jbGlwPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89ZSh0aGlzKSxyPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLGg9ZS5lZmZlY3RzLnNldE1vZGUobyx0Lm1vZGV8fCJoaWRlIiksbD0ic2hvdyI9PT1oLHU9dC5kaXJlY3Rpb258fCJ2ZXJ0aWNhbCIsZD0idmVydGljYWwiPT09dSxjPWQ/ImhlaWdodCI6IndpZHRoIixwPWQ/InRvcCI6ImxlZnQiLGY9e307ZS5lZmZlY3RzLnNhdmUobyxyKSxvLnNob3coKSxzPWUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKG8pLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiJ9KSxuPSJJTUciPT09b1swXS50YWdOYW1lP3M6byxhPW5bY10oKSxsJiYobi5jc3MoYywwKSxuLmNzcyhwLGEvMikpLGZbY109bD9hOjAsZltwXT1sPzA6YS8yLG4uYW5pbWF0ZShmLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpe2x8fG8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sciksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LmRyb3A9ZnVuY3Rpb24odCxpKXt2YXIgcyxuPWUodGhpcyksYT1bInBvc2l0aW9uIiwidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Iiwib3BhY2l0eSIsImhlaWdodCIsIndpZHRoIl0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8ImhpZGUiKSxyPSJzaG93Ij09PW8saD10LmRpcmVjdGlvbnx8ImxlZnQiLGw9InVwIj09PWh8fCJkb3duIj09PWg/InRvcCI6ImxlZnQiLHU9InVwIj09PWh8fCJsZWZ0Ij09PWg/InBvcyI6Im5lZyIsZD17b3BhY2l0eTpyPzE6MH07ZS5lZmZlY3RzLnNhdmUobixhKSxuLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKSxzPXQuZGlzdGFuY2V8fG5bInRvcCI9PT1sPyJvdXRlckhlaWdodCI6Im91dGVyV2lkdGgiXSghMCkvMixyJiZuLmNzcygib3BhY2l0eSIsMCkuY3NzKGwsInBvcyI9PT11Py1zOnMpLGRbbF09KHI/InBvcyI9PT11PyIrPSI6Ii09IjoicG9zIj09PXU/Ii09IjoiKz0iKStzLG4uYW5pbWF0ZShkLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpeyJoaWRlIj09PW8mJm4uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG4sYSksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobiksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LmV4cGxvZGU9ZnVuY3Rpb24odCxpKXtmdW5jdGlvbiBzKCl7Yi5wdXNoKHRoaXMpLGIubGVuZ3RoPT09ZCpjJiZuKCl9ZnVuY3Rpb24gbigpe3AuY3NzKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIn0pLGUoYikucmVtb3ZlKCksbXx8cC5oaWRlKCksaSgpfXZhciBhLG8scixoLGwsdSxkPXQucGllY2VzP01hdGgucm91bmQoTWF0aC5zcXJ0KHQucGllY2VzKSk6MyxjPWQscD1lKHRoaXMpLGY9ZS5lZmZlY3RzLnNldE1vZGUocCx0Lm1vZGV8fCJoaWRlIiksbT0ic2hvdyI9PT1mLGc9cC5zaG93KCkuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIikub2Zmc2V0KCksdj1NYXRoLmNlaWwocC5vdXRlcldpZHRoKCkvYykseT1NYXRoLmNlaWwocC5vdXRlckhlaWdodCgpL2QpLGI9W107Zm9yKGE9MDtkPmE7YSsrKWZvcihoPWcudG9wK2EqeSx1PWEtKGQtMSkvMixvPTA7Yz5vO28rKylyPWcubGVmdCtvKnYsbD1vLShjLTEpLzIscC5jbG9uZSgpLmFwcGVuZFRvKCJib2R5Iikud3JhcCgiPGRpdj48L2Rpdj4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToidmlzaWJsZSIsbGVmdDotbyp2LHRvcDotYSp5fSkucGFyZW50KCkuYWRkQ2xhc3MoInVpLWVmZmVjdHMtZXhwbG9kZSIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixvdmVyZmxvdzoiaGlkZGVuIix3aWR0aDp2LGhlaWdodDp5LGxlZnQ6cisobT9sKnY6MCksdG9wOmgrKG0/dSp5OjApLG9wYWNpdHk6bT8wOjF9KS5hbmltYXRlKHtsZWZ0OnIrKG0/MDpsKnYpLHRvcDpoKyhtPzA6dSp5KSxvcGFjaXR5Om0/MTowfSx0LmR1cmF0aW9ufHw1MDAsdC5lYXNpbmcscyl9LGUuZWZmZWN0cy5lZmZlY3QuZmFkZT1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1lLmVmZmVjdHMuc2V0TW9kZShzLHQubW9kZXx8InRvZ2dsZSIpO3MuYW5pbWF0ZSh7b3BhY2l0eTpufSx7cXVldWU6ITEsZHVyYXRpb246dC5kdXJhdGlvbixlYXNpbmc6dC5lYXNpbmcsY29tcGxldGU6aX0pfSxlLmVmZmVjdHMuZWZmZWN0LmZvbGQ9ZnVuY3Rpb24odCxpKXt2YXIgcyxuLGE9ZSh0aGlzKSxvPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLHI9ZS5lZmZlY3RzLnNldE1vZGUoYSx0Lm1vZGV8fCJoaWRlIiksaD0ic2hvdyI9PT1yLGw9ImhpZGUiPT09cix1PXQuc2l6ZXx8MTUsZD0vKFswLTldKyklLy5leGVjKHUpLGM9ISF0Lmhvcml6Rmlyc3QscD1oIT09YyxmPXA/WyJ3aWR0aCIsImhlaWdodCJdOlsiaGVpZ2h0Iiwid2lkdGgiXSxtPXQuZHVyYXRpb24vMixnPXt9LHY9e307ZS5lZmZlY3RzLnNhdmUoYSxvKSxhLnNob3coKSxzPWUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKGEpLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiJ9KSxuPXA/W3Mud2lkdGgoKSxzLmhlaWdodCgpXTpbcy5oZWlnaHQoKSxzLndpZHRoKCldLGQmJih1PXBhcnNlSW50KGRbMV0sMTApLzEwMCpuW2w/MDoxXSksaCYmcy5jc3MoYz97aGVpZ2h0OjAsd2lkdGg6dX06e2hlaWdodDp1LHdpZHRoOjB9KSxnW2ZbMF1dPWg/blswXTp1LHZbZlsxXV09aD9uWzFdOjAscy5hbmltYXRlKGcsbSx0LmVhc2luZykuYW5pbWF0ZSh2LG0sdC5lYXNpbmcsZnVuY3Rpb24oKXtsJiZhLmhpZGUoKSxlLmVmZmVjdHMucmVzdG9yZShhLG8pLGUuZWZmZWN0cy5yZW1vdmVXcmFwcGVyKGEpLGkoKX0pfSxlLmVmZmVjdHMuZWZmZWN0LmhpZ2hsaWdodD1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1bImJhY2tncm91bmRJbWFnZSIsImJhY2tncm91bmRDb2xvciIsIm9wYWNpdHkiXSxhPWUuZWZmZWN0cy5zZXRNb2RlKHMsdC5tb2RlfHwic2hvdyIpLG89e2JhY2tncm91bmRDb2xvcjpzLmNzcygiYmFja2dyb3VuZENvbG9yIil9OyJoaWRlIj09PWEmJihvLm9wYWNpdHk9MCksZS5lZmZlY3RzLnNhdmUocyxuKSxzLnNob3coKS5jc3Moe2JhY2tncm91bmRJbWFnZToibm9uZSIsYmFja2dyb3VuZENvbG9yOnQuY29sb3J8fCIjZmZmZjk5In0pLmFuaW1hdGUobyx7cXVldWU6ITEsZHVyYXRpb246dC5kdXJhdGlvbixlYXNpbmc6dC5lYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXsiaGlkZSI9PT1hJiZzLmhpZGUoKSxlLmVmZmVjdHMucmVzdG9yZShzLG4pLGkoKX19KX0sZS5lZmZlY3RzLmVmZmVjdC5zaXplPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89ZSh0aGlzKSxyPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJ3aWR0aCIsImhlaWdodCIsIm92ZXJmbG93Iiwib3BhY2l0eSJdLGg9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsIm92ZXJmbG93Iiwib3BhY2l0eSJdLGw9WyJ3aWR0aCIsImhlaWdodCIsIm92ZXJmbG93Il0sdT1bImZvbnRTaXplIl0sZD1bImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyQm90dG9tV2lkdGgiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLGM9WyJib3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdodFdpZHRoIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiXSxwPWUuZWZmZWN0cy5zZXRNb2RlKG8sdC5tb2RlfHwiZWZmZWN0IiksZj10LnJlc3RvcmV8fCJlZmZlY3QiIT09cCxtPXQuc2NhbGV8fCJib3RoIixnPXQub3JpZ2lufHxbIm1pZGRsZSIsImNlbnRlciJdLHY9by5jc3MoInBvc2l0aW9uIikseT1mP3I6aCxiPXtoZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTsic2hvdyI9PT1wJiZvLnNob3coKSxzPXtoZWlnaHQ6by5oZWlnaHQoKSx3aWR0aDpvLndpZHRoKCksb3V0ZXJIZWlnaHQ6by5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6by5vdXRlcldpZHRoKCl9LCJ0b2dnbGUiPT09dC5tb2RlJiYic2hvdyI9PT1wPyhvLmZyb209dC50b3x8YixvLnRvPXQuZnJvbXx8cyk6KG8uZnJvbT10LmZyb218fCgic2hvdyI9PT1wP2I6cyksby50bz10LnRvfHwoImhpZGUiPT09cD9iOnMpKSxhPXtmcm9tOnt5Om8uZnJvbS5oZWlnaHQvcy5oZWlnaHQseDpvLmZyb20ud2lkdGgvcy53aWR0aH0sdG86e3k6by50by5oZWlnaHQvcy5oZWlnaHQseDpvLnRvLndpZHRoL3Mud2lkdGh9fSwoImJveCI9PT1tfHwiYm90aCI9PT1tKSYmKGEuZnJvbS55IT09YS50by55JiYoeT15LmNvbmNhdChkKSxvLmZyb209ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyxkLGEuZnJvbS55LG8uZnJvbSksby50bz1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihvLGQsYS50by55LG8udG8pKSxhLmZyb20ueCE9PWEudG8ueCYmKHk9eS5jb25jYXQoYyksby5mcm9tPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKG8sYyxhLmZyb20ueCxvLmZyb20pLG8udG89ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyxjLGEudG8ueCxvLnRvKSkpLCgiY29udGVudCI9PT1tfHwiYm90aCI9PT1tKSYmYS5mcm9tLnkhPT1hLnRvLnkmJih5PXkuY29uY2F0KHUpLmNvbmNhdChsKSxvLmZyb209ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyx1LGEuZnJvbS55LG8uZnJvbSksby50bz1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihvLHUsYS50by55LG8udG8pKSxlLmVmZmVjdHMuc2F2ZShvLHkpLG8uc2hvdygpLGUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKG8pLG8uY3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpLmNzcyhvLmZyb20pLGcmJihuPWUuZWZmZWN0cy5nZXRCYXNlbGluZShnLHMpLG8uZnJvbS50b3A9KHMub3V0ZXJIZWlnaHQtby5vdXRlckhlaWdodCgpKSpuLnksby5mcm9tLmxlZnQ9KHMub3V0ZXJXaWR0aC1vLm91dGVyV2lkdGgoKSkqbi54LG8udG8udG9wPShzLm91dGVySGVpZ2h0LW8udG8ub3V0ZXJIZWlnaHQpKm4ueSxvLnRvLmxlZnQ9KHMub3V0ZXJXaWR0aC1vLnRvLm91dGVyV2lkdGgpKm4ueCksby5jc3Moby5mcm9tKSwoImNvbnRlbnQiPT09bXx8ImJvdGgiPT09bSkmJihkPWQuY29uY2F0KFsibWFyZ2luVG9wIiwibWFyZ2luQm90dG9tIl0pLmNvbmNhdCh1KSxjPWMuY29uY2F0KFsibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0Il0pLGw9ci5jb25jYXQoZCkuY29uY2F0KGMpLG8uZmluZCgiKlt3aWR0aF0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKSxzPXtoZWlnaHQ6aS5oZWlnaHQoKSx3aWR0aDppLndpZHRoKCksb3V0ZXJIZWlnaHQ6aS5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6aS5vdXRlcldpZHRoKCl9O2YmJmUuZWZmZWN0cy5zYXZlKGksbCksaS5mcm9tPXtoZWlnaHQ6cy5oZWlnaHQqYS5mcm9tLnksd2lkdGg6cy53aWR0aCphLmZyb20ueCxvdXRlckhlaWdodDpzLm91dGVySGVpZ2h0KmEuZnJvbS55LG91dGVyV2lkdGg6cy5vdXRlcldpZHRoKmEuZnJvbS54fSxpLnRvPXtoZWlnaHQ6cy5oZWlnaHQqYS50by55LHdpZHRoOnMud2lkdGgqYS50by54LG91dGVySGVpZ2h0OnMuaGVpZ2h0KmEudG8ueSxvdXRlcldpZHRoOnMud2lkdGgqYS50by54fSxhLmZyb20ueSE9PWEudG8ueSYmKGkuZnJvbT1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihpLGQsYS5mcm9tLnksaS5mcm9tKSxpLnRvPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGksZCxhLnRvLnksaS50bykpLGEuZnJvbS54IT09YS50by54JiYoaS5mcm9tPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGksYyxhLmZyb20ueCxpLmZyb20pLGkudG89ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24oaSxjLGEudG8ueCxpLnRvKSksaS5jc3MoaS5mcm9tKSxpLmFuaW1hdGUoaS50byx0LmR1cmF0aW9uLHQuZWFzaW5nLGZ1bmN0aW9uKCl7ZiYmZS5lZmZlY3RzLnJlc3RvcmUoaSxsKX0pfSkpLG8uYW5pbWF0ZShvLnRvLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpezA9PT1vLnRvLm9wYWNpdHkmJm8uY3NzKCJvcGFjaXR5IixvLmZyb20ub3BhY2l0eSksImhpZGUiPT09cCYmby5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobyx5KSxmfHwoInN0YXRpYyI9PT12P28uY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDpvLnRvLnRvcCxsZWZ0Om8udG8ubGVmdH0pOmUuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihlLHQpe28uY3NzKHQsZnVuY3Rpb24odCxpKXt2YXIgcz1wYXJzZUludChpLDEwKSxuPWU/by50by5sZWZ0Om8udG8udG9wO3JldHVybiJhdXRvIj09PWk/bisicHgiOnMrbisicHgifSl9KSksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LnNjYWxlPWZ1bmN0aW9uKHQsaSl7dmFyIHM9ZSh0aGlzKSxuPWUuZXh0ZW5kKCEwLHt9LHQpLGE9ZS5lZmZlY3RzLnNldE1vZGUocyx0Lm1vZGV8fCJlZmZlY3QiKSxvPXBhcnNlSW50KHQucGVyY2VudCwxMCl8fCgwPT09cGFyc2VJbnQodC5wZXJjZW50LDEwKT8wOiJoaWRlIj09PWE/MDoxMDApLHI9dC5kaXJlY3Rpb258fCJib3RoIixoPXQub3JpZ2luLGw9e2hlaWdodDpzLmhlaWdodCgpLHdpZHRoOnMud2lkdGgoKSxvdXRlckhlaWdodDpzLm91dGVySGVpZ2h0KCksb3V0ZXJXaWR0aDpzLm91dGVyV2lkdGgoKX0sdT17eToiaG9yaXpvbnRhbCIhPT1yP28vMTAwOjEseDoidmVydGljYWwiIT09cj9vLzEwMDoxfTtuLmVmZmVjdD0ic2l6ZSIsbi5xdWV1ZT0hMSxuLmNvbXBsZXRlPWksImVmZmVjdCIhPT1hJiYobi5vcmlnaW49aHx8WyJtaWRkbGUiLCJjZW50ZXIiXSxuLnJlc3RvcmU9ITApLG4uZnJvbT10LmZyb218fCgic2hvdyI9PT1hP3toZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTpsKSxuLnRvPXtoZWlnaHQ6bC5oZWlnaHQqdS55LHdpZHRoOmwud2lkdGgqdS54LG91dGVySGVpZ2h0Omwub3V0ZXJIZWlnaHQqdS55LG91dGVyV2lkdGg6bC5vdXRlcldpZHRoKnUueH0sbi5mYWRlJiYoInNob3ciPT09YSYmKG4uZnJvbS5vcGFjaXR5PTAsbi50by5vcGFjaXR5PTEpLCJoaWRlIj09PWEmJihuLmZyb20ub3BhY2l0eT0xLG4udG8ub3BhY2l0eT0wKSkscy5lZmZlY3Qobil9LGUuZWZmZWN0cy5lZmZlY3QucHVmZj1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1lLmVmZmVjdHMuc2V0TW9kZShzLHQubW9kZXx8ImhpZGUiKSxhPSJoaWRlIj09PW4sbz1wYXJzZUludCh0LnBlcmNlbnQsMTApfHwxNTAscj1vLzEwMCxoPXtoZWlnaHQ6cy5oZWlnaHQoKSx3aWR0aDpzLndpZHRoKCksb3V0ZXJIZWlnaHQ6cy5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6cy5vdXRlcldpZHRoKCl9O2UuZXh0ZW5kKHQse2VmZmVjdDoic2NhbGUiLHF1ZXVlOiExLGZhZGU6ITAsbW9kZTpuLGNvbXBsZXRlOmkscGVyY2VudDphP286MTAwLGZyb206YT9oOntoZWlnaHQ6aC5oZWlnaHQqcix3aWR0aDpoLndpZHRoKnIsb3V0ZXJIZWlnaHQ6aC5vdXRlckhlaWdodCpyLG91dGVyV2lkdGg6aC5vdXRlcldpZHRoKnJ9fSkscy5lZmZlY3QodCl9LGUuZWZmZWN0cy5lZmZlY3QucHVsc2F0ZT1mdW5jdGlvbih0LGkpe3ZhciBzLG49ZSh0aGlzKSxhPWUuZWZmZWN0cy5zZXRNb2RlKG4sdC5tb2RlfHwic2hvdyIpLG89InNob3ciPT09YSxyPSJoaWRlIj09PWEsaD1vfHwiaGlkZSI9PT1hLGw9MioodC50aW1lc3x8NSkrKGg/MTowKSx1PXQuZHVyYXRpb24vbCxkPTAsYz1uLnF1ZXVlKCkscD1jLmxlbmd0aDtmb3IoKG98fCFuLmlzKCI6dmlzaWJsZSIpKSYmKG4uY3NzKCJvcGFjaXR5IiwwKS5zaG93KCksZD0xKSxzPTE7bD5zO3MrKyluLmFuaW1hdGUoe29wYWNpdHk6ZH0sdSx0LmVhc2luZyksZD0xLWQ7bi5hbmltYXRlKHtvcGFjaXR5OmR9LHUsdC5lYXNpbmcpLG4ucXVldWUoZnVuY3Rpb24oKXtyJiZuLmhpZGUoKSxpKCl9KSxwPjEmJmMuc3BsaWNlLmFwcGx5KGMsWzEsMF0uY29uY2F0KGMuc3BsaWNlKHAsbCsxKSkpLG4uZGVxdWV1ZSgpfSxlLmVmZmVjdHMuZWZmZWN0LnNoYWtlPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbj1lKHRoaXMpLGE9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImhlaWdodCIsIndpZHRoIl0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8ImVmZmVjdCIpLHI9dC5kaXJlY3Rpb258fCJsZWZ0IixoPXQuZGlzdGFuY2V8fDIwLGw9dC50aW1lc3x8Myx1PTIqbCsxLGQ9TWF0aC5yb3VuZCh0LmR1cmF0aW9uL3UpLGM9InVwIj09PXJ8fCJkb3duIj09PXI/InRvcCI6ImxlZnQiLHA9InVwIj09PXJ8fCJsZWZ0Ij09PXIsZj17fSxtPXt9LGc9e30sdj1uLnF1ZXVlKCkseT12Lmxlbmd0aDtmb3IoZS5lZmZlY3RzLnNhdmUobixhKSxuLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKSxmW2NdPShwPyItPSI6Iis9IikraCxtW2NdPShwPyIrPSI6Ii09IikrMipoLGdbY109KHA/Ii09IjoiKz0iKSsyKmgsbi5hbmltYXRlKGYsZCx0LmVhc2luZykscz0xO2w+cztzKyspbi5hbmltYXRlKG0sZCx0LmVhc2luZykuYW5pbWF0ZShnLGQsdC5lYXNpbmcpO24uYW5pbWF0ZShtLGQsdC5lYXNpbmcpLmFuaW1hdGUoZixkLzIsdC5lYXNpbmcpLnF1ZXVlKGZ1bmN0aW9uKCl7ImhpZGUiPT09byYmbi5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobixhKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihuKSxpKCl9KSx5PjEmJnYuc3BsaWNlLmFwcGx5KHYsWzEsMF0uY29uY2F0KHYuc3BsaWNlKHksdSsxKSkpLG4uZGVxdWV1ZSgpfSxlLmVmZmVjdHMuZWZmZWN0LnNsaWRlPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbj1lKHRoaXMpLGE9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsIndpZHRoIiwiaGVpZ2h0Il0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8InNob3ciKSxyPSJzaG93Ij09PW8saD10LmRpcmVjdGlvbnx8ImxlZnQiLGw9InVwIj09PWh8fCJkb3duIj09PWg/InRvcCI6ImxlZnQiLHU9InVwIj09PWh8fCJsZWZ0Ij09PWgsZD17fTtlLmVmZmVjdHMuc2F2ZShuLGEpLG4uc2hvdygpLHM9dC5kaXN0YW5jZXx8blsidG9wIj09PWw/Im91dGVySGVpZ2h0Ijoib3V0ZXJXaWR0aCJdKCEwKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKS5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSksciYmbi5jc3MobCx1P2lzTmFOKHMpPyItIitzOi1zOnMpLGRbbF09KHI/dT8iKz0iOiItPSI6dT8iLT0iOiIrPSIpK3Msbi5hbmltYXRlKGQse3F1ZXVlOiExLGR1cmF0aW9uOnQuZHVyYXRpb24sZWFzaW5nOnQuZWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7ImhpZGUiPT09byYmbi5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobixhKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihuKSxpKCl9fSl9LGUuZWZmZWN0cy5lZmZlY3QudHJhbnNmZXI9ZnVuY3Rpb24odCxpKXt2YXIgcz1lKHRoaXMpLG49ZSh0LnRvKSxhPSJmaXhlZCI9PT1uLmNzcygicG9zaXRpb24iKSxvPWUoImJvZHkiKSxyPWE/by5zY3JvbGxUb3AoKTowLGg9YT9vLnNjcm9sbExlZnQoKTowLGw9bi5vZmZzZXQoKSx1PXt0b3A6bC50b3AtcixsZWZ0OmwubGVmdC1oLGhlaWdodDpuLmlubmVySGVpZ2h0KCksd2lkdGg6bi5pbm5lcldpZHRoKCl9LGQ9cy5vZmZzZXQoKSxjPWUoIjxkaXYgY2xhc3M9J3VpLWVmZmVjdHMtdHJhbnNmZXInPjwvZGl2PiIpLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpLmFkZENsYXNzKHQuY2xhc3NOYW1lKS5jc3Moe3RvcDpkLnRvcC1yLGxlZnQ6ZC5sZWZ0LWgsaGVpZ2h0OnMuaW5uZXJIZWlnaHQoKSx3aWR0aDpzLmlubmVyV2lkdGgoKSxwb3NpdGlvbjphPyJmaXhlZCI6ImFic29sdXRlIn0pLmFuaW1hdGUodSx0LmR1cmF0aW9uLHQuZWFzaW5nLGZ1bmN0aW9uKCl7Yy5yZW1vdmUoKSxpKCl9KX19KTs="></script>
<link href="data:text/css;charset=utf-8,%0A%0A%2Etocify%20%7B%0Awidth%3A%2020%25%3B%0Amax%2Dheight%3A%2090%25%3B%0Aoverflow%3A%20auto%3B%0Amargin%2Dleft%3A%202%25%3B%0Aposition%3A%20fixed%3B%0Aborder%3A%201px%20solid%20%23ccc%3B%0Aborder%2Dradius%3A%206px%3B%0A%7D%0A%0A%2Etocify%20ul%2C%20%2Etocify%20li%20%7B%0Alist%2Dstyle%3A%20none%3B%0Amargin%3A%200%3B%0Apadding%3A%200%3B%0Aborder%3A%20none%3B%0Aline%2Dheight%3A%2030px%3B%0A%7D%0A%0A%2Etocify%2Dheader%20%7B%0Atext%2Dindent%3A%2010px%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2020px%3B%0Adisplay%3A%20none%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20li%20%7B%0Afont%2Dsize%3A%2012px%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2030px%3B%0A%7D%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2040px%3B%0A%7D%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2050px%3B%0A%7D%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2060px%3B%0A%7D%0A%0A%2Etocify%20%2Etocify%2Ditem%20%3E%20a%2C%20%2Etocify%20%2Enav%2Dlist%20%2Enav%2Dheader%20%7B%0Amargin%3A%200px%3B%0A%7D%0A%0A%2Etocify%20%2Etocify%2Ditem%20a%2C%20%2Etocify%20%2Elist%2Dgroup%2Ditem%20%7B%0Apadding%3A%205px%3B%0A%7D%0A%2Etocify%20%2Enav%2Dpills%20%3E%20li%20%7B%0Afloat%3A%20none%3B%0A%7D%0A%0A%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,LyoganF1ZXJ5IFRvY2lmeSAtIHYxLjkuMSAtIDIwMTMtMTAtMjIKICogaHR0cDovL3d3dy5ncmVnZnJhbmtvLmNvbS9qcXVlcnkudG9jaWZ5LmpzLwogKiBDb3B5cmlnaHQgKGMpIDIwMTMgR3JlZyBGcmFua287IExpY2Vuc2VkIE1JVCAqLwoKLy8gSW1tZWRpYXRlbHktSW52b2tlZCBGdW5jdGlvbiBFeHByZXNzaW9uIChJSUZFKSBbQmVuIEFsbWFuIEJsb2cgUG9zdF0oaHR0cDovL2JlbmFsbWFuLmNvbS9uZXdzLzIwMTAvMTEvaW1tZWRpYXRlbHktaW52b2tlZC1mdW5jdGlvbi1leHByZXNzaW9uLykgdGhhdCBjYWxscyBhbm90aGVyIElJRkUgdGhhdCBjb250YWlucyBhbGwgb2YgdGhlIHBsdWdpbiBsb2dpYy4gIEkgdXNlZCB0aGlzIHBhdHRlcm4gc28gdGhhdCBhbnlvbmUgdmlld2luZyB0aGlzIGNvZGUgd291bGQgbm90IGhhdmUgdG8gc2Nyb2xsIHRvIHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgdG8gdmlldyB0aGUgbG9jYWwgcGFyYW1ldGVycyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoZSBtYWluIElJRkUuCihmdW5jdGlvbih0b2NpZnkpIHsKCiAgICAvLyBFQ01BU2NyaXB0IDUgU3RyaWN0IE1vZGU6IFtKb2huIFJlc2lnIEJsb2cgUG9zdF0oaHR0cDovL2Vqb2huLm9yZy9ibG9nL2VjbWFzY3JpcHQtNS1zdHJpY3QtbW9kZS1qc29uLWFuZC1tb3JlLykKICAgICJ1c2Ugc3RyaWN0IjsKCiAgICAvLyBDYWxscyB0aGUgc2Vjb25kIElJRkUgYW5kIGxvY2FsbHkgcGFzc2VzIGluIHRoZSBnbG9iYWwgalF1ZXJ5LCB3aW5kb3csIGFuZCBkb2N1bWVudCBvYmplY3RzCiAgICB0b2NpZnkod2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7CgogIH0KCiAgLy8gTG9jYWxseSBwYXNzZXMgaW4gYGpRdWVyeWAsIHRoZSBgd2luZG93YCBvYmplY3QsIHRoZSBgZG9jdW1lbnRgIG9iamVjdCwgYW5kIGFuIGB1bmRlZmluZWRgIHZhcmlhYmxlLiAgVGhlIGBqUXVlcnlgLCBgd2luZG93YCBhbmQgYGRvY3VtZW50YCBvYmplY3RzIGFyZSBwYXNzZWQgaW4gbG9jYWxseSwgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZSwgc2luY2UgamF2YXNjcmlwdCBmaXJzdCBzZWFyY2hlcyBmb3IgYSB2YXJpYWJsZSBtYXRjaCB3aXRoaW4gdGhlIGxvY2FsIHZhcmlhYmxlcyBzZXQgYmVmb3JlIHNlYXJjaGluZyB0aGUgZ2xvYmFsIHZhcmlhYmxlcyBzZXQuICBBbGwgb2YgdGhlIGdsb2JhbCB2YXJpYWJsZXMgYXJlIGFsc28gcGFzc2VkIGluIGxvY2FsbHkgdG8gYmUgbWluaWZpZXIgZnJpZW5kbHkuIGB1bmRlZmluZWRgIGNhbiBiZSBwYXNzZWQgaW4gbG9jYWxseSwgYmVjYXVzZSBpdCBpcyBub3QgYSByZXNlcnZlZCB3b3JkIGluIEphdmFTY3JpcHQuCiAgKGZ1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkgewoKICAgIC8vIEVDTUFTY3JpcHQgNSBTdHJpY3QgTW9kZTogW0pvaG4gUmVzaWcgQmxvZyBQb3N0XShodHRwOi8vZWpvaG4ub3JnL2Jsb2cvZWNtYXNjcmlwdC01LXN0cmljdC1tb2RlLWpzb24tYW5kLW1vcmUvKQogICAgInVzZSBzdHJpY3QiOwoKICAgIHZhciB0b2NDbGFzc05hbWUgPSAidG9jaWZ5IiwKICAgICAgdG9jQ2xhc3MgPSAiLiIgKyB0b2NDbGFzc05hbWUsCiAgICAgIHRvY0ZvY3VzQ2xhc3NOYW1lID0gInRvY2lmeS1mb2N1cyIsCiAgICAgIHRvY0hvdmVyQ2xhc3NOYW1lID0gInRvY2lmeS1ob3ZlciIsCiAgICAgIGhpZGVUb2NDbGFzc05hbWUgPSAidG9jaWZ5LWhpZGUiLAogICAgICBoaWRlVG9jQ2xhc3MgPSAiLiIgKyBoaWRlVG9jQ2xhc3NOYW1lLAogICAgICBoZWFkZXJDbGFzc05hbWUgPSAidG9jaWZ5LWhlYWRlciIsCiAgICAgIGhlYWRlckNsYXNzID0gIi4iICsgaGVhZGVyQ2xhc3NOYW1lLAogICAgICBzdWJoZWFkZXJDbGFzc05hbWUgPSAidG9jaWZ5LXN1YmhlYWRlciIsCiAgICAgIHN1YmhlYWRlckNsYXNzID0gIi4iICsgc3ViaGVhZGVyQ2xhc3NOYW1lLAogICAgICBpdGVtQ2xhc3NOYW1lID0gInRvY2lmeS1pdGVtIiwKICAgICAgaXRlbUNsYXNzID0gIi4iICsgaXRlbUNsYXNzTmFtZSwKICAgICAgZXh0ZW5kUGFnZUNsYXNzTmFtZSA9ICJ0b2NpZnktZXh0ZW5kLXBhZ2UiLAogICAgICBleHRlbmRQYWdlQ2xhc3MgPSAiLiIgKyBleHRlbmRQYWdlQ2xhc3NOYW1lOwoKICAgIC8vIENhbGxpbmcgdGhlIGpRdWVyeVVJIFdpZGdldCBGYWN0b3J5IE1ldGhvZAogICAgJC53aWRnZXQoInRvYy50b2NpZnkiLCB7CgogICAgICAvL1BsdWdpbiB2ZXJzaW9uCiAgICAgIHZlcnNpb246ICIxLjkuMSIsCgogICAgICAvLyBUaGVzZSBvcHRpb25zIHdpbGwgYmUgdXNlZCBhcyBkZWZhdWx0cwogICAgICBvcHRpb25zOiB7CgogICAgICAgIC8vICoqY29udGV4dCoqOiBBY2NlcHRzIFN0cmluZzogQW55IGpRdWVyeSBzZWxlY3RvcgogICAgICAgIC8vIFRoZSBjb250YWluZXIgZWxlbWVudCB0aGF0IGhvbGRzIGFsbCBvZiB0aGUgZWxlbWVudHMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgdGFibGUgb2YgY29udGVudHMKICAgICAgICBjb250ZXh0OiAiYm9keSIsCgogICAgICAgIC8vICoqaWdub3JlU2VsZWN0b3IqKjogQWNjZXB0cyBTdHJpbmc6IEFueSBqUXVlcnkgc2VsZWN0b3IKICAgICAgICAvLyBBIHNlbGVjdG9yIHRvIGFueSBlbGVtZW50IHRoYXQgd291bGQgYmUgbWF0Y2hlZCBieSBzZWxlY3RvcnMgdGhhdCB5b3Ugd2lzaCB0byBiZSBpZ25vcmVkCiAgICAgICAgaWdub3JlU2VsZWN0b3I6IG51bGwsCgogICAgICAgIC8vICoqc2VsZWN0b3JzKio6IEFjY2VwdHMgYW4gQXJyYXkgb2YgU3RyaW5nczogQW55IGpRdWVyeSBzZWxlY3RvcnMKICAgICAgICAvLyBUaGUgZWxlbWVudCdzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgVGhlIG9yZGVyIGlzIHZlcnkgaW1wb3J0YW50IHNpbmNlIGl0IHdpbGwgZGV0ZXJtaW5lIHRoZSB0YWJsZSBvZiBjb250ZW50J3MgbmVzdGluZyBzdHJ1Y3R1cmUKICAgICAgICBzZWxlY3RvcnM6ICJoMSwgaDIsIGgzIiwKCiAgICAgICAgLy8gKipzaG93QW5kSGlkZSoqOiBBY2NlcHRzIGEgYm9vbGVhbjogdHJ1ZSBvciBmYWxzZQogICAgICAgIC8vIFVzZWQgdG8gZGV0ZXJtaW5lIGlmIGVsZW1lbnRzIHNob3VsZCBiZSBzaG93biBhbmQgaGlkZGVuCiAgICAgICAgc2hvd0FuZEhpZGU6IHRydWUsCgogICAgICAgIC8vICoqc2hvd0VmZmVjdCoqOiBBY2NlcHRzIFN0cmluZzogIm5vbmUiLCAiZmFkZUluIiwgInNob3ciLCBvciAic2xpZGVEb3duIgogICAgICAgIC8vIFVzZWQgdG8gZGlzcGxheSBhbnkgb2YgdGhlIHRhYmxlIG9mIGNvbnRlbnRzIG5lc3RlZCBpdGVtcwogICAgICAgIHNob3dFZmZlY3Q6ICJzbGlkZURvd24iLAoKICAgICAgICAvLyAqKnNob3dFZmZlY3RTcGVlZCoqOiBBY2NlcHRzIE51bWJlciAobWlsbGlzZWNvbmRzKSBvciBTdHJpbmc6ICJzbG93IiwgIm1lZGl1bSIsIG9yICJmYXN0IgogICAgICAgIC8vIFRoZSB0aW1lIGR1cmF0aW9uIG9mIHRoZSBzaG93IGFuaW1hdGlvbgogICAgICAgIHNob3dFZmZlY3RTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqaGlkZUVmZmVjdCoqOiBBY2NlcHRzIFN0cmluZzogIm5vbmUiLCAiZmFkZU91dCIsICJoaWRlIiwgb3IgInNsaWRlVXAiCiAgICAgICAgLy8gVXNlZCB0byBoaWRlIGFueSBvZiB0aGUgdGFibGUgb2YgY29udGVudHMgbmVzdGVkIGl0ZW1zCiAgICAgICAgaGlkZUVmZmVjdDogInNsaWRlVXAiLAoKICAgICAgICAvLyAqKmhpZGVFZmZlY3RTcGVlZCoqOiBBY2NlcHRzIE51bWJlciAobWlsbGlzZWNvbmRzKSBvciBTdHJpbmc6ICJzbG93IiwgIm1lZGl1bSIsIG9yICJmYXN0IgogICAgICAgIC8vIFRoZSB0aW1lIGR1cmF0aW9uIG9mIHRoZSBoaWRlIGFuaW1hdGlvbgogICAgICAgIGhpZGVFZmZlY3RTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqc21vb3RoU2Nyb2xsKio6IEFjY2VwdHMgYSBib29sZWFuOiB0cnVlIG9yIGZhbHNlCiAgICAgICAgLy8gRGV0ZXJtaW5lcyBpZiBhIGpRdWVyeSBhbmltYXRpb24gc2hvdWxkIGJlIHVzZWQgdG8gc2Nyb2xsIHRvIHNwZWNpZmljIHRhYmxlIG9mIGNvbnRlbnRzIGl0ZW1zIG9uIHRoZSBwYWdlCiAgICAgICAgc21vb3RoU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKnNtb290aFNjcm9sbFNwZWVkKio6IEFjY2VwdHMgTnVtYmVyIChtaWxsaXNlY29uZHMpIG9yIFN0cmluZzogInNsb3ciLCAibWVkaXVtIiwgb3IgImZhc3QiCiAgICAgICAgLy8gVGhlIHRpbWUgZHVyYXRpb24gb2YgdGhlIHNtb290aFNjcm9sbCBhbmltYXRpb24KICAgICAgICBzbW9vdGhTY3JvbGxTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqc2Nyb2xsVG8qKjogQWNjZXB0cyBOdW1iZXIgKHBpeGVscykKICAgICAgICAvLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIHRvcCBvZiBwYWdlIGFuZCB0aGUgc2VsZWN0ZWQgdGFibGUgb2YgY29udGVudHMgaXRlbSBhZnRlciB0aGUgcGFnZSBoYXMgYmVlbiBzY3JvbGxlZAogICAgICAgIHNjcm9sbFRvOiAwLAoKICAgICAgICAvLyAqKnNob3dBbmRIaWRlT25TY3JvbGwqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBEZXRlcm1pbmVzIGlmIHRhYmxlIG9mIGNvbnRlbnRzIG5lc3RlZCBpdGVtcyBzaG91bGQgYmUgc2hvd24gYW5kIGhpZGRlbiB3aGlsZSBzY3JvbGxpbmcKICAgICAgICBzaG93QW5kSGlkZU9uU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodE9uU2Nyb2xsKio6IEFjY2VwdHMgYSBib29sZWFuOiB0cnVlIG9yIGZhbHNlCiAgICAgICAgLy8gRGV0ZXJtaW5lcyBpZiB0YWJsZSBvZiBjb250ZW50cyBuZXN0ZWQgaXRlbXMgc2hvdWxkIGJlIGhpZ2hsaWdodGVkIChzZXQgdG8gYSBkaWZmZXJlbnQgY29sb3IpIHdoaWxlIHNjcm9sbGluZwogICAgICAgIGhpZ2hsaWdodE9uU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodE9mZnNldCoqOiBBY2NlcHRzIGEgbnVtYmVyCiAgICAgICAgLy8gVGhlIG9mZnNldCBkaXN0YW5jZSBpbiBwaXhlbHMgdG8gdHJpZ2dlciB0aGUgbmV4dCBhY3RpdmUgdGFibGUgb2YgY29udGVudHMgaXRlbQogICAgICAgIGhpZ2hsaWdodE9mZnNldDogNDAsCgogICAgICAgIC8vICoqdGhlbWUqKjogQWNjZXB0cyBhIHN0cmluZzogImJvb3RzdHJhcCIsICJqcXVlcnl1aSIsIG9yICJub25lIgogICAgICAgIC8vIERldGVybWluZXMgaWYgVHdpdHRlciBCb290c3RyYXAsIGpRdWVyeVVJLCBvciBUb2NpZnkgY2xhc3NlcyBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIHRhYmxlIG9mIGNvbnRlbnRzCiAgICAgICAgdGhlbWU6ICJib290c3RyYXAiLAoKICAgICAgICAvLyAqKmV4dGVuZFBhZ2UqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBJZiBhIHVzZXIgc2Nyb2xscyB0byB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGFuZCB0aGUgcGFnZSBpcyBub3QgdGFsbCBlbm91Z2ggdG8gc2Nyb2xsIHRvIHRoZSBsYXN0IHRhYmxlIG9mIGNvbnRlbnRzIGl0ZW0sIHRoZW4gdGhlIHBhZ2UgaGVpZ2h0IGlzIGluY3JlYXNlZAogICAgICAgIGV4dGVuZFBhZ2U6IHRydWUsCgogICAgICAgIC8vICoqZXh0ZW5kUGFnZU9mZnNldCoqOiBBY2NlcHRzIGEgbnVtYmVyOiBwaXhlbHMKICAgICAgICAvLyBIb3cgY2xvc2UgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhIHVzZXIgbXVzdCBzY3JvbGwgYmVmb3JlIHRoZSBwYWdlIGlzIGV4dGVuZGVkCiAgICAgICAgZXh0ZW5kUGFnZU9mZnNldDogMTAwLAoKICAgICAgICAvLyAqKmhpc3RvcnkqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBBZGRzIGEgaGFzaCB0byB0aGUgcGFnZSB1cmwgdG8gbWFpbnRhaW4gaGlzdG9yeQogICAgICAgIGhpc3Rvcnk6IHRydWUsCgogICAgICAgIC8vICoqc2Nyb2xsSGlzdG9yeSoqOiBBY2NlcHRzIGEgYm9vbGVhbjogdHJ1ZSBvciBmYWxzZQogICAgICAgIC8vIEFkZHMgYSBoYXNoIHRvIHRoZSBwYWdlIHVybCwgdG8gbWFpbnRhaW4gaGlzdG9yeSwgd2hlbiBzY3JvbGxpbmcgdG8gYSBUT0MgaXRlbQogICAgICAgIHNjcm9sbEhpc3Rvcnk6IGZhbHNlLAoKICAgICAgICAvLyAqKmhhc2hHZW5lcmF0b3IqKjogSG93IHRoZSBoYXNoIHZhbHVlICh0aGUgYW5jaG9yIHNlZ21lbnQgb2YgdGhlIFVSTCwgZm9sbG93aW5nIHRoZQogICAgICAgIC8vICMgY2hhcmFjdGVyKSB3aWxsIGJlIGdlbmVyYXRlZC4KICAgICAgICAvLwogICAgICAgIC8vICJjb21wYWN0IiAoZGVmYXVsdCkgLSAjQ29tcHJlc3Nlc0V2ZXJ5dGhpbmdUb2dldGhlcgogICAgICAgIC8vICJwcmV0dHkiIC0gI2xvb2tzLWxpa2UtYS1uaWNlLXVybC1hbmQtaXMtZWFzaWx5LXJlYWRhYmxlCiAgICAgICAgLy8gZnVuY3Rpb24odGV4dCwgZWxlbWVudCl7fSAtIFlvdXIgb3duIGhhc2ggZ2VuZXJhdGlvbiBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdGhlIHRleHQgYXMgYW4KICAgICAgICAvLyBhcmd1bWVudCwgYW5kIHJldHVybnMgdGhlIGhhc2ggdmFsdWUuCiAgICAgICAgaGFzaEdlbmVyYXRvcjogImNvbXBhY3QiLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodERlZmF1bHQqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBTZXQncyB0aGUgZmlyc3QgVE9DIGl0ZW0gYXMgYWN0aXZlIGlmIG5vIG90aGVyIFRPQyBpdGVtIGlzIGFjdGl2ZS4KICAgICAgICBoaWdobGlnaHREZWZhdWx0OiB0cnVlCgogICAgICB9LAoKICAgICAgLy8gX0NyZWF0ZQogICAgICAvLyAtLS0tLS0tCiAgICAgIC8vICAgICAgQ29uc3RydWN0cyB0aGUgcGx1Z2luLiAgT25seSBjYWxsZWQgb25jZS4KICAgICAgX2NyZWF0ZTogZnVuY3Rpb24oKSB7CgogICAgICAgIHZhciBzZWxmID0gdGhpczsKCiAgICAgICAgc2VsZi5leHRlbmRQYWdlU2Nyb2xsID0gdHJ1ZTsKCiAgICAgICAgLy8gSW50ZXJuYWwgYXJyYXkgdGhhdCBrZWVwcyB0cmFjayBvZiBhbGwgVE9DIGl0ZW1zIChIZWxwcyB0byByZWNvZ25pemUgaWYgdGhlcmUgYXJlIGR1cGxpY2F0ZSBUT0MgaXRlbSBzdHJpbmdzKQogICAgICAgIHNlbGYuaXRlbXMgPSBbXTsKCiAgICAgICAgLy8gR2VuZXJhdGVzIHRoZSBIVE1MIGZvciB0aGUgZHluYW1pYyB0YWJsZSBvZiBjb250ZW50cwogICAgICAgIHNlbGYuX2dlbmVyYXRlVG9jKCk7CgogICAgICAgIC8vIEFkZHMgQ1NTIGNsYXNzZXMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cyBIVE1MCiAgICAgICAgc2VsZi5fYWRkQ1NTQ2xhc3NlcygpOwoKICAgICAgICBzZWxmLndlYmtpdCA9IChmdW5jdGlvbigpIHsKCiAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIHdpbmRvdykgewoKICAgICAgICAgICAgaWYgKHByb3ApIHsKCiAgICAgICAgICAgICAgaWYgKHByb3AudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSAhPT0gLTEpIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKCiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQoKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgIH0oKSk7CgogICAgICAgIC8vIEFkZHMgalF1ZXJ5IGV2ZW50IGhhbmRsZXJzIHRvIHRoZSBuZXdseSBnZW5lcmF0ZWQgdGFibGUgb2YgY29udGVudHMKICAgICAgICBzZWxmLl9zZXRFdmVudEhhbmRsZXJzKCk7CgogICAgICAgIC8vIEJpbmRpbmcgdG8gdGhlIFdpbmRvdyBsb2FkIGV2ZW50IHRvIG1ha2Ugc3VyZSB0aGUgY29ycmVjdCBzY3JvbGxUb3AgaXMgY2FsY3VsYXRlZAogICAgICAgICQod2luZG93KS5sb2FkKGZ1bmN0aW9uKCkgewoKICAgICAgICAgIC8vIFNldHMgdGhlIGFjdGl2ZSBUT0MgaXRlbQogICAgICAgICAgc2VsZi5fc2V0QWN0aXZlRWxlbWVudCh0cnVlKTsKCiAgICAgICAgICAvLyBPbmNlIGFsbCBhbmltYXRpb25zIG9uIHRoZSBwYWdlIGFyZSBjb21wbGV0ZSwgdGhpcyBjYWxsYmFjayBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZAogICAgICAgICAgJCgiaHRtbCwgYm9keSIpLnByb21pc2UoKS5kb25lKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgc2VsZi5leHRlbmRQYWdlU2Nyb2xsID0gZmFsc2U7CgogICAgICAgICAgICB9LCAwKTsKCiAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CgogICAgICB9LAoKICAgICAgLy8gX2dlbmVyYXRlVG9jCiAgICAgIC8vIC0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEdlbmVyYXRlcyB0aGUgSFRNTCBmb3IgdGhlIGR5bmFtaWMgdGFibGUgb2YgY29udGVudHMKICAgICAgX2dlbmVyYXRlVG9jOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gX0xvY2FsIHZhcmlhYmxlc18KCiAgICAgICAgLy8gU3RvcmVzIHRoZSBwbHVnaW4gY29udGV4dCBpbiB0aGUgc2VsZiB2YXJpYWJsZQogICAgICAgIHZhciBzZWxmID0gdGhpcywKCiAgICAgICAgICAvLyBBbGwgb2YgdGhlIEhUTUwgdGFncyBmb3VuZCB3aXRoaW4gdGhlIGNvbnRleHQgcHJvdmlkZWQgKGkuZS4gYm9keSkgdGhhdCBtYXRjaCB0aGUgdG9wIGxldmVsIGpRdWVyeSBzZWxlY3RvciBhYm92ZQogICAgICAgICAgZmlyc3RFbGVtLAoKICAgICAgICAgIC8vIEluc3RhbnRpYXRlZCB2YXJpYWJsZSB0aGF0IHdpbGwgc3RvcmUgdGhlIHRvcCBsZXZlbCBuZXdseSBjcmVhdGVkIHVub3JkZXJlZCBsaXN0IERPTSBlbGVtZW50CiAgICAgICAgICB1bCwKICAgICAgICAgIGlnbm9yZVNlbGVjdG9yID0gc2VsZi5vcHRpb25zLmlnbm9yZVNlbGVjdG9yOwoKCiAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSB0b2Mgd2l0aAogICAgICAgIC8vIGdldCBhbGwgdGhlIHRvcCBsZXZlbCBzZWxlY3RvcnMKICAgICAgICBmaXJzdEVsZW0gPSBbXTsKICAgICAgICB2YXIgc2VsZWN0b3JzID0gdGhpcy5vcHRpb25zLnNlbGVjdG9ycy5yZXBsYWNlKC8gL2csICIiKS5zcGxpdCgiLCIpOwogICAgICAgIC8vIGZpbmQgdGhlIGZpcnN0IHNldCB0aGF0IGhhdmUgYXQgbGVhc3Qgb25lIG5vbi1pZ25vcmVkIGVsZW1lbnQKICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2VsZWN0b3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgZm91bmRTZWxlY3RvcnMgPSAkKHRoaXMub3B0aW9ucy5jb250ZXh0KS5maW5kKHNlbGVjdG9yc1tpXSk7CiAgICAgICAgICBmb3IgKHZhciBzID0gMDsgcyA8IGZvdW5kU2VsZWN0b3JzLmxlbmd0aDsgcysrKSB7CiAgICAgICAgICAgIGlmICghJChmb3VuZFNlbGVjdG9yc1tzXSkuaXMoaWdub3JlU2VsZWN0b3IpKSB7CiAgICAgICAgICAgICAgZmlyc3RFbGVtID0gZm91bmRTZWxlY3RvcnM7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChmaXJzdEVsZW0ubGVuZ3RoPiAwKQogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIGlmICghZmlyc3RFbGVtLmxlbmd0aCkgewoKICAgICAgICAgIHNlbGYuZWxlbWVudC5hZGRDbGFzcyhoaWRlVG9jQ2xhc3NOYW1lKTsKCiAgICAgICAgICByZXR1cm47CgogICAgICAgIH0KCiAgICAgICAgc2VsZi5lbGVtZW50LmFkZENsYXNzKHRvY0NsYXNzTmFtZSk7CgogICAgICAgIC8vIExvb3BzIHRocm91Z2ggZWFjaCB0b3AgbGV2ZWwgc2VsZWN0b3IKICAgICAgICBmaXJzdEVsZW0uZWFjaChmdW5jdGlvbihpbmRleCkgewoKICAgICAgICAgIC8vSWYgdGhlIGVsZW1lbnQgbWF0Y2hlcyB0aGUgaWdub3JlU2VsZWN0b3IgdGhlbiB3ZSBza2lwIGl0CiAgICAgICAgICBpZiAoJCh0aGlzKS5pcyhpZ25vcmVTZWxlY3RvcikpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIENyZWF0ZXMgYW4gdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGFuZCBhZGRzIGEgZHluYW1pYyBJRCBhbmQgc3RhbmRhcmQgY2xhc3MgbmFtZQogICAgICAgICAgdWwgPSAkKCI8dWwvPiIsIHsKICAgICAgICAgICAgImlkIjogaGVhZGVyQ2xhc3NOYW1lICsgaW5kZXgsCiAgICAgICAgICAgICJjbGFzcyI6IGhlYWRlckNsYXNzTmFtZQogICAgICAgICAgfSkuCgogICAgICAgICAgLy8gQXBwZW5kcyBhIHRvcCBsZXZlbCBsaXN0IGl0ZW0gSFRNTCBlbGVtZW50IHRvIHRoZSBwcmV2aW91c2x5IGNyZWF0ZWQgSFRNTCBoZWFkZXIKICAgICAgICAgIGFwcGVuZChzZWxmLl9uZXN0RWxlbWVudHMoJCh0aGlzKSwgaW5kZXgpKTsKCiAgICAgICAgICAvLyBBZGQgdGhlIGNyZWF0ZWQgdW5vcmRlcmVkIGxpc3QgZWxlbWVudCB0byB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgICAgc2VsZi5lbGVtZW50LmFwcGVuZCh1bCk7CgogICAgICAgICAgLy8gRmluZHMgYWxsIG9mIHRoZSBIVE1MIHRhZ3MgYmV0d2VlbiB0aGUgaGVhZGVyIGFuZCBzdWJoZWFkZXIgZWxlbWVudHMKICAgICAgICAgICQodGhpcykubmV4dFVudGlsKHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkuZWFjaChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBuZXN0ZWQgc3ViaGVhZGVyIGVsZW1lbWVudHMKICAgICAgICAgICAgaWYgKCQodGhpcykuZmluZChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKS5sZW5ndGggPT09IDApIHsKCiAgICAgICAgICAgICAgLy8gTG9vcHMgdGhyb3VnaCBhbGwgb2YgdGhlIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICAgICQodGhpcykuZmlsdGVyKHNlbGYub3B0aW9ucy5zZWxlY3RvcnMpLmVhY2goZnVuY3Rpb24oKSB7CgogICAgICAgICAgICAgICAgLy9JZiB0aGUgZWxlbWVudCBtYXRjaGVzIHRoZSBpZ25vcmVTZWxlY3RvciB0aGVuIHdlIHNraXAgaXQKICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmlzKGlnbm9yZVNlbGVjdG9yKSkgewogICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgc2VsZi5fYXBwZW5kU3ViaGVhZGVycy5jYWxsKHRoaXMsIHNlbGYsIHVsKTsKCiAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbmVzdGVkIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgLy8gTG9vcHMgdGhyb3VnaCBhbGwgb2YgdGhlIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICAgICQodGhpcykuZmluZChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKS5lYWNoKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgIC8vSWYgdGhlIGVsZW1lbnQgbWF0Y2hlcyB0aGUgaWdub3JlU2VsZWN0b3IgdGhlbiB3ZSBza2lwIGl0CiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5pcyhpZ25vcmVTZWxlY3RvcikpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHNlbGYuX2FwcGVuZFN1YmhlYWRlcnMuY2FsbCh0aGlzLCBzZWxmLCB1bCk7CgogICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgfQoKICAgICAgICAgIH0pOwoKICAgICAgICB9KTsKCiAgICAgIH0sCgogICAgICBfc2V0QWN0aXZlRWxlbWVudDogZnVuY3Rpb24ocGFnZWxvYWQpIHsKCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAoKICAgICAgICAgIGhhc2ggPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksCgogICAgICAgICAgZWxlbSA9IHNlbGYuZWxlbWVudC5maW5kKCdsaVtkYXRhLXVuaXF1ZT0iJyArIGhhc2ggKyAnIl0nKTsKCiAgICAgICAgaWYgKGhhc2gubGVuZ3RoKSB7CgogICAgICAgICAgLy8gUmVtb3ZlcyBoaWdobGlnaHRpbmcgZnJvbSBhbGwgb2YgdGhlIGxpc3QgaXRlbSdzCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgLy8gSGlnaGxpZ2h0cyB0aGUgY3VycmVudCBsaXN0IGl0ZW0gdGhhdCB3YXMgY2xpY2tlZAogICAgICAgICAgZWxlbS5hZGRDbGFzcyhzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgIC8vIFRyaWdnZXJzIHRoZSBjbGljayBldmVudCBvbiB0aGUgY3VycmVudGx5IGZvY3VzZWQgVE9DIGl0ZW0KICAgICAgICAgIGVsZW0uY2xpY2soKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBSZW1vdmVzIGhpZ2hsaWdodGluZyBmcm9tIGFsbCBvZiB0aGUgbGlzdCBpdGVtJ3MKICAgICAgICAgIHNlbGYuZWxlbWVudC5maW5kKCIuIiArIHNlbGYuZm9jdXNDbGFzcykucmVtb3ZlQ2xhc3Moc2VsZi5mb2N1c0NsYXNzKTsKCiAgICAgICAgICBpZiAoIWhhc2gubGVuZ3RoICYmIHBhZ2Vsb2FkICYmIHNlbGYub3B0aW9ucy5oaWdobGlnaHREZWZhdWx0KSB7CgogICAgICAgICAgICAvLyBIaWdobGlnaHRzIHRoZSBmaXJzdCBUT0MgaXRlbSBpZiBubyBvdGhlciBpdGVtcyBhcmUgaGlnaGxpZ2h0ZWQKICAgICAgICAgICAgc2VsZi5lbGVtZW50LmZpbmQoaXRlbUNsYXNzKS5maXJzdCgpLmFkZENsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmOwoKICAgICAgfSwKCiAgICAgIC8vIF9uZXN0RWxlbWVudHMKICAgICAgLy8gLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEhlbHBzIGNyZWF0ZSB0aGUgdGFibGUgb2YgY29udGVudHMgbGlzdCBieSBhcHBlbmRpbmcgbmVzdGVkIGxpc3QgaXRlbXMKICAgICAgX25lc3RFbGVtZW50czogZnVuY3Rpb24oc2VsZiwgaW5kZXgpIHsKCiAgICAgICAgdmFyIGFyciwgaXRlbSwgaGFzaFZhbHVlOwoKICAgICAgICBhcnIgPSAkLmdyZXAodGhpcy5pdGVtcywgZnVuY3Rpb24oaXRlbSkgewoKICAgICAgICAgIHJldHVybiBpdGVtID09PSBzZWxmLnRleHQoKTsKCiAgICAgICAgfSk7CgogICAgICAgIC8vIElmIHRoZXJlIGlzIGFscmVhZHkgYSBkdXBsaWNhdGUgVE9DIGl0ZW0KICAgICAgICBpZiAoYXJyLmxlbmd0aCkgewoKICAgICAgICAgIC8vIEFkZHMgdGhlIGN1cnJlbnQgVE9DIGl0ZW0gdGV4dCBhbmQgaW5kZXggKGZvciBzbGlnaHQgcmFuZG9taXphdGlvbikgdG8gdGhlIGludGVybmFsIGFycmF5CiAgICAgICAgICB0aGlzLml0ZW1zLnB1c2goc2VsZi50ZXh0KCkgKyBpbmRleCk7CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlcmUgbm90IGEgZHVwbGljYXRlIFRPQyBpdGVtCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgLy8gQWRkcyB0aGUgY3VycmVudCBUT0MgaXRlbSB0ZXh0IHRvIHRoZSBpbnRlcm5hbCBhcnJheQogICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHNlbGYudGV4dCgpKTsKCiAgICAgICAgfQoKICAgICAgICBoYXNoVmFsdWUgPSB0aGlzLl9nZW5lcmF0ZUhhc2hWYWx1ZShhcnIsIHNlbGYsIGluZGV4KTsKCiAgICAgICAgLy8gQXBwZW5kcyBhIGxpc3QgaXRlbSBIVE1MIGVsZW1lbnQgdG8gdGhlIGxhc3QgdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGZvdW5kIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgIGl0ZW0gPSAkKCI8bGkvPiIsIHsKCiAgICAgICAgICAvLyBTZXRzIGEgY29tbW9uIGNsYXNzIG5hbWUgdG8gdGhlIGxpc3QgaXRlbQogICAgICAgICAgImNsYXNzIjogaXRlbUNsYXNzTmFtZSwKCiAgICAgICAgICAiZGF0YS11bmlxdWUiOiBoYXNoVmFsdWUKCiAgICAgICAgfSk7CgogICAgICAgIGlmICh0aGlzLm9wdGlvbnMudGhlbWUgIT09ICJib290c3RyYXAzIikgewoKICAgICAgICAgIGl0ZW0uYXBwZW5kKCQoIjxhLz4iLCB7CgogICAgICAgICAgICAiaHRtbCI6IHNlbGYuaHRtbCgpCgogICAgICAgICAgfSkpOwoKICAgICAgICB9IGVsc2UgewoKICAgICAgICAgIGl0ZW0uaHRtbChzZWxmLmh0bWwoKSk7CgogICAgICAgIH0KCiAgICAgICAgLy8gQWRkcyBhbiBIVE1MIGFuY2hvciB0YWcgYmVmb3JlIHRoZSBjdXJyZW50bHkgdHJhdmVyc2VkIEhUTUwgZWxlbWVudAogICAgICAgIHNlbGYuYmVmb3JlKCQoIjxkaXYvPiIsIHsKCiAgICAgICAgICAvLyBTZXRzIGEgbmFtZSBhdHRyaWJ1dGUgb24gdGhlIGFuY2hvciB0YWcgdG8gdGhlIHRleHQgb2YgdGhlIGN1cnJlbnRseSB0cmF2ZXJzZWQgSFRNTCBlbGVtZW50IChhbHNvIG1ha2luZyBzdXJlIHRoYXQgYWxsIHdoaXRlc3BhY2UgaXMgcmVwbGFjZWQgd2l0aCBhbiB1bmRlcnNjb3JlKQogICAgICAgICAgIm5hbWUiOiBoYXNoVmFsdWUsCgogICAgICAgICAgImRhdGEtdW5pcXVlIjogaGFzaFZhbHVlCgogICAgICAgIH0pKTsKCiAgICAgICAgcmV0dXJuIGl0ZW07CgogICAgICB9LAoKICAgICAgLy8gX2dlbmVyYXRlSGFzaFZhbHVlCiAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEdlbmVyYXRlcyB0aGUgaGFzaCB2YWx1ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byByZWZlciB0byBlYWNoIGl0ZW0uCiAgICAgIF9nZW5lcmF0ZUhhc2hWYWx1ZTogZnVuY3Rpb24oYXJyLCBzZWxmLCBpbmRleCkgewoKICAgICAgICB2YXIgaGFzaFZhbHVlID0gIiIsCiAgICAgICAgICBoYXNoR2VuZXJhdG9yT3B0aW9uID0gdGhpcy5vcHRpb25zLmhhc2hHZW5lcmF0b3I7CgogICAgICAgIGlmIChoYXNoR2VuZXJhdG9yT3B0aW9uID09PSAicHJldHR5IikgewoKICAgICAgICAgIC8vIHByZXR0aWZ5IHRoZSB0ZXh0CiAgICAgICAgICBoYXNoVmFsdWUgPSBzZWxmLnRleHQoKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xzL2csICItIik7CgogICAgICAgICAgLy8gZml4IGRvdWJsZSBoeXBoZW5zCiAgICAgICAgICB3aGlsZSAoaGFzaFZhbHVlLmluZGV4T2YoIi0tIikgPiAtMSkgewogICAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoVmFsdWUucmVwbGFjZSgvLS0vZywgIi0iKTsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyBmaXggY29sb24tc3BhY2UgaW5zdGFuY2VzCiAgICAgICAgICB3aGlsZSAoaGFzaFZhbHVlLmluZGV4T2YoIjotIikgPiAtMSkgewogICAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoVmFsdWUucmVwbGFjZSgvOi0vZywgIi0iKTsKICAgICAgICAgIH0KCiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaGFzaEdlbmVyYXRvck9wdGlvbiA9PT0gImZ1bmN0aW9uIikgewoKICAgICAgICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoR2VuZXJhdG9yT3B0aW9uKHNlbGYudGV4dCgpLCBzZWxmKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBjb21wYWN0IC0gdGhlIGRlZmF1bHQKICAgICAgICAgIGhhc2hWYWx1ZSA9IHNlbGYudGV4dCgpLnJlcGxhY2UoL1xzL2csICIiKTsKCiAgICAgICAgfQoKICAgICAgICAvLyBhZGQgdGhlIGluZGV4IGlmIHdlIG5lZWQgdG8KICAgICAgICBpZiAoYXJyLmxlbmd0aCkgewogICAgICAgICAgaGFzaFZhbHVlICs9ICIiICsgaW5kZXg7CiAgICAgICAgfQoKICAgICAgICAvLyByZXR1cm4gdGhlIHZhbHVlCiAgICAgICAgcmV0dXJuIGhhc2hWYWx1ZTsKCiAgICAgIH0sCgogICAgICAvLyBfYXBwZW5kRWxlbWVudHMKICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tCiAgICAgIC8vICAgICAgSGVscHMgY3JlYXRlIHRoZSB0YWJsZSBvZiBjb250ZW50cyBsaXN0IGJ5IGFwcGVuZGluZyBzdWJoZWFkZXIgZWxlbWVudHMKCiAgICAgIF9hcHBlbmRTdWJoZWFkZXJzOiBmdW5jdGlvbihzZWxmLCB1bCkgewoKICAgICAgICAvLyBUaGUgY3VycmVudCBlbGVtZW50IGluZGV4CiAgICAgICAgdmFyIGluZGV4ID0gJCh0aGlzKS5pbmRleChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKSwKCiAgICAgICAgICAvLyBGaW5kcyB0aGUgcHJldmlvdXMgaGVhZGVyIERPTSBlbGVtZW50CiAgICAgICAgICBwcmV2aW91c0hlYWRlciA9ICQoc2VsZi5vcHRpb25zLnNlbGVjdG9ycykuZXEoaW5kZXggLSAxKSwKCiAgICAgICAgICBjdXJyZW50VGFnTmFtZSA9ICskKHRoaXMpLnByb3AoInRhZ05hbWUiKS5jaGFyQXQoMSksCgogICAgICAgICAgcHJldmlvdXNUYWdOYW1lID0gK3ByZXZpb3VzSGVhZGVyLnByb3AoInRhZ05hbWUiKS5jaGFyQXQoMSksCgogICAgICAgICAgbGFzdFN1YmhlYWRlcjsKCiAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgaGVhZGVyIERPTSBlbGVtZW50IGlzIHNtYWxsZXIgdGhhbiB0aGUgcHJldmlvdXMgaGVhZGVyIERPTSBlbGVtZW50IG9yIHRoZSBmaXJzdCBzdWJoZWFkZXIKICAgICAgICBpZiAoY3VycmVudFRhZ05hbWUgPCBwcmV2aW91c1RhZ05hbWUpIHsKCiAgICAgICAgICAvLyBTZWxlY3RzIHRoZSBsYXN0IHVub3JkZXJlZCBsaXN0IEhUTUwgZm91bmQgd2l0aGluIHRoZSBIVE1MIGVsZW1lbnQgY2FsbGluZyB0aGUgcGx1Z2luCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZChzdWJoZWFkZXJDbGFzcyArICJbZGF0YS10YWc9IiArIGN1cnJlbnRUYWdOYW1lICsgIl0iKS5sYXN0KCkuYXBwZW5kKHNlbGYuX25lc3RFbGVtZW50cygkKHRoaXMpLCBpbmRleCkpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGhlYWRlciBET00gZWxlbWVudCBpcyB0aGUgc2FtZSB0eXBlIG9mIGhlYWRlcihlZy4gaDQpIGFzIHRoZSBwcmV2aW91cyBoZWFkZXIgRE9NIGVsZW1lbnQKICAgICAgICBlbHNlIGlmIChjdXJyZW50VGFnTmFtZSA9PT0gcHJldmlvdXNUYWdOYW1lKSB7CgogICAgICAgICAgdWwuZmluZChpdGVtQ2xhc3MpLmxhc3QoKS5hZnRlcihzZWxmLl9uZXN0RWxlbWVudHMoJCh0aGlzKSwgaW5kZXgpKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBTZWxlY3RzIHRoZSBsYXN0IHVub3JkZXJlZCBsaXN0IEhUTUwgZm91bmQgd2l0aGluIHRoZSBIVE1MIGVsZW1lbnQgY2FsbGluZyB0aGUgcGx1Z2luCiAgICAgICAgICB1bC5maW5kKGl0ZW1DbGFzcykubGFzdCgpLgoKICAgICAgICAgIC8vIEFwcGVuZHMgYW4gdW5vcmRlcmVkTGlzdCBIVE1MIGVsZW1lbnQgdG8gdGhlIGR5bmFtaWMgYHVub3JkZXJlZExpc3RgIHZhcmlhYmxlIGFuZCBzZXRzIGEgY29tbW9uIGNsYXNzIG5hbWUKICAgICAgICAgIGFmdGVyKCQoIjx1bC8+IiwgewoKICAgICAgICAgICAgImNsYXNzIjogc3ViaGVhZGVyQ2xhc3NOYW1lLAoKICAgICAgICAgICAgImRhdGEtdGFnIjogY3VycmVudFRhZ05hbWUKCiAgICAgICAgICB9KSkubmV4dChzdWJoZWFkZXJDbGFzcykuCgogICAgICAgICAgLy8gQXBwZW5kcyBhIGxpc3QgaXRlbSBIVE1MIGVsZW1lbnQgdG8gdGhlIGxhc3QgdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGZvdW5kIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgICAgYXBwZW5kKHNlbGYuX25lc3RFbGVtZW50cygkKHRoaXMpLCBpbmRleCkpOwogICAgICAgIH0KCiAgICAgIH0sCgogICAgICAvLyBfc2V0RXZlbnRIYW5kbGVycwogICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tCiAgICAgIC8vICAgICAgQWRkcyBqUXVlcnkgZXZlbnQgaGFuZGxlcnMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cwogICAgICBfc2V0RXZlbnRIYW5kbGVyczogZnVuY3Rpb24oKSB7CgogICAgICAgIC8vIF9Mb2NhbCB2YXJpYWJsZXNfCgogICAgICAgIC8vIFN0b3JlcyB0aGUgcGx1Z2luIGNvbnRleHQgaW4gdGhlIHNlbGYgdmFyaWFibGUKICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCgogICAgICAgICAgLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZhcmlhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGhvbGQgYSBzcGVjaWZpYyBlbGVtZW50J3MgY29udGV4dAogICAgICAgICAgJHNlbGYsCgogICAgICAgICAgLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZhcmlhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgc21vb3RoU2Nyb2xsIGFuaW1hdGlvbiB0aW1lIGR1cmF0aW9uCiAgICAgICAgICBkdXJhdGlvbjsKCiAgICAgICAgLy8gRXZlbnQgZGVsZWdhdGlvbiB0aGF0IGxvb2tzIGZvciBhbnkgY2xpY2tzIG9uIGxpc3QgaXRlbSBlbGVtZW50cyBpbnNpZGUgb2YgdGhlIEhUTUwgZWxlbWVudCBjYWxsaW5nIHRoZSBwbHVnaW4KICAgICAgICB0aGlzLmVsZW1lbnQub24oImNsaWNrLnRvY2lmeSIsICJsaSIsIGZ1bmN0aW9uKGV2ZW50KSB7CgogICAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5oaXN0b3J5KSB7CgogICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9ICQodGhpcykuYXR0cigiZGF0YS11bmlxdWUiKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy8gUmVtb3ZlcyBoaWdobGlnaHRpbmcgZnJvbSBhbGwgb2YgdGhlIGxpc3QgaXRlbSdzCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgLy8gSGlnaGxpZ2h0cyB0aGUgY3VycmVudCBsaXN0IGl0ZW0gdGhhdCB3YXMgY2xpY2tlZAogICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgIC8vIElmIHRoZSBzaG93QW5kSGlkZSBvcHRpb24gaXMgdHJ1ZQogICAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5zaG93QW5kSGlkZSkgewoKICAgICAgICAgICAgdmFyIGVsZW0gPSAkKCdsaVtkYXRhLXVuaXF1ZT0iJyArICQodGhpcykuYXR0cigiZGF0YS11bmlxdWUiKSArICciXScpOwoKICAgICAgICAgICAgc2VsZi5fdHJpZ2dlclNob3coZWxlbSk7CgogICAgICAgICAgfQoKICAgICAgICAgIHNlbGYuX3Njcm9sbFRvKCQodGhpcykpOwoKICAgICAgICB9KTsKCiAgICAgICAgLy8gTW91c2VlbnRlciBhbmQgTW91c2VsZWF2ZSBldmVudCBoYW5kbGVycyBmb3IgdGhlIGxpc3QgaXRlbSdzIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgIHRoaXMuZWxlbWVudC5maW5kKCJsaSIpLm9uKHsKCiAgICAgICAgICAvLyBNb3VzZWVudGVyIGV2ZW50IGhhbmRsZXIKICAgICAgICAgICJtb3VzZWVudGVyLnRvY2lmeSI6IGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgLy8gQWRkcyBhIGhvdmVyIENTUyBjbGFzcyB0byB0aGUgY3VycmVudCBsaXN0IGl0ZW0KICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhzZWxmLmhvdmVyQ2xhc3MpOwoKICAgICAgICAgICAgLy8gTWFrZXMgc3VyZSB0aGUgY3Vyc29yIGlzIHNldCB0byB0aGUgcG9pbnRlciBpY29uCiAgICAgICAgICAgICQodGhpcykuY3NzKCJjdXJzb3IiLCAicG9pbnRlciIpOwoKICAgICAgICAgIH0sCgogICAgICAgICAgLy8gTW91c2VsZWF2ZSBldmVudCBoYW5kbGVyCiAgICAgICAgICAibW91c2VsZWF2ZS50b2NpZnkiOiBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMudGhlbWUgIT09ICJib290c3RyYXAiKSB7CgogICAgICAgICAgICAgIC8vIFJlbW92ZXMgdGhlIGhvdmVyIENTUyBjbGFzcyBmcm9tIHRoZSBjdXJyZW50IGxpc3QgaXRlbQogICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3Moc2VsZi5ob3ZlckNsYXNzKTsKCiAgICAgICAgICAgIH0KCiAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIG9ubHkgYXR0YWNoIGhhbmRsZXIgaWYgbmVlZGVkIChleHBlbnNpdmUgaW4gSUUpCiAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5leHRlbmRQYWdlIHx8IHNlbGYub3B0aW9ucy5oaWdobGlnaHRPblNjcm9sbCB8fCBzZWxmLm9wdGlvbnMuc2Nyb2xsSGlzdG9yeSB8fCBzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGVPblNjcm9sbCkgewogICAgICAgICAgLy8gV2luZG93IHNjcm9sbCBldmVudCBoYW5kbGVyCiAgICAgICAgICAkKHdpbmRvdykub24oInNjcm9sbC50b2NpZnkiLCBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIC8vIE9uY2UgYWxsIGFuaW1hdGlvbnMgb24gdGhlIHBhZ2UgYXJlIGNvbXBsZXRlLCB0aGlzIGNhbGxiYWNrIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkCiAgICAgICAgICAgICQoImh0bWwsIGJvZHkiKS5wcm9taXNlKCkuZG9uZShmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgLy8gTG9jYWwgdmFyaWFibGVzCgogICAgICAgICAgICAgIC8vIFN0b3JlcyBob3cgZmFyIHRoZSB1c2VyIGhhcyBzY3JvbGxlZAogICAgICAgICAgICAgIHZhciB3aW5TY3JvbGxUb3AgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCksCgogICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBoZWlnaHQgb2YgdGhlIHdpbmRvdwogICAgICAgICAgICAgICAgd2luSGVpZ2h0ID0gJCh3aW5kb3cpLmhlaWdodCgpLAoKICAgICAgICAgICAgICAgIC8vIFN0b3JlcyB0aGUgaGVpZ2h0IG9mIHRoZSBkb2N1bWVudAogICAgICAgICAgICAgICAgZG9jSGVpZ2h0ID0gJChkb2N1bWVudCkuaGVpZ2h0KCksCgogICAgICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0ID0gJCgiYm9keSIpWzBdLnNjcm9sbEhlaWdodCwKCiAgICAgICAgICAgICAgICAvLyBJbnN0YW50aWF0ZXMgYSB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBob2xkIGEgc2VsZWN0ZWQgSFRNTCBlbGVtZW50CiAgICAgICAgICAgICAgICBlbGVtLAoKICAgICAgICAgICAgICAgIGxhc3RFbGVtLAoKICAgICAgICAgICAgICAgIGxhc3RFbGVtT2Zmc2V0LAoKICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtOwoKICAgICAgICAgICAgICBpZiAoc2VsZi5vcHRpb25zLmV4dGVuZFBhZ2UpIHsKCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgc2Nyb2xsZWQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhbmQgdGhlIGxhc3QgdG9jIGl0ZW0gaXMgbm90IGZvY3VzZWQKICAgICAgICAgICAgICAgIGlmICgoc2VsZi53ZWJraXQgJiYgd2luU2Nyb2xsVG9wID49IHNjcm9sbEhlaWdodCAtIHdpbkhlaWdodCAtIHNlbGYub3B0aW9ucy5leHRlbmRQYWdlT2Zmc2V0KSB8fCAoIXNlbGYud2Via2l0ICYmIHdpbkhlaWdodCArIHdpblNjcm9sbFRvcCA+IGRvY0hlaWdodCAtIHNlbGYub3B0aW9ucy5leHRlbmRQYWdlT2Zmc2V0KSkgewoKICAgICAgICAgICAgICAgICAgaWYgKCEkKGV4dGVuZFBhZ2VDbGFzcykubGVuZ3RoKSB7CgogICAgICAgICAgICAgICAgICAgIGxhc3RFbGVtID0gJCgnZGl2W2RhdGEtdW5pcXVlPSInICsgJChpdGVtQ2xhc3MpLmxhc3QoKS5hdHRyKCJkYXRhLXVuaXF1ZSIpICsgJyJdJyk7CgogICAgICAgICAgICAgICAgICAgIGlmICghbGFzdEVsZW0ubGVuZ3RoKSByZXR1cm47CgogICAgICAgICAgICAgICAgICAgIC8vIEdldHMgdGhlIHRvcCBvZmZzZXQgb2YgdGhlIHBhZ2UgaGVhZGVyIHRoYXQgaXMgbGlua2VkIHRvIHRoZSBsYXN0IHRvYyBpdGVtCiAgICAgICAgICAgICAgICAgICAgbGFzdEVsZW1PZmZzZXQgPSBsYXN0RWxlbS5vZmZzZXQoKS50b3A7CgogICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZHMgYSBkaXYgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhbmQgc2V0cyB0aGUgaGVpZ2h0IHRvIHRoZSBkaWZmZXJlbmNlIG9mIHRoZSB3aW5kb3cgc2Nyb2xsVG9wIGFuZCB0aGUgbGFzdCBlbGVtZW50J3MgcG9zaXRpb24gdG9wIG9mZnNldAogICAgICAgICAgICAgICAgICAgICQoc2VsZi5vcHRpb25zLmNvbnRleHQpLmFwcGVuZCgkKCI8ZGl2Lz4iLCB7CgogICAgICAgICAgICAgICAgICAgICAgImNsYXNzIjogZXh0ZW5kUGFnZUNsYXNzTmFtZSwKCiAgICAgICAgICAgICAgICAgICAgICAiaGVpZ2h0IjogTWF0aC5hYnMobGFzdEVsZW1PZmZzZXQgLSB3aW5TY3JvbGxUb3ApICsgInB4IiwKCiAgICAgICAgICAgICAgICAgICAgICAiZGF0YS11bmlxdWUiOiBleHRlbmRQYWdlQ2xhc3NOYW1lCgogICAgICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuZXh0ZW5kUGFnZVNjcm9sbCkgewoKICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtID0gc2VsZi5lbGVtZW50LmZpbmQoJ2xpLicgKyBzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Njcm9sbFRvKCQoJ2RpdltkYXRhLXVuaXF1ZT0iJyArIGN1cnJlbnRFbGVtLmF0dHIoImRhdGEtdW5pcXVlIikgKyAnIl0nKSk7CgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgLy8gVGhlIHplcm8gdGltZW91dCBlbnN1cmVzIHRoZSBmb2xsb3dpbmcgY29kZSBpcyBydW4gYWZ0ZXIgdGhlIHNjcm9sbCBldmVudHMKICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgIC8vIF9Mb2NhbCB2YXJpYWJsZXNfCgogICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBkaXN0YW5jZSB0byB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgIHZhciBjbG9zZXN0QW5jaG9yRGlzdGFuY2UgPSBudWxsLAoKICAgICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBpbmRleCBvZiB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgICAgY2xvc2VzdEFuY2hvcklkeCA9IG51bGwsCgogICAgICAgICAgICAgICAgICAvLyBLZWVwcyBhIHJlZmVyZW5jZSB0byBhbGwgYW5jaG9ycwogICAgICAgICAgICAgICAgICBhbmNob3JzID0gJChzZWxmLm9wdGlvbnMuY29udGV4dCkuZmluZCgiZGl2W2RhdGEtdW5pcXVlXSIpLAoKICAgICAgICAgICAgICAgICAgYW5jaG9yVGV4dDsKCiAgICAgICAgICAgICAgICAvLyBEZXRlcm1pbmVzIHRoZSBpbmRleCBvZiB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgIGFuY2hvcnMuZWFjaChmdW5jdGlvbihpZHgpIHsKICAgICAgICAgICAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5hYnMoKCQodGhpcykubmV4dCgpLmxlbmd0aCA/ICQodGhpcykubmV4dCgpIDogJCh0aGlzKSkub2Zmc2V0KCkudG9wIC0gd2luU2Nyb2xsVG9wIC0gc2VsZi5vcHRpb25zLmhpZ2hsaWdodE9mZnNldCk7CiAgICAgICAgICAgICAgICAgIGlmIChjbG9zZXN0QW5jaG9yRGlzdGFuY2UgPT0gbnVsbCB8fCBkaXN0YW5jZSA8IGNsb3Nlc3RBbmNob3JEaXN0YW5jZSkgewogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RBbmNob3JEaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RBbmNob3JJZHggPSBpZHg7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICBhbmNob3JUZXh0ID0gJChhbmNob3JzW2Nsb3Nlc3RBbmNob3JJZHhdKS5hdHRyKCJkYXRhLXVuaXF1ZSIpOwoKICAgICAgICAgICAgICAgIC8vIFN0b3JlcyB0aGUgbGlzdCBpdGVtIEhUTUwgZWxlbWVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBjdXJyZW50bHkgdHJhdmVyc2VkIGFuY2hvciB0YWcKICAgICAgICAgICAgICAgIGVsZW0gPSAkKCdsaVtkYXRhLXVuaXF1ZT0iJyArIGFuY2hvclRleHQgKyAnIl0nKTsKCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgYGhpZ2hsaWdodE9uU2Nyb2xsYCBvcHRpb24gaXMgdHJ1ZSBhbmQgYSBuZXh0IGVsZW1lbnQgaXMgZm91bmQKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuaGlnaGxpZ2h0T25TY3JvbGwgJiYgZWxlbS5sZW5ndGgpIHsKCiAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZXMgaGlnaGxpZ2h0aW5nIGZyb20gYWxsIG9mIHRoZSBsaXN0IGl0ZW0ncwogICAgICAgICAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgICAgICAgICAvLyBIaWdobGlnaHRzIHRoZSBjb3JyZXNwb25kaW5nIGxpc3QgaXRlbQogICAgICAgICAgICAgICAgICBlbGVtLmFkZENsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuc2Nyb2xsSGlzdG9yeSkgewoKICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5oYXNoICE9PSAiIyIgKyBhbmNob3JUZXh0KSB7CgogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKCIjIiArIGFuY2hvclRleHQpOwoKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIElmIHRoZSBgc2hvd0FuZEhpZGVPblNjcm9sbGAgb3B0aW9uIGlzIHRydWUKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGVPblNjcm9sbCAmJiBzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGUpIHsKCiAgICAgICAgICAgICAgICAgIHNlbGYuX3RyaWdnZXJTaG93KGVsZW0sIHRydWUpOwoKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgfSwgMCk7CgogICAgICAgICAgICB9KTsKCiAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICB9LAoKICAgICAgLy8gU2hvdwogICAgICAvLyAtLS0tCiAgICAgIC8vICAgICAgT3BlbnMgdGhlIGN1cnJlbnQgc3ViLWhlYWRlcgogICAgICBzaG93OiBmdW5jdGlvbihlbGVtLCBzY3JvbGwpIHsKCiAgICAgICAgLy8gU3RvcmVzIHRoZSBwbHVnaW4gY29udGV4dCBpbiB0aGUgYHNlbGZgIHZhcmlhYmxlCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAogICAgICAgICAgZWxlbWVudCA9IGVsZW07CgogICAgICAgIC8vIElmIHRoZSBzdWItaGVhZGVyIGlzIG5vdCBhbHJlYWR5IHZpc2libGUKICAgICAgICBpZiAoIWVsZW0uaXMoIjp2aXNpYmxlIikpIHsKCiAgICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW55IG5lc3RlZCBzdWJoZWFkZXJzLCBpcyBub3QgYSBoZWFkZXIsIGFuZCBpdHMgcGFyZW50IGlzIG5vdCB2aXNpYmxlCiAgICAgICAgICBpZiAoIWVsZW0uZmluZChzdWJoZWFkZXJDbGFzcykubGVuZ3RoICYmICFlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSAmJiAhZWxlbS5wYXJlbnQoKS5pcygiOnZpc2libGUiKSkgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgY3VycmVudCBlbGVtZW50IHRvIGFsbCBvZiB0aGUgc3ViaGVhZGVycyB3aXRoaW4gdGhlIGN1cnJlbnQgaGVhZGVyCiAgICAgICAgICAgIGVsZW0gPSBlbGVtLnBhcmVudHMoc3ViaGVhZGVyQ2xhc3MpLmFkZChlbGVtKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFueSBuZXN0ZWQgc3ViaGVhZGVycyBhbmQgaXMgbm90IGEgaGVhZGVyCiAgICAgICAgICBlbHNlIGlmICghZWxlbS5jaGlsZHJlbihzdWJoZWFkZXJDbGFzcykubGVuZ3RoICYmICFlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSkgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgY3VycmVudCBlbGVtZW50IHRvIHRoZSBjbG9zZXN0IHN1YmhlYWRlcgogICAgICAgICAgICBlbGVtID0gZWxlbS5jbG9zZXN0KHN1YmhlYWRlckNsYXNzKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy9EZXRlcm1pbmVzIHdoYXQgalF1ZXJ5IGVmZmVjdCB0byB1c2UKICAgICAgICAgIHN3aXRjaCAoc2VsZi5vcHRpb25zLnNob3dFZmZlY3QpIHsKCiAgICAgICAgICAgIC8vVXNlcyBgbm8gZWZmZWN0YAogICAgICAgICAgICBjYXNlICJub25lIjoKCiAgICAgICAgICAgICAgZWxlbS5zaG93KCk7CgogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAvL1VzZXMgdGhlIGpRdWVyeSBgc2hvd2Agc3BlY2lhbCBlZmZlY3QKICAgICAgICAgICAgY2FzZSAic2hvdyI6CgogICAgICAgICAgICAgIGVsZW0uc2hvdyhzZWxmLm9wdGlvbnMuc2hvd0VmZmVjdFNwZWVkKTsKCiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgIC8vVXNlcyB0aGUgalF1ZXJ5IGBzbGlkZURvd25gIHNwZWNpYWwgZWZmZWN0CiAgICAgICAgICAgIGNhc2UgInNsaWRlRG93biI6CgogICAgICAgICAgICAgIGVsZW0uc2xpZGVEb3duKHNlbGYub3B0aW9ucy5zaG93RWZmZWN0U3BlZWQpOwoKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgLy9Vc2VzIHRoZSBqUXVlcnkgYGZhZGVJbmAgc3BlY2lhbCBlZmZlY3QKICAgICAgICAgICAgY2FzZSAiZmFkZUluIjoKCiAgICAgICAgICAgICAgZWxlbS5mYWRlSW4oc2VsZi5vcHRpb25zLnNob3dFZmZlY3RTcGVlZCk7CgogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAvL0lmIG5vbmUgb2YgdGhlIGFib3ZlIG9wdGlvbnMgd2VyZSBwYXNzZWQsIHRoZW4gYSBgalF1ZXJ5VUkgc2hvdyBlZmZlY3RgIGlzIGV4cGVjdGVkCiAgICAgICAgICAgIGRlZmF1bHQ6CgogICAgICAgICAgICAgIGVsZW0uc2hvdygpOwoKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgc3ViaGVhZGVyIHBhcmVudCBlbGVtZW50IGlzIGEgaGVhZGVyCiAgICAgICAgaWYgKGVsZW0ucGFyZW50KCkuaXMoaGVhZGVyQ2xhc3MpKSB7CgogICAgICAgICAgLy8gSGlkZXMgYWxsIG5vbi1hY3RpdmUgc3ViLWhlYWRlcnMKICAgICAgICAgIHNlbGYuaGlkZSgkKHN1YmhlYWRlckNsYXNzKS5ub3QoZWxlbSkpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IHN1YmhlYWRlciBwYXJlbnQgZWxlbWVudCBpcyBub3QgYSBoZWFkZXIKICAgICAgICBlbHNlIHsKCiAgICAgICAgICAvLyBIaWRlcyBhbGwgbm9uLWFjdGl2ZSBzdWItaGVhZGVycwogICAgICAgICAgc2VsZi5oaWRlKCQoc3ViaGVhZGVyQ2xhc3MpLm5vdChlbGVtLmNsb3Nlc3QoaGVhZGVyQ2xhc3MpLmZpbmQoc3ViaGVhZGVyQ2xhc3MpLm5vdChlbGVtLnNpYmxpbmdzKCkpKSk7CgogICAgICAgIH0KCiAgICAgICAgLy8gTWFpbnRhaW5zIGNoYWluYWJsaXR5CiAgICAgICAgcmV0dXJuIHNlbGY7CgogICAgICB9LAoKICAgICAgLy8gSGlkZQogICAgICAvLyAtLS0tCiAgICAgIC8vICAgICAgQ2xvc2VzIHRoZSBjdXJyZW50IHN1Yi1oZWFkZXIKICAgICAgaGlkZTogZnVuY3Rpb24oZWxlbSkgewoKICAgICAgICAvLyBTdG9yZXMgdGhlIHBsdWdpbiBjb250ZXh0IGluIHRoZSBgc2VsZmAgdmFyaWFibGUKICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CgogICAgICAgIC8vRGV0ZXJtaW5lcyB3aGF0IGpRdWVyeSBlZmZlY3QgdG8gdXNlCiAgICAgICAgc3dpdGNoIChzZWxmLm9wdGlvbnMuaGlkZUVmZmVjdCkgewoKICAgICAgICAgIC8vIFVzZXMgYG5vIGVmZmVjdGAKICAgICAgICAgIGNhc2UgIm5vbmUiOgoKICAgICAgICAgICAgZWxlbS5oaWRlKCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIC8vIFVzZXMgdGhlIGpRdWVyeSBgaGlkZWAgc3BlY2lhbCBlZmZlY3QKICAgICAgICAgIGNhc2UgImhpZGUiOgoKICAgICAgICAgICAgZWxlbS5oaWRlKHNlbGYub3B0aW9ucy5oaWRlRWZmZWN0U3BlZWQpOwoKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAvLyBVc2VzIHRoZSBqUXVlcnkgYHNsaWRlVXBgIHNwZWNpYWwgZWZmZWN0CiAgICAgICAgICBjYXNlICJzbGlkZVVwIjoKCiAgICAgICAgICAgIGVsZW0uc2xpZGVVcChzZWxmLm9wdGlvbnMuaGlkZUVmZmVjdFNwZWVkKTsKCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgLy8gVXNlcyB0aGUgalF1ZXJ5IGBmYWRlT3V0YCBzcGVjaWFsIGVmZmVjdAogICAgICAgICAgY2FzZSAiZmFkZU91dCI6CgogICAgICAgICAgICBlbGVtLmZhZGVPdXQoc2VsZi5vcHRpb25zLmhpZGVFZmZlY3RTcGVlZCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGFib3ZlIG9wdGlvbnMgd2VyZSBwYXNzZWQsIHRoZW4gYSBganF1ZXJ5VUkgaGlkZSBlZmZlY3RgIGlzIGV4cGVjdGVkCiAgICAgICAgICBkZWZhdWx0OgoKICAgICAgICAgICAgZWxlbS5oaWRlKCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgfQoKICAgICAgICAvLyBNYWludGFpbnMgY2hhaW5hYmxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKICAgICAgfSwKCiAgICAgIC8vIF90cmlnZ2VyU2hvdwogICAgICAvLyAtLS0tLS0tLS0tLS0KICAgICAgLy8gICAgICBEZXRlcm1pbmVzIHdoYXQgZWxlbWVudHMgZ2V0IHNob3duIG9uIHNjcm9sbCBhbmQgY2xpY2sKICAgICAgX3RyaWdnZXJTaG93OiBmdW5jdGlvbihlbGVtLCBzY3JvbGwpIHsKCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50J3MgcGFyZW50IGlzIGEgaGVhZGVyIGVsZW1lbnQgb3IgdGhlIG5leHQgZWxlbWVudCBpcyBhIG5lc3RlZCBzdWJoZWFkZXIgZWxlbWVudAogICAgICAgIGlmIChlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSB8fCBlbGVtLm5leHQoKS5pcyhzdWJoZWFkZXJDbGFzcykpIHsKCiAgICAgICAgICAvLyBTaG93cyB0aGUgbmV4dCBzdWItaGVhZGVyIGVsZW1lbnQKICAgICAgICAgIHNlbGYuc2hvdyhlbGVtLm5leHQoc3ViaGVhZGVyQ2xhc3MpLCBzY3JvbGwpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGVsZW1lbnQncyBwYXJlbnQgaXMgYSBzdWJoZWFkZXIgZWxlbWVudAogICAgICAgIGVsc2UgaWYgKGVsZW0ucGFyZW50KCkuaXMoc3ViaGVhZGVyQ2xhc3MpKSB7CgogICAgICAgICAgLy8gU2hvd3MgdGhlIHBhcmVudCBzdWItaGVhZGVyIGVsZW1lbnQKICAgICAgICAgIHNlbGYuc2hvdyhlbGVtLnBhcmVudCgpLCBzY3JvbGwpOwoKICAgICAgICB9CgogICAgICAgIC8vIE1haW50YWlucyBjaGFpbmFiaWxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKCiAgICAgIH0sCgogICAgICAvLyBfYWRkQ1NTQ2xhc3NlcwogICAgICAvLyAtLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEFkZHMgQ1NTIGNsYXNzZXMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cyBIVE1MCiAgICAgIF9hZGRDU1NDbGFzc2VzOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gSWYgdGhlIHVzZXIgd2FudHMgYSBqcXVlcnlVSSB0aGVtZQogICAgICAgIGlmICh0aGlzLm9wdGlvbnMudGhlbWUgPT09ICJqcXVlcnl1aSIpIHsKCiAgICAgICAgICB0aGlzLmZvY3VzQ2xhc3MgPSAidWktc3RhdGUtZGVmYXVsdCI7CgogICAgICAgICAgdGhpcy5ob3ZlckNsYXNzID0gInVpLXN0YXRlLWhvdmVyIjsKCiAgICAgICAgICAvL0FkZHMgdGhlIGRlZmF1bHQgc3R5bGluZyB0byB0aGUgZHJvcGRvd24gbGlzdAogICAgICAgICAgdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS13aWRnZXQiKS5maW5kKCIudG9jLXRpdGxlIikuYWRkQ2xhc3MoInVpLXdpZGdldC1oZWFkZXIiKS5lbmQoKS5maW5kKCJsaSIpLmFkZENsYXNzKCJ1aS13aWRnZXQtY29udGVudCIpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSB1c2VyIHdhbnRzIGEgdHdpdHRlckJvb3RzdHJhcCB0aGVtZQogICAgICAgIGVsc2UgaWYgKHRoaXMub3B0aW9ucy50aGVtZSA9PT0gImJvb3RzdHJhcCIpIHsKCiAgICAgICAgICB0aGlzLmVsZW1lbnQuZmluZChoZWFkZXJDbGFzcyArICIsIiArIHN1YmhlYWRlckNsYXNzKS5hZGRDbGFzcygibmF2IG5hdi1saXN0Iik7CgogICAgICAgICAgdGhpcy5mb2N1c0NsYXNzID0gImFjdGl2ZSI7CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlIHVzZXIgd2FudHMgYSB0d2l0dGVyQm9vdHN0cmFwIHRoZW1lCiAgICAgICAgZWxzZSBpZiAodGhpcy5vcHRpb25zLnRoZW1lID09PSAiYm9vdHN0cmFwMyIpIHsKCiAgICAgICAgICB0aGlzLmVsZW1lbnQuZmluZChoZWFkZXJDbGFzcyArICIsIiArIHN1YmhlYWRlckNsYXNzKS5hZGRDbGFzcygibGlzdC1ncm91cCIpOwoKICAgICAgICAgIHRoaXMuZWxlbWVudC5maW5kKGl0ZW1DbGFzcykuYWRkQ2xhc3MoImxpc3QtZ3JvdXAtaXRlbSIpOwoKICAgICAgICAgIHRoaXMuZm9jdXNDbGFzcyA9ICJhY3RpdmUiOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIGEgdXNlciBkb2VzIG5vdCB3YW50IGEgcHJlYnVpbHQgdGhlbWUKICAgICAgICBlbHNlIHsKCiAgICAgICAgICAvLyBBZGRzIG1vcmUgbmV1dHJhbCBjbGFzc2VzIChpbnN0ZWFkIG9mIGpxdWVyeXVpKQoKICAgICAgICAgIHRoaXMuZm9jdXNDbGFzcyA9IHRvY0ZvY3VzQ2xhc3NOYW1lOwoKICAgICAgICAgIHRoaXMuaG92ZXJDbGFzcyA9IHRvY0hvdmVyQ2xhc3NOYW1lOwoKICAgICAgICB9CgogICAgICAgIC8vTWFpbnRhaW5zIGNoYWluYWJpbGl0eQogICAgICAgIHJldHVybiB0aGlzOwoKICAgICAgfSwKCiAgICAgIC8vIHNldE9wdGlvbgogICAgICAvLyAtLS0tLS0tLS0KICAgICAgLy8gICAgICBTZXRzIGEgc2luZ2xlIFRvY2lmeSBvcHRpb24gYWZ0ZXIgdGhlIHBsdWdpbiBpcyBpbnZva2VkCiAgICAgIHNldE9wdGlvbjogZnVuY3Rpb24oKSB7CgogICAgICAgIC8vIENhbGxzIHRoZSBqUXVlcnlVSSBXaWRnZXQgRmFjdG9yeSBzZXRPcHRpb24gbWV0aG9kCiAgICAgICAgJC5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKCiAgICAgIH0sCgogICAgICAvLyBzZXRPcHRpb25zCiAgICAgIC8vIC0tLS0tLS0tLS0KICAgICAgLy8gICAgICBTZXRzIGEgc2luZ2xlIG9yIG11bHRpcGxlIFRvY2lmeSBvcHRpb25zIGFmdGVyIHRoZSBwbHVnaW4gaXMgaW52b2tlZAogICAgICBzZXRPcHRpb25zOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gQ2FsbHMgdGhlIGpRdWVyeVVJIFdpZGdldCBGYWN0b3J5IHNldE9wdGlvbnMgbWV0aG9kCiAgICAgICAgJC5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb25zLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CgogICAgICB9LAoKICAgICAgLy8gX3Njcm9sbFRvCiAgICAgIC8vIC0tLS0tLS0tLQogICAgICAvLyAgICAgIFNjcm9sbHMgdG8gYSBzcGVjaWZpYyBlbGVtZW50CiAgICAgIF9zY3JvbGxUbzogZnVuY3Rpb24oZWxlbSkgewoKICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCiAgICAgICAgICBkdXJhdGlvbiA9IHNlbGYub3B0aW9ucy5zbW9vdGhTY3JvbGwgfHwgMCwKICAgICAgICAgIHNjcm9sbFRvID0gc2VsZi5vcHRpb25zLnNjcm9sbFRvLAogICAgICAgICAgY3VycmVudERpdiA9ICQoJ2RpdltkYXRhLXVuaXF1ZT0iJyArIGVsZW0uYXR0cigiZGF0YS11bmlxdWUiKSArICciXScpOwoKICAgICAgICBpZiAoIWN1cnJlbnREaXYubGVuZ3RoKSB7CgogICAgICAgICAgcmV0dXJuIHNlbGY7CgogICAgICAgIH0KCiAgICAgICAgLy8gT25jZSBhbGwgYW5pbWF0aW9ucyBvbiB0aGUgcGFnZSBhcmUgY29tcGxldGUsIHRoaXMgY2FsbGJhY2sgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQKICAgICAgICAkKCJodG1sLCBib2R5IikucHJvbWlzZSgpLmRvbmUoZnVuY3Rpb24oKSB7CgogICAgICAgICAgLy8gQW5pbWF0ZXMgdGhlIGh0bWwgYW5kIGJvZHkgZWxlbWVudCBzY3JvbGx0b3BzCiAgICAgICAgICAkKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7CgogICAgICAgICAgICAvLyBTZXRzIHRoZSBqUXVlcnkgYHNjcm9sbFRvcGAgdG8gdGhlIHRvcCBvZmZzZXQgb2YgdGhlIEhUTUwgZGl2IHRhZyB0aGF0IG1hdGNoZXMgdGhlIGN1cnJlbnQgbGlzdCBpdGVtJ3MgYGRhdGEtdW5pcXVlYCB0YWcKICAgICAgICAgICAgInNjcm9sbFRvcCI6IGN1cnJlbnREaXYub2Zmc2V0KCkudG9wIC0gKCQuaXNGdW5jdGlvbihzY3JvbGxUbykgPyBzY3JvbGxUby5jYWxsKCkgOiBzY3JvbGxUbykgKyAicHgiCgogICAgICAgICAgfSwgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgc21vb3RoU2Nyb2xsIGFuaW1hdGlvbiB0aW1lIGR1cmF0aW9uIHRvIHRoZSBzbW9vdGhTY3JvbGxTcGVlZCBvcHRpb24KICAgICAgICAgICAgImR1cmF0aW9uIjogZHVyYXRpb24KCiAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CgogICAgICAgIC8vIE1haW50YWlucyBjaGFpbmFiaWxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKCiAgICAgIH0KCiAgICB9KTsKCiAgfSkpOyAvL2VuZCBvZiBwbHVnaW4K"></script>
<script src="data:application/x-javascript;base64,CgovKioKICogalF1ZXJ5IFBsdWdpbjogU3RpY2t5IFRhYnMKICoKICogQGF1dGhvciBBaWRhbiBMaXN0ZXIgPGFpZGFuQHBocC5uZXQ+CiAqIGFkYXB0ZWQgYnkgUnViZW4gQXJzbGFuIHRvIGFjdGl2YXRlIHBhcmVudCB0YWJzIHRvbwogKiBodHRwOi8vd3d3LmFpZGFubGlzdGVyLmNvbS8yMDE0LzAzL3BlcnNpc3RpbmctdGhlLXRhYi1zdGF0ZS1pbi1ib290c3RyYXAvCiAqLwooZnVuY3Rpb24oJCkgewogICJ1c2Ugc3RyaWN0IjsKICAkLmZuLnJtYXJrZG93blN0aWNreVRhYnMgPSBmdW5jdGlvbigpIHsKICAgIHZhciBjb250ZXh0ID0gdGhpczsKICAgIC8vIFNob3cgdGhlIHRhYiBjb3JyZXNwb25kaW5nIHdpdGggdGhlIGhhc2ggaW4gdGhlIFVSTCwgb3IgdGhlIGZpcnN0IHRhYgogICAgdmFyIHNob3dTdHVmZkZyb21IYXNoID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBoYXNoID0gd2luZG93LmxvY2F0aW9uLmhhc2g7CiAgICAgIHZhciBzZWxlY3RvciA9IGhhc2ggPyAnYVtocmVmPSInICsgaGFzaCArICciXScgOiAnbGkuYWN0aXZlID4gYSc7CiAgICAgIHZhciAkc2VsZWN0b3IgPSAkKHNlbGVjdG9yLCBjb250ZXh0KTsKICAgICAgaWYoJHNlbGVjdG9yLmRhdGEoJ3RvZ2dsZScpID09PSAidGFiIikgewogICAgICAgICRzZWxlY3Rvci50YWIoJ3Nob3cnKTsKICAgICAgICAvLyB3YWxrIHVwIHRoZSBhbmNlc3RvcnMgb2YgdGhpcyBlbGVtZW50LCBzaG93IGFueSBoaWRkZW4gdGFicwogICAgICAgICRzZWxlY3Rvci5wYXJlbnRzKCcuc2VjdGlvbi50YWJzZXQnKS5lYWNoKGZ1bmN0aW9uKGksIGVsbSkgewogICAgICAgICAgdmFyIGxpbmsgPSAkKCdhW2hyZWY9IiMnICsgJChlbG0pLmF0dHIoJ2lkJykgKyAnIl0nKTsKICAgICAgICAgIGlmKGxpbmsuZGF0YSgndG9nZ2xlJykgPT09ICJ0YWIiKSB7CiAgICAgICAgICAgIGxpbmsudGFiKCJzaG93Iik7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH07CgoKICAgIC8vIFNldCB0aGUgY29ycmVjdCB0YWIgd2hlbiB0aGUgcGFnZSBsb2FkcwogICAgc2hvd1N0dWZmRnJvbUhhc2goY29udGV4dCk7CgogICAgLy8gU2V0IHRoZSBjb3JyZWN0IHRhYiB3aGVuIGEgdXNlciB1c2VzIHRoZWlyIGJhY2svZm9yd2FyZCBidXR0b24KICAgICQod2luZG93KS5vbignaGFzaGNoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICBzaG93U3R1ZmZGcm9tSGFzaChjb250ZXh0KTsKICAgIH0pOwoKICAgIC8vIENoYW5nZSB0aGUgVVJMIHdoZW4gdGFicyBhcmUgY2xpY2tlZAogICAgJCgnYScsIGNvbnRleHQpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgbnVsbCwgdGhpcy5ocmVmKTsKICAgICAgc2hvd1N0dWZmRnJvbUhhc2goY29udGV4dCk7CiAgICB9KTsKCiAgICByZXR1cm4gdGhpczsKICB9Owp9KGpRdWVyeSkpOwoKd2luZG93LmJ1aWxkVGFic2V0cyA9IGZ1bmN0aW9uKHRvY0lEKSB7CgogIC8vIGJ1aWxkIGEgdGFic2V0IGZyb20gYSBzZWN0aW9uIGRpdiB3aXRoIHRoZSAudGFic2V0IGNsYXNzCiAgZnVuY3Rpb24gYnVpbGRUYWJzZXQodGFic2V0KSB7CgogICAgLy8gY2hlY2sgZm9yIGZhZGUgYW5kIHBpbGxzIG9wdGlvbnMKICAgIHZhciBmYWRlID0gdGFic2V0Lmhhc0NsYXNzKCJ0YWJzZXQtZmFkZSIpOwogICAgdmFyIHBpbGxzID0gdGFic2V0Lmhhc0NsYXNzKCJ0YWJzZXQtcGlsbHMiKTsKICAgIHZhciBuYXZDbGFzcyA9IHBpbGxzID8gIm5hdi1waWxscyIgOiAibmF2LXRhYnMiOwoKICAgIC8vIGRldGVybWluZSB0aGUgaGVhZGluZyBsZXZlbCBvZiB0aGUgdGFic2V0IGFuZCB0YWJzCiAgICB2YXIgbWF0Y2ggPSB0YWJzZXQuYXR0cignY2xhc3MnKS5tYXRjaCgvbGV2ZWwoXGQpIC8pOwogICAgaWYgKG1hdGNoID09PSBudWxsKQogICAgICByZXR1cm47CiAgICB2YXIgdGFic2V0TGV2ZWwgPSBOdW1iZXIobWF0Y2hbMV0pOwogICAgdmFyIHRhYkxldmVsID0gdGFic2V0TGV2ZWwgKyAxOwoKICAgIC8vIGZpbmQgYWxsIHN1YmhlYWRpbmdzIGltbWVkaWF0ZWx5IGJlbG93CiAgICB2YXIgdGFicyA9IHRhYnNldC5maW5kKCJkaXYuc2VjdGlvbi5sZXZlbCIgKyB0YWJMZXZlbCk7CiAgICBpZiAoIXRhYnMubGVuZ3RoKQogICAgICByZXR1cm47CgogICAgLy8gY3JlYXRlIHRhYmxpc3QgYW5kIHRhYi1jb250ZW50IGVsZW1lbnRzCiAgICB2YXIgdGFiTGlzdCA9ICQoJzx1bCBjbGFzcz0ibmF2ICcgKyBuYXZDbGFzcyArICciIHJvbGU9InRhYmxpc3QiPjwvdWw+Jyk7CiAgICAkKHRhYnNbMF0pLmJlZm9yZSh0YWJMaXN0KTsKICAgIHZhciB0YWJDb250ZW50ID0gJCgnPGRpdiBjbGFzcz0idGFiLWNvbnRlbnQiPjwvZGl2PicpOwogICAgJCh0YWJzWzBdKS5iZWZvcmUodGFiQ29udGVudCk7CgogICAgLy8gYnVpbGQgdGhlIHRhYnNldAogICAgdmFyIGFjdGl2ZVRhYiA9IDA7CiAgICB0YWJzLmVhY2goZnVuY3Rpb24oaSkgewoKICAgICAgLy8gZ2V0IHRoZSB0YWIgZGl2CiAgICAgIHZhciB0YWIgPSAkKHRhYnNbaV0pOwoKICAgICAgLy8gZ2V0IHRoZSBpZCB0aGVuIHNhbml0aXplIGl0IGZvciB1c2Ugd2l0aCBib290c3RyYXAgdGFicwogICAgICB2YXIgaWQgPSB0YWIuYXR0cignaWQnKTsKCiAgICAgIC8vIHNlZSBpZiB0aGlzIGlzIG1hcmtlZCBhcyB0aGUgYWN0aXZlIHRhYgogICAgICBpZiAodGFiLmhhc0NsYXNzKCdhY3RpdmUnKSkKICAgICAgICBhY3RpdmVUYWIgPSBpOwoKICAgICAgLy8gcmVtb3ZlIGFueSB0YWJsZSBvZiBjb250ZW50cyBlbnRyaWVzIGFzc29jaWF0ZWQgd2l0aAogICAgICAvLyB0aGlzIElEIChzaW5jZSB3ZSdsbCBiZSByZW1vdmluZyB0aGUgaGVhZGluZyBlbGVtZW50KQogICAgICAkKCJkaXYjIiArIHRvY0lEICsgIiBsaSBhW2hyZWY9JyMiICsgaWQgKyAiJ10iKS5wYXJlbnQoKS5yZW1vdmUoKTsKCiAgICAgIC8vIHNhbml0aXplIHRoZSBpZCBmb3IgdXNlIHdpdGggYm9vdHN0cmFwIHRhYnMKICAgICAgaWQgPSBpZC5yZXBsYWNlKC9bLlwvPyYhIzw+XS9nLCAnJykucmVwbGFjZSgvXHMvZywgJ18nKTsKICAgICAgdGFiLmF0dHIoJ2lkJywgaWQpOwoKICAgICAgLy8gZ2V0IHRoZSBoZWFkaW5nIGVsZW1lbnQgd2l0aGluIGl0LCBncmFiIGl0J3MgdGV4dCwgdGhlbiByZW1vdmUgaXQKICAgICAgdmFyIGhlYWRpbmcgPSB0YWIuZmluZCgnaCcgKyB0YWJMZXZlbCArICc6Zmlyc3QnKTsKICAgICAgdmFyIGhlYWRpbmdUZXh0ID0gaGVhZGluZy5odG1sKCk7CiAgICAgIGhlYWRpbmcucmVtb3ZlKCk7CgogICAgICAvLyBidWlsZCBhbmQgYXBwZW5kIHRoZSB0YWIgbGlzdCBpdGVtCiAgICAgIHZhciBhID0gJCgnPGEgcm9sZT0idGFiIiBkYXRhLXRvZ2dsZT0idGFiIj4nICsgaGVhZGluZ1RleHQgKyAnPC9hPicpOwogICAgICBhLmF0dHIoJ2hyZWYnLCAnIycgKyBpZCk7CiAgICAgIGEuYXR0cignYXJpYS1jb250cm9scycsIGlkKTsKICAgICAgdmFyIGxpID0gJCgnPGxpIHJvbGU9InByZXNlbnRhdGlvbiI+PC9saT4nKTsKICAgICAgbGkuYXBwZW5kKGEpOwogICAgICB0YWJMaXN0LmFwcGVuZChsaSk7CgogICAgICAvLyBzZXQgaXQncyBhdHRyaWJ1dGVzCiAgICAgIHRhYi5hdHRyKCdyb2xlJywgJ3RhYnBhbmVsJyk7CiAgICAgIHRhYi5hZGRDbGFzcygndGFiLXBhbmUnKTsKICAgICAgdGFiLmFkZENsYXNzKCd0YWJiZWQtcGFuZScpOwogICAgICBpZiAoZmFkZSkKICAgICAgICB0YWIuYWRkQ2xhc3MoJ2ZhZGUnKTsKCiAgICAgIC8vIG1vdmUgaXQgaW50byB0aGUgdGFiIGNvbnRlbnQgZGl2CiAgICAgIHRhYi5kZXRhY2goKS5hcHBlbmRUbyh0YWJDb250ZW50KTsKICAgIH0pOwoKICAgIC8vIHNldCBhY3RpdmUgdGFiCiAgICAkKHRhYkxpc3QuY2hpbGRyZW4oJ2xpJylbYWN0aXZlVGFiXSkuYWRkQ2xhc3MoJ2FjdGl2ZScpOwogICAgdmFyIGFjdGl2ZSA9ICQodGFiQ29udGVudC5jaGlsZHJlbignZGl2LnNlY3Rpb24nKVthY3RpdmVUYWJdKTsKICAgIGFjdGl2ZS5hZGRDbGFzcygnYWN0aXZlJyk7CiAgICBpZiAoZmFkZSkKICAgICAgYWN0aXZlLmFkZENsYXNzKCdpbicpOwoKICAgIGlmICh0YWJzZXQuaGFzQ2xhc3MoInRhYnNldC1zdGlja3kiKSkKICAgICAgdGFic2V0LnJtYXJrZG93blN0aWNreVRhYnMoKTsKICB9CgogIC8vIGNvbnZlcnQgc2VjdGlvbiBkaXZzIHdpdGggdGhlIC50YWJzZXQgY2xhc3MgdG8gdGFic2V0cwogIHZhciB0YWJzZXRzID0gJCgiZGl2LnNlY3Rpb24udGFic2V0Iik7CiAgdGFic2V0cy5lYWNoKGZ1bmN0aW9uKGkpIHsKICAgIGJ1aWxkVGFic2V0KCQodGFic2V0c1tpXSkpOwogIH0pOwp9OwoK"></script>
<script src="data:application/x-javascript;base64,CndpbmRvdy5pbml0aWFsaXplQ29kZUZvbGRpbmcgPSBmdW5jdGlvbihzaG93KSB7CgogIC8vIGhhbmRsZXJzIGZvciBzaG93LWFsbCBhbmQgaGlkZSBhbGwKICAkKCIjcm1kLXNob3ctYWxsLWNvZGUiKS5jbGljayhmdW5jdGlvbigpIHsKICAgICQoJ2Rpdi5yLWNvZGUtY29sbGFwc2UnKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAkKHRoaXMpLmNvbGxhcHNlKCdzaG93Jyk7CiAgICB9KTsKICB9KTsKICAkKCIjcm1kLWhpZGUtYWxsLWNvZGUiKS5jbGljayhmdW5jdGlvbigpIHsKICAgICQoJ2Rpdi5yLWNvZGUtY29sbGFwc2UnKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAkKHRoaXMpLmNvbGxhcHNlKCdoaWRlJyk7CiAgICB9KTsKICB9KTsKCiAgLy8gaW5kZXggZm9yIHVuaXF1ZSBjb2RlIGVsZW1lbnQgaWRzCiAgdmFyIGN1cnJlbnRJbmRleCA9IDE7CgogIC8vIHNlbGVjdCBhbGwgUiBjb2RlIGJsb2NrcwogIHZhciByQ29kZUJsb2NrcyA9ICQoJ3ByZS5yLCBwcmUucHl0aG9uLCBwcmUuYmFzaCwgcHJlLnNxbCwgcHJlLmNwcCwgcHJlLnN0YW4sIHByZS5qdWxpYSwgcHJlLmZvbGRhYmxlJyk7CiAgckNvZGVCbG9ja3MuZWFjaChmdW5jdGlvbigpIHsKCiAgICAvLyBjcmVhdGUgYSBjb2xsYXBzYWJsZSBkaXYgdG8gd3JhcCB0aGUgY29kZSBpbgogICAgdmFyIGRpdiA9ICQoJzxkaXYgY2xhc3M9ImNvbGxhcHNlIHItY29kZS1jb2xsYXBzZSI+PC9kaXY+Jyk7CiAgICB2YXIgc2hvd1RoaXMgPSAoc2hvdyB8fCAkKHRoaXMpLmhhc0NsYXNzKCdmb2xkLXNob3cnKSkgJiYgISQodGhpcykuaGFzQ2xhc3MoJ2ZvbGQtaGlkZScpOwogICAgaWYgKHNob3dUaGlzKSBkaXYuYWRkQ2xhc3MoJ2luJyk7CiAgICB2YXIgaWQgPSAncmNvZGUtNjQzRTBGMzYnICsgY3VycmVudEluZGV4Kys7CiAgICBkaXYuYXR0cignaWQnLCBpZCk7CiAgICAkKHRoaXMpLmJlZm9yZShkaXYpOwogICAgJCh0aGlzKS5kZXRhY2goKS5hcHBlbmRUbyhkaXYpOwoKICAgIC8vIGFkZCBhIHNob3cgY29kZSBidXR0b24gcmlnaHQgYWJvdmUKICAgIHZhciBzaG93Q29kZVRleHQgPSAkKCc8c3Bhbj4nICsgKHNob3dUaGlzID8gJ0hpZGUnIDogJ0NvZGUnKSArICc8L3NwYW4+Jyk7CiAgICB2YXIgc2hvd0NvZGVCdXR0b24gPSAkKCc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG4teHMgY29kZS1mb2xkaW5nLWJ0biBwdWxsLXJpZ2h0Ij48L2J1dHRvbj4nKTsKICAgIHNob3dDb2RlQnV0dG9uLmFwcGVuZChzaG93Q29kZVRleHQpOwogICAgc2hvd0NvZGVCdXR0b24KICAgICAgICAuYXR0cignZGF0YS10b2dnbGUnLCAnY29sbGFwc2UnKQogICAgICAgIC5hdHRyKCdkYXRhLXRhcmdldCcsICcjJyArIGlkKQogICAgICAgIC5hdHRyKCdhcmlhLWV4cGFuZGVkJywgc2hvd1RoaXMpCiAgICAgICAgLmF0dHIoJ2FyaWEtY29udHJvbHMnLCBpZCk7CgogICAgdmFyIGJ1dHRvblJvdyA9ICQoJzxkaXYgY2xhc3M9InJvdyI+PC9kaXY+Jyk7CiAgICB2YXIgYnV0dG9uQ29sID0gJCgnPGRpdiBjbGFzcz0iY29sLW1kLTEyIj48L2Rpdj4nKTsKCiAgICBidXR0b25Db2wuYXBwZW5kKHNob3dDb2RlQnV0dG9uKTsKICAgIGJ1dHRvblJvdy5hcHBlbmQoYnV0dG9uQ29sKTsKCiAgICBkaXYuYmVmb3JlKGJ1dHRvblJvdyk7CgogICAgLy8gdXBkYXRlIHN0YXRlIG9mIGJ1dHRvbiBvbiBzaG93L2hpZGUKICAgIGRpdi5vbignaGlkZGVuLmJzLmNvbGxhcHNlJywgZnVuY3Rpb24gKCkgewogICAgICBzaG93Q29kZVRleHQudGV4dCgnQ29kZScpOwogICAgfSk7CiAgICBkaXYub24oJ3Nob3cuYnMuY29sbGFwc2UnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHNob3dDb2RlVGV4dC50ZXh0KCdIaWRlJyk7CiAgICB9KTsKICB9KTsKCn0K"></script>
<link href="data:text/css;charset=utf-8,%2Ehljs%2Dliteral%20%7B%0Acolor%3A%20%23990073%3B%0A%7D%0A%2Ehljs%2Dnumber%20%7B%0Acolor%3A%20%23099%3B%0A%7D%0A%2Ehljs%2Dcomment%20%7B%0Acolor%3A%20%23998%3B%0Afont%2Dstyle%3A%20italic%3B%0A%7D%0A%2Ehljs%2Dkeyword%20%7B%0Acolor%3A%20%23900%3B%0Afont%2Dweight%3A%20bold%3B%0A%7D%0A%2Ehljs%2Dstring%20%7B%0Acolor%3A%20%23d14%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,LyohIGhpZ2hsaWdodC5qcyB2OS4xMi4wIHwgQlNEMyBMaWNlbnNlIHwgZ2l0LmlvL2hsanNsaWNlbnNlICovCiFmdW5jdGlvbihlKXt2YXIgbj0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93fHwib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGY7InVuZGVmaW5lZCIhPXR5cGVvZiBleHBvcnRzP2UoZXhwb3J0cyk6biYmKG4uaGxqcz1lKHt9KSwiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoW10sZnVuY3Rpb24oKXtyZXR1cm4gbi5obGpzfSkpfShmdW5jdGlvbihlKXtmdW5jdGlvbiBuKGUpe3JldHVybiBlLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKX1mdW5jdGlvbiB0KGUpe3JldHVybiBlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gcihlLG4pe3ZhciB0PWUmJmUuZXhlYyhuKTtyZXR1cm4gdCYmMD09PXQuaW5kZXh9ZnVuY3Rpb24gYShlKXtyZXR1cm4gay50ZXN0KGUpfWZ1bmN0aW9uIGkoZSl7dmFyIG4sdCxyLGksbz1lLmNsYXNzTmFtZSsiICI7aWYobys9ZS5wYXJlbnROb2RlP2UucGFyZW50Tm9kZS5jbGFzc05hbWU6IiIsdD1CLmV4ZWMobykpcmV0dXJuIHcodFsxXSk/dFsxXToibm8taGlnaGxpZ2h0Ijtmb3Iobz1vLnNwbGl0KC9ccysvKSxuPTAscj1vLmxlbmd0aDtyPm47bisrKWlmKGk9b1tuXSxhKGkpfHx3KGkpKXJldHVybiBpfWZ1bmN0aW9uIG8oZSl7dmFyIG4sdD17fSxyPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtmb3IobiBpbiBlKXRbbl09ZVtuXTtyZXR1cm4gci5mb3JFYWNoKGZ1bmN0aW9uKGUpe2ZvcihuIGluIGUpdFtuXT1lW25dfSksdH1mdW5jdGlvbiB1KGUpe3ZhciBuPVtdO3JldHVybiBmdW5jdGlvbiByKGUsYSl7Zm9yKHZhciBpPWUuZmlyc3RDaGlsZDtpO2k9aS5uZXh0U2libGluZykzPT09aS5ub2RlVHlwZT9hKz1pLm5vZGVWYWx1ZS5sZW5ndGg6MT09PWkubm9kZVR5cGUmJihuLnB1c2goe2V2ZW50OiJzdGFydCIsb2Zmc2V0OmEsbm9kZTppfSksYT1yKGksYSksdChpKS5tYXRjaCgvYnJ8aHJ8aW1nfGlucHV0Lyl8fG4ucHVzaCh7ZXZlbnQ6InN0b3AiLG9mZnNldDphLG5vZGU6aX0pKTtyZXR1cm4gYX0oZSwwKSxufWZ1bmN0aW9uIGMoZSxyLGEpe2Z1bmN0aW9uIGkoKXtyZXR1cm4gZS5sZW5ndGgmJnIubGVuZ3RoP2VbMF0ub2Zmc2V0IT09clswXS5vZmZzZXQ/ZVswXS5vZmZzZXQ8clswXS5vZmZzZXQ/ZTpyOiJzdGFydCI9PT1yWzBdLmV2ZW50P2U6cjplLmxlbmd0aD9lOnJ9ZnVuY3Rpb24gbyhlKXtmdW5jdGlvbiByKGUpe3JldHVybiIgIitlLm5vZGVOYW1lKyc9IicrbihlLnZhbHVlKS5yZXBsYWNlKCciJywiJnF1b3Q7IikrJyInfXMrPSI8Iit0KGUpK0UubWFwLmNhbGwoZS5hdHRyaWJ1dGVzLHIpLmpvaW4oIiIpKyI+In1mdW5jdGlvbiB1KGUpe3MrPSI8LyIrdChlKSsiPiJ9ZnVuY3Rpb24gYyhlKXsoInN0YXJ0Ij09PWUuZXZlbnQ/bzp1KShlLm5vZGUpfWZvcih2YXIgbD0wLHM9IiIsZj1bXTtlLmxlbmd0aHx8ci5sZW5ndGg7KXt2YXIgZz1pKCk7aWYocys9bihhLnN1YnN0cmluZyhsLGdbMF0ub2Zmc2V0KSksbD1nWzBdLm9mZnNldCxnPT09ZSl7Zi5yZXZlcnNlKCkuZm9yRWFjaCh1KTtkbyBjKGcuc3BsaWNlKDAsMSlbMF0pLGc9aSgpO3doaWxlKGc9PT1lJiZnLmxlbmd0aCYmZ1swXS5vZmZzZXQ9PT1sKTtmLnJldmVyc2UoKS5mb3JFYWNoKG8pfWVsc2Uic3RhcnQiPT09Z1swXS5ldmVudD9mLnB1c2goZ1swXS5ub2RlKTpmLnBvcCgpLGMoZy5zcGxpY2UoMCwxKVswXSl9cmV0dXJuIHMrbihhLnN1YnN0cihsKSl9ZnVuY3Rpb24gbChlKXtyZXR1cm4gZS52JiYhZS5jYWNoZWRfdmFyaWFudHMmJihlLmNhY2hlZF92YXJpYW50cz1lLnYubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBvKGUse3Y6bnVsbH0sbil9KSksZS5jYWNoZWRfdmFyaWFudHN8fGUuZVcmJltvKGUpXXx8W2VdfWZ1bmN0aW9uIHMoZSl7ZnVuY3Rpb24gbihlKXtyZXR1cm4gZSYmZS5zb3VyY2V8fGV9ZnVuY3Rpb24gdCh0LHIpe3JldHVybiBuZXcgUmVnRXhwKG4odCksIm0iKyhlLmNJPyJpIjoiIikrKHI/ImciOiIiKSl9ZnVuY3Rpb24gcihhLGkpe2lmKCFhLmNvbXBpbGVkKXtpZihhLmNvbXBpbGVkPSEwLGEuaz1hLmt8fGEuYkssYS5rKXt2YXIgbz17fSx1PWZ1bmN0aW9uKG4sdCl7ZS5jSSYmKHQ9dC50b0xvd2VyQ2FzZSgpKSx0LnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lLnNwbGl0KCJ8Iik7b1t0WzBdXT1bbix0WzFdP051bWJlcih0WzFdKToxXX0pfTsic3RyaW5nIj09dHlwZW9mIGEuaz91KCJrZXl3b3JkIixhLmspOngoYS5rKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3UoZSxhLmtbZV0pfSksYS5rPW99YS5sUj10KGEubHx8L1x3Ky8sITApLGkmJihhLmJLJiYoYS5iPSJcXGIoIithLmJLLnNwbGl0KCIgIikuam9pbigifCIpKyIpXFxiIiksYS5ifHwoYS5iPS9cQnxcYi8pLGEuYlI9dChhLmIpLGEuZXx8YS5lV3x8KGEuZT0vXEJ8XGIvKSxhLmUmJihhLmVSPXQoYS5lKSksYS50RT1uKGEuZSl8fCIiLGEuZVcmJmkudEUmJihhLnRFKz0oYS5lPyJ8IjoiIikraS50RSkpLGEuaSYmKGEuaVI9dChhLmkpKSxudWxsPT1hLnImJihhLnI9MSksYS5jfHwoYS5jPVtdKSxhLmM9QXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxhLmMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBsKCJzZWxmIj09PWU/YTplKX0pKSxhLmMuZm9yRWFjaChmdW5jdGlvbihlKXtyKGUsYSl9KSxhLnN0YXJ0cyYmcihhLnN0YXJ0cyxpKTt2YXIgYz1hLmMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmJLPyJcXC4/KCIrZS5iKyIpXFwuPyI6ZS5ifSkuY29uY2F0KFthLnRFLGEuaV0pLm1hcChuKS5maWx0ZXIoQm9vbGVhbik7YS50PWMubGVuZ3RoP3QoYy5qb2luKCJ8IiksITApOntleGVjOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9fX19cihlKX1mdW5jdGlvbiBmKGUsdCxhLGkpe2Z1bmN0aW9uIG8oZSxuKXt2YXIgdCxhO2Zvcih0PTAsYT1uLmMubGVuZ3RoO2E+dDt0KyspaWYocihuLmNbdF0uYlIsZSkpcmV0dXJuIG4uY1t0XX1mdW5jdGlvbiB1KGUsbil7aWYocihlLmVSLG4pKXtmb3IoO2UuZW5kc1BhcmVudCYmZS5wYXJlbnQ7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9cmV0dXJuIGUuZVc/dShlLnBhcmVudCxuKTp2b2lkIDB9ZnVuY3Rpb24gYyhlLG4pe3JldHVybiFhJiZyKG4uaVIsZSl9ZnVuY3Rpb24gbChlLG4pe3ZhciB0PU4uY0k/blswXS50b0xvd2VyQ2FzZSgpOm5bMF07cmV0dXJuIGUuay5oYXNPd25Qcm9wZXJ0eSh0KSYmZS5rW3RdfWZ1bmN0aW9uIHAoZSxuLHQscil7dmFyIGE9cj8iIjpJLmNsYXNzUHJlZml4LGk9JzxzcGFuIGNsYXNzPSInK2Esbz10PyIiOkM7cmV0dXJuIGkrPWUrJyI+JyxpK24rb31mdW5jdGlvbiBoKCl7dmFyIGUsdCxyLGE7aWYoIUUuaylyZXR1cm4gbihrKTtmb3IoYT0iIix0PTAsRS5sUi5sYXN0SW5kZXg9MCxyPUUubFIuZXhlYyhrKTtyOylhKz1uKGsuc3Vic3RyaW5nKHQsci5pbmRleCkpLGU9bChFLHIpLGU/KEIrPWVbMV0sYSs9cChlWzBdLG4oclswXSkpKTphKz1uKHJbMF0pLHQ9RS5sUi5sYXN0SW5kZXgscj1FLmxSLmV4ZWMoayk7cmV0dXJuIGErbihrLnN1YnN0cih0KSl9ZnVuY3Rpb24gZCgpe3ZhciBlPSJzdHJpbmciPT10eXBlb2YgRS5zTDtpZihlJiYheVtFLnNMXSlyZXR1cm4gbihrKTt2YXIgdD1lP2YoRS5zTCxrLCEwLHhbRS5zTF0pOmcoayxFLnNMLmxlbmd0aD9FLnNMOnZvaWQgMCk7cmV0dXJuIEUucj4wJiYoQis9dC5yKSxlJiYoeFtFLnNMXT10LnRvcCkscCh0Lmxhbmd1YWdlLHQudmFsdWUsITEsITApfWZ1bmN0aW9uIGIoKXtMKz1udWxsIT1FLnNMP2QoKTpoKCksaz0iIn1mdW5jdGlvbiB2KGUpe0wrPWUuY04/cChlLmNOLCIiLCEwKToiIixFPU9iamVjdC5jcmVhdGUoZSx7cGFyZW50Ont2YWx1ZTpFfX0pfWZ1bmN0aW9uIG0oZSxuKXtpZihrKz1lLG51bGw9PW4pcmV0dXJuIGIoKSwwO3ZhciB0PW8obixFKTtpZih0KXJldHVybiB0LnNraXA/ays9bjoodC5lQiYmKGsrPW4pLGIoKSx0LnJCfHx0LmVCfHwoaz1uKSksdih0LG4pLHQuckI/MDpuLmxlbmd0aDt2YXIgcj11KEUsbik7aWYocil7dmFyIGE9RTthLnNraXA/ays9bjooYS5yRXx8YS5lRXx8KGsrPW4pLGIoKSxhLmVFJiYoaz1uKSk7ZG8gRS5jTiYmKEwrPUMpLEUuc2tpcHx8KEIrPUUuciksRT1FLnBhcmVudDt3aGlsZShFIT09ci5wYXJlbnQpO3JldHVybiByLnN0YXJ0cyYmdihyLnN0YXJ0cywiIiksYS5yRT8wOm4ubGVuZ3RofWlmKGMobixFKSl0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgbGV4ZW1lICInK24rJyIgZm9yIG1vZGUgIicrKEUuY058fCI8dW5uYW1lZD4iKSsnIicpO3JldHVybiBrKz1uLG4ubGVuZ3RofHwxfXZhciBOPXcoZSk7aWYoIU4pdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGxhbmd1YWdlOiAiJytlKyciJyk7cyhOKTt2YXIgUixFPWl8fE4seD17fSxMPSIiO2ZvcihSPUU7UiE9PU47Uj1SLnBhcmVudClSLmNOJiYoTD1wKFIuY04sIiIsITApK0wpO3ZhciBrPSIiLEI9MDt0cnl7Zm9yKHZhciBNLGosTz0wOzspe2lmKEUudC5sYXN0SW5kZXg9TyxNPUUudC5leGVjKHQpLCFNKWJyZWFrO2o9bSh0LnN1YnN0cmluZyhPLE0uaW5kZXgpLE1bMF0pLE89TS5pbmRleCtqfWZvcihtKHQuc3Vic3RyKE8pKSxSPUU7Ui5wYXJlbnQ7Uj1SLnBhcmVudClSLmNOJiYoTCs9Qyk7cmV0dXJue3I6Qix2YWx1ZTpMLGxhbmd1YWdlOmUsdG9wOkV9fWNhdGNoKFQpe2lmKFQubWVzc2FnZSYmLTEhPT1ULm1lc3NhZ2UuaW5kZXhPZigiSWxsZWdhbCIpKXJldHVybntyOjAsdmFsdWU6bih0KX07dGhyb3cgVH19ZnVuY3Rpb24gZyhlLHQpe3Q9dHx8SS5sYW5ndWFnZXN8fHgoeSk7dmFyIHI9e3I6MCx2YWx1ZTpuKGUpfSxhPXI7cmV0dXJuIHQuZmlsdGVyKHcpLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHQ9ZihuLGUsITEpO3QubGFuZ3VhZ2U9bix0LnI+YS5yJiYoYT10KSx0LnI+ci5yJiYoYT1yLHI9dCl9KSxhLmxhbmd1YWdlJiYoci5zZWNvbmRfYmVzdD1hKSxyfWZ1bmN0aW9uIHAoZSl7cmV0dXJuIEkudGFiUmVwbGFjZXx8SS51c2VCUj9lLnJlcGxhY2UoTSxmdW5jdGlvbihlLG4pe3JldHVybiBJLnVzZUJSJiYiXG4iPT09ZT8iPGJyPiI6SS50YWJSZXBsYWNlP24ucmVwbGFjZSgvXHQvZyxJLnRhYlJlcGxhY2UpOiIifSk6ZX1mdW5jdGlvbiBoKGUsbix0KXt2YXIgcj1uP0xbbl06dCxhPVtlLnRyaW0oKV07cmV0dXJuIGUubWF0Y2goL1xiaGxqc1xiLyl8fGEucHVzaCgiaGxqcyIpLC0xPT09ZS5pbmRleE9mKHIpJiZhLnB1c2gociksYS5qb2luKCIgIikudHJpbSgpfWZ1bmN0aW9uIGQoZSl7dmFyIG4sdCxyLG8sbCxzPWkoZSk7YShzKXx8KEkudXNlQlI/KG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiZGl2Iiksbi5pbm5lckhUTUw9ZS5pbm5lckhUTUwucmVwbGFjZSgvXG4vZywiIikucmVwbGFjZSgvPGJyWyBcL10qPi9nLCJcbiIpKTpuPWUsbD1uLnRleHRDb250ZW50LHI9cz9mKHMsbCwhMCk6ZyhsKSx0PXUobiksdC5sZW5ndGgmJihvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImRpdiIpLG8uaW5uZXJIVE1MPXIudmFsdWUsci52YWx1ZT1jKHQsdShvKSxsKSksci52YWx1ZT1wKHIudmFsdWUpLGUuaW5uZXJIVE1MPXIudmFsdWUsZS5jbGFzc05hbWU9aChlLmNsYXNzTmFtZSxzLHIubGFuZ3VhZ2UpLGUucmVzdWx0PXtsYW5ndWFnZTpyLmxhbmd1YWdlLHJlOnIucn0sci5zZWNvbmRfYmVzdCYmKGUuc2Vjb25kX2Jlc3Q9e2xhbmd1YWdlOnIuc2Vjb25kX2Jlc3QubGFuZ3VhZ2UscmU6ci5zZWNvbmRfYmVzdC5yfSkpfWZ1bmN0aW9uIGIoZSl7ST1vKEksZSl9ZnVuY3Rpb24gdigpe2lmKCF2LmNhbGxlZCl7di5jYWxsZWQ9ITA7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgicHJlIGNvZGUiKTtFLmZvckVhY2guY2FsbChlLGQpfX1mdW5jdGlvbiBtKCl7YWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsdiwhMSksYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsdiwhMSl9ZnVuY3Rpb24gTihuLHQpe3ZhciByPXlbbl09dChlKTtyLmFsaWFzZXMmJnIuYWxpYXNlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe0xbZV09bn0pfWZ1bmN0aW9uIFIoKXtyZXR1cm4geCh5KX1mdW5jdGlvbiB3KGUpe3JldHVybiBlPShlfHwiIikudG9Mb3dlckNhc2UoKSx5W2VdfHx5W0xbZV1dfXZhciBFPVtdLHg9T2JqZWN0LmtleXMseT17fSxMPXt9LGs9L14obm8tP2hpZ2hsaWdodHxwbGFpbnx0ZXh0KSQvaSxCPS9cYmxhbmcoPzp1YWdlKT8tKFtcdy1dKylcYi9pLE09LygoXig8W14+XSs+fFx0fCkrfCg/OlxuKSkpL2dtLEM9Ijwvc3Bhbj4iLEk9e2NsYXNzUHJlZml4OiJobGpzLSIsdGFiUmVwbGFjZTpudWxsLHVzZUJSOiExLGxhbmd1YWdlczp2b2lkIDB9O3JldHVybiBlLmhpZ2hsaWdodD1mLGUuaGlnaGxpZ2h0QXV0bz1nLGUuZml4TWFya3VwPXAsZS5oaWdobGlnaHRCbG9jaz1kLGUuY29uZmlndXJlPWIsZS5pbml0SGlnaGxpZ2h0aW5nPXYsZS5pbml0SGlnaGxpZ2h0aW5nT25Mb2FkPW0sZS5yZWdpc3Rlckxhbmd1YWdlPU4sZS5saXN0TGFuZ3VhZ2VzPVIsZS5nZXRMYW5ndWFnZT13LGUuaW5oZXJpdD1vLGUuSVI9IlthLXpBLVpdXFx3KiIsZS5VSVI9IlthLXpBLVpfXVxcdyoiLGUuTlI9IlxcYlxcZCsoXFwuXFxkKyk/IixlLkNOUj0iKC0/KShcXGIwW3hYXVthLWZBLUYwLTldK3woXFxiXFxkKyhcXC5cXGQqKT98XFwuXFxkKykoW2VFXVstK10/XFxkKyk/KSIsZS5CTlI9IlxcYigwYlswMV0rKSIsZS5SU1I9IiF8IT18IT09fCV8JT18JnwmJnwmPXxcXCp8XFwqPXxcXCt8XFwrPXwsfC18LT18Lz18L3w6fDt8PDx8PDw9fDw9fDx8PT09fD09fD18Pj4+PXw+Pj18Pj18Pj4+fD4+fD58XFw/fFxcW3xcXHt8XFwofFxcXnxcXF49fFxcfHxcXHw9fFxcfFxcfHx+IixlLkJFPXtiOiJcXFxcW1xcc1xcU10iLHI6MH0sZS5BU009e2NOOiJzdHJpbmciLGI6IiciLGU6IiciLGk6IlxcbiIsYzpbZS5CRV19LGUuUVNNPXtjTjoic3RyaW5nIixiOiciJyxlOiciJyxpOiJcXG4iLGM6W2UuQkVdfSxlLlBXTT17YjovXGIoYXxhbnx0aGV8YXJlfEknbXxpc24ndHxkb24ndHxkb2Vzbid0fHdvbid0fGJ1dHxqdXN0fHNob3VsZHxwcmV0dHl8c2ltcGx5fGVub3VnaHxnb25uYXxnb2luZ3x3dGZ8c298c3VjaHx3aWxsfHlvdXx5b3VyfHRoZXl8bGlrZXxtb3JlKVxiL30sZS5DPWZ1bmN0aW9uKG4sdCxyKXt2YXIgYT1lLmluaGVyaXQoe2NOOiJjb21tZW50IixiOm4sZTp0LGM6W119LHJ8fHt9KTtyZXR1cm4gYS5jLnB1c2goZS5QV00pLGEuYy5wdXNoKHtjTjoiZG9jdGFnIixiOiIoPzpUT0RPfEZJWE1FfE5PVEV8QlVHfFhYWCk6IixyOjB9KSxhfSxlLkNMQ009ZS5DKCIvLyIsIiQiKSxlLkNCQ009ZS5DKCIvXFwqIiwiXFwqLyIpLGUuSENNPWUuQygiIyIsIiQiKSxlLk5NPXtjTjoibnVtYmVyIixiOmUuTlIscjowfSxlLkNOTT17Y046Im51bWJlciIsYjplLkNOUixyOjB9LGUuQk5NPXtjTjoibnVtYmVyIixiOmUuQk5SLHI6MH0sZS5DU1NOTT17Y046Im51bWJlciIsYjplLk5SKyIoJXxlbXxleHxjaHxyZW18dnd8dmh8dm1pbnx2bWF4fGNtfG1tfGlufHB0fHBjfHB4fGRlZ3xncmFkfHJhZHx0dXJufHN8bXN8SHp8a0h6fGRwaXxkcGNtfGRwcHgpPyIscjowfSxlLlJNPXtjTjoicmVnZXhwIixiOi9cLy8sZTovXC9bZ2ltdXldKi8saTovXG4vLGM6W2UuQkUse2I6L1xbLyxlOi9cXS8scjowLGM6W2UuQkVdfV19LGUuVE09e2NOOiJ0aXRsZSIsYjplLklSLHI6MH0sZS5VVE09e2NOOiJ0aXRsZSIsYjplLlVJUixyOjB9LGUuTUVUSE9EX0dVQVJEPXtiOiJcXC5cXHMqIitlLlVJUixyOjB9LGV9KTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInNxbCIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5DKCItLSIsIiQiKTtyZXR1cm57Y0k6ITAsaTovWzw+e30qI10vLGM6W3tiSzoiYmVnaW4gZW5kIHN0YXJ0IGNvbW1pdCByb2xsYmFjayBzYXZlcG9pbnQgbG9jayBhbHRlciBjcmVhdGUgZHJvcCByZW5hbWUgY2FsbCBkZWxldGUgZG8gaGFuZGxlciBpbnNlcnQgbG9hZCByZXBsYWNlIHNlbGVjdCB0cnVuY2F0ZSB1cGRhdGUgc2V0IHNob3cgcHJhZ21hIGdyYW50IG1lcmdlIGRlc2NyaWJlIHVzZSBleHBsYWluIGhlbHAgZGVjbGFyZSBwcmVwYXJlIGV4ZWN1dGUgZGVhbGxvY2F0ZSByZWxlYXNlIHVubG9jayBwdXJnZSByZXNldCBjaGFuZ2Ugc3RvcCBhbmFseXplIGNhY2hlIGZsdXNoIG9wdGltaXplIHJlcGFpciBraWxsIGluc3RhbGwgdW5pbnN0YWxsIGNoZWNrc3VtIHJlc3RvcmUgY2hlY2sgYmFja3VwIHJldm9rZSBjb21tZW50IixlOi87LyxlVzohMCxsOi9bXHdcLl0rLyxrOntrZXl3b3JkOiJhYm9ydCBhYnMgYWJzb2x1dGUgYWNjIGFjY2UgYWNjZXAgYWNjZXB0IGFjY2VzcyBhY2Nlc3NlZCBhY2Nlc3NpYmxlIGFjY291bnQgYWNvcyBhY3Rpb24gYWN0aXZhdGUgYWRkIGFkZHRpbWUgYWRtaW4gYWRtaW5pc3RlciBhZHZhbmNlZCBhZHZpc2UgYWVzX2RlY3J5cHQgYWVzX2VuY3J5cHQgYWZ0ZXIgYWdlbnQgYWdncmVnYXRlIGFsaSBhbGlhIGFsaWFzIGFsbG9jYXRlIGFsbG93IGFsdGVyIGFsd2F5cyBhbmFseXplIGFuY2lsbGFyeSBhbmQgYW55IGFueWRhdGEgYW55ZGF0YXNldCBhbnlzY2hlbWEgYW55dHlwZSBhcHBseSBhcmNoaXZlIGFyY2hpdmVkIGFyY2hpdmVsb2cgYXJlIGFzIGFzYyBhc2NpaSBhc2luIGFzc2VtYmx5IGFzc2VydGlvbiBhc3NvY2lhdGUgYXN5bmNocm9ub3VzIGF0IGF0YW4gYXRuMiBhdHRyIGF0dHJpIGF0dHJpYiBhdHRyaWJ1IGF0dHJpYnV0IGF0dHJpYnV0ZSBhdHRyaWJ1dGVzIGF1ZGl0IGF1dGhlbnRpY2F0ZWQgYXV0aGVudGljYXRpb24gYXV0aGlkIGF1dGhvcnMgYXV0byBhdXRvYWxsb2NhdGUgYXV0b2RibGluayBhdXRvZXh0ZW5kIGF1dG9tYXRpYyBhdmFpbGFiaWxpdHkgYXZnIGJhY2t1cCBiYWRmaWxlIGJhc2ljZmlsZSBiZWZvcmUgYmVnaW4gYmVnaW5uaW5nIGJlbmNobWFyayBiZXR3ZWVuIGJmaWxlIGJmaWxlX2Jhc2UgYmlnIGJpZ2ZpbGUgYmluIGJpbmFyeV9kb3VibGUgYmluYXJ5X2Zsb2F0IGJpbmxvZyBiaXRfYW5kIGJpdF9jb3VudCBiaXRfbGVuZ3RoIGJpdF9vciBiaXRfeG9yIGJpdG1hcCBibG9iX2Jhc2UgYmxvY2sgYmxvY2tzaXplIGJvZHkgYm90aCBib3VuZCBidWZmZXJfY2FjaGUgYnVmZmVyX3Bvb2wgYnVpbGQgYnVsayBieSBieXRlIGJ5dGVvcmRlcm1hcmsgYnl0ZXMgY2FjaGUgY2FjaGluZyBjYWxsIGNhbGxpbmcgY2FuY2VsIGNhcGFjaXR5IGNhc2NhZGUgY2FzY2FkZWQgY2FzZSBjYXN0IGNhdGFsb2cgY2F0ZWdvcnkgY2VpbCBjZWlsaW5nIGNoYWluIGNoYW5nZSBjaGFuZ2VkIGNoYXJfYmFzZSBjaGFyX2xlbmd0aCBjaGFyYWN0ZXJfbGVuZ3RoIGNoYXJhY3RlcnMgY2hhcmFjdGVyc2V0IGNoYXJpbmRleCBjaGFyc2V0IGNoYXJzZXRmb3JtIGNoYXJzZXRpZCBjaGVjayBjaGVja3N1bSBjaGVja3N1bV9hZ2cgY2hpbGQgY2hvb3NlIGNociBjaHVuayBjbGFzcyBjbGVhbnVwIGNsZWFyIGNsaWVudCBjbG9iIGNsb2JfYmFzZSBjbG9uZSBjbG9zZSBjbHVzdGVyX2lkIGNsdXN0ZXJfcHJvYmFiaWxpdHkgY2x1c3Rlcl9zZXQgY2x1c3RlcmluZyBjb2FsZXNjZSBjb2VyY2liaWxpdHkgY29sIGNvbGxhdGUgY29sbGF0aW9uIGNvbGxlY3QgY29sdSBjb2x1bSBjb2x1bW4gY29sdW1uX3ZhbHVlIGNvbHVtbnMgY29sdW1uc191cGRhdGVkIGNvbW1lbnQgY29tbWl0IGNvbXBhY3QgY29tcGF0aWJpbGl0eSBjb21waWxlZCBjb21wbGV0ZSBjb21wb3NpdGVfbGltaXQgY29tcG91bmQgY29tcHJlc3MgY29tcHV0ZSBjb25jYXQgY29uY2F0X3dzIGNvbmN1cnJlbnQgY29uZmlybSBjb25uIGNvbm5lYyBjb25uZWN0IGNvbm5lY3RfYnlfaXNjeWNsZSBjb25uZWN0X2J5X2lzbGVhZiBjb25uZWN0X2J5X3Jvb3QgY29ubmVjdF90aW1lIGNvbm5lY3Rpb24gY29uc2lkZXIgY29uc2lzdGVudCBjb25zdGFudCBjb25zdHJhaW50IGNvbnN0cmFpbnRzIGNvbnN0cnVjdG9yIGNvbnRhaW5lciBjb250ZW50IGNvbnRlbnRzIGNvbnRleHQgY29udHJpYnV0b3JzIGNvbnRyb2xmaWxlIGNvbnYgY29udmVydCBjb252ZXJ0X3R6IGNvcnIgY29ycl9rIGNvcnJfcyBjb3JyZXNwb25kaW5nIGNvcnJ1cHRpb24gY29zIGNvc3QgY291bnQgY291bnRfYmlnIGNvdW50ZWQgY292YXJfcG9wIGNvdmFyX3NhbXAgY3B1X3Blcl9jYWxsIGNwdV9wZXJfc2Vzc2lvbiBjcmMzMiBjcmVhdGUgY3JlYXRpb24gY3JpdGljYWwgY3Jvc3MgY3ViZSBjdW1lX2Rpc3QgY3VyZGF0ZSBjdXJyZW50IGN1cnJlbnRfZGF0ZSBjdXJyZW50X3RpbWUgY3VycmVudF90aW1lc3RhbXAgY3VycmVudF91c2VyIGN1cnNvciBjdXJ0aW1lIGN1c3RvbWRhdHVtIGN5Y2xlIGRhdGEgZGF0YWJhc2UgZGF0YWJhc2VzIGRhdGFmaWxlIGRhdGFmaWxlcyBkYXRhbGVuZ3RoIGRhdGVfYWRkIGRhdGVfY2FjaGUgZGF0ZV9mb3JtYXQgZGF0ZV9zdWIgZGF0ZWFkZCBkYXRlZGlmZiBkYXRlZnJvbXBhcnRzIGRhdGVuYW1lIGRhdGVwYXJ0IGRhdGV0aW1lMmZyb21wYXJ0cyBkYXkgZGF5X3RvX3NlY29uZCBkYXluYW1lIGRheW9mbW9udGggZGF5b2Z3ZWVrIGRheW9meWVhciBkYXlzIGRiX3JvbGVfY2hhbmdlIGRidGltZXpvbmUgZGRsIGRlYWxsb2NhdGUgZGVjbGFyZSBkZWNvZGUgZGVjb21wb3NlIGRlY3JlbWVudCBkZWNyeXB0IGRlZHVwbGljYXRlIGRlZiBkZWZhIGRlZmF1IGRlZmF1bCBkZWZhdWx0IGRlZmF1bHRzIGRlZmVycmVkIGRlZmkgZGVmaW4gZGVmaW5lIGRlZ3JlZXMgZGVsYXllZCBkZWxlZ2F0ZSBkZWxldGUgZGVsZXRlX2FsbCBkZWxpbWl0ZWQgZGVtYW5kIGRlbnNlX3JhbmsgZGVwdGggZGVxdWV1ZSBkZXNfZGVjcnlwdCBkZXNfZW5jcnlwdCBkZXNfa2V5X2ZpbGUgZGVzYyBkZXNjciBkZXNjcmkgZGVzY3JpYiBkZXNjcmliZSBkZXNjcmlwdG9yIGRldGVybWluaXN0aWMgZGlhZ25vc3RpY3MgZGlmZmVyZW5jZSBkaW1lbnNpb24gZGlyZWN0X2xvYWQgZGlyZWN0b3J5IGRpc2FibGUgZGlzYWJsZV9hbGwgZGlzYWxsb3cgZGlzYXNzb2NpYXRlIGRpc2NhcmRmaWxlIGRpc2Nvbm5lY3QgZGlza2dyb3VwIGRpc3RpbmN0IGRpc3RpbmN0cm93IGRpc3RyaWJ1dGUgZGlzdHJpYnV0ZWQgZGl2IGRvIGRvY3VtZW50IGRvbWFpbiBkb3RuZXQgZG91YmxlIGRvd25ncmFkZSBkcm9wIGR1bXBmaWxlIGR1cGxpY2F0ZSBkdXJhdGlvbiBlYWNoIGVkaXRpb24gZWRpdGlvbmFibGUgZWRpdGlvbnMgZWxlbWVudCBlbGxpcHNpcyBlbHNlIGVsc2lmIGVsdCBlbXB0eSBlbmFibGUgZW5hYmxlX2FsbCBlbmNsb3NlZCBlbmNvZGUgZW5jb2RpbmcgZW5jcnlwdCBlbmQgZW5kLWV4ZWMgZW5kaWFuIGVuZm9yY2VkIGVuZ2luZSBlbmdpbmVzIGVucXVldWUgZW50ZXJwcmlzZSBlbnRpdHllc2NhcGluZyBlb21vbnRoIGVycm9yIGVycm9ycyBlc2NhcGVkIGV2YWxuYW1lIGV2YWx1YXRlIGV2ZW50IGV2ZW50ZGF0YSBldmVudHMgZXhjZXB0IGV4Y2VwdGlvbiBleGNlcHRpb25zIGV4Y2hhbmdlIGV4Y2x1ZGUgZXhjbHVkaW5nIGV4ZWN1IGV4ZWN1dCBleGVjdXRlIGV4ZW1wdCBleGlzdHMgZXhpdCBleHAgZXhwaXJlIGV4cGxhaW4gZXhwb3J0IGV4cG9ydF9zZXQgZXh0ZW5kZWQgZXh0ZW50IGV4dGVybmFsIGV4dGVybmFsXzEgZXh0ZXJuYWxfMiBleHRlcm5hbGx5IGV4dHJhY3QgZmFpbGVkIGZhaWxlZF9sb2dpbl9hdHRlbXB0cyBmYWlsb3ZlciBmYWlsdXJlIGZhciBmYXN0IGZlYXR1cmVfc2V0IGZlYXR1cmVfdmFsdWUgZmV0Y2ggZmllbGQgZmllbGRzIGZpbGUgZmlsZV9uYW1lX2NvbnZlcnQgZmlsZXN5c3RlbV9saWtlX2xvZ2dpbmcgZmluYWwgZmluaXNoIGZpcnN0IGZpcnN0X3ZhbHVlIGZpeGVkIGZsYXNoX2NhY2hlIGZsYXNoYmFjayBmbG9vciBmbHVzaCBmb2xsb3dpbmcgZm9sbG93cyBmb3IgZm9yYWxsIGZvcmNlIGZvcm0gZm9ybWEgZm9ybWF0IGZvdW5kIGZvdW5kX3Jvd3MgZnJlZWxpc3QgZnJlZWxpc3RzIGZyZWVwb29scyBmcmVzaCBmcm9tIGZyb21fYmFzZTY0IGZyb21fZGF5cyBmdHAgZnVsbCBmdW5jdGlvbiBnZW5lcmFsIGdlbmVyYXRlZCBnZXQgZ2V0X2Zvcm1hdCBnZXRfbG9jayBnZXRkYXRlIGdldHV0Y2RhdGUgZ2xvYmFsIGdsb2JhbF9uYW1lIGdsb2JhbGx5IGdvIGdvdG8gZ3JhbnQgZ3JhbnRzIGdyZWF0ZXN0IGdyb3VwIGdyb3VwX2NvbmNhdCBncm91cF9pZCBncm91cGluZyBncm91cGluZ19pZCBncm91cHMgZ3RpZF9zdWJ0cmFjdCBndWFyYW50ZWUgZ3VhcmQgaGFuZGxlciBoYXNoIGhhc2hrZXlzIGhhdmluZyBoZWEgaGVhZCBoZWFkaSBoZWFkaW4gaGVhZGluZyBoZWFwIGhlbHAgaGV4IGhpZXJhcmNoeSBoaWdoIGhpZ2hfcHJpb3JpdHkgaG9zdHMgaG91ciBodHRwIGlkIGlkZW50X2N1cnJlbnQgaWRlbnRfaW5jciBpZGVudF9zZWVkIGlkZW50aWZpZWQgaWRlbnRpdHkgaWRsZV90aW1lIGlmIGlmbnVsbCBpZ25vcmUgaWlmIGlsaWtlIGlsbSBpbW1lZGlhdGUgaW1wb3J0IGluIGluY2x1ZGUgaW5jbHVkaW5nIGluY3JlbWVudCBpbmRleCBpbmRleGVzIGluZGV4aW5nIGluZGV4dHlwZSBpbmRpY2F0b3IgaW5kaWNlcyBpbmV0Nl9hdG9uIGluZXQ2X250b2EgaW5ldF9hdG9uIGluZXRfbnRvYSBpbmZpbGUgaW5pdGlhbCBpbml0aWFsaXplZCBpbml0aWFsbHkgaW5pdHJhbnMgaW5tZW1vcnkgaW5uZXIgaW5ub2RiIGlucHV0IGluc2VydCBpbnN0YWxsIGluc3RhbmNlIGluc3RhbnRpYWJsZSBpbnN0ciBpbnRlcmZhY2UgaW50ZXJsZWF2ZWQgaW50ZXJzZWN0IGludG8gaW52YWxpZGF0ZSBpbnZpc2libGUgaXMgaXNfZnJlZV9sb2NrIGlzX2lwdjQgaXNfaXB2NF9jb21wYXQgaXNfbm90IGlzX25vdF9udWxsIGlzX3VzZWRfbG9jayBpc2RhdGUgaXNudWxsIGlzb2xhdGlvbiBpdGVyYXRlIGphdmEgam9pbiBqc29uIGpzb25fZXhpc3RzIGtlZXAga2VlcF9kdXBsaWNhdGVzIGtleSBrZXlzIGtpbGwgbGFuZ3VhZ2UgbGFyZ2UgbGFzdCBsYXN0X2RheSBsYXN0X2luc2VydF9pZCBsYXN0X3ZhbHVlIGxheCBsY2FzZSBsZWFkIGxlYWRpbmcgbGVhc3QgbGVhdmVzIGxlZnQgbGVuIGxlbmdodCBsZW5ndGggbGVzcyBsZXZlbCBsZXZlbHMgbGlicmFyeSBsaWtlIGxpa2UyIGxpa2U0IGxpa2VjIGxpbWl0IGxpbmVzIGxpbmsgbGlzdCBsaXN0YWdnIGxpdHRsZSBsbiBsb2FkIGxvYWRfZmlsZSBsb2IgbG9icyBsb2NhbCBsb2NhbHRpbWUgbG9jYWx0aW1lc3RhbXAgbG9jYXRlIGxvY2F0b3IgbG9jayBsb2NrZWQgbG9nIGxvZzEwIGxvZzIgbG9nZmlsZSBsb2dmaWxlcyBsb2dnaW5nIGxvZ2ljYWwgbG9naWNhbF9yZWFkc19wZXJfY2FsbCBsb2dvZmYgbG9nb24gbG9ncyBsb25nIGxvb3AgbG93IGxvd19wcmlvcml0eSBsb3dlciBscGFkIGxydHJpbSBsdHJpbSBtYWluIG1ha2Vfc2V0IG1ha2VkYXRlIG1ha2V0aW1lIG1hbmFnZWQgbWFuYWdlbWVudCBtYW51YWwgbWFwIG1hcHBpbmcgbWFzayBtYXN0ZXIgbWFzdGVyX3Bvc193YWl0IG1hdGNoIG1hdGNoZWQgbWF0ZXJpYWxpemVkIG1heCBtYXhleHRlbnRzIG1heGltaXplIG1heGluc3RhbmNlcyBtYXhsZW4gbWF4bG9nZmlsZXMgbWF4bG9naGlzdG9yeSBtYXhsb2dtZW1iZXJzIG1heHNpemUgbWF4dHJhbnMgbWQ1IG1lYXN1cmVzIG1lZGlhbiBtZWRpdW0gbWVtYmVyIG1lbWNvbXByZXNzIG1lbW9yeSBtZXJnZSBtaWNyb3NlY29uZCBtaWQgbWlncmF0aW9uIG1pbiBtaW5leHRlbnRzIG1pbmltdW0gbWluaW5nIG1pbnVzIG1pbnV0ZSBtaW52YWx1ZSBtaXNzaW5nIG1vZCBtb2RlIG1vZGVsIG1vZGlmaWNhdGlvbiBtb2RpZnkgbW9kdWxlIG1vbml0b3JpbmcgbW9udGggbW9udGhzIG1vdW50IG1vdmUgbW92ZW1lbnQgbXVsdGlzZXQgbXV0ZXggbmFtZSBuYW1lX2NvbnN0IG5hbWVzIG5hbiBuYXRpb25hbCBuYXRpdmUgbmF0dXJhbCBuYXYgbmNoYXIgbmNsb2IgbmVzdGVkIG5ldmVyIG5ldyBuZXdsaW5lIG5leHQgbmV4dHZhbCBubyBub193cml0ZV90b19iaW5sb2cgbm9hcmNoaXZlbG9nIG5vYXVkaXQgbm9iYWRmaWxlIG5vY2hlY2sgbm9jb21wcmVzcyBub2NvcHkgbm9jeWNsZSBub2RlbGF5IG5vZGlzY2FyZGZpbGUgbm9lbnRpdHllc2NhcGluZyBub2d1YXJhbnRlZSBub2tlZXAgbm9sb2dmaWxlIG5vbWFwcGluZyBub21heHZhbHVlIG5vbWluaW1pemUgbm9taW52YWx1ZSBub21vbml0b3Jpbmcgbm9uZSBub25lZGl0aW9uYWJsZSBub25zY2hlbWEgbm9vcmRlciBub3ByIG5vcHJvIG5vcHJvbSBub3Byb21wIG5vcHJvbXB0IG5vcmVseSBub3Jlc2V0bG9ncyBub3JldmVyc2Ugbm9ybWFsIG5vcm93ZGVwZW5kZW5jaWVzIG5vc2NoZW1hY2hlY2sgbm9zd2l0Y2ggbm90IG5vdGhpbmcgbm90aWNlIG5vdHJpbSBub3ZhbGlkYXRlIG5vdyBub3dhaXQgbnRoX3ZhbHVlIG51bGxpZiBudWxscyBudW0gbnVtYiBudW1iZSBudmFyY2hhciBudmFyY2hhcjIgb2JqZWN0IG9jaWNvbGwgb2NpZGF0ZSBvY2lkYXRldGltZSBvY2lkdXJhdGlvbiBvY2lpbnRlcnZhbCBvY2lsb2Jsb2NhdG9yIG9jaW51bWJlciBvY2lyZWYgb2NpcmVmY3Vyc29yIG9jaXJvd2lkIG9jaXN0cmluZyBvY2l0eXBlIG9jdCBvY3RldF9sZW5ndGggb2Ygb2ZmIG9mZmxpbmUgb2Zmc2V0IG9pZCBvaWRpbmRleCBvbGQgb24gb25saW5lIG9ubHkgb3BhcXVlIG9wZW4gb3BlcmF0aW9ucyBvcGVyYXRvciBvcHRpbWFsIG9wdGltaXplIG9wdGlvbiBvcHRpb25hbGx5IG9yIG9yYWNsZSBvcmFjbGVfZGF0ZSBvcmFkYXRhIG9yZCBvcmRhdWRpbyBvcmRkaWNvbSBvcmRkb2Mgb3JkZXIgb3JkaW1hZ2Ugb3JkaW5hbGl0eSBvcmR2aWRlbyBvcmdhbml6YXRpb24gb3JsYW55IG9ybHZhcnkgb3V0IG91dGVyIG91dGZpbGUgb3V0bGluZSBvdXRwdXQgb3ZlciBvdmVyZmxvdyBvdmVycmlkaW5nIHBhY2thZ2UgcGFkIHBhcmFsbGVsIHBhcmFsbGVsX2VuYWJsZSBwYXJhbWV0ZXJzIHBhcmVudCBwYXJzZSBwYXJ0aWFsIHBhcnRpdGlvbiBwYXJ0aXRpb25zIHBhc2NhbCBwYXNzaW5nIHBhc3N3b3JkIHBhc3N3b3JkX2dyYWNlX3RpbWUgcGFzc3dvcmRfbG9ja190aW1lIHBhc3N3b3JkX3JldXNlX21heCBwYXNzd29yZF9yZXVzZV90aW1lIHBhc3N3b3JkX3ZlcmlmeV9mdW5jdGlvbiBwYXRjaCBwYXRoIHBhdGluZGV4IHBjdGluY3JlYXNlIHBjdHRocmVzaG9sZCBwY3R1c2VkIHBjdHZlcnNpb24gcGVyY2VudCBwZXJjZW50X3JhbmsgcGVyY2VudGlsZV9jb250IHBlcmNlbnRpbGVfZGlzYyBwZXJmb3JtYW5jZSBwZXJpb2QgcGVyaW9kX2FkZCBwZXJpb2RfZGlmZiBwZXJtYW5lbnQgcGh5c2ljYWwgcGkgcGlwZSBwaXBlbGluZWQgcGl2b3QgcGx1Z2dhYmxlIHBsdWdpbiBwb2xpY3kgcG9zaXRpb24gcG9zdF90cmFuc2FjdGlvbiBwb3cgcG93ZXIgcHJhZ21hIHByZWJ1aWx0IHByZWNlZGVzIHByZWNlZGluZyBwcmVjaXNpb24gcHJlZGljdGlvbiBwcmVkaWN0aW9uX2Nvc3QgcHJlZGljdGlvbl9kZXRhaWxzIHByZWRpY3Rpb25fcHJvYmFiaWxpdHkgcHJlZGljdGlvbl9zZXQgcHJlcGFyZSBwcmVzZW50IHByZXNlcnZlIHByaW9yIHByaW9yaXR5IHByaXZhdGUgcHJpdmF0ZV9zZ2EgcHJpdmlsZWdlcyBwcm9jZWR1cmFsIHByb2NlZHVyZSBwcm9jZWR1cmVfYW5hbHl6ZSBwcm9jZXNzbGlzdCBwcm9maWxlcyBwcm9qZWN0IHByb21wdCBwcm90ZWN0aW9uIHB1YmxpYyBwdWJsaXNoaW5nc2VydmVybmFtZSBwdXJnZSBxdWFydGVyIHF1ZXJ5IHF1aWNrIHF1aWVzY2UgcXVvdGEgcXVvdGVuYW1lIHJhZGlhbnMgcmFpc2UgcmFuZCByYW5nZSByYW5rIHJhdyByZWFkIHJlYWRzIHJlYWRzaXplIHJlYnVpbGQgcmVjb3JkIHJlY29yZHMgcmVjb3ZlciByZWNvdmVyeSByZWN1cnNpdmUgcmVjeWNsZSByZWRvIHJlZHVjZWQgcmVmIHJlZmVyZW5jZSByZWZlcmVuY2VkIHJlZmVyZW5jZXMgcmVmZXJlbmNpbmcgcmVmcmVzaCByZWdleHBfbGlrZSByZWdpc3RlciByZWdyX2F2Z3ggcmVncl9hdmd5IHJlZ3JfY291bnQgcmVncl9pbnRlcmNlcHQgcmVncl9yMiByZWdyX3Nsb3BlIHJlZ3Jfc3h4IHJlZ3Jfc3h5IHJlamVjdCByZWtleSByZWxhdGlvbmFsIHJlbGF0aXZlIHJlbGF5bG9nIHJlbGVhc2UgcmVsZWFzZV9sb2NrIHJlbGllc19vbiByZWxvY2F0ZSByZWx5IHJlbSByZW1haW5kZXIgcmVuYW1lIHJlcGFpciByZXBlYXQgcmVwbGFjZSByZXBsaWNhdGUgcmVwbGljYXRpb24gcmVxdWlyZWQgcmVzZXQgcmVzZXRsb2dzIHJlc2l6ZSByZXNvdXJjZSByZXNwZWN0IHJlc3RvcmUgcmVzdHJpY3RlZCByZXN1bHQgcmVzdWx0X2NhY2hlIHJlc3VtYWJsZSByZXN1bWUgcmV0ZW50aW9uIHJldHVybiByZXR1cm5pbmcgcmV0dXJucyByZXVzZSByZXZlcnNlIHJldm9rZSByaWdodCBybGlrZSByb2xlIHJvbGVzIHJvbGxiYWNrIHJvbGxpbmcgcm9sbHVwIHJvdW5kIHJvdyByb3dfY291bnQgcm93ZGVwZW5kZW5jaWVzIHJvd2lkIHJvd251bSByb3dzIHJ0cmltIHJ1bGVzIHNhZmUgc2FsdCBzYW1wbGUgc2F2ZSBzYXZlcG9pbnQgc2IxIHNiMiBzYjQgc2NhbiBzY2hlbWEgc2NoZW1hY2hlY2sgc2NuIHNjb3BlIHNjcm9sbCBzZG9fZ2VvcmFzdGVyIHNkb190b3BvX2dlb21ldHJ5IHNlYXJjaCBzZWNfdG9fdGltZSBzZWNvbmQgc2VjdGlvbiBzZWN1cmVmaWxlIHNlY3VyaXR5IHNlZWQgc2VnbWVudCBzZWxlY3Qgc2VsZiBzZXF1ZW5jZSBzZXF1ZW50aWFsIHNlcmlhbGl6YWJsZSBzZXJ2ZXIgc2VydmVyZXJyb3Igc2Vzc2lvbiBzZXNzaW9uX3VzZXIgc2Vzc2lvbnNfcGVyX3VzZXIgc2V0IHNldHMgc2V0dGluZ3Mgc2hhIHNoYTEgc2hhMiBzaGFyZSBzaGFyZWQgc2hhcmVkX3Bvb2wgc2hvcnQgc2hvdyBzaHJpbmsgc2h1dGRvd24gc2lfYXZlcmFnZWNvbG9yIHNpX2NvbG9yaGlzdG9ncmFtIHNpX2ZlYXR1cmVsaXN0IHNpX3Bvc2l0aW9uYWxjb2xvciBzaV9zdGlsbGltYWdlIHNpX3RleHR1cmUgc2libGluZ3Mgc2lkIHNpZ24gc2luIHNpemUgc2l6ZV90IHNpemVzIHNraXAgc2xhdmUgc2xlZXAgc21hbGxkYXRldGltZWZyb21wYXJ0cyBzbWFsbGZpbGUgc25hcHNob3Qgc29tZSBzb25hbWUgc29ydCBzb3VuZGV4IHNvdXJjZSBzcGFjZSBzcGFyc2Ugc3BmaWxlIHNwbGl0IHNxbCBzcWxfYmlnX3Jlc3VsdCBzcWxfYnVmZmVyX3Jlc3VsdCBzcWxfY2FjaGUgc3FsX2NhbGNfZm91bmRfcm93cyBzcWxfc21hbGxfcmVzdWx0IHNxbF92YXJpYW50X3Byb3BlcnR5IHNxbGNvZGUgc3FsZGF0YSBzcWxlcnJvciBzcWxuYW1lIHNxbHN0YXRlIHNxcnQgc3F1YXJlIHN0YW5kYWxvbmUgc3RhbmRieSBzdGFydCBzdGFydGluZyBzdGFydHVwIHN0YXRlbWVudCBzdGF0aWMgc3RhdGlzdGljcyBzdGF0c19iaW5vbWlhbF90ZXN0IHN0YXRzX2Nyb3NzdGFiIHN0YXRzX2tzX3Rlc3Qgc3RhdHNfbW9kZSBzdGF0c19td190ZXN0IHN0YXRzX29uZV93YXlfYW5vdmEgc3RhdHNfdF90ZXN0XyBzdGF0c190X3Rlc3RfaW5kZXAgc3RhdHNfdF90ZXN0X29uZSBzdGF0c190X3Rlc3RfcGFpcmVkIHN0YXRzX3dzcl90ZXN0IHN0YXR1cyBzdGQgc3RkZGV2IHN0ZGRldl9wb3Agc3RkZGV2X3NhbXAgc3RkZXYgc3RvcCBzdG9yYWdlIHN0b3JlIHN0b3JlZCBzdHIgc3RyX3RvX2RhdGUgc3RyYWlnaHRfam9pbiBzdHJjbXAgc3RyaWN0IHN0cmluZyBzdHJ1Y3Qgc3R1ZmYgc3R5bGUgc3ViZGF0ZSBzdWJwYXJ0aXRpb24gc3VicGFydGl0aW9ucyBzdWJzdGl0dXRhYmxlIHN1YnN0ciBzdWJzdHJpbmcgc3VidGltZSBzdWJ0cmluZ19pbmRleCBzdWJ0eXBlIHN1Y2Nlc3Mgc3VtIHN1c3BlbmQgc3dpdGNoIHN3aXRjaG9mZnNldCBzd2l0Y2hvdmVyIHN5bmMgc3luY2hyb25vdXMgc3lub255bSBzeXMgc3lzX3htbGFnZyBzeXNhc20gc3lzYXV4IHN5c2RhdGUgc3lzZGF0ZXRpbWVvZmZzZXQgc3lzZGJhIHN5c29wZXIgc3lzdGVtIHN5c3RlbV91c2VyIHN5c3V0Y2RhdGV0aW1lIHRhYmxlIHRhYmxlcyB0YWJsZXNwYWNlIHRhbiB0ZG8gdGVtcGxhdGUgdGVtcG9yYXJ5IHRlcm1pbmF0ZWQgdGVydGlhcnlfd2VpZ2h0cyB0ZXN0IHRoYW4gdGhlbiB0aHJlYWQgdGhyb3VnaCB0aWVyIHRpZXMgdGltZSB0aW1lX2Zvcm1hdCB0aW1lX3pvbmUgdGltZWRpZmYgdGltZWZyb21wYXJ0cyB0aW1lb3V0IHRpbWVzdGFtcCB0aW1lc3RhbXBhZGQgdGltZXN0YW1wZGlmZiB0aW1lem9uZV9hYmJyIHRpbWV6b25lX21pbnV0ZSB0aW1lem9uZV9yZWdpb24gdG8gdG9fYmFzZTY0IHRvX2RhdGUgdG9fZGF5cyB0b19zZWNvbmRzIHRvZGF0ZXRpbWVvZmZzZXQgdHJhY2UgdHJhY2tpbmcgdHJhbnNhY3Rpb24gdHJhbnNhY3Rpb25hbCB0cmFuc2xhdGUgdHJhbnNsYXRpb24gdHJlYXQgdHJpZ2dlciB0cmlnZ2VyX25lc3RsZXZlbCB0cmlnZ2VycyB0cmltIHRydW5jYXRlIHRyeV9jYXN0IHRyeV9jb252ZXJ0IHRyeV9wYXJzZSB0eXBlIHViMSB1YjIgdWI0IHVjYXNlIHVuYXJjaGl2ZWQgdW5ib3VuZGVkIHVuY29tcHJlc3MgdW5kZXIgdW5kbyB1bmhleCB1bmljb2RlIHVuaWZvcm0gdW5pbnN0YWxsIHVuaW9uIHVuaXF1ZSB1bml4X3RpbWVzdGFtcCB1bmtub3duIHVubGltaXRlZCB1bmxvY2sgdW5waXZvdCB1bnJlY292ZXJhYmxlIHVuc2FmZSB1bnNpZ25lZCB1bnRpbCB1bnRydXN0ZWQgdW51c2FibGUgdW51c2VkIHVwZGF0ZSB1cGRhdGVkIHVwZ3JhZGUgdXBwZWQgdXBwZXIgdXBzZXJ0IHVybCB1cm93aWQgdXNhYmxlIHVzYWdlIHVzZSB1c2Vfc3RvcmVkX291dGxpbmVzIHVzZXIgdXNlcl9kYXRhIHVzZXJfcmVzb3VyY2VzIHVzZXJzIHVzaW5nIHV0Y19kYXRlIHV0Y190aW1lc3RhbXAgdXVpZCB1dWlkX3Nob3J0IHZhbGlkYXRlIHZhbGlkYXRlX3Bhc3N3b3JkX3N0cmVuZ3RoIHZhbGlkYXRpb24gdmFsaXN0IHZhbHVlIHZhbHVlcyB2YXIgdmFyX3NhbXAgdmFyY2hhcmMgdmFyaSB2YXJpYSB2YXJpYWIgdmFyaWFibCB2YXJpYWJsZSB2YXJpYWJsZXMgdmFyaWFuY2UgdmFycCB2YXJyYXcgdmFycmF3YyB2YXJyYXkgdmVyaWZ5IHZlcnNpb24gdmVyc2lvbnMgdmlldyB2aXJ0dWFsIHZpc2libGUgdm9pZCB3YWl0IHdhbGxldCB3YXJuaW5nIHdhcm5pbmdzIHdlZWsgd2Vla2RheSB3ZWVrb2Z5ZWFyIHdlbGxmb3JtZWQgd2hlbiB3aGVuZSB3aGVuZXYgd2hlbmV2ZSB3aGVuZXZlciB3aGVyZSB3aGlsZSB3aGl0ZXNwYWNlIHdpdGggd2l0aGluIHdpdGhvdXQgd29yayB3cmFwcGVkIHhkYiB4bWwgeG1sYWdnIHhtbGF0dHJpYnV0ZXMgeG1sY2FzdCB4bWxjb2xhdHR2YWwgeG1sZWxlbWVudCB4bWxleGlzdHMgeG1sZm9yZXN0IHhtbGluZGV4IHhtbG5hbWVzcGFjZXMgeG1scGkgeG1scXVlcnkgeG1scm9vdCB4bWxzY2hlbWEgeG1sc2VyaWFsaXplIHhtbHRhYmxlIHhtbHR5cGUgeG9yIHllYXIgeWVhcl90b19tb250aCB5ZWFycyB5ZWFyd2VlayIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSBudWxsIixidWlsdF9pbjoiYXJyYXkgYmlnaW50IGJpbmFyeSBiaXQgYmxvYiBib29sZWFuIGNoYXIgY2hhcmFjdGVyIGRhdGUgZGVjIGRlY2ltYWwgZmxvYXQgaW50IGludDggaW50ZWdlciBpbnRlcnZhbCBudW1iZXIgbnVtZXJpYyByZWFsIHJlY29yZCBzZXJpYWwgc2VyaWFsOCBzbWFsbGludCB0ZXh0IHZhcmNoYXIgdmFyeWluZyB2b2lkIn0sYzpbe2NOOiJzdHJpbmciLGI6IiciLGU6IiciLGM6W2UuQkUse2I6IicnIn1dfSx7Y046InN0cmluZyIsYjonIicsZTonIicsYzpbZS5CRSx7YjonIiInfV19LHtjTjoic3RyaW5nIixiOiJgIixlOiJgIixjOltlLkJFXX0sZS5DTk0sZS5DQkNNLHRdfSxlLkNCQ00sdF19fSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJyIixmdW5jdGlvbihlKXt2YXIgcj0iKFthLXpBLVpdfFxcLlthLXpBLVouXSlbYS16QS1aMC05Ll9dKiI7cmV0dXJue2M6W2UuSENNLHtiOnIsbDpyLGs6e2tleXdvcmQ6ImZ1bmN0aW9uIGlmIGluIGJyZWFrIG5leHQgcmVwZWF0IGVsc2UgZm9yIHJldHVybiBzd2l0Y2ggd2hpbGUgdHJ5IHRyeUNhdGNoIHN0b3Agd2FybmluZyByZXF1aXJlIGxpYnJhcnkgYXR0YWNoIGRldGFjaCBzb3VyY2Ugc2V0TWV0aG9kIHNldEdlbmVyaWMgc2V0R3JvdXBHZW5lcmljIHNldENsYXNzIC4uLiIsbGl0ZXJhbDoiTlVMTCBOQSBUUlVFIEZBTFNFIFQgRiBJbmYgTmFOIE5BX2ludGVnZXJffDEwIE5BX3JlYWxffDEwIE5BX2NoYXJhY3Rlcl98MTAgTkFfY29tcGxleF98MTAifSxyOjB9LHtjTjoibnVtYmVyIixiOiIwW3hYXVswLTlhLWZBLUZdK1tMaV0/XFxiIixyOjB9LHtjTjoibnVtYmVyIixiOiJcXGQrKD86W2VFXVsrXFwtXT9cXGQqKT9MXFxiIixyOjB9LHtjTjoibnVtYmVyIixiOiJcXGQrXFwuKD8hXFxkKSg/OmlcXGIpPyIscjowfSx7Y046Im51bWJlciIsYjoiXFxkKyg/OlxcLlxcZCopPyg/OltlRV1bK1xcLV0/XFxkKik/aT9cXGIiLHI6MH0se2NOOiJudW1iZXIiLGI6IlxcLlxcZCsoPzpbZUVdWytcXC1dP1xcZCopP2k/XFxiIixyOjB9LHtiOiJgIixlOiJgIixyOjB9LHtjTjoic3RyaW5nIixjOltlLkJFXSx2Olt7YjonIicsZTonIid9LHtiOiInIixlOiInIn1dfV19fSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJwZXJsIixmdW5jdGlvbihlKXt2YXIgdD0iZ2V0cHdlbnQgZ2V0c2VydmVudCBxdW90ZW1ldGEgbXNncmN2IHNjYWxhciBraWxsIGRibWNsb3NlIHVuZGVmIGxjIG1hIHN5c3dyaXRlIHRyIHNlbmQgdW1hc2sgc3lzb3BlbiBzaG13cml0ZSB2ZWMgcXggdXRpbWUgbG9jYWwgb2N0IHNlbWN0bCBsb2NhbHRpbWUgcmVhZHBpcGUgZG8gcmV0dXJuIGZvcm1hdCByZWFkIHNwcmludGYgZGJtb3BlbiBwb3AgZ2V0cGdycCBub3QgZ2V0cHduYW0gcmV3aW5kZGlyIHFxZmlsZW5vIHF3IGVuZHByb3RvZW50IHdhaXQgc2V0aG9zdGVudCBibGVzcyBzfDAgb3BlbmRpciBjb250aW51ZSBlYWNoIHNsZWVwIGVuZGdyZW50IHNodXRkb3duIGR1bXAgY2hvbXAgY29ubmVjdCBnZXRzb2NrbmFtZSBkaWUgc29ja2V0cGFpciBjbG9zZSBmbG9jayBleGlzdHMgaW5kZXggc2htZ2V0c3ViIGZvciBlbmRwd2VudCByZWRvIGxzdGF0IG1zZ2N0bCBzZXRwZ3JwIGFicyBleGl0IHNlbGVjdCBwcmludCByZWYgZ2V0aG9zdGJ5YWRkciB1bnNoaWZ0IGZjbnRsIHN5c2NhbGwgZ290byBnZXRuZXRieWFkZHIgam9pbiBnbXRpbWUgc3ltbGluayBzZW1nZXQgc3BsaWNlIHh8MCBnZXRwZWVybmFtZSByZWN2IGxvZyBzZXRzb2Nrb3B0IGNvcyBsYXN0IHJldmVyc2UgZ2V0aG9zdGJ5bmFtZSBnZXRncm5hbSBzdHVkeSBmb3JtbGluZSBlbmRob3N0ZW50IHRpbWVzIGNob3AgbGVuZ3RoIGdldGhvc3RlbnQgZ2V0bmV0ZW50IHBhY2sgZ2V0cHJvdG9lbnQgZ2V0c2VydmJ5bmFtZSByYW5kIG1rZGlyIHBvcyBjaG1vZCB5fDAgc3Vic3RyIGVuZG5ldGVudCBwcmludGYgbmV4dCBvcGVuIG1zZ3NuZCByZWFkZGlyIHVzZSB1bmxpbmsgZ2V0c29ja29wdCBnZXRwcmlvcml0eSByaW5kZXggd2FudGFycmF5IGhleCBzeXN0ZW0gZ2V0c2VydmJ5cG9ydCBlbmRzZXJ2ZW50IGludCBjaHIgdW50aWUgcm1kaXIgcHJvdG90eXBlIHRlbGwgbGlzdGVuIGZvcmsgc2htcmVhZCB1Y2ZpcnN0IHNldHByb3RvZW50IGVsc2Ugc3lzc2VlayBsaW5rIGdldGdyZ2lkIHNobWN0bCB3YWl0cGlkIHVucGFjayBnZXRuZXRieW5hbWUgcmVzZXQgY2hkaXIgZ3JlcCBzcGxpdCByZXF1aXJlIGNhbGxlciBsY2ZpcnN0IHVudGlsIHdhcm4gd2hpbGUgdmFsdWVzIHNoaWZ0IHRlbGxkaXIgZ2V0cHd1aWQgbXkgZ2V0cHJvdG9ieW51bWJlciBkZWxldGUgYW5kIHNvcnQgdWMgZGVmaW5lZCBzcmFuZCBhY2NlcHQgcGFja2FnZSBzZWVrZGlyIGdldHByb3RvYnluYW1lIHNlbW9wIG91ciByZW5hbWUgc2VlayBpZiBxfDAgY2hyb290IHN5c3JlYWQgc2V0cHdlbnQgbm8gY3J5cHQgZ2V0YyBjaG93biBzcXJ0IHdyaXRlIHNldG5ldGVudCBzZXRwcmlvcml0eSBmb3JlYWNoIHRpZSBzaW4gbXNnZ2V0IG1hcCBzdGF0IGdldGxvZ2luIHVubGVzcyBlbHNpZiB0cnVuY2F0ZSBleGVjIGtleXMgZ2xvYiB0aWVkIGNsb3NlZGlyaW9jdGwgc29ja2V0IHJlYWRsaW5rIGV2YWwgeG9yIHJlYWRsaW5lIGJpbm1vZGUgc2V0c2VydmVudCBlb2Ygb3JkIGJpbmQgYWxhcm0gcGlwZSBhdGFuMiBnZXRncmVudCBleHAgdGltZSBwdXNoIHNldGdyZW50IGd0IGx0IG9yIG5lIG18MCBicmVhayBnaXZlbiBzYXkgc3RhdGUgd2hlbiIscj17Y046InN1YnN0IixiOiJbJEBdXFx7IixlOiJcXH0iLGs6dH0scz17YjoiLT57IixlOiJ9In0sbj17djpbe2I6L1wkXGQvfSx7YjovW1wkJUBdKFxeXHdcYnwjXHcrKDo6XHcrKSp8e1x3K318XHcrKDo6XHcqKSopL30se2I6L1tcJCVAXVteXHNcd3tdLyxyOjB9XX0saT1bZS5CRSxyLG5dLG89W24sZS5IQ00sZS5DKCJeXFw9XFx3IiwiXFw9Y3V0Iix7ZVc6ITB9KSxzLHtjTjoic3RyaW5nIixjOmksdjpbe2I6InFbcXd4cl0/XFxzKlxcKCIsZToiXFwpIixyOjV9LHtiOiJxW3F3eHJdP1xccypcXFsiLGU6IlxcXSIscjo1fSx7YjoicVtxd3hyXT9cXHMqXFx7IixlOiJcXH0iLHI6NX0se2I6InFbcXd4cl0/XFxzKlxcfCIsZToiXFx8IixyOjV9LHtiOiJxW3F3eHJdP1xccypcXDwiLGU6IlxcPiIscjo1fSx7YjoicXdcXHMrcSIsZToicSIscjo1fSx7YjoiJyIsZToiJyIsYzpbZS5CRV19LHtiOiciJyxlOiciJ30se2I6ImAiLGU6ImAiLGM6W2UuQkVdfSx7Yjoie1xcdyt9IixjOltdLHI6MH0se2I6Ii0/XFx3K1xccypcXD1cXD4iLGM6W10scjowfV19LHtjTjoibnVtYmVyIixiOiIoXFxiMFswLTdfXSspfChcXGIweFswLTlhLWZBLUZfXSspfChcXGJbMS05XVswLTlfXSooXFwuWzAtOV9dKyk/KXxbMF9dXFxiIixyOjB9LHtiOiIoXFwvXFwvfCIrZS5SU1IrInxcXGIoc3BsaXR8cmV0dXJufHByaW50fHJldmVyc2V8Z3JlcClcXGIpXFxzKiIsazoic3BsaXQgcmV0dXJuIHByaW50IHJldmVyc2UgZ3JlcCIscjowLGM6W2UuSENNLHtjTjoicmVnZXhwIixiOiIoc3x0cnx5KS8oXFxcXC58W14vXSkqLyhcXFxcLnxbXi9dKSovW2Etel0qIixyOjEwfSx7Y046InJlZ2V4cCIsYjoiKG18cXIpPy8iLGU6Ii9bYS16XSoiLGM6W2UuQkVdLHI6MH1dfSx7Y046ImZ1bmN0aW9uIixiSzoic3ViIixlOiIoXFxzKlxcKC4qP1xcKSk/Wzt7XSIsZUU6ITAscjo1LGM6W2UuVE1dfSx7YjoiLVxcd1xcYiIscjowfSx7YjoiXl9fREFUQV9fJCIsZToiXl9fRU5EX18kIixzTDoibW9qb2xpY2lvdXMiLGM6W3tiOiJeQEAuKiIsZToiJCIsY046ImNvbW1lbnQifV19XTtyZXR1cm4gci5jPW8scy5jPW8se2FsaWFzZXM6WyJwbCIsInBtIl0sbDovW1x3XC5dKy8sazp0LGM6b319KTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImluaSIsZnVuY3Rpb24oZSl7dmFyIGI9e2NOOiJzdHJpbmciLGM6W2UuQkVdLHY6W3tiOiInJyciLGU6IicnJyIscjoxMH0se2I6JyIiIicsZTonIiIiJyxyOjEwfSx7YjonIicsZTonIid9LHtiOiInIixlOiInIn1dfTtyZXR1cm57YWxpYXNlczpbInRvbWwiXSxjSTohMCxpOi9cUy8sYzpbZS5DKCI7IiwiJCIpLGUuSENNLHtjTjoic2VjdGlvbiIsYjovXlxzKlxbKy8sZTovXF0rL30se2I6L15bYS16MC05XFtcXV8tXStccyo9XHMqLyxlOiIkIixyQjohMCxjOlt7Y046ImF0dHIiLGI6L1thLXowLTlcW1xdXy1dKy99LHtiOi89LyxlVzohMCxyOjAsYzpbe2NOOiJsaXRlcmFsIixiOi9cYm9ufG9mZnx0cnVlfGZhbHNlfHllc3xub1xiL30se2NOOiJ2YXJpYWJsZSIsdjpbe2I6L1wkW1x3XGQiXVtcd1xkX10qL30se2I6L1wkXHsoLio/KX0vfV19LGIse2NOOiJudW1iZXIiLGI6LyhbXCtcLV0rKT9bXGRdK19bXGRfXSsvfSxlLk5NXX1dfV19fSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJkaWZmIixmdW5jdGlvbihlKXtyZXR1cm57YWxpYXNlczpbInBhdGNoIl0sYzpbe2NOOiJtZXRhIixyOjEwLHY6W3tiOi9eQEAgK1wtXGQrLFxkKyArXCtcZCssXGQrICtAQCQvfSx7YjovXlwqXCpcKiArXGQrLFxkKyArXCpcKlwqXCokL30se2I6L15cLVwtXC0gK1xkKyxcZCsgK1wtXC1cLVwtJC99XX0se2NOOiJjb21tZW50Iix2Olt7YjovSW5kZXg6IC8sZTovJC99LHtiOi89ezMsfS8sZTovJC99LHtiOi9eXC17M30vLGU6LyQvfSx7YjovXlwqezN9IC8sZTovJC99LHtiOi9eXCt7M30vLGU6LyQvfSx7YjovXCp7NX0vLGU6L1wqezV9JC99XX0se2NOOiJhZGRpdGlvbiIsYjoiXlxcKyIsZToiJCJ9LHtjTjoiZGVsZXRpb24iLGI6Il5cXC0iLGU6IiQifSx7Y046ImFkZGl0aW9uIixiOiJeXFwhIixlOiIkIn1dfX0pO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgiZ28iLGZ1bmN0aW9uKGUpe3ZhciB0PXtrZXl3b3JkOiJicmVhayBkZWZhdWx0IGZ1bmMgaW50ZXJmYWNlIHNlbGVjdCBjYXNlIG1hcCBzdHJ1Y3QgY2hhbiBlbHNlIGdvdG8gcGFja2FnZSBzd2l0Y2ggY29uc3QgZmFsbHRocm91Z2ggaWYgcmFuZ2UgdHlwZSBjb250aW51ZSBmb3IgaW1wb3J0IHJldHVybiB2YXIgZ28gZGVmZXIgYm9vbCBieXRlIGNvbXBsZXg2NCBjb21wbGV4MTI4IGZsb2F0MzIgZmxvYXQ2NCBpbnQ4IGludDE2IGludDMyIGludDY0IHN0cmluZyB1aW50OCB1aW50MTYgdWludDMyIHVpbnQ2NCBpbnQgdWludCB1aW50cHRyIHJ1bmUiLGxpdGVyYWw6InRydWUgZmFsc2UgaW90YSBuaWwiLGJ1aWx0X2luOiJhcHBlbmQgY2FwIGNsb3NlIGNvbXBsZXggY29weSBpbWFnIGxlbiBtYWtlIG5ldyBwYW5pYyBwcmludCBwcmludGxuIHJlYWwgcmVjb3ZlciBkZWxldGUifTtyZXR1cm57YWxpYXNlczpbImdvbGFuZyJdLGs6dCxpOiI8LyIsYzpbZS5DTENNLGUuQ0JDTSx7Y046InN0cmluZyIsdjpbZS5RU00se2I6IiciLGU6IlteXFxcXF0nIn0se2I6ImAiLGU6ImAifV19LHtjTjoibnVtYmVyIix2Olt7YjplLkNOUisiW2RmbHNpXSIscjoxfSxlLkNOTV19LHtiOi86PS99LHtjTjoiZnVuY3Rpb24iLGJLOiJmdW5jIixlOi9ccypcey8sZUU6ITAsYzpbZS5UTSx7Y046InBhcmFtcyIsYjovXCgvLGU6L1wpLyxrOnQsaTovWyInXS99XX1dfX0pO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgiYmFzaCIsZnVuY3Rpb24oZSl7dmFyIHQ9e2NOOiJ2YXJpYWJsZSIsdjpbe2I6L1wkW1x3XGQjQF1bXHdcZF9dKi99LHtiOi9cJFx7KC4qPyl9L31dfSxzPXtjTjoic3RyaW5nIixiOi8iLyxlOi8iLyxjOltlLkJFLHQse2NOOiJ2YXJpYWJsZSIsYjovXCRcKC8sZTovXCkvLGM6W2UuQkVdfV19LGE9e2NOOiJzdHJpbmciLGI6LycvLGU6LycvfTtyZXR1cm57YWxpYXNlczpbInNoIiwienNoIl0sbDovXGItP1thLXpcLl9dK1xiLyxrOntrZXl3b3JkOiJpZiB0aGVuIGVsc2UgZWxpZiBmaSBmb3Igd2hpbGUgaW4gZG8gZG9uZSBjYXNlIGVzYWMgZnVuY3Rpb24iLGxpdGVyYWw6InRydWUgZmFsc2UiLGJ1aWx0X2luOiJicmVhayBjZCBjb250aW51ZSBldmFsIGV4ZWMgZXhpdCBleHBvcnQgZ2V0b3B0cyBoYXNoIHB3ZCByZWFkb25seSByZXR1cm4gc2hpZnQgdGVzdCB0aW1lcyB0cmFwIHVtYXNrIHVuc2V0IGFsaWFzIGJpbmQgYnVpbHRpbiBjYWxsZXIgY29tbWFuZCBkZWNsYXJlIGVjaG8gZW5hYmxlIGhlbHAgbGV0IGxvY2FsIGxvZ291dCBtYXBmaWxlIHByaW50ZiByZWFkIHJlYWRhcnJheSBzb3VyY2UgdHlwZSB0eXBlc2V0IHVsaW1pdCB1bmFsaWFzIHNldCBzaG9wdCBhdXRvbG9hZCBiZyBiaW5ka2V5IGJ5ZSBjYXAgY2hkaXIgY2xvbmUgY29tcGFyZ3VtZW50cyBjb21wY2FsbCBjb21wY3RsIGNvbXBkZXNjcmliZSBjb21wZmlsZXMgY29tcGdyb3VwcyBjb21wcXVvdGUgY29tcHRhZ3MgY29tcHRyeSBjb21wdmFsdWVzIGRpcnMgZGlzYWJsZSBkaXNvd24gZWNob3RjIGVjaG90aSBlbXVsYXRlIGZjIGZnIGZsb2F0IGZ1bmN0aW9ucyBnZXRjYXAgZ2V0bG4gaGlzdG9yeSBpbnRlZ2VyIGpvYnMga2lsbCBsaW1pdCBsb2cgbm9nbG9iIHBvcGQgcHJpbnQgcHVzaGQgcHVzaGxuIHJlaGFzaCBzY2hlZCBzZXRjYXAgc2V0b3B0IHN0YXQgc3VzcGVuZCB0dHljdGwgdW5mdW5jdGlvbiB1bmhhc2ggdW5saW1pdCB1bnNldG9wdCB2YXJlZCB3YWl0IHdoZW5jZSB3aGVyZSB3aGljaCB6Y29tcGlsZSB6Zm9ybWF0IHpmdHAgemxlIHptb2Rsb2FkIHpwYXJzZW9wdHMgenByb2YgenB0eSB6cmVnZXhwYXJzZSB6c29ja2V0IHpzdHlsZSB6dGNwIixfOiItbmUgLWVxIC1sdCAtZ3QgLWYgLWQgLWUgLXMgLWwgLWEifSxjOlt7Y046Im1ldGEiLGI6L14jIVteXG5dK3NoXHMqJC8scjoxMH0se2NOOiJmdW5jdGlvbiIsYjovXHdbXHdcZF9dKlxzKlwoXHMqXClccypcey8sckI6ITAsYzpbZS5pbmhlcml0KGUuVE0se2I6L1x3W1x3XGRfXSovfSldLHI6MH0sZS5IQ00scyxhLHRdfX0pO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgicHl0aG9uIixmdW5jdGlvbihlKXt2YXIgcj17a2V5d29yZDoiYW5kIGVsaWYgaXMgZ2xvYmFsIGFzIGluIGlmIGZyb20gcmFpc2UgZm9yIGV4Y2VwdCBmaW5hbGx5IHByaW50IGltcG9ydCBwYXNzIHJldHVybiBleGVjIGVsc2UgYnJlYWsgbm90IHdpdGggY2xhc3MgYXNzZXJ0IHlpZWxkIHRyeSB3aGlsZSBjb250aW51ZSBkZWwgb3IgZGVmIGxhbWJkYSBhc3luYyBhd2FpdCBub25sb2NhbHwxMCBOb25lIFRydWUgRmFsc2UiLGJ1aWx0X2luOiJFbGxpcHNpcyBOb3RJbXBsZW1lbnRlZCJ9LGI9e2NOOiJtZXRhIixiOi9eKD4+PnxcLlwuXC4pIC99LGM9e2NOOiJzdWJzdCIsYjovXHsvLGU6L1x9LyxrOnIsaTovIy99LGE9e2NOOiJzdHJpbmciLGM6W2UuQkVdLHY6W3tiOi8odXxiKT9yPycnJy8sZTovJycnLyxjOltiXSxyOjEwfSx7YjovKHV8Yik/cj8iIiIvLGU6LyIiIi8sYzpbYl0scjoxMH0se2I6LyhmcnxyZnxmKScnJy8sZTovJycnLyxjOltiLGNdfSx7YjovKGZyfHJmfGYpIiIiLyxlOi8iIiIvLGM6W2IsY119LHtiOi8odXxyfHVyKScvLGU6LycvLHI6MTB9LHtiOi8odXxyfHVyKSIvLGU6LyIvLHI6MTB9LHtiOi8oYnxiciknLyxlOi8nL30se2I6LyhifGJyKSIvLGU6LyIvfSx7YjovKGZyfHJmfGYpJy8sZTovJy8sYzpbY119LHtiOi8oZnJ8cmZ8ZikiLyxlOi8iLyxjOltjXX0sZS5BU00sZS5RU01dfSxzPXtjTjoibnVtYmVyIixyOjAsdjpbe2I6ZS5CTlIrIltsTGpKXT8ifSx7YjoiXFxiKDBvWzAtN10rKVtsTGpKXT8ifSx7YjplLkNOUisiW2xMakpdPyJ9XX0saT17Y046InBhcmFtcyIsYjovXCgvLGU6L1wpLyxjOlsic2VsZiIsYixzLGFdfTtyZXR1cm4gYy5jPVthLHMsYl0se2FsaWFzZXM6WyJweSIsImd5cCJdLGs6cixpOi8oPFwvfC0+fFw/KXw9Pi8sYzpbYixzLGEsZS5IQ00se3Y6W3tjTjoiZnVuY3Rpb24iLGJLOiJkZWYifSx7Y046ImNsYXNzIixiSzoiY2xhc3MifV0sZTovOi8saTovWyR7PTtcbixdLyxjOltlLlVUTSxpLHtiOi8tPi8sZVc6ITAsazoiTm9uZSJ9XX0se2NOOiJtZXRhIixiOi9eW1x0IF0qQC8sZTovJC99LHtiOi9cYihwcmludHxleGVjKVwoL31dfX0pO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgianVsaWEiLGZ1bmN0aW9uKGUpe3ZhciByPXtrZXl3b3JkOiJpbiBpc2Egd2hlcmUgYmFyZW1vZHVsZSBiZWdpbiBicmVhayBjYXRjaCBjY2FsbCBjb25zdCBjb250aW51ZSBkbyBlbHNlIGVsc2VpZiBlbmQgZXhwb3J0IGZhbHNlIGZpbmFsbHkgZm9yIGZ1bmN0aW9uIGdsb2JhbCBpZiBpbXBvcnQgaW1wb3J0YWxsIGxldCBsb2NhbCBtYWNybyBtb2R1bGUgcXVvdGUgcmV0dXJuIHRydWUgdHJ5IHVzaW5nIHdoaWxlIHR5cGUgaW1tdXRhYmxlIGFic3RyYWN0IGJpdHN0eXBlIHR5cGVhbGlhcyAiLGxpdGVyYWw6InRydWUgZmFsc2UgQVJHUyBDX05VTEwgRGV2TnVsbCBFTkRJQU5fQk9NIEVOViBJIEluZiBJbmYxNiBJbmYzMiBJbmY2NCBJbnNlcnRpb25Tb3J0IEpVTElBX0hPTUUgTE9BRF9QQVRIIE1lcmdlU29ydCBOYU4gTmFOMTYgTmFOMzIgTmFONjQgUFJPR1JBTV9GSUxFIFF1aWNrU29ydCBSb3VuZERvd24gUm91bmRGcm9tWmVybyBSb3VuZE5lYXJlc3QgUm91bmROZWFyZXN0VGllc0F3YXkgUm91bmROZWFyZXN0VGllc1VwIFJvdW5kVG9aZXJvIFJvdW5kVXAgU1RERVJSIFNURElOIFNURE9VVCBWRVJTSU9OIGNhdGFsYW4gZXwwIGV1fDAgZXVsZXJnYW1tYSBnb2xkZW4gaW0gbm90aGluZyBwaSDOsyDPgCDPhiAiLGJ1aWx0X2luOiJBTlkgQWJzdHJhY3RBcnJheSBBYnN0cmFjdENoYW5uZWwgQWJzdHJhY3RGbG9hdCBBYnN0cmFjdE1hdHJpeCBBYnN0cmFjdFJORyBBYnN0cmFjdFNlcmlhbGl6ZXIgQWJzdHJhY3RTZXQgQWJzdHJhY3RTcGFyc2VBcnJheSBBYnN0cmFjdFNwYXJzZU1hdHJpeCBBYnN0cmFjdFNwYXJzZVZlY3RvciBBYnN0cmFjdFN0cmluZyBBYnN0cmFjdFVuaXRSYW5nZSBBYnN0cmFjdFZlY09yTWF0IEFic3RyYWN0VmVjdG9yIEFueSBBcmd1bWVudEVycm9yIEFycmF5IEFzc2VydGlvbkVycm9yIEFzc29jaWF0aXZlIEJhc2U2NERlY29kZVBpcGUgQmFzZTY0RW5jb2RlUGlwZSBCaWRpYWdvbmFsIEJpZ0Zsb2F0IEJpZ0ludCBCaXRBcnJheSBCaXRNYXRyaXggQml0VmVjdG9yIEJvb2wgQm91bmRzRXJyb3IgQnVmZmVyU3RyZWFtIENhY2hpbmdQb29sIENhcHR1cmVkRXhjZXB0aW9uIENhcnRlc2lhbkluZGV4IENhcnRlc2lhblJhbmdlIENjaGFyIENkb3VibGUgQ2Zsb2F0IENoYW5uZWwgQ2hhciBDaW50IENpbnRtYXhfdCBDbG9uZyBDbG9uZ2xvbmcgQ2x1c3Rlck1hbmFnZXIgQ21kIENvZGVJbmZvIENvbG9uIENvbXBsZXggQ29tcGxleDEyOCBDb21wbGV4MzIgQ29tcGxleDY0IENvbXBvc2l0ZUV4Y2VwdGlvbiBDb25kaXRpb24gQ29uakFycmF5IENvbmpNYXRyaXggQ29ualZlY3RvciBDcHRyZGlmZl90IENzaG9ydCBDc2l6ZV90IENzc2l6ZV90IENzdHJpbmcgQ3VjaGFyIEN1aW50IEN1aW50bWF4X3QgQ3Vsb25nIEN1bG9uZ2xvbmcgQ3VzaG9ydCBDd2NoYXJfdCBDd3N0cmluZyBEYXRhVHlwZSBEYXRlIERhdGVGb3JtYXQgRGF0ZVRpbWUgRGVuc2VBcnJheSBEZW5zZU1hdHJpeCBEZW5zZVZlY09yTWF0IERlbnNlVmVjdG9yIERpYWdvbmFsIERpY3QgRGltZW5zaW9uTWlzbWF0Y2ggRGltcyBEaXJlY3RJbmRleFN0cmluZyBEaXNwbGF5IERpdmlkZUVycm9yIERvbWFpbkVycm9yIEVPRkVycm9yIEVhY2hMaW5lIEVudW0gRW51bWVyYXRlIEVycm9yRXhjZXB0aW9uIEV4Y2VwdGlvbiBFeHBvbmVudGlhbEJhY2tPZmYgRXhwciBGYWN0b3JpemF0aW9uIEZpbGVNb25pdG9yIEZsb2F0MTYgRmxvYXQzMiBGbG9hdDY0IEZ1bmN0aW9uIEZ1dHVyZSBHbG9iYWxSZWYgR290b05vZGUgSFRNTCBIZXJtaXRpYW4gSU8gSU9CdWZmZXIgSU9Db250ZXh0IElPU3RyZWFtIElQQWRkciBJUHY0IElQdjYgSW5kZXhDYXJ0ZXNpYW4gSW5kZXhMaW5lYXIgSW5kZXhTdHlsZSBJbmV4YWN0RXJyb3IgSW5pdEVycm9yIEludCBJbnQxMjggSW50MTYgSW50MzIgSW50NjQgSW50OCBJbnRTZXQgSW50ZWdlciBJbnRlcnJ1cHRFeGNlcHRpb24gSW52YWxpZFN0YXRlRXhjZXB0aW9uIElycmF0aW9uYWwgS2V5RXJyb3IgTGFiZWxOb2RlIExpblNwYWNlIExpbmVOdW1iZXJOb2RlIExvYWRFcnJvciBMb3dlclRyaWFuZ3VsYXIgTUlNRSBNYXRyaXggTWVyc2VubmVUd2lzdGVyIE1ldGhvZCBNZXRob2RFcnJvciBNZXRob2RUYWJsZSBNb2R1bGUgTlR1cGxlIE5ld3Zhck5vZGUgTnVsbEV4Y2VwdGlvbiBOdWxsYWJsZSBOdW1iZXIgT2JqZWN0SWREaWN0IE9yZGluYWxSYW5nZSBPdXRPZk1lbW9yeUVycm9yIE92ZXJmbG93RXJyb3IgUGFpciBQYXJzZUVycm9yIFBhcnRpYWxRdWlja1NvcnQgUGVybXV0ZWREaW1zQXJyYXkgUGlwZSBQb2xsaW5nRmlsZVdhdGNoZXIgUHJvY2Vzc0V4aXRlZEV4Y2VwdGlvbiBQdHIgUXVvdGVOb2RlIFJhbmRvbURldmljZSBSYW5nZSBSYW5nZUluZGV4IFJhdGlvbmFsIFJhd0ZEIFJlYWRPbmx5TWVtb3J5RXJyb3IgUmVhbCBSZWVudHJhbnRMb2NrIFJlZiBSZWdleCBSZWdleE1hdGNoIFJlbW90ZUNoYW5uZWwgUmVtb3RlRXhjZXB0aW9uIFJldlN0cmluZyBSb3VuZGluZ01vZGUgUm93VmVjdG9yIFNTQVZhbHVlIFNlZ21lbnRhdGlvbkZhdWx0IFNlcmlhbGl6YXRpb25TdGF0ZSBTZXQgU2hhcmVkQXJyYXkgU2hhcmVkTWF0cml4IFNoYXJlZFZlY3RvciBTaWduZWQgU2ltcGxlVmVjdG9yIFNsb3QgU2xvdE51bWJlciBTcGFyc2VNYXRyaXhDU0MgU3BhcnNlVmVjdG9yIFN0YWNrRnJhbWUgU3RhY2tPdmVyZmxvd0Vycm9yIFN0YWNrVHJhY2UgU3RlcFJhbmdlIFN0ZXBSYW5nZUxlbiBTdHJpZGVkQXJyYXkgU3RyaWRlZE1hdHJpeCBTdHJpZGVkVmVjT3JNYXQgU3RyaWRlZFZlY3RvciBTdHJpbmcgU3ViQXJyYXkgU3ViU3RyaW5nIFN5bVRyaWRpYWdvbmFsIFN5bWJvbCBTeW1tZXRyaWMgU3lzdGVtRXJyb3IgVENQU29ja2V0IFRhc2sgVGV4dCBUZXh0RGlzcGxheSBUaW1lciBUcmlkaWFnb25hbCBUdXBsZSBUeXBlIFR5cGVFcnJvciBUeXBlTWFwRW50cnkgVHlwZU1hcExldmVsIFR5cGVOYW1lIFR5cGVWYXIgVHlwZWRTbG90IFVEUFNvY2tldCBVSW50IFVJbnQxMjggVUludDE2IFVJbnQzMiBVSW50NjQgVUludDggVW5kZWZSZWZFcnJvciBVbmRlZlZhckVycm9yIFVuaWNvZGVFcnJvciBVbmlmb3JtU2NhbGluZyBVbmlvbiBVbmlvbkFsbCBVbml0UmFuZ2UgVW5zaWduZWQgVXBwZXJUcmlhbmd1bGFyIFZhbCBWYXJhcmcgVmVjRWxlbWVudCBWZWNPck1hdCBWZWN0b3IgVmVyc2lvbk51bWJlciBWb2lkIFdlYWtLZXlEaWN0IFdlYWtSZWYgV29ya2VyQ29uZmlnIFdvcmtlclBvb2wgIn0sdD0iW0EtWmEtel9cXHUwMEExLVxcdUZGRkZdW0EtWmEtel8wLTlcXHUwMEExLVxcdUZGRkZdKiIsYT17bDp0LGs6cixpOi88XC8vfSxuPXtjTjoibnVtYmVyIixiOi8oXGIweFtcZF9dKihcLltcZF9dKik/fDB4XC5cZFtcZF9dKilwWy0rXT9cZCt8XGIwW2JveF1bYS1mQS1GMC05XVthLWZBLUYwLTlfXSp8KFxiXGRbXGRfXSooXC5bXGRfXSopP3xcLlxkW1xkX10qKShbZUVmRl1bLStdP1xkKyk/LyxyOjB9LG89e2NOOiJzdHJpbmciLGI6LycoLnxcXFt4WHVVXVthLXpBLVowLTldKyknL30saT17Y046InN1YnN0IixiOi9cJFwoLyxlOi9cKS8sazpyfSxsPXtjTjoidmFyaWFibGUiLGI6IlxcJCIrdH0sYz17Y046InN0cmluZyIsYzpbZS5CRSxpLGxdLHY6W3tiOi9cdyoiIiIvLGU6LyIiIlx3Ki8scjoxMH0se2I6L1x3KiIvLGU6LyJcdyovfV19LHM9e2NOOiJzdHJpbmciLGM6W2UuQkUsaSxsXSxiOiJgIixlOiJgIn0sZD17Y046Im1ldGEiLGI6IkAiK3R9LHU9e2NOOiJjb21tZW50Iix2Olt7YjoiIz0iLGU6Ij0jIixyOjEwfSx7YjoiIyIsZToiJCJ9XX07cmV0dXJuIGEuYz1bbixvLGMscyxkLHUsZS5IQ00se2NOOiJrZXl3b3JkIixiOiJcXGIoKChhYnN0cmFjdHxwcmltaXRpdmUpXFxzKyl0eXBlfChtdXRhYmxlXFxzKyk/c3RydWN0KVxcYiJ9LHtiOi88Oi99XSxpLmM9YS5jLGF9KTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImNvZmZlZXNjcmlwdCIsZnVuY3Rpb24oZSl7dmFyIGM9e2tleXdvcmQ6ImluIGlmIGZvciB3aGlsZSBmaW5hbGx5IG5ldyBkbyByZXR1cm4gZWxzZSBicmVhayBjYXRjaCBpbnN0YW5jZW9mIHRocm93IHRyeSB0aGlzIHN3aXRjaCBjb250aW51ZSB0eXBlb2YgZGVsZXRlIGRlYnVnZ2VyIHN1cGVyIHlpZWxkIGltcG9ydCBleHBvcnQgZnJvbSBhcyBkZWZhdWx0IGF3YWl0IHRoZW4gdW5sZXNzIHVudGlsIGxvb3Agb2YgYnkgd2hlbiBhbmQgb3IgaXMgaXNudCBub3QiLGxpdGVyYWw6InRydWUgZmFsc2UgbnVsbCB1bmRlZmluZWQgeWVzIG5vIG9uIG9mZiIsYnVpbHRfaW46Im5wbSByZXF1aXJlIGNvbnNvbGUgcHJpbnQgbW9kdWxlIGdsb2JhbCB3aW5kb3cgZG9jdW1lbnQifSxuPSJbQS1aYS16JF9dWzAtOUEtWmEteiRfXSoiLHI9e2NOOiJzdWJzdCIsYjovI1x7LyxlOi99LyxrOmN9LGk9W2UuQk5NLGUuaW5oZXJpdChlLkNOTSx7c3RhcnRzOntlOiIoXFxzKi8pPyIscjowfX0pLHtjTjoic3RyaW5nIix2Olt7YjovJycnLyxlOi8nJycvLGM6W2UuQkVdfSx7YjovJy8sZTovJy8sYzpbZS5CRV19LHtiOi8iIiIvLGU6LyIiIi8sYzpbZS5CRSxyXX0se2I6LyIvLGU6LyIvLGM6W2UuQkUscl19XX0se2NOOiJyZWdleHAiLHY6W3tiOiIvLy8iLGU6Ii8vLyIsYzpbcixlLkhDTV19LHtiOiIvL1tnaW1dKiIscjowfSx7YjovXC8oPyFbICpdKShcXFwvfC4pKj9cL1tnaW1dKig/PVxXfCQpL31dfSx7YjoiQCIrbn0se3NMOiJqYXZhc2NyaXB0IixlQjohMCxlRTohMCx2Olt7YjoiYGBgIixlOiJgYGAifSx7YjoiYCIsZToiYCJ9XX1dO3IuYz1pO3ZhciBzPWUuaW5oZXJpdChlLlRNLHtiOm59KSx0PSIoXFwoLipcXCkpP1xccypcXEJbLT1dPiIsbz17Y046InBhcmFtcyIsYjoiXFwoW15cXChdIixyQjohMCxjOlt7YjovXCgvLGU6L1wpLyxrOmMsYzpbInNlbGYiXS5jb25jYXQoaSl9XX07cmV0dXJue2FsaWFzZXM6WyJjb2ZmZWUiLCJjc29uIiwiaWNlZCJdLGs6YyxpOi9cL1wqLyxjOmkuY29uY2F0KFtlLkMoIiMjIyIsIiMjIyIpLGUuSENNLHtjTjoiZnVuY3Rpb24iLGI6Il5cXHMqIituKyJcXHMqPVxccyoiK3QsZToiWy09XT4iLHJCOiEwLGM6W3Msb119LHtiOi9bOlwoLD1dXHMqLyxyOjAsYzpbe2NOOiJmdW5jdGlvbiIsYjp0LGU6IlstPV0+IixyQjohMCxjOltvXX1dfSx7Y046ImNsYXNzIixiSzoiY2xhc3MiLGU6IiQiLGk6L1s6PSJcW1xdXS8sYzpbe2JLOiJleHRlbmRzIixlVzohMCxpOi9bOj0iXFtcXV0vLGM6W3NdfSxzXX0se2I6bisiOiIsZToiOiIsckI6ITAsckU6ITAscjowfV0pfX0pO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgiY3BwIixmdW5jdGlvbih0KXt2YXIgZT17Y046ImtleXdvcmQiLGI6IlxcYlthLXpcXGRfXSpfdFxcYiJ9LHI9e2NOOiJzdHJpbmciLHY6W3tiOicodTg/fFUpP0w/IicsZTonIicsaToiXFxuIixjOlt0LkJFXX0se2I6Jyh1OD98VSk/UiInLGU6JyInLGM6W3QuQkVdfSx7YjoiJ1xcXFw/LiIsZToiJyIsaToiLiJ9XX0scz17Y046Im51bWJlciIsdjpbe2I6IlxcYigwYlswMSddKykifSx7YjoiKC0/KVxcYihbXFxkJ10rKFxcLltcXGQnXSopP3xcXC5bXFxkJ10rKSh1fFV8bHxMfHVsfFVMfGZ8RnxifEIpIn0se2I6IigtPykoXFxiMFt4WF1bYS1mQS1GMC05J10rfChcXGJbXFxkJ10rKFxcLltcXGQnXSopP3xcXC5bXFxkJ10rKShbZUVdWy0rXT9bXFxkJ10rKT8pIn1dLHI6MH0saT17Y046Im1ldGEiLGI6LyNccypbYS16XStcYi8sZTovJC8sazp7Im1ldGEta2V5d29yZCI6ImlmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lIHByYWdtYSBpZmRlZiBpZm5kZWYgaW5jbHVkZSJ9LGM6W3tiOi9cXFxuLyxyOjB9LHQuaW5oZXJpdChyLHtjTjoibWV0YS1zdHJpbmcifSkse2NOOiJtZXRhLXN0cmluZyIsYjovPFteXG4+XSo+LyxlOi8kLyxpOiJcXG4ifSx0LkNMQ00sdC5DQkNNXX0sYT10LklSKyJcXHMqXFwoIixjPXtrZXl3b3JkOiJpbnQgZmxvYXQgd2hpbGUgcHJpdmF0ZSBjaGFyIGNhdGNoIGltcG9ydCBtb2R1bGUgZXhwb3J0IHZpcnR1YWwgb3BlcmF0b3Igc2l6ZW9mIGR5bmFtaWNfY2FzdHwxMCB0eXBlZGVmIGNvbnN0X2Nhc3R8MTAgY29uc3QgZm9yIHN0YXRpY19jYXN0fDEwIHVuaW9uIG5hbWVzcGFjZSB1bnNpZ25lZCBsb25nIHZvbGF0aWxlIHN0YXRpYyBwcm90ZWN0ZWQgYm9vbCB0ZW1wbGF0ZSBtdXRhYmxlIGlmIHB1YmxpYyBmcmllbmQgZG8gZ290byBhdXRvIHZvaWQgZW51bSBlbHNlIGJyZWFrIGV4dGVybiB1c2luZyBhc20gY2FzZSB0eXBlaWQgc2hvcnQgcmVpbnRlcnByZXRfY2FzdHwxMCBkZWZhdWx0IGRvdWJsZSByZWdpc3RlciBleHBsaWNpdCBzaWduZWQgdHlwZW5hbWUgdHJ5IHRoaXMgc3dpdGNoIGNvbnRpbnVlIGlubGluZSBkZWxldGUgYWxpZ25vZiBjb25zdGV4cHIgZGVjbHR5cGUgbm9leGNlcHQgc3RhdGljX2Fzc2VydCB0aHJlYWRfbG9jYWwgcmVzdHJpY3QgX0Jvb2wgY29tcGxleCBfQ29tcGxleCBfSW1hZ2luYXJ5IGF0b21pY19ib29sIGF0b21pY19jaGFyIGF0b21pY19zY2hhciBhdG9taWNfdWNoYXIgYXRvbWljX3Nob3J0IGF0b21pY191c2hvcnQgYXRvbWljX2ludCBhdG9taWNfdWludCBhdG9taWNfbG9uZyBhdG9taWNfdWxvbmcgYXRvbWljX2xsb25nIGF0b21pY191bGxvbmcgbmV3IHRocm93IHJldHVybiBhbmQgb3Igbm90IixidWlsdF9pbjoic3RkIHN0cmluZyBjaW4gY291dCBjZXJyIGNsb2cgc3RkaW4gc3Rkb3V0IHN0ZGVyciBzdHJpbmdzdHJlYW0gaXN0cmluZ3N0cmVhbSBvc3RyaW5nc3RyZWFtIGF1dG9fcHRyIGRlcXVlIGxpc3QgcXVldWUgc3RhY2sgdmVjdG9yIG1hcCBzZXQgYml0c2V0IG11bHRpc2V0IG11bHRpbWFwIHVub3JkZXJlZF9zZXQgdW5vcmRlcmVkX21hcCB1bm9yZGVyZWRfbXVsdGlzZXQgdW5vcmRlcmVkX211bHRpbWFwIGFycmF5IHNoYXJlZF9wdHIgYWJvcnQgYWJzIGFjb3MgYXNpbiBhdGFuMiBhdGFuIGNhbGxvYyBjZWlsIGNvc2ggY29zIGV4aXQgZXhwIGZhYnMgZmxvb3IgZm1vZCBmcHJpbnRmIGZwdXRzIGZyZWUgZnJleHAgZnNjYW5mIGlzYWxudW0gaXNhbHBoYSBpc2NudHJsIGlzZGlnaXQgaXNncmFwaCBpc2xvd2VyIGlzcHJpbnQgaXNwdW5jdCBpc3NwYWNlIGlzdXBwZXIgaXN4ZGlnaXQgdG9sb3dlciB0b3VwcGVyIGxhYnMgbGRleHAgbG9nMTAgbG9nIG1hbGxvYyByZWFsbG9jIG1lbWNociBtZW1jbXAgbWVtY3B5IG1lbXNldCBtb2RmIHBvdyBwcmludGYgcHV0Y2hhciBwdXRzIHNjYW5mIHNpbmggc2luIHNucHJpbnRmIHNwcmludGYgc3FydCBzc2NhbmYgc3RyY2F0IHN0cmNociBzdHJjbXAgc3RyY3B5IHN0cmNzcG4gc3RybGVuIHN0cm5jYXQgc3RybmNtcCBzdHJuY3B5IHN0cnBicmsgc3RycmNociBzdHJzcG4gc3Ryc3RyIHRhbmggdGFuIHZmcHJpbnRmIHZwcmludGYgdnNwcmludGYgZW5kbCBpbml0aWFsaXplcl9saXN0IHVuaXF1ZV9wdHIiLGxpdGVyYWw6InRydWUgZmFsc2UgbnVsbHB0ciBOVUxMIn0sbj1bZSx0LkNMQ00sdC5DQkNNLHMscl07cmV0dXJue2FsaWFzZXM6WyJjIiwiY2MiLCJoIiwiYysrIiwiaCsrIiwiaHBwIl0sazpjLGk6IjwvIixjOm4uY29uY2F0KFtpLHtiOiJcXGIoZGVxdWV8bGlzdHxxdWV1ZXxzdGFja3x2ZWN0b3J8bWFwfHNldHxiaXRzZXR8bXVsdGlzZXR8bXVsdGltYXB8dW5vcmRlcmVkX21hcHx1bm9yZGVyZWRfc2V0fHVub3JkZXJlZF9tdWx0aXNldHx1bm9yZGVyZWRfbXVsdGltYXB8YXJyYXkpXFxzKjwiLGU6Ij4iLGs6YyxjOlsic2VsZiIsZV19LHtiOnQuSVIrIjo6IixrOmN9LHt2Olt7YjovPS8sZTovOy99LHtiOi9cKC8sZTovXCkvfSx7Yks6Im5ldyB0aHJvdyByZXR1cm4gZWxzZSIsZTovOy99XSxrOmMsYzpuLmNvbmNhdChbe2I6L1woLyxlOi9cKS8sazpjLGM6bi5jb25jYXQoWyJzZWxmIl0pLHI6MH1dKSxyOjB9LHtjTjoiZnVuY3Rpb24iLGI6IigiK3QuSVIrIltcXComXFxzXSspKyIrYSxyQjohMCxlOi9bezs9XS8sZUU6ITAsazpjLGk6L1teXHdcc1wqJl0vLGM6W3tiOmEsckI6ITAsYzpbdC5UTV0scjowfSx7Y046InBhcmFtcyIsYjovXCgvLGU6L1wpLyxrOmMscjowLGM6W3QuQ0xDTSx0LkNCQ00scixzLGVdfSx0LkNMQ00sdC5DQkNNLGldfSx7Y046ImNsYXNzIixiSzoiY2xhc3Mgc3RydWN0IixlOi9bezs6XS8sYzpbe2I6LzwvLGU6Lz4vLGM6WyJzZWxmIl19LHQuVE1dfV0pLGV4cG9ydHM6e3ByZXByb2Nlc3NvcjppLHN0cmluZ3M6cixrOmN9fX0pO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgicnVieSIsZnVuY3Rpb24oZSl7dmFyIGI9IlthLXpBLVpfXVxcdypbIT89XT98Wy0rfl1cXEB8PDx8Pj58PX58PT09P3w8PT58Wzw+XT0/fFxcKlxcKnxbLS8rJV4mKn5gfF18XFxbXFxdPT8iLHI9e2tleXdvcmQ6ImFuZCB0aGVuIGRlZmluZWQgbW9kdWxlIGluIHJldHVybiByZWRvIGlmIEJFR0lOIHJldHJ5IGVuZCBmb3Igc2VsZiB3aGVuIG5leHQgdW50aWwgZG8gYmVnaW4gdW5sZXNzIEVORCByZXNjdWUgZWxzZSBicmVhayB1bmRlZiBub3Qgc3VwZXIgY2xhc3MgY2FzZSByZXF1aXJlIHlpZWxkIGFsaWFzIHdoaWxlIGVuc3VyZSBlbHNpZiBvciBpbmNsdWRlIGF0dHJfcmVhZGVyIGF0dHJfd3JpdGVyIGF0dHJfYWNjZXNzb3IiLGxpdGVyYWw6InRydWUgZmFsc2UgbmlsIn0sYz17Y046ImRvY3RhZyIsYjoiQFtBLVphLXpdKyJ9LGE9e2I6IiM8IixlOiI+In0scz1bZS5DKCIjIiwiJCIse2M6W2NdfSksZS5DKCJeXFw9YmVnaW4iLCJeXFw9ZW5kIix7YzpbY10scjoxMH0pLGUuQygiXl9fRU5EX18iLCJcXG4kIildLG49e2NOOiJzdWJzdCIsYjoiI1xceyIsZToifSIsazpyfSx0PXtjTjoic3RyaW5nIixjOltlLkJFLG5dLHY6W3tiOi8nLyxlOi8nL30se2I6LyIvLGU6LyIvfSx7YjovYC8sZTovYC99LHtiOiIlW3FRd1d4XT9cXCgiLGU6IlxcKSJ9LHtiOiIlW3FRd1d4XT9cXFsiLGU6IlxcXSJ9LHtiOiIlW3FRd1d4XT97IixlOiJ9In0se2I6IiVbcVF3V3hdPzwiLGU6Ij4ifSx7YjoiJVtxUXdXeF0/LyIsZToiLyJ9LHtiOiIlW3FRd1d4XT8lIixlOiIlIn0se2I6IiVbcVF3V3hdPy0iLGU6Ii0ifSx7YjoiJVtxUXdXeF0/XFx8IixlOiJcXHwifSx7YjovXEJcPyhcXFxkezEsM318XFx4W0EtRmEtZjAtOV17MSwyfXxcXHVbQS1GYS1mMC05XXs0fXxcXD9cUylcYi99LHtiOi88PCgtPylcdyskLyxlOi9eXHMqXHcrJC99XX0saT17Y046InBhcmFtcyIsYjoiXFwoIixlOiJcXCkiLGVuZHNQYXJlbnQ6ITAsazpyfSxkPVt0LGEse2NOOiJjbGFzcyIsYks6ImNsYXNzIG1vZHVsZSIsZToiJHw7IixpOi89LyxjOltlLmluaGVyaXQoZS5UTSx7YjoiW0EtWmEtel9dXFx3Kig6OlxcdyspKihcXD98XFwhKT8ifSkse2I6IjxcXHMqIixjOlt7YjoiKCIrZS5JUisiOjopPyIrZS5JUn1dfV0uY29uY2F0KHMpfSx7Y046ImZ1bmN0aW9uIixiSzoiZGVmIixlOiIkfDsiLGM6W2UuaW5oZXJpdChlLlRNLHtiOmJ9KSxpXS5jb25jYXQocyl9LHtiOmUuSVIrIjo6In0se2NOOiJzeW1ib2wiLGI6ZS5VSVIrIihcXCF8XFw/KT86IixyOjB9LHtjTjoic3ltYm9sIixiOiI6KD8hXFxzKSIsYzpbdCx7YjpifV0scjowfSx7Y046Im51bWJlciIsYjoiKFxcYjBbMC03X10rKXwoXFxiMHhbMC05YS1mQS1GX10rKXwoXFxiWzEtOV1bMC05X10qKFxcLlswLTlfXSspPyl8WzBfXVxcYiIscjowfSx7YjoiKFxcJFxcVyl8KChcXCR8XFxAXFxAPykoXFx3KykpIn0se2NOOiJwYXJhbXMiLGI6L1x8LyxlOi9cfC8sazpyfSx7YjoiKCIrZS5SU1IrInx1bmxlc3MpXFxzKiIsazoidW5sZXNzIixjOlthLHtjTjoicmVnZXhwIixjOltlLkJFLG5dLGk6L1xuLyx2Olt7YjoiLyIsZToiL1thLXpdKiJ9LHtiOiIlcnsiLGU6In1bYS16XSoifSx7YjoiJXJcXCgiLGU6IlxcKVthLXpdKiJ9LHtiOiIlciEiLGU6IiFbYS16XSoifSx7YjoiJXJcXFsiLGU6IlxcXVthLXpdKiJ9XX1dLmNvbmNhdChzKSxyOjB9XS5jb25jYXQocyk7bi5jPWQsaS5jPWQ7dmFyIGw9Ils+P10+IixvPSJbXFx3I10rXFwoXFx3K1xcKTpcXGQrOlxcZCs+Iix1PSIoXFx3Ky0pP1xcZCtcXC5cXGQrXFwuXFxkKHBcXGQrKT9bXj5dKz4iLHc9W3tiOi9eXHMqPT4vLHN0YXJ0czp7ZToiJCIsYzpkfX0se2NOOiJtZXRhIixiOiJeKCIrbCsifCIrbysifCIrdSsiKSIsc3RhcnRzOntlOiIkIixjOmR9fV07cmV0dXJue2FsaWFzZXM6WyJyYiIsImdlbXNwZWMiLCJwb2RzcGVjIiwidGhvciIsImlyYiJdLGs6cixpOi9cL1wqLyxjOnMuY29uY2F0KHcpLmNvbmNhdChkKX19KTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInlhbWwiLGZ1bmN0aW9uKGUpe3ZhciBiPSJ0cnVlIGZhbHNlIHllcyBubyBudWxsIixhPSJeWyBcXC1dKiIscj0iW2EtekEtWl9dW1xcd1xcLV0qIix0PXtjTjoiYXR0ciIsdjpbe2I6YStyKyI6In0se2I6YSsnIicrcisnIjonfSx7YjphKyInIityKyInOiJ9XX0sYz17Y046InRlbXBsYXRlLXZhcmlhYmxlIix2Olt7Yjoie3siLGU6In19In0se2I6IiV7IixlOiJ9In1dfSxsPXtjTjoic3RyaW5nIixyOjAsdjpbe2I6LycvLGU6LycvfSx7YjovIi8sZTovIi99LHtiOi9cUysvfV0sYzpbZS5CRSxjXX07cmV0dXJue2NJOiEwLGFsaWFzZXM6WyJ5bWwiLCJZQU1MIiwieWFtbCJdLGM6W3Qse2NOOiJtZXRhIixiOiJeLS0tcyokIixyOjEwfSx7Y046InN0cmluZyIsYjoiW1xcfD5dICokIixyRTohMCxjOmwuYyxlOnQudlswXS5ifSx7YjoiPCVbJT0tXT8iLGU6IlslLV0/JT4iLHNMOiJydWJ5IixlQjohMCxlRTohMCxyOjB9LHtjTjoidHlwZSIsYjoiISEiK2UuVUlSfSx7Y046Im1ldGEiLGI6IiYiK2UuVUlSKyIkIn0se2NOOiJtZXRhIixiOiJcXCoiK2UuVUlSKyIkIn0se2NOOiJidWxsZXQiLGI6Il4gKi0iLHI6MH0sZS5IQ00se2JLOmIsazp7bGl0ZXJhbDpifX0sZS5DTk0sbF19fSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJjc3MiLGZ1bmN0aW9uKGUpe3ZhciBjPSJbYS16QS1aLV1bYS16QS1aMC05Xy1dKiIsdD17YjovW0EtWlxfXC5cLV0rXHMqOi8sckI6ITAsZToiOyIsZVc6ITAsYzpbe2NOOiJhdHRyaWJ1dGUiLGI6L1xTLyxlOiI6IixlRTohMCxzdGFydHM6e2VXOiEwLGVFOiEwLGM6W3tiOi9bXHctXStcKC8sckI6ITAsYzpbe2NOOiJidWlsdF9pbiIsYjovW1x3LV0rL30se2I6L1woLyxlOi9cKS8sYzpbZS5BU00sZS5RU01dfV19LGUuQ1NTTk0sZS5RU00sZS5BU00sZS5DQkNNLHtjTjoibnVtYmVyIixiOiIjWzAtOUEtRmEtZl0rIn0se2NOOiJtZXRhIixiOiIhaW1wb3J0YW50In1dfX1dfTtyZXR1cm57Y0k6ITAsaTovWz1cL3wnXCRdLyxjOltlLkNCQ00se2NOOiJzZWxlY3Rvci1pZCIsYjovI1tBLVphLXowLTlfLV0rL30se2NOOiJzZWxlY3Rvci1jbGFzcyIsYjovXC5bQS1aYS16MC05Xy1dKy99LHtjTjoic2VsZWN0b3ItYXR0ciIsYjovXFsvLGU6L1xdLyxpOiIkIn0se2NOOiJzZWxlY3Rvci1wc2V1ZG8iLGI6LzooOik/W2EtekEtWjAtOVxfXC1cK1woXCkiJy5dKy99LHtiOiJAKGZvbnQtZmFjZXxwYWdlKSIsbDoiW2Etei1dKyIsazoiZm9udC1mYWNlIHBhZ2UifSx7YjoiQCIsZToiW3s7XSIsaTovOi8sYzpbe2NOOiJrZXl3b3JkIixiOi9cdysvfSx7YjovXHMvLGVXOiEwLGVFOiEwLHI6MCxjOltlLkFTTSxlLlFTTSxlLkNTU05NXX1dfSx7Y046InNlbGVjdG9yLXRhZyIsYjpjLHI6MH0se2I6InsiLGU6In0iLGk6L1xTLyxjOltlLkNCQ00sdF19XX19KTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImZvcnRyYW4iLGZ1bmN0aW9uKGUpe3ZhciB0PXtjTjoicGFyYW1zIixiOiJcXCgiLGU6IlxcKSJ9LG49e2xpdGVyYWw6Ii5GYWxzZS4gLlRydWUuIixrZXl3b3JkOiJraW5kIGRvIHdoaWxlIHByaXZhdGUgY2FsbCBpbnRyaW5zaWMgd2hlcmUgZWxzZXdoZXJlIHR5cGUgZW5kdHlwZSBlbmRtb2R1bGUgZW5kc2VsZWN0IGVuZGludGVyZmFjZSBlbmQgZW5kZG8gZW5kaWYgaWYgZm9yYWxsIGVuZGZvcmFsbCBvbmx5IGNvbnRhaW5zIGRlZmF1bHQgcmV0dXJuIHN0b3AgdGhlbiBwdWJsaWMgc3Vicm91dGluZXwxMCBmdW5jdGlvbiBwcm9ncmFtIC5hbmQuIC5vci4gLm5vdC4gLmxlLiAuZXEuIC5nZS4gLmd0LiAubHQuIGdvdG8gc2F2ZSBlbHNlIHVzZSBtb2R1bGUgc2VsZWN0IGNhc2UgYWNjZXNzIGJsYW5rIGRpcmVjdCBleGlzdCBmaWxlIGZtdCBmb3JtIGZvcm1hdHRlZCBpb3N0YXQgbmFtZSBuYW1lZCBuZXh0cmVjIG51bWJlciBvcGVuZWQgcmVjIHJlY2wgc2VxdWVudGlhbCBzdGF0dXMgdW5mb3JtYXR0ZWQgdW5pdCBjb250aW51ZSBmb3JtYXQgcGF1c2UgY3ljbGUgZXhpdCBjX251bGxfY2hhciBjX2FsZXJ0IGNfYmFja3NwYWNlIGNfZm9ybV9mZWVkIGZsdXNoIHdhaXQgZGVjaW1hbCByb3VuZCBpb21zZyBzeW5jaHJvbm91cyBub3Bhc3Mgbm9uX292ZXJyaWRhYmxlIHBhc3MgcHJvdGVjdGVkIHZvbGF0aWxlIGFic3RyYWN0IGV4dGVuZHMgaW1wb3J0IG5vbl9pbnRyaW5zaWMgdmFsdWUgZGVmZXJyZWQgZ2VuZXJpYyBmaW5hbCBlbnVtZXJhdG9yIGNsYXNzIGFzc29jaWF0ZSBiaW5kIGVudW0gY19pbnQgY19zaG9ydCBjX2xvbmcgY19sb25nX2xvbmcgY19zaWduZWRfY2hhciBjX3NpemVfdCBjX2ludDhfdCBjX2ludDE2X3QgY19pbnQzMl90IGNfaW50NjRfdCBjX2ludF9sZWFzdDhfdCBjX2ludF9sZWFzdDE2X3QgY19pbnRfbGVhc3QzMl90IGNfaW50X2xlYXN0NjRfdCBjX2ludF9mYXN0OF90IGNfaW50X2Zhc3QxNl90IGNfaW50X2Zhc3QzMl90IGNfaW50X2Zhc3Q2NF90IGNfaW50bWF4X3QgQ19pbnRwdHJfdCBjX2Zsb2F0IGNfZG91YmxlIGNfbG9uZ19kb3VibGUgY19mbG9hdF9jb21wbGV4IGNfZG91YmxlX2NvbXBsZXggY19sb25nX2RvdWJsZV9jb21wbGV4IGNfYm9vbCBjX2NoYXIgY19udWxsX3B0ciBjX251bGxfZnVucHRyIGNfbmV3X2xpbmUgY19jYXJyaWFnZV9yZXR1cm4gY19ob3Jpem9udGFsX3RhYiBjX3ZlcnRpY2FsX3RhYiBpc29fY19iaW5kaW5nIGNfbG9jIGNfZnVubG9jIGNfYXNzb2NpYXRlZCAgY19mX3BvaW50ZXIgY19wdHIgY19mdW5wdHIgaXNvX2ZvcnRyYW5fZW52IGNoYXJhY3Rlcl9zdG9yYWdlX3NpemUgZXJyb3JfdW5pdCBmaWxlX3N0b3JhZ2Vfc2l6ZSBpbnB1dF91bml0IGlvc3RhdF9lbmQgaW9zdGF0X2VvciBudW1lcmljX3N0b3JhZ2Vfc2l6ZSBvdXRwdXRfdW5pdCBjX2ZfcHJvY3BvaW50ZXIgaWVlZV9hcml0aG1ldGljIGllZWVfc3VwcG9ydF91bmRlcmZsb3dfY29udHJvbCBpZWVlX2dldF91bmRlcmZsb3dfbW9kZSBpZWVlX3NldF91bmRlcmZsb3dfbW9kZSBuZXd1bml0IGNvbnRpZ3VvdXMgcmVjdXJzaXZlIHBhZCBwb3NpdGlvbiBhY3Rpb24gZGVsaW0gcmVhZHdyaXRlIGVvciBhZHZhbmNlIG5tbCBpbnRlcmZhY2UgcHJvY2VkdXJlIG5hbWVsaXN0IGluY2x1ZGUgc2VxdWVuY2UgZWxlbWVudGFsIHB1cmUgaW50ZWdlciByZWFsIGNoYXJhY3RlciBjb21wbGV4IGxvZ2ljYWwgZGltZW5zaW9uIGFsbG9jYXRhYmxlfDEwIHBhcmFtZXRlciBleHRlcm5hbCBpbXBsaWNpdHwxMCBub25lIGRvdWJsZSBwcmVjaXNpb24gYXNzaWduIGludGVudCBvcHRpb25hbCBwb2ludGVyIHRhcmdldCBpbiBvdXQgY29tbW9uIGVxdWl2YWxlbmNlIGRhdGEiLGJ1aWx0X2luOiJhbG9nIGFsb2cxMCBhbWF4MCBhbWF4MSBhbWluMCBhbWluMSBhbW9kIGNhYnMgY2NvcyBjZXhwIGNsb2cgY3NpbiBjc3FydCBkYWJzIGRhY29zIGRhc2luIGRhdGFuIGRhdGFuMiBkY29zIGRjb3NoIGRkaW0gZGV4cCBkaW50IGRsb2cgZGxvZzEwIGRtYXgxIGRtaW4xIGRtb2QgZG5pbnQgZHNpZ24gZHNpbiBkc2luaCBkc3FydCBkdGFuIGR0YW5oIGZsb2F0IGlhYnMgaWRpbSBpZGludCBpZG5pbnQgaWZpeCBpc2lnbiBtYXgwIG1heDEgbWluMCBtaW4xIHNuZ2wgYWxnYW1hIGNkYWJzIGNkY29zIGNkZXhwIGNkbG9nIGNkc2luIGNkc3FydCBjcWFicyBjcWNvcyBjcWV4cCBjcWxvZyBjcXNpbiBjcXNxcnQgZGNtcGx4IGRjb25qZyBkZXJmIGRlcmZjIGRmbG9hdCBkZ2FtbWEgZGltYWcgZGxnYW1hIGlxaW50IHFhYnMgcWFjb3MgcWFzaW4gcWF0YW4gcWF0YW4yIHFjbXBseCBxY29uamcgcWNvcyBxY29zaCBxZGltIHFlcmYgcWVyZmMgcWV4cCBxZ2FtbWEgcWltYWcgcWxnYW1hIHFsb2cgcWxvZzEwIHFtYXgxIHFtaW4xIHFtb2QgcW5pbnQgcXNpZ24gcXNpbiBxc2luaCBxc3FydCBxdGFuIHF0YW5oIGFicyBhY29zIGFpbWFnIGFpbnQgYW5pbnQgYXNpbiBhdGFuIGF0YW4yIGNoYXIgY21wbHggY29uamcgY29zIGNvc2ggZXhwIGljaGFyIGluZGV4IGludCBsb2cgbG9nMTAgbWF4IG1pbiBuaW50IHNpZ24gc2luIHNpbmggc3FydCB0YW4gdGFuaCBwcmludCB3cml0ZSBkaW0gbGdlIGxndCBsbGUgbGx0IG1vZCBudWxsaWZ5IGFsbG9jYXRlIGRlYWxsb2NhdGUgYWRqdXN0bCBhZGp1c3RyIGFsbCBhbGxvY2F0ZWQgYW55IGFzc29jaWF0ZWQgYml0X3NpemUgYnRlc3QgY2VpbGluZyBjb3VudCBjc2hpZnQgZGF0ZV9hbmRfdGltZSBkaWdpdHMgZG90X3Byb2R1Y3QgZW9zaGlmdCBlcHNpbG9uIGV4cG9uZW50IGZsb29yIGZyYWN0aW9uIGh1Z2UgaWFuZCBpYmNsciBpYml0cyBpYnNldCBpZW9yIGlvciBpc2hmdCBpc2hmdGMgbGJvdW5kIGxlbl90cmltIG1hdG11bCBtYXhleHBvbmVudCBtYXhsb2MgbWF4dmFsIG1lcmdlIG1pbmV4cG9uZW50IG1pbmxvYyBtaW52YWwgbW9kdWxvIG12Yml0cyBuZWFyZXN0IHBhY2sgcHJlc2VudCBwcm9kdWN0IHJhZGl4IHJhbmRvbV9udW1iZXIgcmFuZG9tX3NlZWQgcmFuZ2UgcmVwZWF0IHJlc2hhcGUgcnJzcGFjaW5nIHNjYWxlIHNjYW4gc2VsZWN0ZWRfaW50X2tpbmQgc2VsZWN0ZWRfcmVhbF9raW5kIHNldF9leHBvbmVudCBzaGFwZSBzaXplIHNwYWNpbmcgc3ByZWFkIHN1bSBzeXN0ZW1fY2xvY2sgdGlueSB0cmFuc3Bvc2UgdHJpbSB1Ym91bmQgdW5wYWNrIHZlcmlmeSBhY2hhciBpYWNoYXIgdHJhbnNmZXIgZGJsZSBlbnRyeSBkcHJvZCBjcHVfdGltZSBjb21tYW5kX2FyZ3VtZW50X2NvdW50IGdldF9jb21tYW5kIGdldF9jb21tYW5kX2FyZ3VtZW50IGdldF9lbnZpcm9ubWVudF92YXJpYWJsZSBpc19pb3N0YXRfZW5kIGllZWVfYXJpdGhtZXRpYyBpZWVlX3N1cHBvcnRfdW5kZXJmbG93X2NvbnRyb2wgaWVlZV9nZXRfdW5kZXJmbG93X21vZGUgaWVlZV9zZXRfdW5kZXJmbG93X21vZGUgaXNfaW9zdGF0X2VvciBtb3ZlX2FsbG9jIG5ld19saW5lIHNlbGVjdGVkX2NoYXJfa2luZCBzYW1lX3R5cGVfYXMgZXh0ZW5kc190eXBlX29mYWNvc2ggYXNpbmggYXRhbmggYmVzc2VsX2owIGJlc3NlbF9qMSBiZXNzZWxfam4gYmVzc2VsX3kwIGJlc3NlbF95MSBiZXNzZWxfeW4gZXJmIGVyZmMgZXJmY19zY2FsZWQgZ2FtbWEgbG9nX2dhbW1hIGh5cG90IG5vcm0yIGF0b21pY19kZWZpbmUgYXRvbWljX3JlZiBleGVjdXRlX2NvbW1hbmRfbGluZSBsZWFkeiB0cmFpbHogc3RvcmFnZV9zaXplIG1lcmdlX2JpdHMgYmdlIGJndCBibGUgYmx0IGRzaGlmdGwgZHNoaWZ0ciBmaW5kbG9jIGlhbGwgaWFueSBpcGFyaXR5IGltYWdlX2luZGV4IGxjb2JvdW5kIHVjb2JvdW5kIG1hc2tsIG1hc2tyIG51bV9pbWFnZXMgcGFyaXR5IHBvcGNudCBwb3BwYXIgc2hpZnRhIHNoaWZ0bCBzaGlmdHIgdGhpc19pbWFnZSJ9O3JldHVybntjSTohMCxhbGlhc2VzOlsiZjkwIiwiZjk1Il0sazpuLGk6L1wvXCovLGM6W2UuaW5oZXJpdChlLkFTTSx7Y046InN0cmluZyIscjowfSksZS5pbmhlcml0KGUuUVNNLHtjTjoic3RyaW5nIixyOjB9KSx7Y046ImZ1bmN0aW9uIixiSzoic3Vicm91dGluZSBmdW5jdGlvbiBwcm9ncmFtIixpOiJbJHs9XFxuXSIsYzpbZS5VVE0sdF19LGUuQygiISIsIiQiLHtyOjB9KSx7Y046Im51bWJlciIsYjoiKD89XFxifFxcK3xcXC18XFwuKSg/PVxcLlxcZHxcXGQpKD86XFxkKyk/KD86XFwuP1xcZCopKD86W2RlXVsrLV0/XFxkKyk/XFxiXFwuPyIscjowfV19fSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJhd2siLGZ1bmN0aW9uKGUpe3ZhciByPXtjTjoidmFyaWFibGUiLHY6W3tiOi9cJFtcd1xkI0BdW1x3XGRfXSovfSx7YjovXCRceyguKj8pfS99XX0sYj0iQkVHSU4gRU5EIGlmIGVsc2Ugd2hpbGUgZG8gZm9yIGluIGJyZWFrIGNvbnRpbnVlIGRlbGV0ZSBuZXh0IG5leHRmaWxlIGZ1bmN0aW9uIGZ1bmMgZXhpdHwxMCIsbj17Y046InN0cmluZyIsYzpbZS5CRV0sdjpbe2I6Lyh1fGIpP3I/JycnLyxlOi8nJycvLHI6MTB9LHtiOi8odXxiKT9yPyIiIi8sZTovIiIiLyxyOjEwfSx7YjovKHV8cnx1ciknLyxlOi8nLyxyOjEwfSx7YjovKHV8cnx1cikiLyxlOi8iLyxyOjEwfSx7YjovKGJ8YnIpJy8sZTovJy99LHtiOi8oYnxicikiLyxlOi8iL30sZS5BU00sZS5RU01dfTtyZXR1cm57azp7a2V5d29yZDpifSxjOltyLG4sZS5STSxlLkhDTSxlLk5NXX19KTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoIm1ha2VmaWxlIixmdW5jdGlvbihlKXt2YXIgaT17Y046InZhcmlhYmxlIix2Olt7YjoiXFwkXFwoIitlLlVJUisiXFwpIixjOltlLkJFXX0se2I6L1wkW0AlPD9cXlwrXCpdL31dfSxyPXtjTjoic3RyaW5nIixiOi8iLyxlOi8iLyxjOltlLkJFLGldfSxhPXtjTjoidmFyaWFibGUiLGI6L1wkXChbXHctXStccy8sZTovXCkvLGs6e2J1aWx0X2luOiJzdWJzdCBwYXRzdWJzdCBzdHJpcCBmaW5kc3RyaW5nIGZpbHRlciBmaWx0ZXItb3V0IHNvcnQgd29yZCB3b3JkbGlzdCBmaXJzdHdvcmQgbGFzdHdvcmQgZGlyIG5vdGRpciBzdWZmaXggYmFzZW5hbWUgYWRkc3VmZml4IGFkZHByZWZpeCBqb2luIHdpbGRjYXJkIHJlYWxwYXRoIGFic3BhdGggZXJyb3Igd2FybmluZyBzaGVsbCBvcmlnaW4gZmxhdm9yIGZvcmVhY2ggaWYgb3IgYW5kIGNhbGwgZXZhbCBmaWxlIHZhbHVlIn0sYzpbaV19LG49e2I6Il4iK2UuVUlSKyJcXHMqWzorP10/PSIsaToiXFxuIixyQjohMCxjOlt7YjoiXiIrZS5VSVIsZToiWzorP10/PSIsZUU6ITB9XX0sdD17Y046Im1ldGEiLGI6L15cLlBIT05ZOi8sZTovJC8sazp7Im1ldGEta2V5d29yZCI6Ii5QSE9OWSJ9LGw6L1tcLlx3XSsvfSxsPXtjTjoic2VjdGlvbiIsYjovXlteXHNdKzovLGU6LyQvLGM6W2ldfTtyZXR1cm57YWxpYXNlczpbIm1rIiwibWFrIl0sazoiZGVmaW5lIGVuZGVmIHVuZGVmaW5lIGlmZGVmIGlmbmRlZiBpZmVxIGlmbmVxIGVsc2UgZW5kaWYgaW5jbHVkZSAtaW5jbHVkZSBzaW5jbHVkZSBvdmVycmlkZSBleHBvcnQgdW5leHBvcnQgcHJpdmF0ZSB2cGF0aCIsbDovW1x3LV0rLyxjOltlLkhDTSxpLHIsYSxuLHQsbF19fSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJqYXZhIixmdW5jdGlvbihlKXt2YXIgYT0iW8OALcq4YS16QS1aXyRdW8OALcq4YS16QS1aXyQwLTldKiIsdD1hKyIoPCIrYSsiKFxccyosXFxzKiIrYSsiKSo+KT8iLHI9ImZhbHNlIHN5bmNocm9uaXplZCBpbnQgYWJzdHJhY3QgZmxvYXQgcHJpdmF0ZSBjaGFyIGJvb2xlYW4gc3RhdGljIG51bGwgaWYgY29uc3QgZm9yIHRydWUgd2hpbGUgbG9uZyBzdHJpY3RmcCBmaW5hbGx5IHByb3RlY3RlZCBpbXBvcnQgbmF0aXZlIGZpbmFsIHZvaWQgZW51bSBlbHNlIGJyZWFrIHRyYW5zaWVudCBjYXRjaCBpbnN0YW5jZW9mIGJ5dGUgc3VwZXIgdm9sYXRpbGUgY2FzZSBhc3NlcnQgc2hvcnQgcGFja2FnZSBkZWZhdWx0IGRvdWJsZSBwdWJsaWMgdHJ5IHRoaXMgc3dpdGNoIGNvbnRpbnVlIHRocm93cyBwcm90ZWN0ZWQgcHVibGljIHByaXZhdGUgbW9kdWxlIHJlcXVpcmVzIGV4cG9ydHMgZG8iLHM9IlxcYigwW2JCXShbMDFdK1swMV9dK1swMV0rfFswMV0rKXwwW3hYXShbYS1mQS1GMC05XStbYS1mQS1GMC05X10rW2EtZkEtRjAtOV0rfFthLWZBLUYwLTldKyl8KChbXFxkXStbXFxkX10rW1xcZF0rfFtcXGRdKykoXFwuKFtcXGRdK1tcXGRfXStbXFxkXSt8W1xcZF0rKSk/fFxcLihbXFxkXStbXFxkX10rW1xcZF0rfFtcXGRdKykpKFtlRV1bLStdP1xcZCspPylbbExmRl0/IixjPXtjTjoibnVtYmVyIixiOnMscjowfTtyZXR1cm57YWxpYXNlczpbImpzcCJdLGs6cixpOi88XC98Iy8sYzpbZS5DKCIvXFwqXFwqIiwiXFwqLyIse3I6MCxjOlt7YjovXHcrQC8scjowfSx7Y046ImRvY3RhZyIsYjoiQFtBLVphLXpdKyJ9XX0pLGUuQ0xDTSxlLkNCQ00sZS5BU00sZS5RU00se2NOOiJjbGFzcyIsYks6ImNsYXNzIGludGVyZmFjZSIsZTovW3s7PV0vLGVFOiEwLGs6ImNsYXNzIGludGVyZmFjZSIsaTovWzoiXFtcXV0vLGM6W3tiSzoiZXh0ZW5kcyBpbXBsZW1lbnRzIn0sZS5VVE1dfSx7Yks6Im5ldyB0aHJvdyByZXR1cm4gZWxzZSIscjowfSx7Y046ImZ1bmN0aW9uIixiOiIoIit0KyJcXHMrKSsiK2UuVUlSKyJcXHMqXFwoIixyQjohMCxlOi9bezs9XS8sZUU6ITAsazpyLGM6W3tiOmUuVUlSKyJcXHMqXFwoIixyQjohMCxyOjAsYzpbZS5VVE1dfSx7Y046InBhcmFtcyIsYjovXCgvLGU6L1wpLyxrOnIscjowLGM6W2UuQVNNLGUuUVNNLGUuQ05NLGUuQ0JDTV19LGUuQ0xDTSxlLkNCQ01dfSxjLHtjTjoibWV0YSIsYjoiQFtBLVphLXpdKyJ9XX19KTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInN0YW4iLGZ1bmN0aW9uKGUpe3JldHVybntjOltlLkhDTSxlLkNMQ00sZS5DQkNNLHtiOmUuVUlSLGw6ZS5VSVIsazp7bmFtZToiZm9yIGluIHdoaWxlIHJlcGVhdCB1bnRpbCBpZiB0aGVuIGVsc2UiLHN5bWJvbDoiYmVybm91bGxpIGJlcm5vdWxsaV9sb2dpdCBiaW5vbWlhbCBiaW5vbWlhbF9sb2dpdCBiZXRhX2Jpbm9taWFsIGh5cGVyZ2VvbWV0cmljIGNhdGVnb3JpY2FsIGNhdGVnb3JpY2FsX2xvZ2l0IG9yZGVyZWRfbG9naXN0aWMgbmVnX2Jpbm9taWFsIG5lZ19iaW5vbWlhbF8yIG5lZ19iaW5vbWlhbF8yX2xvZyBwb2lzc29uIHBvaXNzb25fbG9nIG11bHRpbm9taWFsIG5vcm1hbCBleHBfbW9kX25vcm1hbCBza2V3X25vcm1hbCBzdHVkZW50X3QgY2F1Y2h5IGRvdWJsZV9leHBvbmVudGlhbCBsb2dpc3RpYyBndW1iZWwgbG9nbm9ybWFsIGNoaV9zcXVhcmUgaW52X2NoaV9zcXVhcmUgc2NhbGVkX2ludl9jaGlfc3F1YXJlIGV4cG9uZW50aWFsIGludl9nYW1tYSB3ZWlidWxsIGZyZWNoZXQgcmF5bGVpZ2ggd2llbmVyIHBhcmV0byBwYXJldG9fdHlwZV8yIHZvbl9taXNlcyB1bmlmb3JtIG11bHRpX25vcm1hbCBtdWx0aV9ub3JtYWxfcHJlYyBtdWx0aV9ub3JtYWxfY2hvbGVza3kgbXVsdGlfZ3AgbXVsdGlfZ3BfY2hvbGVza3kgbXVsdGlfc3R1ZGVudF90IGdhdXNzaWFuX2RsbV9vYnMgZGlyaWNobGV0IGxral9jb3JyIGxral9jb3JyX2Nob2xlc2t5IHdpc2hhcnQgaW52X3dpc2hhcnQiLCJzZWxlY3Rvci10YWciOiJpbnQgcmVhbCB2ZWN0b3Igc2ltcGxleCB1bml0X3ZlY3RvciBvcmRlcmVkIHBvc2l0aXZlX29yZGVyZWQgcm93X3ZlY3RvciBtYXRyaXggY2hvbGVza3lfZmFjdG9yX2NvcnIgY2hvbGVza3lfZmFjdG9yX2NvdiBjb3JyX21hdHJpeCBjb3ZfbWF0cml4Iix0aXRsZToiZnVuY3Rpb25zIG1vZGVsIGRhdGEgcGFyYW1ldGVycyBxdWFudGl0aWVzIHRyYW5zZm9ybWVkIGdlbmVyYXRlZCIsbGl0ZXJhbDoidHJ1ZSBmYWxzZSJ9LHI6MH0se2NOOiJudW1iZXIiLGI6IjBbeFhdWzAtOWEtZkEtRl0rW0xpXT9cXGIiLHI6MH0se2NOOiJudW1iZXIiLGI6IjBbeFhdWzAtOWEtZkEtRl0rW0xpXT9cXGIiLHI6MH0se2NOOiJudW1iZXIiLGI6IlxcZCsoPzpbZUVdWytcXC1dP1xcZCopP0xcXGIiLHI6MH0se2NOOiJudW1iZXIiLGI6IlxcZCtcXC4oPyFcXGQpKD86aVxcYik/IixyOjB9LHtjTjoibnVtYmVyIixiOiJcXGQrKD86XFwuXFxkKik/KD86W2VFXVsrXFwtXT9cXGQqKT9pP1xcYiIscjowfSx7Y046Im51bWJlciIsYjoiXFwuXFxkKyg/OltlRV1bK1xcLV0/XFxkKik/aT9cXGIiLHI6MH1dfX0pO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgiamF2YXNjcmlwdCIsZnVuY3Rpb24oZSl7dmFyIHI9IltBLVphLXokX11bMC05QS1aYS16JF9dKiIsdD17a2V5d29yZDoiaW4gb2YgaWYgZm9yIHdoaWxlIGZpbmFsbHkgdmFyIG5ldyBmdW5jdGlvbiBkbyByZXR1cm4gdm9pZCBlbHNlIGJyZWFrIGNhdGNoIGluc3RhbmNlb2Ygd2l0aCB0aHJvdyBjYXNlIGRlZmF1bHQgdHJ5IHRoaXMgc3dpdGNoIGNvbnRpbnVlIHR5cGVvZiBkZWxldGUgbGV0IHlpZWxkIGNvbnN0IGV4cG9ydCBzdXBlciBkZWJ1Z2dlciBhcyBhc3luYyBhd2FpdCBzdGF0aWMgaW1wb3J0IGZyb20gYXMiLGxpdGVyYWw6InRydWUgZmFsc2UgbnVsbCB1bmRlZmluZWQgTmFOIEluZmluaXR5IixidWlsdF9pbjoiZXZhbCBpc0Zpbml0ZSBpc05hTiBwYXJzZUZsb2F0IHBhcnNlSW50IGRlY29kZVVSSSBkZWNvZGVVUklDb21wb25lbnQgZW5jb2RlVVJJIGVuY29kZVVSSUNvbXBvbmVudCBlc2NhcGUgdW5lc2NhcGUgT2JqZWN0IEZ1bmN0aW9uIEJvb2xlYW4gRXJyb3IgRXZhbEVycm9yIEludGVybmFsRXJyb3IgUmFuZ2VFcnJvciBSZWZlcmVuY2VFcnJvciBTdG9wSXRlcmF0aW9uIFN5bnRheEVycm9yIFR5cGVFcnJvciBVUklFcnJvciBOdW1iZXIgTWF0aCBEYXRlIFN0cmluZyBSZWdFeHAgQXJyYXkgRmxvYXQzMkFycmF5IEZsb2F0NjRBcnJheSBJbnQxNkFycmF5IEludDMyQXJyYXkgSW50OEFycmF5IFVpbnQxNkFycmF5IFVpbnQzMkFycmF5IFVpbnQ4QXJyYXkgVWludDhDbGFtcGVkQXJyYXkgQXJyYXlCdWZmZXIgRGF0YVZpZXcgSlNPTiBJbnRsIGFyZ3VtZW50cyByZXF1aXJlIG1vZHVsZSBjb25zb2xlIHdpbmRvdyBkb2N1bWVudCBTeW1ib2wgU2V0IE1hcCBXZWFrU2V0IFdlYWtNYXAgUHJveHkgUmVmbGVjdCBQcm9taXNlIn0sYT17Y046Im51bWJlciIsdjpbe2I6IlxcYigwW2JCXVswMV0rKSJ9LHtiOiJcXGIoMFtvT11bMC03XSspIn0se2I6ZS5DTlJ9XSxyOjB9LG49e2NOOiJzdWJzdCIsYjoiXFwkXFx7IixlOiJcXH0iLGs6dCxjOltdfSxjPXtjTjoic3RyaW5nIixiOiJgIixlOiJgIixjOltlLkJFLG5dfTtuLmM9W2UuQVNNLGUuUVNNLGMsYSxlLlJNXTt2YXIgcz1uLmMuY29uY2F0KFtlLkNCQ00sZS5DTENNXSk7cmV0dXJue2FsaWFzZXM6WyJqcyIsImpzeCJdLGs6dCxjOlt7Y046Im1ldGEiLHI6MTAsYjovXlxzKlsnIl11c2UgKHN0cmljdHxhc20pWyciXS99LHtjTjoibWV0YSIsYjovXiMhLyxlOi8kL30sZS5BU00sZS5RU00sYyxlLkNMQ00sZS5DQkNNLGEse2I6L1t7LF1ccyovLHI6MCxjOlt7YjpyKyJcXHMqOiIsckI6ITAscjowLGM6W3tjTjoiYXR0ciIsYjpyLHI6MH1dfV19LHtiOiIoIitlLlJTUisifFxcYihjYXNlfHJldHVybnx0aHJvdylcXGIpXFxzKiIsazoicmV0dXJuIHRocm93IGNhc2UiLGM6W2UuQ0xDTSxlLkNCQ00sZS5STSx7Y046ImZ1bmN0aW9uIixiOiIoXFwoLio/XFwpfCIrcisiKVxccyo9PiIsckI6ITAsZToiXFxzKj0+IixjOlt7Y046InBhcmFtcyIsdjpbe2I6cn0se2I6L1woXHMqXCkvfSx7YjovXCgvLGU6L1wpLyxlQjohMCxlRTohMCxrOnQsYzpzfV19XX0se2I6LzwvLGU6LyhcL1x3K3xcdytcLyk+LyxzTDoieG1sIixjOlt7YjovPFx3K1xzKlwvPi8sc2tpcDohMH0se2I6LzxcdysvLGU6LyhcL1x3K3xcdytcLyk+Lyxza2lwOiEwLGM6W3tiOi88XHcrXHMqXC8+Lyxza2lwOiEwfSwic2VsZiJdfV19XSxyOjB9LHtjTjoiZnVuY3Rpb24iLGJLOiJmdW5jdGlvbiIsZTovXHsvLGVFOiEwLGM6W2UuaW5oZXJpdChlLlRNLHtiOnJ9KSx7Y046InBhcmFtcyIsYjovXCgvLGU6L1wpLyxlQjohMCxlRTohMCxjOnN9XSxpOi9cW3wlL30se2I6L1wkWyguXS99LGUuTUVUSE9EX0dVQVJELHtjTjoiY2xhc3MiLGJLOiJjbGFzcyIsZTovW3s7PV0vLGVFOiEwLGk6L1s6IlxbXF1dLyxjOlt7Yks6ImV4dGVuZHMifSxlLlVUTV19LHtiSzoiY29uc3RydWN0b3IiLGU6L1x7LyxlRTohMH1dLGk6LyMoPyEhKS99fSk7aGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJ0ZXgiLGZ1bmN0aW9uKGMpe3ZhciBlPXtjTjoidGFnIixiOi9cXC8scjowLGM6W3tjTjoibmFtZSIsdjpbe2I6L1thLXpBLVrQsC3Rj9CQLdGPXStbKl0/L30se2I6L1teYS16QS1a0LAt0Y/QkC3RjzAtOV0vfV0sc3RhcnRzOntlVzohMCxyOjAsYzpbe2NOOiJzdHJpbmciLHY6W3tiOi9cWy8sZTovXF0vfSx7YjovXHsvLGU6L1x9L31dfSx7YjovXHMqPVxzKi8sZVc6ITAscjowLGM6W3tjTjoibnVtYmVyIixiOi8tP1xkKlwuP1xkKyhwdHxwY3xtbXxjbXxpbnxkZHxjY3xleHxlbSk/L31dfV19fV19O3JldHVybntjOltlLHtjTjoiZm9ybXVsYSIsYzpbZV0scjowLHY6W3tiOi9cJFwkLyxlOi9cJFwkL30se2I6L1wkLyxlOi9cJC99XX0sYy5DKCIlIiwiJCIse3I6MH0pXX19KTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInhtbCIsZnVuY3Rpb24ocyl7dmFyIGU9IltBLVphLXowLTlcXC5fOi1dKyIsdD17ZVc6ITAsaTovPC8scjowLGM6W3tjTjoiYXR0ciIsYjplLHI6MH0se2I6Lz1ccyovLHI6MCxjOlt7Y046InN0cmluZyIsZW5kc1BhcmVudDohMCx2Olt7YjovIi8sZTovIi99LHtiOi8nLyxlOi8nL30se2I6L1teXHMiJz08PmBdKy99XX1dfV19O3JldHVybnthbGlhc2VzOlsiaHRtbCIsInhodG1sIiwicnNzIiwiYXRvbSIsInhqYiIsInhzZCIsInhzbCIsInBsaXN0Il0sY0k6ITAsYzpbe2NOOiJtZXRhIixiOiI8IURPQ1RZUEUiLGU6Ij4iLHI6MTAsYzpbe2I6IlxcWyIsZToiXFxdIn1dfSxzLkMoIjwhLS0iLCItLT4iLHtyOjEwfSkse2I6IjxcXCFcXFtDREFUQVxcWyIsZToiXFxdXFxdPiIscjoxMH0se2I6LzxcPyhwaHApPy8sZTovXD8+LyxzTDoicGhwIixjOlt7YjoiL1xcKiIsZToiXFwqLyIsc2tpcDohMH1dfSx7Y046InRhZyIsYjoiPHN0eWxlKD89XFxzfD58JCkiLGU6Ij4iLGs6e25hbWU6InN0eWxlIn0sYzpbdF0sc3RhcnRzOntlOiI8L3N0eWxlPiIsckU6ITAsc0w6WyJjc3MiLCJ4bWwiXX19LHtjTjoidGFnIixiOiI8c2NyaXB0KD89XFxzfD58JCkiLGU6Ij4iLGs6e25hbWU6InNjcmlwdCJ9LGM6W3RdLHN0YXJ0czp7ZToiPC9zY3JpcHQ+IixyRTohMCxzTDpbImFjdGlvbnNjcmlwdCIsImphdmFzY3JpcHQiLCJoYW5kbGViYXJzIiwieG1sIl19fSx7Y046Im1ldGEiLHY6W3tiOi88XD94bWwvLGU6L1w/Pi8scjoxMH0se2I6LzxcP1x3Ky8sZTovXD8+L31dfSx7Y046InRhZyIsYjoiPC8/IixlOiIvPz4iLGM6W3tjTjoibmFtZSIsYjovW15cLz48XHNdKy8scjowfSx0XX1dfX0pO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgibWFya2Rvd24iLGZ1bmN0aW9uKGUpe3JldHVybnthbGlhc2VzOlsibWQiLCJta2Rvd24iLCJta2QiXSxjOlt7Y046InNlY3Rpb24iLHY6W3tiOiJeI3sxLDZ9IixlOiIkIn0se2I6Il4uKz9cXG5bPS1dezIsfSQifV19LHtiOiI8IixlOiI+IixzTDoieG1sIixyOjB9LHtjTjoiYnVsbGV0IixiOiJeKFsqKy1dfChcXGQrXFwuKSlcXHMrIn0se2NOOiJzdHJvbmciLGI6IlsqX117Mn0uKz9bKl9dezJ9In0se2NOOiJlbXBoYXNpcyIsdjpbe2I6IlxcKi4rP1xcKiJ9LHtiOiJfLis/XyIscjowfV19LHtjTjoicXVvdGUiLGI6Il4+XFxzKyIsZToiJCJ9LHtjTjoiY29kZSIsdjpbe2I6Il5gYGB3KnMqJCIsZToiXmBgYHMqJCJ9LHtiOiJgLis/YCJ9LHtiOiJeKCB7NH18CSkiLGU6IiQiLHI6MH1dfSx7YjoiXlstXFwqXXszLH0iLGU6IiQifSx7YjoiXFxbLis/XFxdW1xcKFxcW10uKj9bXFwpXFxdXSIsckI6ITAsYzpbe2NOOiJzdHJpbmciLGI6IlxcWyIsZToiXFxdIixlQjohMCxyRTohMCxyOjB9LHtjTjoibGluayIsYjoiXFxdXFwoIixlOiJcXCkiLGVCOiEwLGVFOiEwfSx7Y046InN5bWJvbCIsYjoiXFxdXFxbIixlOiJcXF0iLGVCOiEwLGVFOiEwfV0scjoxMH0se2I6L15cW1teXG5dK1xdOi8sckI6ITAsYzpbe2NOOiJzeW1ib2wiLGI6L1xbLyxlOi9cXS8sZUI6ITAsZUU6ITB9LHtjTjoibGluayIsYjovOlxzKi8sZTovJC8sZUI6ITB9XX1dfX0pO2hsanMucmVnaXN0ZXJMYW5ndWFnZSgianNvbiIsZnVuY3Rpb24oZSl7dmFyIGk9e2xpdGVyYWw6InRydWUgZmFsc2UgbnVsbCJ9LG49W2UuUVNNLGUuQ05NXSxyPXtlOiIsIixlVzohMCxlRTohMCxjOm4sazppfSx0PXtiOiJ7IixlOiJ9IixjOlt7Y046ImF0dHIiLGI6LyIvLGU6LyIvLGM6W2UuQkVdLGk6IlxcbiJ9LGUuaW5oZXJpdChyLHtiOi86L30pXSxpOiJcXFMifSxjPXtiOiJcXFsiLGU6IlxcXSIsYzpbZS5pbmhlcml0KHIpXSxpOiJcXFMifTtyZXR1cm4gbi5zcGxpY2Uobi5sZW5ndGgsMCx0LGMpLHtjOm4sazppLGk6IlxcUyJ9fSk7"></script>
<link href="data:text/css;charset=utf-8,%0Aa%2Eanchor%2Dsection%20%7Bmargin%2Dleft%3A%2010px%3B%20visibility%3A%20hidden%3B%20color%3A%20inherit%3B%7D%0Aa%2Eanchor%2Dsection%3A%3Abefore%20%7Bcontent%3A%20%27%23%27%3B%7D%0A%2EhasAnchor%3Ahover%20a%2Eanchor%2Dsection%20%7Bvisibility%3A%20visible%3B%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,Ly8gQW5jaG9yIHNlY3Rpb25zIHYxLjAgd3JpdHRlbiBieSBBdHN1c2hpIFlhc3Vtb3RvIG9uIE9jdCAzcmQsIDIwMjAuCmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKICAvLyBEbyBub3RoaW5nIGlmIEFuY2hvckpTIGlzIHVzZWQKICBpZiAodHlwZW9mIHdpbmRvdy5hbmNob3JzID09PSAnb2JqZWN0JyAmJiBhbmNob3JzLmhhc093blByb3BlcnR5KCdoYXNBbmNob3JKU0xpbmsnKSkgewogICAgcmV0dXJuOwogIH0KCiAgY29uc3QgaCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2gxLCBoMiwgaDMsIGg0LCBoNSwgaDYnKTsKCiAgLy8gRG8gbm90aGluZyBpZiBzZWN0aW9ucyBhcmUgYWxyZWFkeSBhbmNob3JlZAogIGlmIChBcnJheS5mcm9tKGgpLnNvbWUoeCA9PiB4LmNsYXNzTGlzdC5jb250YWlucygnaGFzQW5jaG9yJykpKSB7CiAgICByZXR1cm4gbnVsbDsKICB9CgogIC8vIFVzZSBzZWN0aW9uIGlkIHdoZW4gcGFuZG9jIHJ1bnMgd2l0aCAtLXNlY3Rpb24tZGl2cwogIGNvbnN0IHNlY3Rpb25faWQgPSBmdW5jdGlvbih4KSB7CiAgICByZXR1cm4gKCh4LmNsYXNzTGlzdC5jb250YWlucygnc2VjdGlvbicpIHx8ICh4LnRhZ05hbWUgPT09ICdTRUNUSU9OJykpCiAgICAgICAgICAgID8geC5pZCA6ICcnKTsKICB9OwoKICAvLyBBZGQgYW5jaG9ycwogIGguZm9yRWFjaChmdW5jdGlvbih4KSB7CiAgICBjb25zdCBpZCA9IHguaWQgfHwgc2VjdGlvbl9pZCh4LnBhcmVudEVsZW1lbnQpOwogICAgaWYgKGlkID09PSAnJykgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KICAgIGxldCBhbmNob3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgICBhbmNob3IuaHJlZiA9ICcjJyArIGlkOwogICAgYW5jaG9yLmNsYXNzTGlzdCA9IFsnYW5jaG9yLXNlY3Rpb24nXTsKICAgIHguY2xhc3NMaXN0LmFkZCgnaGFzQW5jaG9yJyk7CiAgICB4LmFwcGVuZENoaWxkKGFuY2hvcik7CiAgfSk7Cn0pOwo="></script>
<script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7IH0KICAvLyAgIG1ldGhvZDI6IGZ1bmN0aW9uKCkgeyBjb25zb2xlLmxvZygnYTInKTsgfQogIC8vIH07CiAgLy8gdmFyIGIgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2IxJyk7IH0KICAvLyB9OwogIC8vIGRlbGVnYXRlTWV0aG9kKGEsIGIsICJtZXRob2QxIik7CiAgLy8gZGVsZWdhdGVNZXRob2QoYSwgYiwgIm1ldGhvZDIiKTsKICAvLyBhLm1ldGhvZDEoKTsKICAvLyBhLm1ldGhvZDIoKTsKICAvLwogIC8vIFRoZSBvdXRwdXQgd291bGQgYmUgImIxIiwgImEyIi4KICBmdW5jdGlvbiBkZWxlZ2F0ZU1ldGhvZChkZWxlZ2F0b3IsIGRlbGVnYXRlZSwgbWV0aG9kTmFtZSkgewogICAgdmFyIGluaGVyaXRlZCA9IGRlbGVnYXRvclttZXRob2ROYW1lXTsKICAgIGRlbGVnYXRvclttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgdGFyZ2V0ID0gZGVsZWdhdGVlOwogICAgICB2YXIgbWV0aG9kID0gZGVsZWdhdGVlW21ldGhvZE5hbWVdOwoKICAgICAgLy8gVGhlIG1ldGhvZCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBkZWxlZ2F0ZWUuIEluc3RlYWQsCiAgICAgIC8vIGNhbGwgdGhlIG1ldGhvZCBvbiB0aGUgZGVsZWdhdG9yLCBpZiBpdCBleGlzdHMuCiAgICAgIGlmICghbWV0aG9kKSB7CiAgICAgICAgdGFyZ2V0ID0gZGVsZWdhdG9yOwogICAgICAgIG1ldGhvZCA9IGluaGVyaXRlZDsKICAgICAgfQoKICAgICAgaWYgKG1ldGhvZCkgewogICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpOwogICAgICB9CiAgICB9OwogIH0KCiAgLy8gSW1wbGVtZW50IGEgdmFndWUgZmFjc2ltaWxpZSBvZiBqUXVlcnkncyBkYXRhIG1ldGhvZAogIGZ1bmN0aW9uIGVsZW1lbnREYXRhKGVsLCBuYW1lLCB2YWx1ZSkgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikgewogICAgICByZXR1cm4gZWxbImh0bWx3aWRnZXRfZGF0YV8iICsgbmFtZV07CiAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykgewogICAgICBlbFsiaHRtbHdpZGdldF9kYXRhXyIgKyBuYW1lXSA9IHZhbHVlOwogICAgICByZXR1cm4gZWw7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGVsZW1lbnREYXRhOiAiICsKICAgICAgICBhcmd1bWVudHMubGVuZ3RoKTsKICAgIH0KICB9CgogIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ0NjE3MC9lc2NhcGUtc3RyaW5nLWZvci11c2UtaW4tamF2YXNjcmlwdC1yZWdleAogIGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHIpIHsKICAgIHJldHVybiBzdHIucmVwbGFjZSgvW1wtXFtcXVwvXHtcfVwoXClcKlwrXD9cLlxcXF5cJFx8XS9nLCAiXFwkJiIpOwogIH0KCiAgZnVuY3Rpb24gaGFzQ2xhc3MoZWwsIGNsYXNzTmFtZSkgewogICAgdmFyIHJlID0gbmV3IFJlZ0V4cCgiXFxiIiArIGVzY2FwZVJlZ0V4cChjbGFzc05hbWUpICsgIlxcYiIpOwogICAgcmV0dXJuIHJlLnRlc3QoZWwuY2xhc3NOYW1lKTsKICB9CgogIC8vIGVsZW1lbnRzIC0gYXJyYXkgKG9yIGFycmF5LWxpa2Ugb2JqZWN0KSBvZiBIVE1MIGVsZW1lbnRzCiAgLy8gY2xhc3NOYW1lIC0gY2xhc3MgbmFtZSB0byB0ZXN0IGZvcgogIC8vIGluY2x1ZGUgLSBpZiB0cnVlLCBvbmx5IHJldHVybiBlbGVtZW50cyB3aXRoIGdpdmVuIGNsYXNzTmFtZTsKICAvLyAgIGlmIGZhbHNlLCBvbmx5IHJldHVybiBlbGVtZW50cyAqd2l0aG91dCogZ2l2ZW4gY2xhc3NOYW1lCiAgZnVuY3Rpb24gZmlsdGVyQnlDbGFzcyhlbGVtZW50cywgY2xhc3NOYW1lLCBpbmNsdWRlKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoaGFzQ2xhc3MoZWxlbWVudHNbaV0sIGNsYXNzTmFtZSkgPT0gaW5jbHVkZSkKICAgICAgICByZXN1bHRzLnB1c2goZWxlbWVudHNbaV0pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfQoKICBmdW5jdGlvbiBvbihvYmosIGV2ZW50TmFtZSwgZnVuYykgewogICAgaWYgKG9iai5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuYywgZmFsc2UpOwogICAgfSBlbHNlIGlmIChvYmouYXR0YWNoRXZlbnQpIHsKICAgICAgb2JqLmF0dGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBvZmYob2JqLCBldmVudE5hbWUsIGZ1bmMpIHsKICAgIGlmIChvYmoucmVtb3ZlRXZlbnRMaXN0ZW5lcikKICAgICAgb2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBmdW5jLCBmYWxzZSk7CiAgICBlbHNlIGlmIChvYmouZGV0YWNoRXZlbnQpIHsKICAgICAgb2JqLmRldGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICAvLyBUcmFuc2xhdGUgYXJyYXkgb2YgdmFsdWVzIHRvIHRvcC9yaWdodC9ib3R0b20vbGVmdCwgYXMgdXN1YWwgd2l0aAogIC8vIHRoZSAicGFkZGluZyIgQ1NTIHByb3BlcnR5CiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3BhZGRpbmcKICBmdW5jdGlvbiB1bnBhY2tQYWRkaW5nKHZhbHVlKSB7CiAgICBpZiAodHlwZW9mKHZhbHVlKSA9PT0gIm51bWJlciIpCiAgICAgIHZhbHVlID0gW3ZhbHVlXTsKICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDEpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMF0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzBdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDIpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDMpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDQpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzNdfTsKICAgIH0KICB9CgogIC8vIENvbnZlcnQgYW4gdW5wYWNrZWQgcGFkZGluZyBvYmplY3QgdG8gYSBDU1MgdmFsdWUKICBmdW5jdGlvbiBwYWRkaW5nVG9Dc3MocGFkZGluZ09iaikgewogICAgcmV0dXJuIHBhZGRpbmdPYmoudG9wICsgInB4ICIgKyBwYWRkaW5nT2JqLnJpZ2h0ICsgInB4ICIgKyBwYWRkaW5nT2JqLmJvdHRvbSArICJweCAiICsgcGFkZGluZ09iai5sZWZ0ICsgInB4IjsKICB9CgogIC8vIE1ha2VzIGEgbnVtYmVyIHN1aXRhYmxlIGZvciBDU1MKICBmdW5jdGlvbiBweCh4KSB7CiAgICBpZiAodHlwZW9mKHgpID09PSAibnVtYmVyIikKICAgICAgcmV0dXJuIHggKyAicHgiOwogICAgZWxzZQogICAgICByZXR1cm4geDsKICB9CgogIC8vIFJldHJpZXZlcyBydW50aW1lIHdpZGdldCBzaXppbmcgaW5mb3JtYXRpb24gZm9yIGFuIGVsZW1lbnQuCiAgLy8gVGhlIHJldHVybiB2YWx1ZSBpcyBlaXRoZXIgbnVsbCwgb3IgYW4gb2JqZWN0IHdpdGggZmlsbCwgcGFkZGluZywKICAvLyBkZWZhdWx0V2lkdGgsIGRlZmF1bHRIZWlnaHQgZmllbGRzLgogIGZ1bmN0aW9uIHNpemluZ1BvbGljeShlbCkgewogICAgdmFyIHNpemluZ0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vaHRtbHdpZGdldC1zaXppbmcnXSIpOwogICAgaWYgKCFzaXppbmdFbCkKICAgICAgcmV0dXJuIG51bGw7CiAgICB2YXIgc3AgPSBKU09OLnBhcnNlKHNpemluZ0VsLnRleHRDb250ZW50IHx8IHNpemluZ0VsLnRleHQgfHwgInt9Iik7CiAgICBpZiAodmlld2VyTW9kZSkgewogICAgICByZXR1cm4gc3Audmlld2VyOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIHNwLmJyb3dzZXI7CiAgICB9CiAgfQoKICAvLyBAcGFyYW0gdGFza3MgQXJyYXkgb2Ygc3RyaW5ncyAob3IgZmFsc3kgdmFsdWUsIGluIHdoaWNoIGNhc2Ugbm8tb3ApLgogIC8vICAgRWFjaCBlbGVtZW50IG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGV4cHJlc3Npb24gdGhhdCB5aWVsZHMgYQogIC8vICAgZnVuY3Rpb24uIE9yLCBjYW4gYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoICJjb2RlIiBhbmQgImRhdGEiCiAgLy8gICBwcm9wZXJ0aWVzOyBpbiB0aGlzIGNhc2UsIHRoZSAiY29kZSIgcHJvcGVydHkgc2hvdWxkIGJlIGEgc3RyaW5nCiAgLy8gICBvZiBKUyB0aGF0J3MgYW4gZXhwciB0aGF0IHlpZWxkcyBhIGZ1bmN0aW9uLCBhbmQgImRhdGEiIHNob3VsZCBiZQogIC8vICAgYW4gb2JqZWN0IHRoYXQgd2lsbCBiZSBhZGRlZCBhcyBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHdoZW4gdGhhdAogIC8vICAgZnVuY3Rpb24gaXMgY2FsbGVkLgogIC8vIEBwYXJhbSB0YXJnZXQgVGhlIG9iamVjdCB0aGF0IHdpbGwgYmUgInRoaXMiIGZvciBlYWNoIGZ1bmN0aW9uCiAgLy8gICBleGVjdXRpb24uCiAgLy8gQHBhcmFtIGFyZ3MgQXJyYXkgb2YgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb25zLiAoVGhlCiAgLy8gICBzYW1lIGFyZ3VtZW50cyB3aWxsIGJlIHBhc3NlZCB0byBhbGwgZnVuY3Rpb25zLikKICBmdW5jdGlvbiBldmFsQW5kUnVuKHRhc2tzLCB0YXJnZXQsIGFyZ3MpIHsKICAgIGlmICh0YXNrcykgewogICAgICBmb3JFYWNoKHRhc2tzLCBmdW5jdGlvbih0YXNrKSB7CiAgICAgICAgdmFyIHRoZXNlQXJncyA9IGFyZ3M7CiAgICAgICAgaWYgKHR5cGVvZih0YXNrKSA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIHRoZXNlQXJncyA9IHRoZXNlQXJncy5jb25jYXQoW3Rhc2suZGF0YV0pOwogICAgICAgICAgdGFzayA9IHRhc2suY29kZTsKICAgICAgICB9CiAgICAgICAgdmFyIHRhc2tGdW5jID0gdHJ5RXZhbCh0YXNrKTsKICAgICAgICBpZiAodHlwZW9mKHRhc2tGdW5jKSAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUYXNrIG11c3QgYmUgYSBmdW5jdGlvbiEgU291cmNlOlxuIiArIHRhc2spOwogICAgICAgIH0KICAgICAgICB0YXNrRnVuYy5hcHBseSh0YXJnZXQsIHRoZXNlQXJncyk7CiAgICAgIH0pOwogICAgfQogIH0KCiAgLy8gQXR0ZW1wdCBldmFsKCkgYm90aCB3aXRoIGFuZCB3aXRob3V0IGVuY2xvc2luZyBpbiBwYXJlbnRoZXNlcy4KICAvLyBOb3RlIHRoYXQgZW5jbG9zaW5nIGNvZXJjZXMgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBpbnRvCiAgLy8gYW4gZXhwcmVzc2lvbiB0aGF0IGV2YWwoKSBjYW4gcGFyc2UKICAvLyAob3RoZXJ3aXNlLCBhIFN5bnRheEVycm9yIGlzIHRocm93bikKICBmdW5jdGlvbiB0cnlFdmFsKGNvZGUpIHsKICAgIHZhciByZXN1bHQgPSBudWxsOwogICAgdHJ5IHsKICAgICAgcmVzdWx0ID0gZXZhbChjb2RlKTsKICAgIH0gY2F0Y2goZXJyb3IpIHsKICAgICAgaWYgKCFlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7CiAgICAgICAgdGhyb3cgZXJyb3I7CiAgICAgIH0KICAgICAgdHJ5IHsKICAgICAgICByZXN1bHQgPSBldmFsKCIoIiArIGNvZGUgKyAiKSIpOwogICAgICB9IGNhdGNoKGUpIHsKICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXN1bHQ7CiAgfQoKICBmdW5jdGlvbiBpbml0U2l6aW5nKGVsKSB7CiAgICB2YXIgc2l6aW5nID0gc2l6aW5nUG9saWN5KGVsKTsKICAgIGlmICghc2l6aW5nKQogICAgICByZXR1cm47CgogICAgdmFyIGNlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJodG1sd2lkZ2V0X2NvbnRhaW5lciIpOwogICAgaWYgKCFjZWwpCiAgICAgIHJldHVybjsKCiAgICBpZiAodHlwZW9mKHNpemluZy5wYWRkaW5nKSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5tYXJnaW4gPSAiMCI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZyA9IHBhZGRpbmdUb0Nzcyh1bnBhY2tQYWRkaW5nKHNpemluZy5wYWRkaW5nKSk7CiAgICB9CgogICAgaWYgKHNpemluZy5maWxsKSB7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIxMDAlIjsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS53aWR0aCA9ICIxMDAlIjsKICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmhlaWdodCA9ICIxMDAlIjsKICAgICAgaWYgKGNlbCkgewogICAgICAgIGNlbC5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSI7CiAgICAgICAgdmFyIHBhZCA9IHVucGFja1BhZGRpbmcoc2l6aW5nLnBhZGRpbmcpOwogICAgICAgIGNlbC5zdHlsZS50b3AgPSBwYWQudG9wICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUucmlnaHQgPSBwYWQucmlnaHQgKyAicHgiOwogICAgICAgIGNlbC5zdHlsZS5ib3R0b20gPSBwYWQuYm90dG9tICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUubGVmdCA9IHBhZC5sZWZ0ICsgInB4IjsKICAgICAgICBlbC5zdHlsZS53aWR0aCA9ICIxMDAlIjsKICAgICAgICBlbC5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIH0KCiAgICAgIHJldHVybiB7CiAgICAgICAgZ2V0V2lkdGg6IGZ1bmN0aW9uKCkgeyByZXR1cm4gY2VsLm9mZnNldFdpZHRoOyB9LAogICAgICAgIGdldEhlaWdodDogZnVuY3Rpb24oKSB7IHJldHVybiBjZWwub2Zmc2V0SGVpZ2h0OyB9CiAgICAgIH07CgogICAgfSBlbHNlIHsKICAgICAgZWwuc3R5bGUud2lkdGggPSBweChzaXppbmcud2lkdGgpOwogICAgICBlbC5zdHlsZS5oZWlnaHQgPSBweChzaXppbmcuaGVpZ2h0KTsKCiAgICAgIHJldHVybiB7CiAgICAgICAgZ2V0V2lkdGg6IGZ1bmN0aW9uKCkgeyByZXR1cm4gZWwub2Zmc2V0V2lkdGg7IH0sCiAgICAgICAgZ2V0SGVpZ2h0OiBmdW5jdGlvbigpIHsgcmV0dXJuIGVsLm9mZnNldEhlaWdodDsgfQogICAgICB9OwogICAgfQogIH0KCiAgLy8gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgZm9yIG1ldGhvZHMKICB2YXIgZGVmYXVsdHMgPSB7CiAgICBmaW5kOiBmdW5jdGlvbihzY29wZSkgewogICAgICByZXR1cm4gcXVlcnlTZWxlY3RvckFsbChzY29wZSwgIi4iICsgdGhpcy5uYW1lKTsKICAgIH0sCiAgICByZW5kZXJFcnJvcjogZnVuY3Rpb24oZWwsIGVycikgewogICAgICB2YXIgJGVsID0gJChlbCk7CgogICAgICB0aGlzLmNsZWFyRXJyb3IoZWwpOwoKICAgICAgLy8gQWRkIGFsbCB0aGVzZSBlcnJvciBjbGFzc2VzLCBhcyBTaGlueSBkb2VzCiAgICAgIHZhciBlcnJDbGFzcyA9ICJzaGlueS1vdXRwdXQtZXJyb3IiOwogICAgICBpZiAoZXJyLnR5cGUgIT09IG51bGwpIHsKICAgICAgICAvLyB1c2UgdGhlIGNsYXNzZXMgb2YgdGhlIGVycm9yIGNvbmRpdGlvbiBhcyBDU1MgY2xhc3MgbmFtZXMKICAgICAgICBlcnJDbGFzcyA9IGVyckNsYXNzICsgIiAiICsgJC5tYXAoYXNBcnJheShlcnIudHlwZSksIGZ1bmN0aW9uKHR5cGUpIHsKICAgICAgICAgIHJldHVybiBlcnJDbGFzcyArICItIiArIHR5cGU7CiAgICAgICAgfSkuam9pbigiICIpOwogICAgICB9CiAgICAgIGVyckNsYXNzID0gZXJyQ2xhc3MgKyAiIGh0bWx3aWRnZXRzLWVycm9yIjsKCiAgICAgIC8vIElzIGVsIGlubGluZSBvciBibG9jaz8gSWYgaW5saW5lIG9yIGlubGluZS1ibG9jaywganVzdCBkaXNwbGF5Om5vbmUgaXQKICAgICAgLy8gYW5kIGFkZCBhbiBpbmxpbmUgZXJyb3IuCiAgICAgIHZhciBkaXNwbGF5ID0gJGVsLmNzcygiZGlzcGxheSIpOwogICAgICAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiLCBkaXNwbGF5KTsKCiAgICAgIGlmIChkaXNwbGF5ID09PSAiaW5saW5lIiB8fCBkaXNwbGF5ID09PSAiaW5saW5lLWJsb2NrIikgewogICAgICAgICRlbC5oaWRlKCk7CiAgICAgICAgaWYgKGVyci5tZXNzYWdlICE9PSAiIikgewogICAgICAgICAgdmFyIGVycm9yU3BhbiA9ICQoIjxzcGFuPiIpLmFkZENsYXNzKGVyckNsYXNzKTsKICAgICAgICAgIGVycm9yU3Bhbi50ZXh0KGVyci5tZXNzYWdlKTsKICAgICAgICAgICRlbC5hZnRlcihlcnJvclNwYW4pOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChkaXNwbGF5ID09PSAiYmxvY2siKSB7CiAgICAgICAgLy8gSWYgYmxvY2ssIGFkZCBhbiBlcnJvciBqdXN0IGFmdGVyIHRoZSBlbCwgc2V0IHZpc2liaWxpdHk6bm9uZSBvbiB0aGUKICAgICAgICAvLyBlbCwgYW5kIHBvc2l0aW9uIHRoZSBlcnJvciB0byBiZSBvbiB0b3Agb2YgdGhlIGVsLgogICAgICAgIC8vIE1hcmsgaXQgd2l0aCBhIHVuaXF1ZSBJRCBhbmQgQ1NTIGNsYXNzIHNvIHdlIGNhbiByZW1vdmUgaXQgbGF0ZXIuCiAgICAgICAgJGVsLmNzcygidmlzaWJpbGl0eSIsICJoaWRkZW4iKTsKICAgICAgICBpZiAoZXJyLm1lc3NhZ2UgIT09ICIiKSB7CiAgICAgICAgICB2YXIgZXJyb3JEaXYgPSAkKCI8ZGl2PiIpLmFkZENsYXNzKGVyckNsYXNzKS5jc3MoInBvc2l0aW9uIiwgImFic29sdXRlIikKICAgICAgICAgICAgLmNzcygidG9wIiwgZWwub2Zmc2V0VG9wKQogICAgICAgICAgICAuY3NzKCJsZWZ0IiwgZWwub2Zmc2V0TGVmdCkKICAgICAgICAgICAgLy8gc2V0dGluZyB3aWR0aCBjYW4gcHVzaCBvdXQgdGhlIHBhZ2Ugc2l6ZSwgZm9yY2luZyBvdGhlcndpc2UKICAgICAgICAgICAgLy8gdW5uZWNlc3Nhcnkgc2Nyb2xsYmFycyB0byBhcHBlYXIgYW5kIG1ha2luZyBpdCBpbXBvc3NpYmxlIGZvcgogICAgICAgICAgICAvLyB0aGUgZWxlbWVudCB0byBzaHJpbms7IHNvIHVzZSBtYXgtd2lkdGggaW5zdGVhZAogICAgICAgICAgICAuY3NzKCJtYXhXaWR0aCIsIGVsLm9mZnNldFdpZHRoKQogICAgICAgICAgICAuY3NzKCJoZWlnaHQiLCBlbC5vZmZzZXRIZWlnaHQpOwogICAgICAgICAgZXJyb3JEaXYudGV4dChlcnIubWVzc2FnZSk7CiAgICAgICAgICAkZWwuYWZ0ZXIoZXJyb3JEaXYpOwoKICAgICAgICAgIC8vIFJlYWxseSBkdW1iIHdheSB0byBrZWVwIHRoZSBzaXplL3Bvc2l0aW9uIG9mIHRoZSBlcnJvciBpbiBzeW5jIHdpdGgKICAgICAgICAgIC8vIHRoZSBwYXJlbnQgZWxlbWVudCBhcyB0aGUgd2luZG93IGlzIHJlc2l6ZWQgb3Igd2hhdGV2ZXIuCiAgICAgICAgICB2YXIgaW50SWQgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKCFlcnJvckRpdlswXS5wYXJlbnRFbGVtZW50KSB7CiAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRJZCk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVycm9yRGl2CiAgICAgICAgICAgICAgLmNzcygidG9wIiwgZWwub2Zmc2V0VG9wKQogICAgICAgICAgICAgIC5jc3MoImxlZnQiLCBlbC5vZmZzZXRMZWZ0KQogICAgICAgICAgICAgIC5jc3MoIm1heFdpZHRoIiwgZWwub2Zmc2V0V2lkdGgpCiAgICAgICAgICAgICAgLmNzcygiaGVpZ2h0IiwgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgIH0sIDUwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgY2xlYXJFcnJvcjogZnVuY3Rpb24oZWwpIHsKICAgICAgdmFyICRlbCA9ICQoZWwpOwogICAgICB2YXIgZGlzcGxheSA9ICRlbC5kYXRhKCJyZXN0b3JlLWRpc3BsYXktbW9kZSIpOwogICAgICAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiLCBudWxsKTsKCiAgICAgIGlmIChkaXNwbGF5ID09PSAiaW5saW5lIiB8fCBkaXNwbGF5ID09PSAiaW5saW5lLWJsb2NrIikgewogICAgICAgIGlmIChkaXNwbGF5KQogICAgICAgICAgJGVsLmNzcygiZGlzcGxheSIsIGRpc3BsYXkpOwogICAgICAgICQoZWwubmV4dFNpYmxpbmcpLmZpbHRlcigiLmh0bWx3aWRnZXRzLWVycm9yIikucmVtb3ZlKCk7CiAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PT0gImJsb2NrIil7CiAgICAgICAgJGVsLmNzcygidmlzaWJpbGl0eSIsICJpbmhlcml0Iik7CiAgICAgICAgJChlbC5uZXh0U2libGluZykuZmlsdGVyKCIuaHRtbHdpZGdldHMtZXJyb3IiKS5yZW1vdmUoKTsKICAgICAgfQogICAgfSwKICAgIHNpemluZzoge30KICB9OwoKICAvLyBDYWxsZWQgYnkgd2lkZ2V0IGJpbmRpbmdzIHRvIHJlZ2lzdGVyIGEgbmV3IHR5cGUgb2Ygd2lkZ2V0LiBUaGUgZGVmaW5pdGlvbgogIC8vIG9iamVjdCBjYW4gY29udGFpbiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgLy8gLSBuYW1lIChyZXF1aXJlZCkgLSBBIHN0cmluZyBpbmRpY2F0aW5nIHRoZSBiaW5kaW5nIG5hbWUsIHdoaWNoIHdpbGwgYmUKICAvLyAgIHVzZWQgYnkgZGVmYXVsdCBhcyB0aGUgQ1NTIGNsYXNzbmFtZSB0byBsb29rIGZvci4KICAvLyAtIGluaXRpYWxpemUgKG9wdGlvbmFsKSAtIEEgZnVuY3Rpb24oZWwpIHRoYXQgd2lsbCBiZSBjYWxsZWQgb25jZSBwZXIKICAvLyAgIHdpZGdldCBlbGVtZW50OyBpZiBhIHZhbHVlIGlzIHJldHVybmVkLCBpdCB3aWxsIGJlIHBhc3NlZCBhcyB0aGUgdGhpcmQKICAvLyAgIHZhbHVlIHRvIHJlbmRlclZhbHVlLgogIC8vIC0gcmVuZGVyVmFsdWUgKHJlcXVpcmVkKSAtIEEgZnVuY3Rpb24oZWwsIGRhdGEsIGluaXRWYWx1ZSkgdGhhdCB3aWxsIGJlCiAgLy8gICBjYWxsZWQgd2l0aCBkYXRhLiBTdGF0aWMgY29udGV4dHMgd2lsbCBjYXVzZSB0aGlzIHRvIGJlIGNhbGxlZCBvbmNlIHBlcgogIC8vICAgZWxlbWVudDsgU2hpbnkgYXBwcyB3aWxsIGNhdXNlIHRoaXMgdG8gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHBlcgogIC8vICAgZWxlbWVudCwgYXMgdGhlIGRhdGEgY2hhbmdlcy4KICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0ID0gZnVuY3Rpb24oZGVmaW5pdGlvbikgewogICAgaWYgKCFkZWZpbml0aW9uLm5hbWUpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgbXVzdCBoYXZlIGEgbmFtZSIpOwogICAgfQogICAgaWYgKCFkZWZpbml0aW9uLnR5cGUpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgbXVzdCBoYXZlIGEgdHlwZSIpOwogICAgfQogICAgLy8gQ3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydCBvdXRwdXQgd2lkZ2V0cwogICAgaWYgKGRlZmluaXRpb24udHlwZSAhPT0gIm91dHB1dCIpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgd2lkZ2V0IHR5cGUgJyIgKyBkZWZpbml0aW9uLnR5cGUgKyAiJyIpOwogICAgfQogICAgLy8gVE9ETzogVmVyaWZ5IHRoYXQgLm5hbWUgaXMgYSB2YWxpZCBDU1MgY2xhc3NuYW1lCgogICAgLy8gU3VwcG9ydCBuZXctc3R5bGUgaW5zdGFuY2UtYm91bmQgZGVmaW5pdGlvbnMuIE9sZC1zdHlsZSBjbGFzcy1ib3VuZAogICAgLy8gZGVmaW5pdGlvbnMgaGF2ZSBvbmUgd2lkZ2V0ICJvYmplY3QiIHBlciB3aWRnZXQgcGVyIHR5cGUvY2xhc3Mgb2YKICAgIC8vIHdpZGdldDsgdGhlIHJlbmRlclZhbHVlIGFuZCByZXNpemUgbWV0aG9kcyBvbiBzdWNoIHdpZGdldCBvYmplY3RzCiAgICAvLyB0YWtlIGVsIGFuZCBpbnN0YW5jZSBhcmd1bWVudHMsIGJlY2F1c2UgdGhlIHdpZGdldCBvYmplY3QgY2FuJ3QKICAgIC8vIHN0b3JlIHRoZW0uIE5ldy1zdHlsZSBpbnN0YW5jZS1ib3VuZCBkZWZpbml0aW9ucyBoYXZlIG9uZSB3aWRnZXQKICAgIC8vIG9iamVjdCBwZXIgd2lkZ2V0IGluc3RhbmNlOyB0aGUgZGVmaW5pdGlvbiB0aGF0J3MgcGFzc2VkIGluIGRvZXNuJ3QKICAgIC8vIHByb3ZpZGUgcmVuZGVyVmFsdWUgb3IgcmVzaXplIG1ldGhvZHMgYXQgYWxsLCBqdXN0IHRoZSBzaW5nbGUgbWV0aG9kCiAgICAvLyAgIGZhY3RvcnkoZWwsIHdpZHRoLCBoZWlnaHQpCiAgICAvLyB3aGljaCByZXR1cm5zIGFuIG9iamVjdCB0aGF0IGhhcyByZW5kZXJWYWx1ZSh4KSBhbmQgcmVzaXplKHcsIGgpLgogICAgLy8gVGhpcyBlbmFibGVzIGEgZmFyIG1vcmUgbmF0dXJhbCBwcm9ncmFtbWluZyBzdHlsZSBmb3IgdGhlIHdpZGdldAogICAgLy8gYXV0aG9yLCB3aG8gY2FuIHN0b3JlIHBlci1pbnN0YW5jZSBzdGF0ZSB1c2luZyBlaXRoZXIgT08tc3R5bGUKICAgIC8vIGluc3RhbmNlIGZpZWxkcyBvciBmdW5jdGlvbmFsLXN0eWxlIGNsb3N1cmUgdmFyaWFibGVzIChJIGd1ZXNzIHRoaXMKICAgIC8vIGlzIGluIGNvbnRyYXN0IHRvIHdoYXQgY2FuIG9ubHkgYmUgY2FsbGVkIEMtc3R5bGUgcHNldWRvLU9PIHdoaWNoIGlzCiAgICAvLyB3aGF0IHdlIHJlcXVpcmVkIGJlZm9yZSkuCiAgICBpZiAoZGVmaW5pdGlvbi5mYWN0b3J5KSB7CiAgICAgIGRlZmluaXRpb24gPSBjcmVhdGVMZWdhY3lEZWZpbml0aW9uQWRhcHRlcihkZWZpbml0aW9uKTsKICAgIH0KCiAgICBpZiAoIWRlZmluaXRpb24ucmVuZGVyVmFsdWUpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgbXVzdCBoYXZlIGEgcmVuZGVyVmFsdWUgZnVuY3Rpb24iKTsKICAgIH0KCiAgICAvLyBGb3Igc3RhdGljIHJlbmRlcmluZyAobm9uLVNoaW55KSwgdXNlIGEgc2ltcGxlIHdpZGdldCByZWdpc3RyYXRpb24KICAgIC8vIHNjaGVtZS4gV2UgYWxzbyB1c2UgdGhpcyBzY2hlbWUgZm9yIFNoaW55IGFwcHMvZG9jdW1lbnRzIHRoYXQgYWxzbwogICAgLy8gY29udGFpbiBzdGF0aWMgd2lkZ2V0cy4KICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzID0gd2luZG93LkhUTUxXaWRnZXRzLndpZGdldHMgfHwgW107CiAgICAvLyBNZXJnZSBkZWZhdWx0cyBpbnRvIHRoZSBkZWZpbml0aW9uOyBkb24ndCBtdXRhdGUgdGhlIG9yaWdpbmFsIGRlZmluaXRpb24uCiAgICB2YXIgc3RhdGljQmluZGluZyA9IGV4dGVuZCh7fSwgZGVmYXVsdHMsIGRlZmluaXRpb24pOwogICAgb3ZlcnJpZGVNZXRob2Qoc3RhdGljQmluZGluZywgImZpbmQiLCBmdW5jdGlvbihzdXBlcmZ1bmMpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNjb3BlKSB7CiAgICAgICAgdmFyIHJlc3VsdHMgPSBzdXBlcmZ1bmMoc2NvcGUpOwogICAgICAgIC8vIEZpbHRlciBvdXQgU2hpbnkgb3V0cHV0cywgd2Ugb25seSB3YW50IHRoZSBzdGF0aWMga2luZAogICAgICAgIHJldHVybiBmaWx0ZXJCeUNsYXNzKHJlc3VsdHMsICJodG1sLXdpZGdldC1vdXRwdXQiLCBmYWxzZSk7CiAgICAgIH07CiAgICB9KTsKICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzLnB1c2goc3RhdGljQmluZGluZyk7CgogICAgaWYgKHNoaW55TW9kZSkgewogICAgICAvLyBTaGlueSBpcyBydW5uaW5nLiBSZWdpc3RlciB0aGUgZGVmaW5pdGlvbiB3aXRoIGFuIG91dHB1dCBiaW5kaW5nLgogICAgICAvLyBUaGUgZGVmaW5pdGlvbiBpdHNlbGYgd2lsbCBub3QgYmUgdGhlIG91dHB1dCBiaW5kaW5nLCBpbnN0ZWFkCiAgICAgIC8vIHdlIHdpbGwgbWFrZSBhbiBvdXRwdXQgYmluZGluZyBvYmplY3QgdGhhdCBkZWxlZ2F0ZXMgdG8gdGhlCiAgICAgIC8vIGRlZmluaXRpb24uIFRoaXMgaXMgYmVjYXVzZSB3ZSBmb29saXNobHkgdXNlZCB0aGUgc2FtZSBtZXRob2QKICAgICAgLy8gbmFtZSAocmVuZGVyVmFsdWUpIGZvciBodG1sd2lkZ2V0cyBkZWZpbml0aW9uIGFuZCBTaGlueSBiaW5kaW5ncwogICAgICAvLyBidXQgdGhleSBhY3R1YWxseSBoYXZlIHF1aXRlIGRpZmZlcmVudCBzZW1hbnRpY3MgKHRoZSBTaGlueQogICAgICAvLyBiaW5kaW5ncyByZWNlaXZlIGRhdGEgdGhhdCBpbmNsdWRlcyBsb3RzIG9mIG1ldGFkYXRhIHRoYXQgaXQKICAgICAgLy8gc3RyaXBzIG9mZiBiZWZvcmUgY2FsbGluZyBodG1sd2lkZ2V0cyByZW5kZXJWYWx1ZSkuIFdlIGNhbid0CiAgICAgIC8vIGp1c3QgaWdub3JlIHRoZSBkaWZmZXJlbmNlIGJlY2F1c2UgaW4gc29tZSB3aWRnZXRzIGl0J3MgaGVscGZ1bAogICAgICAvLyB0byBjYWxsIHRoaXMucmVuZGVyVmFsdWUoKSBmcm9tIGluc2lkZSBvZiByZXNpemUoKSwgYW5kIGlmCiAgICAgIC8vIHdlJ3JlIG5vdCBkZWxlZ2F0aW5nLCB0aGVuIHRoYXQgY2FsbCB3aWxsIGdvIHRvIHRoZSBTaGlueQogICAgICAvLyB2ZXJzaW9uIGluc3RlYWQgb2YgdGhlIGh0bWx3aWRnZXRzIHZlcnNpb24uCgogICAgICAvLyBNZXJnZSBkZWZhdWx0cyB3aXRoIGRlZmluaXRpb24sIHdpdGhvdXQgbXV0YXRpbmcgZWl0aGVyLgogICAgICB2YXIgYmluZGluZ0RlZiA9IGV4dGVuZCh7fSwgZGVmYXVsdHMsIGRlZmluaXRpb24pOwoKICAgICAgLy8gVGhpcyBvYmplY3Qgd2lsbCBiZSBvdXIgYWN0dWFsIFNoaW55IGJpbmRpbmcuCiAgICAgIHZhciBzaGlueUJpbmRpbmcgPSBuZXcgU2hpbnkuT3V0cHV0QmluZGluZygpOwoKICAgICAgLy8gV2l0aCBhIGZldyBleGNlcHRpb25zLCB3ZSdsbCB3YW50IHRvIHNpbXBseSB1c2UgdGhlIGJpbmRpbmdEZWYncwogICAgICAvLyB2ZXJzaW9uIG9mIG1ldGhvZHMgaWYgdGhleSBhcmUgYXZhaWxhYmxlLCBvdGhlcndpc2UgZmFsbCBiYWNrIHRvCiAgICAgIC8vIFNoaW55J3MgZGVmYXVsdHMuIE5PVEU6IElmIFNoaW55J3Mgb3V0cHV0IGJpbmRpbmdzIGdhaW4gYWRkaXRpb25hbAogICAgICAvLyBtZXRob2RzIGluIHRoZSBmdXR1cmUsIGFuZCB3ZSB3YW50IHRoZW0gdG8gYmUgb3ZlcnJpZGVhYmxlIGJ5CiAgICAgIC8vIEhUTUxXaWRnZXQgYmluZGluZyBkZWZpbml0aW9ucywgdGhlbiB3ZSdsbCBuZWVkIHRvIGFkZCB0aGVtIHRvIHRoaXMKICAgICAgLy8gbGlzdC4KICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAiZ2V0SWQiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAib25WYWx1ZUNoYW5nZSIpOwogICAgICBkZWxlZ2F0ZU1ldGhvZChzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYsICJvblZhbHVlRXJyb3IiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAicmVuZGVyRXJyb3IiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAiY2xlYXJFcnJvciIpOwogICAgICBkZWxlZ2F0ZU1ldGhvZChzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYsICJzaG93UHJvZ3Jlc3MiKTsKCiAgICAgIC8vIFRoZSBmaW5kLCByZW5kZXJWYWx1ZSwgYW5kIHJlc2l6ZSBhcmUgaGFuZGxlZCBkaWZmZXJlbnRseSwgYmVjYXVzZSB3ZQogICAgICAvLyB3YW50IHRvIGFjdHVhbGx5IGRlY29yYXRlIHRoZSBiZWhhdmlvciBvZiB0aGUgYmluZGluZ0RlZiBtZXRob2RzLgoKICAgICAgc2hpbnlCaW5kaW5nLmZpbmQgPSBmdW5jdGlvbihzY29wZSkgewogICAgICAgIHZhciByZXN1bHRzID0gYmluZGluZ0RlZi5maW5kKHNjb3BlKTsKCiAgICAgICAgLy8gT25seSByZXR1cm4gZWxlbWVudHMgdGhhdCBhcmUgU2hpbnkgb3V0cHV0cywgbm90IHN0YXRpYyBvbmVzCiAgICAgICAgdmFyIGR5bmFtaWNSZXN1bHRzID0gcmVzdWx0cy5maWx0ZXIoIi5odG1sLXdpZGdldC1vdXRwdXQiKTsKCiAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHdoYXRldmVyIGNhdXNlZCBTaGlueSB0byB0aGluayB0aGVyZSBtaWdodCBiZQogICAgICAgIC8vIG5ldyBkeW5hbWljIG91dHB1dHMsIGFsc28gY2F1c2VkIHRoZXJlIHRvIGJlIG5ldyBzdGF0aWMgb3V0cHV0cy4KICAgICAgICAvLyBTaW5jZSB0aGVyZSBtaWdodCBiZSBsb3RzIG9mIGRpZmZlcmVudCBodG1sd2lkZ2V0cyBiaW5kaW5ncywgd2UKICAgICAgICAvLyBzY2hlZHVsZSBleGVjdXRpb24gZm9yIGxhdGVyLS1ubyBuZWVkIHRvIHN0YXRpY1JlbmRlciBtdWx0aXBsZQogICAgICAgIC8vIHRpbWVzLgogICAgICAgIGlmIChyZXN1bHRzLmxlbmd0aCAhPT0gZHluYW1pY1Jlc3VsdHMubGVuZ3RoKQogICAgICAgICAgc2NoZWR1bGVTdGF0aWNSZW5kZXIoKTsKCiAgICAgICAgcmV0dXJuIGR5bmFtaWNSZXN1bHRzOwogICAgICB9OwoKICAgICAgLy8gV3JhcCByZW5kZXJWYWx1ZSB0byBoYW5kbGUgaW5pdGlhbGl6YXRpb24sIHdoaWNoIHVuZm9ydHVuYXRlbHkgaXNuJ3QKICAgICAgLy8gc3VwcG9ydGVkIG5hdGl2ZWx5IGJ5IFNoaW55IGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZy4KCiAgICAgIHNoaW55QmluZGluZy5yZW5kZXJWYWx1ZSA9IGZ1bmN0aW9uKGVsLCBkYXRhKSB7CiAgICAgICAgU2hpbnkucmVuZGVyRGVwZW5kZW5jaWVzKGRhdGEuZGVwcyk7CiAgICAgICAgLy8gUmVzb2x2ZSBzdHJpbmdzIG1hcmtlZCBhcyBqYXZhc2NyaXB0IGxpdGVyYWxzIHRvIG9iamVjdHMKICAgICAgICBpZiAoIShkYXRhLmV2YWxzIGluc3RhbmNlb2YgQXJyYXkpKSBkYXRhLmV2YWxzID0gW2RhdGEuZXZhbHNdOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBkYXRhLmV2YWxzICYmIGkgPCBkYXRhLmV2YWxzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuZXZhbHVhdGVTdHJpbmdNZW1iZXIoZGF0YS54LCBkYXRhLmV2YWxzW2ldKTsKICAgICAgICB9CiAgICAgICAgaWYgKCFiaW5kaW5nRGVmLnJlbmRlck9uTnVsbFZhbHVlKSB7CiAgICAgICAgICBpZiAoZGF0YS54ID09PSBudWxsKSB7CiAgICAgICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICJpbmhlcml0IjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIikpIHsKICAgICAgICAgIGluaXRTaXppbmcoZWwpOwoKICAgICAgICAgIGVsZW1lbnREYXRhKGVsLCAiaW5pdGlhbGl6ZWQiLCB0cnVlKTsKICAgICAgICAgIGlmIChiaW5kaW5nRGVmLmluaXRpYWxpemUpIHsKICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGJpbmRpbmdEZWYuaW5pdGlhbGl6ZShlbCwgZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgICAgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgICAgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIsIHJlc3VsdCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGJpbmRpbmdEZWYucmVuZGVyVmFsdWUoZWwsIGRhdGEueCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICBldmFsQW5kUnVuKGRhdGEuanNIb29rcy5yZW5kZXIsIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiKSwgW2VsLCBkYXRhLnhdKTsKICAgICAgfTsKCiAgICAgIC8vIE9ubHkgb3ZlcnJpZGUgcmVzaXplIGlmIGJpbmRpbmdEZWYgaW1wbGVtZW50cyBpdAogICAgICBpZiAoYmluZGluZ0RlZi5yZXNpemUpIHsKICAgICAgICBzaGlueUJpbmRpbmcucmVzaXplID0gZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgICAgICAgIC8vIFNoaW55IGNhbiBjYWxsIHJlc2l6ZSBiZWZvcmUgaW5pdGlhbGl6ZS9yZW5kZXJWYWx1ZSBoYXZlIGJlZW4KICAgICAgICAgIC8vIGNhbGxlZCwgd2hpY2ggZG9lc24ndCBtYWtlIHNlbnNlIGZvciB3aWRnZXRzLgogICAgICAgICAgaWYgKGVsZW1lbnREYXRhKGVsLCAiaW5pdGlhbGl6ZWQiKSkgewogICAgICAgICAgICBiaW5kaW5nRGVmLnJlc2l6ZShlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9CgogICAgICBTaGlueS5vdXRwdXRCaW5kaW5ncy5yZWdpc3RlcihzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYubmFtZSk7CiAgICB9CiAgfTsKCiAgdmFyIHNjaGVkdWxlU3RhdGljUmVuZGVyVGltZXJJZCA9IG51bGw7CiAgZnVuY3Rpb24gc2NoZWR1bGVTdGF0aWNSZW5kZXIoKSB7CiAgICBpZiAoIXNjaGVkdWxlU3RhdGljUmVuZGVyVGltZXJJZCkgewogICAgICBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIHNjaGVkdWxlU3RhdGljUmVuZGVyVGltZXJJZCA9IG51bGw7CiAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLnN0YXRpY1JlbmRlcigpOwogICAgICB9LCAxKTsKICAgIH0KICB9CgogIC8vIFJlbmRlciBzdGF0aWMgd2lkZ2V0cyBhZnRlciB0aGUgZG9jdW1lbnQgZmluaXNoZXMgbG9hZGluZwogIC8vIFN0YXRpY2FsbHkgcmVuZGVyIGFsbCBlbGVtZW50cyB0aGF0IGFyZSBvZiB0aGlzIHdpZGdldCdzIGNsYXNzCiAgd2luZG93LkhUTUxXaWRnZXRzLnN0YXRpY1JlbmRlciA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGJpbmRpbmdzID0gd2luZG93LkhUTUxXaWRnZXRzLndpZGdldHMgfHwgW107CiAgICBmb3JFYWNoKGJpbmRpbmdzLCBmdW5jdGlvbihiaW5kaW5nKSB7CiAgICAgIHZhciBtYXRjaGVzID0gYmluZGluZy5maW5kKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7CiAgICAgIGZvckVhY2gobWF0Y2hlcywgZnVuY3Rpb24oZWwpIHsKICAgICAgICB2YXIgc2l6ZU9iaiA9IGluaXRTaXppbmcoZWwsIGJpbmRpbmcpOwoKICAgICAgICBpZiAoaGFzQ2xhc3MoZWwsICJodG1sLXdpZGdldC1zdGF0aWMtYm91bmQiKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBlbC5jbGFzc05hbWUgPSBlbC5jbGFzc05hbWUgKyAiIGh0bWwtd2lkZ2V0LXN0YXRpYy1ib3VuZCI7CgogICAgICAgIHZhciBpbml0UmVzdWx0OwogICAgICAgIGlmIChiaW5kaW5nLmluaXRpYWxpemUpIHsKICAgICAgICAgIGluaXRSZXN1bHQgPSBiaW5kaW5nLmluaXRpYWxpemUoZWwsCiAgICAgICAgICAgIHNpemVPYmogPyBzaXplT2JqLmdldFdpZHRoKCkgOiBlbC5vZmZzZXRXaWR0aCwKICAgICAgICAgICAgc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgICk7CiAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IiwgaW5pdFJlc3VsdCk7CiAgICAgICAgfQoKICAgICAgICBpZiAoYmluZGluZy5yZXNpemUpIHsKICAgICAgICAgIHZhciBsYXN0U2l6ZSA9IHsKICAgICAgICAgICAgdzogc2l6ZU9iaiA/IHNpemVPYmouZ2V0V2lkdGgoKSA6IGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICBoOiBzaXplT2JqID8gc2l6ZU9iai5nZXRIZWlnaHQoKSA6IGVsLm9mZnNldEhlaWdodAogICAgICAgICAgfTsKICAgICAgICAgIHZhciByZXNpemVIYW5kbGVyID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgc2l6ZSA9IHsKICAgICAgICAgICAgICB3OiBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgICAgaDogc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHNpemUudyA9PT0gMCAmJiBzaXplLmggPT09IDApCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBpZiAoc2l6ZS53ID09PSBsYXN0U2l6ZS53ICYmIHNpemUuaCA9PT0gbGFzdFNpemUuaCkKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGxhc3RTaXplID0gc2l6ZTsKICAgICAgICAgICAgYmluZGluZy5yZXNpemUoZWwsIHNpemUudywgc2l6ZS5oLCBpbml0UmVzdWx0KTsKICAgICAgICAgIH07CgogICAgICAgICAgb24od2luZG93LCAicmVzaXplIiwgcmVzaXplSGFuZGxlcik7CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIHJ1bm5pbmcgaW4gYSBTaGlueQogICAgICAgICAgLy8gYXBwLCBidXQgdGhlIHdpZGdldCBpdHNlbGYgaXMgbm90IGEgU2hpbnkgb3V0cHV0LCBidXQKICAgICAgICAgIC8vIHJhdGhlciBhIHNpbXBsZSBzdGF0aWMgd2lkZ2V0LiBPbmUgZXhhbXBsZSBvZiB0aGlzIGlzCiAgICAgICAgICAvLyBhbiBybWFya2Rvd24gZG9jdW1lbnQgdGhhdCBoYXMgcnVudGltZTpzaGlueSBhbmQgd2lkZ2V0CiAgICAgICAgICAvLyB0aGF0IGlzbid0IGluIGEgcmVuZGVyIGZ1bmN0aW9uLiBTaGlueSBvbmx5IGtub3dzIHRvCiAgICAgICAgICAvLyBjYWxsIHJlc2l6ZSBoYW5kbGVycyBmb3IgU2hpbnkgb3V0cHV0cywgbm90IGZvciBzdGF0aWMKICAgICAgICAgIC8vIHdpZGdldHMsIHNvIHdlIGRvIGl0IG91cnNlbHZlcy4KICAgICAgICAgIGlmICh3aW5kb3cualF1ZXJ5KSB7CiAgICAgICAgICAgIHdpbmRvdy5qUXVlcnkoZG9jdW1lbnQpLm9uKAogICAgICAgICAgICAgICJzaG93bi5odG1sd2lkZ2V0cyBzaG93bi5icy50YWIuaHRtbHdpZGdldHMgc2hvd24uYnMuY29sbGFwc2UuaHRtbHdpZGdldHMiLAogICAgICAgICAgICAgIHJlc2l6ZUhhbmRsZXIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgd2luZG93LmpRdWVyeShkb2N1bWVudCkub24oCiAgICAgICAgICAgICAgImhpZGRlbi5odG1sd2lkZ2V0cyBoaWRkZW4uYnMudGFiLmh0bWx3aWRnZXRzIGhpZGRlbi5icy5jb2xsYXBzZS5odG1sd2lkZ2V0cyIsCiAgICAgICAgICAgICAgcmVzaXplSGFuZGxlcgogICAgICAgICAgICApOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgc3BlY2lmaWMgY2FzZSBvZiBpb3NsaWRlcywgd2hpY2gKICAgICAgICAgIC8vIGZsaXBzIHNsaWRlcyBiZXR3ZWVuIGRpc3BsYXk6bm9uZSBhbmQgZGlzcGxheTpibG9jay4KICAgICAgICAgIC8vIElkZWFsbHkgd2Ugd291bGQgbm90IGhhdmUgdG8gaGF2ZSBpb3NsaWRlLXNwZWNpZmljIGNvZGUKICAgICAgICAgIC8vIGhlcmUsIGJ1dCByYXRoZXIgaGF2ZSBpb3NsaWRlcyByYWlzZSBhIGdlbmVyaWMgZXZlbnQsCiAgICAgICAgICAvLyBidXQgdGhlIHJtYXJrZG93biBwYWNrYWdlIGp1c3Qgd2VudCB0byBDUkFOIHNvIHRoZQogICAgICAgICAgLy8gd2luZG93IHRvIGdldHRpbmcgdGhhdCBmaXhlZCBtYXkgYmUgbG9uZy4KICAgICAgICAgIGlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICAgICAgICAvLyBJdCdzIE9LIHRvIGxpbWl0IHRoaXMgdG8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIKICAgICAgICAgICAgLy8gYnJvd3NlcnMgYmVjYXVzZSBpb3NsaWRlcyBpdHNlbGYgb25seSBzdXBwb3J0cwogICAgICAgICAgICAvLyBzdWNoIGJyb3dzZXJzLgogICAgICAgICAgICBvbihkb2N1bWVudCwgInNsaWRlZW50ZXIiLCByZXNpemVIYW5kbGVyKTsKICAgICAgICAgICAgb24oZG9jdW1lbnQsICJzbGlkZWxlYXZlIiwgcmVzaXplSGFuZGxlcik7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgc2NyaXB0RGF0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtkYXRhLWZvcj0nIiArIGVsLmlkICsgIiddW3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nXSIpOwogICAgICAgIGlmIChzY3JpcHREYXRhKSB7CiAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc2NyaXB0RGF0YS50ZXh0Q29udGVudCB8fCBzY3JpcHREYXRhLnRleHQpOwogICAgICAgICAgLy8gUmVzb2x2ZSBzdHJpbmdzIG1hcmtlZCBhcyBqYXZhc2NyaXB0IGxpdGVyYWxzIHRvIG9iamVjdHMKICAgICAgICAgIGlmICghKGRhdGEuZXZhbHMgaW5zdGFuY2VvZiBBcnJheSkpIGRhdGEuZXZhbHMgPSBbZGF0YS5ldmFsc107CiAgICAgICAgICBmb3IgKHZhciBrID0gMDsgZGF0YS5ldmFscyAmJiBrIDwgZGF0YS5ldmFscy5sZW5ndGg7IGsrKykgewogICAgICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuZXZhbHVhdGVTdHJpbmdNZW1iZXIoZGF0YS54LCBkYXRhLmV2YWxzW2tdKTsKICAgICAgICAgIH0KICAgICAgICAgIGJpbmRpbmcucmVuZGVyVmFsdWUoZWwsIGRhdGEueCwgaW5pdFJlc3VsdCk7CiAgICAgICAgICBldmFsQW5kUnVuKGRhdGEuanNIb29rcy5yZW5kZXIsIGluaXRSZXN1bHQsIFtlbCwgZGF0YS54XSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0pOwoKICAgIGludm9rZVBvc3RSZW5kZXJIYW5kbGVycygpOwogIH0KCgogIGZ1bmN0aW9uIGhhc19qUXVlcnkzKCkgewogICAgaWYgKCF3aW5kb3cualF1ZXJ5KSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHZhciAkdmVyc2lvbiA9IHdpbmRvdy5qUXVlcnkuZm4uanF1ZXJ5OwogICAgdmFyICRtYWpvcl92ZXJzaW9uID0gcGFyc2VJbnQoJHZlcnNpb24uc3BsaXQoIi4iKVswXSk7CiAgICByZXR1cm4gJG1ham9yX3ZlcnNpb24gPj0gMzsKICB9CgogIC8qCiAgLyBTaGlueSAxLjQgYnVtcGVkIGpRdWVyeSBmcm9tIDEueCB0byAzLnggd2hpY2ggbWVhbnMgalF1ZXJ5J3MKICAvIG9uLXJlYWR5IGhhbmRsZXIgKGkuZS4sICQoZm4pKSBpcyBub3cgYXN5bmNyb25vdXMgKGkuZS4sIGl0IG5vdwogIC8gcmVhbGx5IG1lYW5zICQoc2V0VGltZW91dChmbikpLgogIC8gaHR0cHM6Ly9qcXVlcnkuY29tL3VwZ3JhZGUtZ3VpZGUvMy4wLyNicmVha2luZy1jaGFuZ2UtZG9jdW1lbnQtcmVhZHktaGFuZGxlcnMtYXJlLW5vdy1hc3luY2hyb25vdXMKICAvCiAgLyBTaW5jZSBTaGlueSB1c2VzICQoKSB0byBzY2hlZHVsZSBpbml0U2hpbnksIHNoaW55Pj0xLjQgY2FsbHMgaW5pdFNoaW55CiAgLyBvbmUgdGljayBsYXRlciB0aGFuIGl0IGRpZCBiZWZvcmUsIHdoaWNoIG1lYW5zIHN0YXRpY1JlbmRlcigpIGlzCiAgLyBjYWxsZWQgcmVuZGVyVmFsdWUoKSBlYXJsaWVyIHRoYW4gKGFkdmFuY2VkKSB3aWRnZXQgYXV0aG9ycyBtaWdodCBiZSBleHBlY3RpbmcuCiAgLyBodHRwczovL2dpdGh1Yi5jb20vcnN0dWRpby9zaGlueS9pc3N1ZXMvMjYzMAogIC8KICAvIEZvciBhIGNvbmNyZXRlIGV4YW1wbGUsIGxlYWZsZXQgaGFzIHNvbWUgbWV0aG9kcyAoZS5nLiwgdXBkYXRlQm91bmRzKQogIC8gd2hpY2ggcmVmZXJlbmNlIFNoaW55IG1ldGhvZHMgcmVnaXN0ZXJlZCBpbiBpbml0U2hpbnkgKGUuZy4sIHNldElucHV0VmFsdWUpLgogIC8gU2luY2UgbGVhZmxldCBpcyBwcml2eSB0byB0aGlzIGxpZmUtY3ljbGUsIGl0IGtub3dzIHRvIHVzZSBzZXRUaW1lb3V0KCkgdG8KICAvIGRlbGF5IGV4ZWN1dGlvbiBvZiB0aG9zZSBtZXRob2RzICh1bnRpbCBTaGlueSBtZXRob2RzIGFyZSByZWFkeSkKICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvYmxvYi8xOGVjOTgxL2phdmFzY3JpcHQvc3JjL2luZGV4LmpzI0wyNjYtTDI2OAogIC8KICAvIElkZWFsbHkgd2lkZ2V0IGF1dGhvcnMgd291bGRuJ3QgbmVlZCB0byB1c2UgdGhpcyBzZXRUaW1lb3V0KCkgaGFjayB0aGF0CiAgLyBsZWFmbGV0IHVzZXMgdG8gY2FsbCBTaGlueSBtZXRob2RzIG9uIGEgc3RhdGljUmVuZGVyKCkuIEluIHRoZSBsb25nIHJ1biwKICAvIHRoZSBsb2dpYyBpbml0U2hpbnkgc2hvdWxkIGJlIGJyb2tlbiB1cCBzbyB0aGF0IG1ldGhvZCByZWdpc3RyYXRpb24gaGFwcGVucwogIC8gcmlnaHQgYXdheSwgYnV0IGJpbmRpbmcgaGFwcGVucyBsYXRlci4KICAqLwogIGZ1bmN0aW9uIG1heWJlU3RhdGljUmVuZGVyTGF0ZXIoKSB7CiAgICBpZiAoc2hpbnlNb2RlICYmIGhhc19qUXVlcnkzKCkpIHsKICAgICAgd2luZG93LmpRdWVyeSh3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyKTsKICAgIH0gZWxzZSB7CiAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgIH0KICB9CgogIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oKSB7CiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBhcmd1bWVudHMuY2FsbGVlLCBmYWxzZSk7CiAgICAgIG1heWJlU3RhdGljUmVuZGVyTGF0ZXIoKTsKICAgIH0sIGZhbHNlKTsKICB9IGVsc2UgaWYgKGRvY3VtZW50LmF0dGFjaEV2ZW50KSB7CiAgICBkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgZnVuY3Rpb24oKSB7CiAgICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAiY29tcGxldGUiKSB7CiAgICAgICAgZG9jdW1lbnQuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsIGFyZ3VtZW50cy5jYWxsZWUpOwogICAgICAgIG1heWJlU3RhdGljUmVuZGVyTGF0ZXIoKTsKICAgICAgfQogICAgfSk7CiAgfQoKCiAgd2luZG93LkhUTUxXaWRnZXRzLmdldEF0dGFjaG1lbnRVcmwgPSBmdW5jdGlvbihkZXBuYW1lLCBrZXkpIHsKICAgIC8vIElmIG5vIGtleSwgZGVmYXVsdCB0byB0aGUgZmlyc3QgaXRlbQogICAgaWYgKHR5cGVvZihrZXkpID09PSAidW5kZWZpbmVkIikKICAgICAga2V5ID0gMTsKCiAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRlcG5hbWUgKyAiLSIgKyBrZXkgKyAiLWF0dGFjaG1lbnQiKTsKICAgIGlmICghbGluaykgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0dGFjaG1lbnQgIiArIGRlcG5hbWUgKyAiLyIgKyBrZXkgKyAiIG5vdCBmb3VuZCBpbiBkb2N1bWVudCIpOwogICAgfQogICAgcmV0dXJuIGxpbmsuZ2V0QXR0cmlidXRlKCJocmVmIik7CiAgfTsKCiAgd2luZG93LkhUTUxXaWRnZXRzLmRhdGFmcmFtZVRvRDMgPSBmdW5jdGlvbihkZikgewogICAgdmFyIG5hbWVzID0gW107CiAgICB2YXIgbGVuZ3RoOwogICAgZm9yICh2YXIgbmFtZSBpbiBkZikgewogICAgICAgIGlmIChkZi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkKICAgICAgICAgICAgbmFtZXMucHVzaChuYW1lKTsKICAgICAgICBpZiAodHlwZW9mKGRmW25hbWVdKSAhPT0gIm9iamVjdCIgfHwgdHlwZW9mKGRmW25hbWVdLmxlbmd0aCkgPT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxsIGZpZWxkcyBtdXN0IGJlIGFycmF5cyIpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mKGxlbmd0aCkgIT09ICJ1bmRlZmluZWQiICYmIGxlbmd0aCAhPT0gZGZbbmFtZV0ubGVuZ3RoKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxsIGZpZWxkcyBtdXN0IGJlIGFycmF5cyBvZiB0aGUgc2FtZSBsZW5ndGgiKTsKICAgICAgICB9CiAgICAgICAgbGVuZ3RoID0gZGZbbmFtZV0ubGVuZ3RoOwogICAgfQogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHZhciBpdGVtOwogICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgbGVuZ3RoOyByb3crKykgewogICAgICAgIGl0ZW0gPSB7fTsKICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCBuYW1lcy5sZW5ndGg7IGNvbCsrKSB7CiAgICAgICAgICAgIGl0ZW1bbmFtZXNbY29sXV0gPSBkZltuYW1lc1tjb2xdXVtyb3ddOwogICAgICAgIH0KICAgICAgICByZXN1bHRzLnB1c2goaXRlbSk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9OwoKICB3aW5kb3cuSFRNTFdpZGdldHMudHJhbnNwb3NlQXJyYXkyRCA9IGZ1bmN0aW9uKGFycmF5KSB7CiAgICAgIGlmIChhcnJheS5sZW5ndGggPT09IDApIHJldHVybiBhcnJheTsKICAgICAgdmFyIG5ld0FycmF5ID0gYXJyYXlbMF0ubWFwKGZ1bmN0aW9uKGNvbCwgaSkgewogICAgICAgICAgcmV0dXJuIGFycmF5Lm1hcChmdW5jdGlvbihyb3cpIHsKICAgICAgICAgICAgICByZXR1cm4gcm93W2ldCiAgICAgICAgICB9KQogICAgICB9KTsKICAgICAgcmV0dXJuIG5ld0FycmF5OwogIH07CiAgLy8gU3BsaXQgdmFsdWUgYXQgc3BsaXRDaGFyLCBidXQgYWxsb3cgc3BsaXRDaGFyIHRvIGJlIGVzY2FwZWQKICAvLyB1c2luZyBlc2NhcGVDaGFyLiBBbnkgb3RoZXIgY2hhcmFjdGVycyBlc2NhcGVkIGJ5IGVzY2FwZUNoYXIKICAvLyB3aWxsIGJlIGluY2x1ZGVkIGFzIHVzdWFsIChpbmNsdWRpbmcgZXNjYXBlQ2hhciBpdHNlbGYpLgogIGZ1bmN0aW9uIHNwbGl0V2l0aEVzY2FwZSh2YWx1ZSwgc3BsaXRDaGFyLCBlc2NhcGVDaGFyKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdmFyIGVzY2FwZU1vZGUgPSBmYWxzZTsKICAgIHZhciBjdXJyZW50UmVzdWx0ID0gIiI7CiAgICBmb3IgKHZhciBwb3MgPSAwOyBwb3MgPCB2YWx1ZS5sZW5ndGg7IHBvcysrKSB7CiAgICAgIGlmICghZXNjYXBlTW9kZSkgewogICAgICAgIGlmICh2YWx1ZVtwb3NdID09PSBzcGxpdENoYXIpIHsKICAgICAgICAgIHJlc3VsdHMucHVzaChjdXJyZW50UmVzdWx0KTsKICAgICAgICAgIGN1cnJlbnRSZXN1bHQgPSAiIjsKICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW3Bvc10gPT09IGVzY2FwZUNoYXIpIHsKICAgICAgICAgIGVzY2FwZU1vZGUgPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjdXJyZW50UmVzdWx0ICs9IHZhbHVlW3Bvc107CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGN1cnJlbnRSZXN1bHQgKz0gdmFsdWVbcG9zXTsKICAgICAgICBlc2NhcGVNb2RlID0gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIGlmIChjdXJyZW50UmVzdWx0ICE9PSAiIikgewogICAgICByZXN1bHRzLnB1c2goY3VycmVudFJlc3VsdCk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9CiAgLy8gRnVuY3Rpb24gYXV0aG9yZWQgYnkgWWlodWkvSkogQWxsYWlyZQogIHdpbmRvdy5IVE1MV2lkZ2V0cy5ldmFsdWF0ZVN0cmluZ01lbWJlciA9IGZ1bmN0aW9uKG8sIG1lbWJlcikgewogICAgdmFyIHBhcnRzID0gc3BsaXRXaXRoRXNjYXBlKG1lbWJlciwgJy4nLCAnXFwnKTsKICAgIGZvciAodmFyIGkgPSAwLCBsID0gcGFydHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CiAgICAgIHZhciBwYXJ0ID0gcGFydHNbaV07CiAgICAgIC8vIHBhcnQgbWF5IGJlIGEgY2hhcmFjdGVyIG9yICdudW1lcmljJyBtZW1iZXIgbmFtZQogICAgICBpZiAobyAhPT0gbnVsbCAmJiB0eXBlb2YgbyA9PT0gIm9iamVjdCIgJiYgcGFydCBpbiBvKSB7CiAgICAgICAgaWYgKGkgPT0gKGwgLSAxKSkgeyAvLyBpZiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSB0aGVuIGV2YWx1bGF0ZQogICAgICAgICAgaWYgKHR5cGVvZiBvW3BhcnRdID09PSAic3RyaW5nIikKICAgICAgICAgICAgb1twYXJ0XSA9IHRyeUV2YWwob1twYXJ0XSk7CiAgICAgICAgfSBlbHNlIHsgLy8gb3RoZXJ3aXNlIGNvbnRpbnVlIHRvIG5leHQgZW1iZWRkZWQgb2JqZWN0CiAgICAgICAgICBvID0gb1twYXJ0XTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9OwoKICAvLyBSZXRyaWV2ZSB0aGUgSFRNTFdpZGdldCBpbnN0YW5jZSAoaS5lLiB0aGUgcmV0dXJuIHZhbHVlIG9mIGFuCiAgLy8gSFRNTFdpZGdldCBiaW5kaW5nJ3MgaW5pdGlhbGl6ZSgpIG9yIGZhY3RvcnkoKSBmdW5jdGlvbikKICAvLyBhc3NvY2lhdGVkIHdpdGggYW4gZWxlbWVudCwgb3IgbnVsbCBpZiBub25lLgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRJbnN0YW5jZSA9IGZ1bmN0aW9uKGVsKSB7CiAgICByZXR1cm4gZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpOwogIH07CgogIC8vIEZpbmRzIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBzY29wZSB0aGF0IG1hdGNoZXMgdGhlIHNlbGVjdG9yLAogIC8vIGFuZCByZXR1cm5zIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlIChpLmUuIHRoZSByZXR1cm4gdmFsdWUgb2YKICAvLyBhbiBIVE1MV2lkZ2V0IGJpbmRpbmcncyBpbml0aWFsaXplKCkgb3IgZmFjdG9yeSgpIGZ1bmN0aW9uKQogIC8vIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGVsZW1lbnQsIGlmIGFueS4gSWYgbm8gZWxlbWVudCBtYXRjaGVzIHRoZQogIC8vIHNlbGVjdG9yLCBvciB0aGUgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCBoYXMgbm8gSFRNTFdpZGdldAogIC8vIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCBpdCwgdGhlbiBudWxsIGlzIHJldHVybmVkLgogIC8vCiAgLy8gVGhlIHNjb3BlIGFyZ3VtZW50IGlzIG9wdGlvbmFsLCBhbmQgZGVmYXVsdHMgdG8gd2luZG93LmRvY3VtZW50LgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5maW5kID0gZnVuY3Rpb24oc2NvcGUsIHNlbGVjdG9yKSB7CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgIHNlbGVjdG9yID0gc2NvcGU7CiAgICAgIHNjb3BlID0gZG9jdW1lbnQ7CiAgICB9CgogICAgdmFyIGVsID0gc2NvcGUucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CiAgICBpZiAoZWwgPT09IG51bGwpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd2luZG93LkhUTUxXaWRnZXRzLmdldEluc3RhbmNlKGVsKTsKICAgIH0KICB9OwoKICAvLyBGaW5kcyBhbGwgZWxlbWVudHMgaW4gdGhlIHNjb3BlIHRoYXQgbWF0Y2ggdGhlIHNlbGVjdG9yLCBhbmQKICAvLyByZXR1cm5zIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlcyAoaS5lLiB0aGUgcmV0dXJuIHZhbHVlcyBvZgogIC8vIGFuIEhUTUxXaWRnZXQgYmluZGluZydzIGluaXRpYWxpemUoKSBvciBmYWN0b3J5KCkgZnVuY3Rpb24pCiAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBlbGVtZW50cywgaW4gYW4gYXJyYXkuIElmIGVsZW1lbnRzIHRoYXQKICAvLyBtYXRjaCB0aGUgc2VsZWN0b3IgZG9uJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIEhUTUxXaWRnZXQKICAvLyBpbnN0YW5jZSwgdGhlIHJldHVybmVkIGFycmF5IHdpbGwgY29udGFpbiBudWxscy4KICAvLwogIC8vIFRoZSBzY29wZSBhcmd1bWVudCBpcyBvcHRpb25hbCwgYW5kIGRlZmF1bHRzIHRvIHdpbmRvdy5kb2N1bWVudC4KICB3aW5kb3cuSFRNTFdpZGdldHMuZmluZEFsbCA9IGZ1bmN0aW9uKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMSkgewogICAgICBzZWxlY3RvciA9IHNjb3BlOwogICAgICBzY29wZSA9IGRvY3VtZW50OwogICAgfQoKICAgIHZhciBub2RlcyA9IHNjb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpOwogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKICAgICAgcmVzdWx0cy5wdXNoKHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRJbnN0YW5jZShub2Rlc1tpXSkpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfTsKCiAgdmFyIHBvc3RSZW5kZXJIYW5kbGVycyA9IFtdOwogIGZ1bmN0aW9uIGludm9rZVBvc3RSZW5kZXJIYW5kbGVycygpIHsKICAgIHdoaWxlIChwb3N0UmVuZGVySGFuZGxlcnMubGVuZ3RoKSB7CiAgICAgIHZhciBoYW5kbGVyID0gcG9zdFJlbmRlckhhbmRsZXJzLnNoaWZ0KCk7CiAgICAgIGlmIChoYW5kbGVyKSB7CiAgICAgICAgaGFuZGxlcigpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZWdpc3RlciB0aGUgZ2l2ZW4gY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBhZnRlciB0aGUKICAvLyBuZXh0IHRpbWUgc3RhdGljIHdpZGdldHMgYXJlIHJlbmRlcmVkLgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlciA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgICBwb3N0UmVuZGVySGFuZGxlcnMucHVzaChjYWxsYmFjayk7CiAgfTsKCiAgLy8gVGFrZXMgYSBuZXctc3R5bGUgaW5zdGFuY2UtYm91bmQgZGVmaW5pdGlvbiwgYW5kIHJldHVybnMgYW4KICAvLyBvbGQtc3R5bGUgY2xhc3MtYm91bmQgZGVmaW5pdGlvbi4gVGhpcyBzYXZlcyB1cyBmcm9tIGhhdmluZwogIC8vIHRvIHJld3JpdGUgYWxsIHRoZSBsb2dpYyBpbiB0aGlzIGZpbGUgdG8gYWNjb21vZGF0ZSBib3RoCiAgLy8gdHlwZXMgb2YgZGVmaW5pdGlvbnMuCiAgZnVuY3Rpb24gY3JlYXRlTGVnYWN5RGVmaW5pdGlvbkFkYXB0ZXIoZGVmbikgewogICAgdmFyIHJlc3VsdCA9IHsKICAgICAgbmFtZTogZGVmbi5uYW1lLAogICAgICB0eXBlOiBkZWZuLnR5cGUsCiAgICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAgICAgcmV0dXJuIGRlZm4uZmFjdG9yeShlbCwgd2lkdGgsIGhlaWdodCk7CiAgICAgIH0sCiAgICAgIHJlbmRlclZhbHVlOiBmdW5jdGlvbihlbCwgeCwgaW5zdGFuY2UpIHsKICAgICAgICByZXR1cm4gaW5zdGFuY2UucmVuZGVyVmFsdWUoeCk7CiAgICAgIH0sCiAgICAgIHJlc2l6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQsIGluc3RhbmNlKSB7CiAgICAgICAgcmV0dXJuIGluc3RhbmNlLnJlc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKICAgICAgfQogICAgfTsKCiAgICBpZiAoZGVmbi5maW5kKQogICAgICByZXN1bHQuZmluZCA9IGRlZm4uZmluZDsKICAgIGlmIChkZWZuLnJlbmRlckVycm9yKQogICAgICByZXN1bHQucmVuZGVyRXJyb3IgPSBkZWZuLnJlbmRlckVycm9yOwogICAgaWYgKGRlZm4uY2xlYXJFcnJvcikKICAgICAgcmVzdWx0LmNsZWFyRXJyb3IgPSBkZWZuLmNsZWFyRXJyb3I7CgogICAgcmV0dXJuIHJlc3VsdDsKICB9Cn0pKCk7Cgo="></script>
<link href="data:text/css;charset=utf-8,%2Edt%2Dcrosstalk%2Dfade%20%7B%0Aopacity%3A%200%2E2%3B%0A%7D%0Ahtml%20body%20div%2EDTS%20div%2EdataTables%5FscrollBody%20%7B%0Abackground%3A%20none%3B%0A%7D%0A%0Atable%2EdataTable%20%7B%0Adisplay%3A%20table%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewoKLy8gc29tZSBoZWxwZXIgZnVuY3Rpb25zOiB1c2luZyBhIGdsb2JhbCBvYmplY3QgRFRXaWRnZXQgc28gdGhhdCBpdCBjYW4gYmUgdXNlZAovLyBpbiBKUygpIGNvZGUsIGUuZy4gZGF0YXRhYmxlKG9wdGlvbnMgPSBsaXN0KGZvbyA9IEpTKCdjb2RlJykpKTsgdW5saWtlIFIncwovLyBkeW5hbWljIHNjb3BpbmcsIHdoZW4gJ2NvZGUnIGlzIGV2YWwoKSdlZCwgSmF2YVNjcmlwdCBkb2VzIG5vdCBrbm93IG9iamVjdHMKLy8gZnJvbSB0aGUgInBhcmVudCBmcmFtZSIsIGUuZy4gSlMoJ0RUV2lkZ2V0Jykgd2lsbCBub3Qgd29yayB1bmxlc3MgaXQgd2FzIG1hZGUKLy8gYSBnbG9iYWwgb2JqZWN0CnZhciBEVFdpZGdldCA9IHt9OwoKLy8gMTIzNDU2NjY2Ljc4OTAgLT4gMTIzLDQ1Niw2NjYuNzg5MAp2YXIgbWFya0ludGVydmFsID0gZnVuY3Rpb24oZCwgZGlnaXRzLCBpbnRlcnZhbCwgbWFyaywgZGVjTWFyaywgcHJlY2lzaW9uKSB7CiAgeCA9IHByZWNpc2lvbiA/IGQudG9QcmVjaXNpb24oZGlnaXRzKSA6IGQudG9GaXhlZChkaWdpdHMpOwogIGlmICghL14tP1tcZC5dKyQvLnRlc3QoeCkpIHJldHVybiB4OwogIHZhciB4diA9IHguc3BsaXQoJy4nKTsKICBpZiAoeHYubGVuZ3RoID4gMikgcmV0dXJuIHg7ICAvLyBzaG91bGQgaGF2ZSBhdCBtb3N0IG9uZSBkZWNpbWFsIHBvaW50CiAgeHZbMF0gPSB4dlswXS5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcQig/PShcXGR7JyArIGludGVydmFsICsgJ30pKyg/IVxcZCkpJywgJ2cnKSwgbWFyayk7CiAgcmV0dXJuIHh2LmpvaW4oZGVjTWFyayk7Cn07CgpEVFdpZGdldC5mb3JtYXRDdXJyZW5jeSA9IGZ1bmN0aW9uKGRhdGEsIGN1cnJlbmN5LCBkaWdpdHMsIGludGVydmFsLCBtYXJrLCBkZWNNYXJrLCBiZWZvcmUpIHsKICB2YXIgZCA9IHBhcnNlRmxvYXQoZGF0YSk7CiAgaWYgKGlzTmFOKGQpKSByZXR1cm4gJyc7CiAgdmFyIHJlcyA9IG1hcmtJbnRlcnZhbChkLCBkaWdpdHMsIGludGVydmFsLCBtYXJrLCBkZWNNYXJrKTsKICByZXMgPSBiZWZvcmUgPyAoL14tLy50ZXN0KHJlcykgPyAnLScgKyBjdXJyZW5jeSArIHJlcy5yZXBsYWNlKC9eLS8sICcnKSA6IGN1cnJlbmN5ICsgcmVzKSA6CiAgICByZXMgKyBjdXJyZW5jeTsKICByZXR1cm4gcmVzOwp9OwoKRFRXaWRnZXQuZm9ybWF0U3RyaW5nID0gZnVuY3Rpb24oZGF0YSwgcHJlZml4LCBzdWZmaXgpIHsKICB2YXIgZCA9IGRhdGE7CiAgaWYgKGQgPT09IG51bGwpIHJldHVybiAnJzsKICByZXR1cm4gcHJlZml4ICsgZCArIHN1ZmZpeDsKfTsKCkRUV2lkZ2V0LmZvcm1hdFBlcmNlbnRhZ2UgPSBmdW5jdGlvbihkYXRhLCBkaWdpdHMsIGludGVydmFsLCBtYXJrLCBkZWNNYXJrKSB7CiAgdmFyIGQgPSBwYXJzZUZsb2F0KGRhdGEpOwogIGlmIChpc05hTihkKSkgcmV0dXJuICcnOwogIHJldHVybiBtYXJrSW50ZXJ2YWwoZCAqIDEwMCwgZGlnaXRzLCBpbnRlcnZhbCwgbWFyaywgZGVjTWFyaykgKyAnJSc7Cn07CgpEVFdpZGdldC5mb3JtYXRSb3VuZCA9IGZ1bmN0aW9uKGRhdGEsIGRpZ2l0cywgaW50ZXJ2YWwsIG1hcmssIGRlY01hcmspIHsKICB2YXIgZCA9IHBhcnNlRmxvYXQoZGF0YSk7CiAgaWYgKGlzTmFOKGQpKSByZXR1cm4gJyc7CiAgcmV0dXJuIG1hcmtJbnRlcnZhbChkLCBkaWdpdHMsIGludGVydmFsLCBtYXJrLCBkZWNNYXJrKTsKfTsKCkRUV2lkZ2V0LmZvcm1hdFNpZ25pZiA9IGZ1bmN0aW9uKGRhdGEsIGRpZ2l0cywgaW50ZXJ2YWwsIG1hcmssIGRlY01hcmspIHsKICB2YXIgZCA9IHBhcnNlRmxvYXQoZGF0YSk7CiAgaWYgKGlzTmFOKGQpKSByZXR1cm4gJyc7CiAgcmV0dXJuIG1hcmtJbnRlcnZhbChkLCBkaWdpdHMsIGludGVydmFsLCBtYXJrLCBkZWNNYXJrLCB0cnVlKTsKfTsKCkRUV2lkZ2V0LmZvcm1hdERhdGUgPSBmdW5jdGlvbihkYXRhLCBtZXRob2QsIHBhcmFtcykgewogIHZhciBkID0gZGF0YTsKICBpZiAoZCA9PT0gbnVsbCkgcmV0dXJuICcnOwogIC8vIChuZXcgRGF0ZSgnMjAxNS0xMC0yOCcpKS50b0RhdGVTdHJpbmcoKSBtYXkgcmV0dXJuIDIwMTUtMTAtMjcgYmVjYXVzZSB0aGUKICAvLyBhY3R1YWwgdGltZSBjcmVhdGVkIGNvdWxkIGJlIGxpa2UgJ1R1ZSBPY3QgMjcgMjAxNSAxOTowMDowMCBHTVQtMDUwMCAoQ0RUKScsCiAgLy8gaS5lLiB0aGUgZGF0ZS1vbmx5IHN0cmluZyBpcyB0cmVhdGVkIGFzIFVUQyB0aW1lIGluc3RlYWQgb2YgbG9jYWwgdGltZQogIGlmICgobWV0aG9kID09PSAndG9EYXRlU3RyaW5nJyB8fCBtZXRob2QgPT09ICd0b0xvY2FsZURhdGVTdHJpbmcnKSAmJiAvXlxkezQsfVxEXGR7Mn1cRFxkezJ9JC8udGVzdChkKSkgewogICAgZCA9IGQuc3BsaXQoL1xELyk7CiAgICBkID0gbmV3IERhdGUoZFswXSwgZFsxXSAtIDEsIGRbMl0pOwogIH0gZWxzZSB7CiAgICBkID0gbmV3IERhdGUoZCk7CiAgfQogIHJldHVybiBkW21ldGhvZF0uYXBwbHkoZCwgcGFyYW1zKTsKfTsKCndpbmRvdy5EVFdpZGdldCA9IERUV2lkZ2V0OwoKdmFyIHRyYW5zcG9zZUFycmF5MkQgPSBmdW5jdGlvbihhKSB7CiAgcmV0dXJuIGEubGVuZ3RoID09PSAwID8gYSA6IEhUTUxXaWRnZXRzLnRyYW5zcG9zZUFycmF5MkQoYSk7Cn07Cgp2YXIgY3Jvc3N0YWxrUGx1Z2luc0luc3RhbGxlZCA9IGZhbHNlOwoKZnVuY3Rpb24gbWF5YmVJbnN0YWxsQ3Jvc3N0YWxrUGx1Z2lucygpIHsKICBpZiAoY3Jvc3N0YWxrUGx1Z2luc0luc3RhbGxlZCkKICAgIHJldHVybjsKICBjcm9zc3RhbGtQbHVnaW5zSW5zdGFsbGVkID0gdHJ1ZTsKCiAgJC5mbi5kYXRhVGFibGUuZXh0LmFmbkZpbHRlcmluZy5wdXNoKAogICAgZnVuY3Rpb24ob1NldHRpbmdzLCBhRGF0YSwgaURhdGFJbmRleCkgewogICAgICB2YXIgY3RmaWx0ZXIgPSBvU2V0dGluZ3MublRhYmxlLmN0ZmlsdGVyOwogICAgICBpZiAoY3RmaWx0ZXIgJiYgIWN0ZmlsdGVyW2lEYXRhSW5kZXhdKQogICAgICAgIHJldHVybiBmYWxzZTsKCiAgICAgIHZhciBjdHNlbGVjdCA9IG9TZXR0aW5ncy5uVGFibGUuY3RzZWxlY3Q7CiAgICAgIGlmIChjdHNlbGVjdCAmJiAhY3RzZWxlY3RbaURhdGFJbmRleF0pCiAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgKTsKfQoKSFRNTFdpZGdldHMud2lkZ2V0KHsKICBuYW1lOiAiZGF0YXRhYmxlcyIsCiAgdHlwZTogIm91dHB1dCIsCiAgcmVuZGVyT25OdWxsVmFsdWU6IHRydWUsCiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgICQoZWwpLmh0bWwoJyZuYnNwOycpOwogICAgcmV0dXJuIHsKICAgICAgZGF0YTogbnVsbCwKICAgICAgY3RmaWx0ZXJIYW5kbGU6IG5ldyBjcm9zc3RhbGsuRmlsdGVySGFuZGxlKCksCiAgICAgIGN0ZmlsdGVyU3Vic2NyaXB0aW9uOiBudWxsLAogICAgICBjdHNlbGVjdEhhbmRsZTogbmV3IGNyb3NzdGFsay5TZWxlY3Rpb25IYW5kbGUoKSwKICAgICAgY3RzZWxlY3RTdWJzY3JpcHRpb246IG51bGwKICAgIH07CiAgfSwKICByZW5kZXJWYWx1ZTogZnVuY3Rpb24oZWwsIGRhdGEsIGluc3RhbmNlKSB7CiAgICBpZiAoZWwub2Zmc2V0V2lkdGggPT09IDAgfHwgZWwub2Zmc2V0SGVpZ2h0ID09PSAwKSB7CiAgICAgIGluc3RhbmNlLmRhdGEgPSBkYXRhOwogICAgICByZXR1cm47CiAgICB9CiAgICBpbnN0YW5jZS5kYXRhID0gbnVsbDsKICAgIHZhciAkZWwgPSAkKGVsKTsKICAgICRlbC5lbXB0eSgpOwoKICAgIGlmIChkYXRhID09PSBudWxsKSB7CiAgICAgICRlbC5hcHBlbmQoJyZuYnNwOycpOwogICAgICAvLyBjbGVhciBwcmV2aW91cyBTaGlueSBpbnB1dHMgKGlmIGFueSkKICAgICAgZm9yICh2YXIgaSBpbiBpbnN0YW5jZS5jbGVhcklucHV0cykgaW5zdGFuY2UuY2xlYXJJbnB1dHNbaV0oKTsKICAgICAgaW5zdGFuY2UuY2xlYXJJbnB1dHMgPSB7fTsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIHZhciBjcm9zc3RhbGtPcHRpb25zID0gZGF0YS5jcm9zc3RhbGtPcHRpb25zOwogICAgaWYgKCFjcm9zc3RhbGtPcHRpb25zKSBjcm9zc3RhbGtPcHRpb25zID0gewogICAgICAna2V5JzogbnVsbCwgJ2dyb3VwJzogbnVsbAogICAgfTsKICAgIGlmIChjcm9zc3RhbGtPcHRpb25zLmdyb3VwKSB7CiAgICAgIG1heWJlSW5zdGFsbENyb3NzdGFsa1BsdWdpbnMoKTsKICAgICAgaW5zdGFuY2UuY3RmaWx0ZXJIYW5kbGUuc2V0R3JvdXAoY3Jvc3N0YWxrT3B0aW9ucy5ncm91cCk7CiAgICAgIGluc3RhbmNlLmN0c2VsZWN0SGFuZGxlLnNldEdyb3VwKGNyb3NzdGFsa09wdGlvbnMuZ3JvdXApOwogICAgfQoKICAgIC8vIElmIHdlIGFyZSBpbiBhIGZsZXhkYXNoYm9hcmQgc2Nyb2xsIGxheW91dCB0aGVuIHdlOgogICAgLy8gIChhKSBBbHdheXMgd2FudCB0byB1c2UgcGFnaW5hdGlvbiAob3RoZXJ3aXNlIHdlJ2xsIGhhdmUKICAgIC8vICAgICAgYSAiZG91YmxlIHNjcm9sbCBiYXIiIGVmZmVjdCBvbiB0aGUgcGhvbmUpOyBhbmQKICAgIC8vICAoYikgTmV2ZXIgd2FudCB0byBmaWxsIHRoZSBjb250YWluZXIgKHdlIHdhbnQgdGhlIHBhZ2luYXRpb24KICAgIC8vICAgICAgbGV2ZWwgdG8gZGV0ZXJtaW5lIHRoZSBzaXplIG9mIHRoZSBjb250YWluZXIpCiAgICBpZiAod2luZG93LkZsZXhEYXNoYm9hcmQgJiYgIXdpbmRvdy5GbGV4RGFzaGJvYXJkLmlzRmlsbFBhZ2UoKSkgewogICAgICBkYXRhLm9wdGlvbnMuYlBhZ2luYXRlID0gdHJ1ZTsKICAgICAgZGF0YS5maWxsQ29udGFpbmVyID0gZmFsc2U7CiAgICB9CgogICAgLy8gaWYgd2UgYXJlIGluIHRoZSB2aWV3ZXIgdGhlbiB3ZSBhbHdheXMgd2FudCB0byBmaWxsQ29udGFpbmVyIGFuZAogICAgLy8gYW5kIGF1dG9IaWRlTmF2aWdhdGlvbiAodW5sZXNzIHRoZSB1c2VyIGhhcyBleHBsaWNpdGx5IHNldCB0aGVzZSkKICAgIGlmICh3aW5kb3cuSFRNTFdpZGdldHMudmlld2VyTW9kZSkgewogICAgICBpZiAoIWRhdGEuaGFzT3duUHJvcGVydHkoImZpbGxDb250YWluZXIiKSkKICAgICAgICBkYXRhLmZpbGxDb250YWluZXIgPSB0cnVlOwogICAgICBpZiAoIWRhdGEuaGFzT3duUHJvcGVydHkoImF1dG9IaWRlTmF2aWdhdGlvbiIpKQogICAgICAgIGRhdGEuYXV0b0hpZGVOYXZpZ2F0aW9uID0gdHJ1ZTsKICAgIH0KCiAgICAvLyBwcm9wYWdhdGUgZmlsbENvbnRhaW5lciB0byBpbnN0YW5jZSAoc28gd2UgaGF2ZSBpdCBpbiByZXNpemUpCiAgICBpbnN0YW5jZS5maWxsQ29udGFpbmVyID0gZGF0YS5maWxsQ29udGFpbmVyOwoKICAgIHZhciBjZWxscyA9IGRhdGEuZGF0YTsKCiAgICBpZiAoY2VsbHMgaW5zdGFuY2VvZiBBcnJheSkgY2VsbHMgPSB0cmFuc3Bvc2VBcnJheTJEKGNlbGxzKTsKCiAgICAkZWwuYXBwZW5kKGRhdGEuY29udGFpbmVyKTsKICAgIHZhciAkdGFibGUgPSAkZWwuZmluZCgndGFibGUnKTsKICAgIGlmIChkYXRhLmNsYXNzKSAkdGFibGUuYWRkQ2xhc3MoZGF0YS5jbGFzcyk7CiAgICBpZiAoZGF0YS5jYXB0aW9uKSAkdGFibGUucHJlcGVuZChkYXRhLmNhcHRpb24pOwoKICAgIGlmICghZGF0YS5zZWxlY3Rpb24pIGRhdGEuc2VsZWN0aW9uID0gewogICAgICBtb2RlOiAnbm9uZScsIHNlbGVjdGVkOiBudWxsLCB0YXJnZXQ6ICdyb3cnLCBzZWxlY3RhYmxlOiBudWxsCiAgICB9OwogICAgaWYgKEhUTUxXaWRnZXRzLnNoaW55TW9kZSAmJiBkYXRhLnNlbGVjdGlvbi5tb2RlICE9PSAnbm9uZScgJiYKICAgICAgICBkYXRhLnNlbGVjdGlvbi50YXJnZXQgPT09ICdyb3crY29sdW1uJykgewogICAgICBpZiAoJHRhYmxlLmNoaWxkcmVuKCd0Zm9vdCcpLmxlbmd0aCA9PT0gMCkgewogICAgICAgICR0YWJsZS5hcHBlbmQoJCgnPHRmb290PicpKTsKICAgICAgICAkdGFibGUuZmluZCgndGhlYWQgdHInKS5jbG9uZSgpLmFwcGVuZFRvKCR0YWJsZS5maW5kKCd0Zm9vdCcpKTsKICAgICAgfQogICAgfQoKICAgIC8vIGNvbHVtbiBmaWx0ZXJzCiAgICB2YXIgZmlsdGVyUm93OwogICAgc3dpdGNoIChkYXRhLmZpbHRlcikgewogICAgICBjYXNlICd0b3AnOgogICAgICAgICR0YWJsZS5jaGlsZHJlbigndGhlYWQnKS5hcHBlbmQoZGF0YS5maWx0ZXJIVE1MKTsKICAgICAgICBmaWx0ZXJSb3cgPSAkdGFibGUuZmluZCgndGhlYWQgdHI6bGFzdCB0ZCcpOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlICdib3R0b20nOgogICAgICAgIGlmICgkdGFibGUuY2hpbGRyZW4oJ3Rmb290JykubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAkdGFibGUuYXBwZW5kKCQoJzx0Zm9vdD4nKSk7CiAgICAgICAgfQogICAgICAgICR0YWJsZS5jaGlsZHJlbigndGZvb3QnKS5wcmVwZW5kKGRhdGEuZmlsdGVySFRNTCk7CiAgICAgICAgZmlsdGVyUm93ID0gJHRhYmxlLmZpbmQoJ3Rmb290IHRyOmZpcnN0IHRkJyk7CiAgICAgICAgYnJlYWs7CiAgICB9CgogICAgdmFyIG9wdGlvbnMgPSB7IHNlYXJjaERlbGF5OiAxMDAwIH07CiAgICBpZiAoY2VsbHMgIT09IG51bGwpICQuZXh0ZW5kKG9wdGlvbnMsIHsKICAgICAgZGF0YTogY2VsbHMKICAgIH0pOwoKICAgIC8vIG9wdGlvbnMgZm9yIGZpbGxDb250YWluZXIKICAgIHZhciBib290c3RyYXBBY3RpdmUgPSB0eXBlb2YoJC5mbi5wb3BvdmVyKSAhPSAndW5kZWZpbmVkJzsKICAgIGlmIChpbnN0YW5jZS5maWxsQ29udGFpbmVyKSB7CgogICAgICAvLyBmb3JjZSBzY3JvbGxYL3Njcm9sbFkgYW5kIHR1cm4gb2ZmIGF1dG9XaWR0aAogICAgICBvcHRpb25zLnNjcm9sbFggPSB0cnVlOwogICAgICBvcHRpb25zLnNjcm9sbFkgPSAiMTAwcHgiOyAvLyBjYW4gYmUgYW55IHZhbHVlLCB3ZSdsbCBhZGp1c3QgYmVsb3cKCiAgICAgIC8vIGlmIHdlIGFyZW4ndCBwYWdpbmF0aW5nIHRoZW4gbW92ZSBhcm91bmQgdGhlIGluZm8vZmlsdGVyIGNvbnRyb2xzCiAgICAgIC8vIHRvIHNhdmUgc3BhY2UgYXQgdGhlIGJvdHRvbSBhbmQgcmVwaHJhc2UgdGhlIGluZm8gY2FsbGJhY2sKICAgICAgaWYgKGRhdGEub3B0aW9ucy5iUGFnaW5hdGUgPT09IGZhbHNlKSB7CgogICAgICAgIC8vIHdlIGtub3cgaG93IHRvIGRvIHRoaXMgY2xlYW5seSBmb3IgYm9vdHN0cmFwLCBub3Qgc28gbXVjaAogICAgICAgIC8vIGZvciBvdGhlciB0aGVtZXMvbGF5b3V0cwogICAgICAgIGlmIChib290c3RyYXBBY3RpdmUpIHsKICAgICAgICAgIG9wdGlvbnMuZG9tID0gIjwncm93JzwnY29sLXNtLTQnaT48J2NvbC1zbS04J2Y+PiIgKwogICAgICAgICAgICAgICAgICAgICAgICAiPCdyb3cnPCdjb2wtc20tMTIndHI+PiI7CiAgICAgICAgfQoKICAgICAgICBvcHRpb25zLmZuSW5mb0NhbGxiYWNrID0gZnVuY3Rpb24ob1NldHRpbmdzLCBpU3RhcnQsIGlFbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpTWF4LCBpVG90YWwsIHNQcmUpIHsKICAgICAgICAgIHJldHVybiBOdW1iZXIoaVRvdGFsKS50b0xvY2FsZVN0cmluZygpICsgIiByZWNvcmRzIjsKICAgICAgICB9OwogICAgICB9CiAgICB9CgogICAgLy8gYXV0byBoaWRlIG5hdmlnYXRpb24gaWYgcmVxdWVzdGVkCiAgICBpZiAoZGF0YS5hdXRvSGlkZU5hdmlnYXRpb24gPT09IHRydWUpIHsKICAgICAgaWYgKGJvb3RzdHJhcEFjdGl2ZSAmJiBkYXRhLm9wdGlvbnMuYlBhZ2luYXRlICE9PSBmYWxzZSkgewogICAgICAgIC8vIHN0cmlwIGFsbCBuYXYgaWYgbGVuZ3RoID49IGNlbGxzCiAgICAgICAgaWYgKChjZWxscyBpbnN0YW5jZW9mIEFycmF5KSAmJiBkYXRhLm9wdGlvbnMuaURpc3BsYXlMZW5ndGggPj0gY2VsbHMubGVuZ3RoKQogICAgICAgICAgb3B0aW9ucy5kb20gPSAiPCdyb3cnPCdjb2wtc20tMTIndHI+PiI7CiAgICAgICAgLy8gYWx0ZXJuYXRpdmVseSBsZWFuIHRoaW5ncyBvdXQgZm9yIGZsZXhkYXNoYm9hcmQgbW9iaWxlIHBvcnRyYWl0CiAgICAgICAgZWxzZSBpZiAod2luZG93LkZsZXhEYXNoYm9hcmQgJiYgd2luZG93LkZsZXhEYXNoYm9hcmQuaXNNb2JpbGVQaG9uZSgpKQogICAgICAgICAgb3B0aW9ucy5kb20gPSAiPCdyb3cnPCdjb2wtc20tMTInZj4+IiArCiAgICAgICAgICAgICAgICAgICAgICAgICI8J3Jvdyc8J2NvbC1zbS0xMid0cj4+IiAgKwogICAgICAgICAgICAgICAgICAgICAgICAiPCdyb3cnPCdjb2wtc20tMTIncD4+IjsKICAgICAgfQogICAgfQoKICAgICQuZXh0ZW5kKHRydWUsIG9wdGlvbnMsIGRhdGEub3B0aW9ucyB8fCB7fSk7CgogICAgdmFyIHNlYXJjaENvbHMgPSBvcHRpb25zLnNlYXJjaENvbHM7CiAgICBpZiAoc2VhcmNoQ29scykgewogICAgICBzZWFyY2hDb2xzID0gc2VhcmNoQ29scy5tYXAoZnVuY3Rpb24oeCkgewogICAgICAgIHJldHVybiB4ID09PSBudWxsID8gJycgOiB4LnNlYXJjaDsKICAgICAgfSk7CiAgICAgIC8vIEZJWE1FOiB0aGlzIG1lYW5zIEkgZG9uJ3QgcmVzcGVjdCB0aGUgZXNjYXBlUmVnZXggc2V0dGluZwogICAgICBkZWxldGUgb3B0aW9ucy5zZWFyY2hDb2xzOwogICAgfQoKICAgIC8vIHNlcnZlci1zaWRlIHByb2Nlc3Npbmc/CiAgICB2YXIgc2VydmVyID0gb3B0aW9ucy5zZXJ2ZXJTaWRlID09PSB0cnVlOwoKICAgIC8vIHVzZSB0aGUgZGF0YVNyYyBmdW5jdGlvbiB0byBwcmUtcHJvY2VzcyBKU09OIGRhdGEgcmV0dXJuZWQgZnJvbSBSCiAgICB2YXIgRFRfcm93c19hbGwgPSBbXSwgRFRfcm93c19jdXJyZW50ID0gW107CiAgICBpZiAoc2VydmVyICYmIEhUTUxXaWRnZXRzLnNoaW55TW9kZSAmJiB0eXBlb2Ygb3B0aW9ucy5hamF4ID09PSAnb2JqZWN0JyAmJgogICAgICAgIC9ec2Vzc2lvblwvW1xkYS16XStcL2RhdGFvYmovLnRlc3Qob3B0aW9ucy5hamF4LnVybCkgJiYgIW9wdGlvbnMuYWpheC5kYXRhU3JjKSB7CiAgICAgIG9wdGlvbnMuYWpheC5kYXRhU3JjID0gZnVuY3Rpb24oanNvbikgewogICAgICAgIERUX3Jvd3NfYWxsID0gJC5tYWtlQXJyYXkoanNvbi5EVF9yb3dzX2FsbCk7CiAgICAgICAgRFRfcm93c19jdXJyZW50ID0gJC5tYWtlQXJyYXkoanNvbi5EVF9yb3dzX2N1cnJlbnQpOwogICAgICAgIHZhciBkYXRhID0ganNvbi5kYXRhOwogICAgICAgIGlmICghY29sUmVvcmRlckVuYWJsZWQoKSkgcmV0dXJuIGRhdGE7CiAgICAgICAgdmFyIHRhYmxlID0gJHRhYmxlLkRhdGFUYWJsZSgpLCBvcmRlciA9IHRhYmxlLmNvbFJlb3JkZXIub3JkZXIoKSwgZmxhZyA9IHRydWUsIGksIGosIHJvdzsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb3JkZXIubGVuZ3RoOyArK2kpIGlmIChvcmRlcltpXSAhPT0gaSkgZmxhZyA9IGZhbHNlOwogICAgICAgIGlmIChmbGFnKSByZXR1cm4gZGF0YTsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSkgewogICAgICAgICAgcm93ID0gZGF0YVtpXS5zbGljZSgpOwogICAgICAgICAgZm9yIChqID0gMDsgaiA8IG9yZGVyLmxlbmd0aDsgKytqKSBkYXRhW2ldW2pdID0gcm93W29yZGVyW2pdXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRhdGE7CiAgICAgIH07CiAgICB9CgogICAgdmFyIHRoaXogPSB0aGlzOwogICAgaWYgKGluc3RhbmNlLmZpbGxDb250YWluZXIpICR0YWJsZS5vbignaW5pdC5kdCcsIGZ1bmN0aW9uKGUpIHsKICAgICAgdGhpei5maWxsQXZhaWxhYmxlSGVpZ2h0KGVsLCAkKGVsKS5pbm5lckhlaWdodCgpKTsKICAgIH0pOwogICAgLy8gSWYgdGhlIHBhZ2UgY29udGFpbnMgc2VydmVyYWwgZGF0YXRhYmxlcyBhbmQgb25lIG9mIHdoaWNoIGVuYWJsZXMgY29sUmVvcmRlciwKICAgIC8vIHRoZSB0YWJsZS5jb2xSZW9yZGVyLm9yZGVyKCkgZnVuY3Rpb24gd2lsbCBleGlzdCBidXQgdGhyb3dzIGVycm9yIHdoZW4gY2FsbGVkLgogICAgLy8gU28gaXQgc2VlbXMgbGlrZSB0aGUgb25seSB3YXkgdG8ga25vdyBpZiBjb2xSZW9yZGVyIGlzIGVuYWJsZWQgb3Igbm90IGlzIHRvCiAgICAvLyBjaGVjayB0aGUgb3B0aW9ucy4KICAgIHZhciBjb2xSZW9yZGVyRW5hYmxlZCA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gImNvbFJlb3JkZXIiIGluIG9wdGlvbnM7IH07CiAgICB2YXIgdGFibGUgPSAkdGFibGUuRGF0YVRhYmxlKG9wdGlvbnMpOwogICAgJGVsLmRhdGEoJ2RhdGF0YWJsZScsIHRhYmxlKTsKCiAgICAvLyBVbnJlZ2lzdGVyIHByZXZpb3VzIENyb3NzdGFsayBldmVudCBzdWJzY3JpcHRpb25zLCBpZiB0aGV5IGV4aXN0CiAgICBpZiAoaW5zdGFuY2UuY3RmaWx0ZXJTdWJzY3JpcHRpb24pIHsKICAgICAgaW5zdGFuY2UuY3RmaWx0ZXJIYW5kbGUub2ZmKCJjaGFuZ2UiLCBpbnN0YW5jZS5jdGZpbHRlclN1YnNjcmlwdGlvbik7CiAgICAgIGluc3RhbmNlLmN0ZmlsdGVyU3Vic2NyaXB0aW9uID0gbnVsbDsKICAgIH0KICAgIGlmIChpbnN0YW5jZS5jdHNlbGVjdFN1YnNjcmlwdGlvbikgewogICAgICBpbnN0YW5jZS5jdHNlbGVjdEhhbmRsZS5vZmYoImNoYW5nZSIsIGluc3RhbmNlLmN0c2VsZWN0U3Vic2NyaXB0aW9uKTsKICAgICAgaW5zdGFuY2UuY3RzZWxlY3RTdWJzY3JpcHRpb24gPSBudWxsOwogICAgfQoKICAgIGlmICghY3Jvc3N0YWxrT3B0aW9ucy5ncm91cCkgewogICAgICAkdGFibGVbMF0uY3RmaWx0ZXIgPSBudWxsOwogICAgICAkdGFibGVbMF0uY3RzZWxlY3QgPSBudWxsOwogICAgfSBlbHNlIHsKICAgICAgdmFyIGtleSA9IGNyb3NzdGFsa09wdGlvbnMua2V5OwogICAgICBmdW5jdGlvbiBrZXlzVG9NYXRjaGVzKGtleXMpIHsKICAgICAgICBpZiAoIWtleXMpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB2YXIgc2VsZWN0ZWRLZXlzID0ge307CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgc2VsZWN0ZWRLZXlzW2tleXNbaV1dID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBtYXRjaGVzID0ge307CiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGtleS5sZW5ndGg7IGorKykgewogICAgICAgICAgICBpZiAoc2VsZWN0ZWRLZXlzW2tleVtqXV0pCiAgICAgICAgICAgICAgbWF0Y2hlc1tqXSA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gbWF0Y2hlczsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGFwcGx5Q3Jvc3N0YWxrRmlsdGVyKGUpIHsKICAgICAgICAkdGFibGVbMF0uY3RmaWx0ZXIgPSBrZXlzVG9NYXRjaGVzKGUudmFsdWUpOwogICAgICAgIHRhYmxlLmRyYXcoKTsKICAgICAgfQogICAgICBpbnN0YW5jZS5jdGZpbHRlclN1YnNjcmlwdGlvbiA9IGluc3RhbmNlLmN0ZmlsdGVySGFuZGxlLm9uKCJjaGFuZ2UiLCBhcHBseUNyb3NzdGFsa0ZpbHRlcik7CiAgICAgIGFwcGx5Q3Jvc3N0YWxrRmlsdGVyKHt2YWx1ZTogaW5zdGFuY2UuY3RmaWx0ZXJIYW5kbGUuZmlsdGVyZWRLZXlzfSk7CgogICAgICBmdW5jdGlvbiBhcHBseUNyb3NzdGFsa1NlbGVjdGlvbihlKSB7CiAgICAgICAgaWYgKGUuc2VuZGVyICE9PSBpbnN0YW5jZS5jdHNlbGVjdEhhbmRsZSkgewogICAgICAgICAgdGFibGUKICAgICAgICAgICAgLnJvd3MoJy4nICsgc2VsQ2xhc3MsIHtzZWFyY2g6ICdhcHBsaWVkJ30pCiAgICAgICAgICAgIC5ub2RlcygpCiAgICAgICAgICAgIC50byQoKQogICAgICAgICAgICAucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgaWYgKHNlbGVjdGVkUm93cykKICAgICAgICAgICAgY2hhbmdlSW5wdXQoJ3Jvd3Nfc2VsZWN0ZWQnLCBzZWxlY3RlZFJvd3MoKSwgdm9pZCAwLCB0cnVlKTsKICAgICAgICB9CgogICAgICAgIGlmIChlLnNlbmRlciAhPT0gaW5zdGFuY2UuY3RzZWxlY3RIYW5kbGUgJiYgZS52YWx1ZSAmJiBlLnZhbHVlLmxlbmd0aCkgewogICAgICAgICAgdmFyIG1hdGNoZXMgPSBrZXlzVG9NYXRjaGVzKGUudmFsdWUpOwoKICAgICAgICAgIC8vIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdpdGggcGxvdGx5ICgmIGxlYWZsZXQpCiAgICAgICAgICB2YXIgY3RPcHRzID0gY3Jvc3N0YWxrLnZhcigicGxvdGx5Q3Jvc3N0YWxrT3B0cyIpLmdldCgpIHx8IHt9OwogICAgICAgICAgaWYgKGN0T3B0cy5wZXJzaXN0ZW50ID09PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciBtYXRjaGVzID0gJC5leHRlbmQobWF0Y2hlcywgJHRhYmxlWzBdLmN0c2VsZWN0KTsKICAgICAgICAgIH0KCiAgICAgICAgICAkdGFibGVbMF0uY3RzZWxlY3QgPSBtYXRjaGVzOwogICAgICAgICAgdGFibGUuZHJhdygpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoJHRhYmxlWzBdLmN0c2VsZWN0KSB7CiAgICAgICAgICAgICR0YWJsZVswXS5jdHNlbGVjdCA9IG51bGw7CiAgICAgICAgICAgIHRhYmxlLmRyYXcoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgaW5zdGFuY2UuY3RzZWxlY3RTdWJzY3JpcHRpb24gPSBpbnN0YW5jZS5jdHNlbGVjdEhhbmRsZS5vbigiY2hhbmdlIiwgYXBwbHlDcm9zc3RhbGtTZWxlY3Rpb24pOwogICAgICAvLyBUT0RPOiBUaGlzIG5leHQgbGluZSBkb2Vzbid0IHNlZW0gdG8gd29yayB3aGVuIHJlbmRlckRhdGFUYWJsZSBpcyB1c2VkCiAgICAgIGFwcGx5Q3Jvc3N0YWxrU2VsZWN0aW9uKHt2YWx1ZTogaW5zdGFuY2UuY3RzZWxlY3RIYW5kbGUudmFsdWV9KTsKICAgIH0KCiAgICB2YXIgaW5BcnJheSA9IGZ1bmN0aW9uKHZhbCwgYXJyYXkpIHsKICAgICAgcmV0dXJuICQuaW5BcnJheSh2YWwsICQubWFrZUFycmF5KGFycmF5KSkgPiAtMTsKICAgIH07CgogICAgLy8gZW5jb2RlICsgdG8gJTJCIHdoZW4gc2VhcmNoaW5nIGluIHRoZSB0YWJsZSBvbiBzZXJ2ZXIgc2lkZSwgYmVjYXVzZQogICAgLy8gc2hpbnk6OnBhcnNlUXVlcnlTdHJpbmcoKSB0cmVhdHMgKyBhcyBzcGFjZXMsIGFuZCBEYXRhVGFibGVzIGRvZXMgbm90CiAgICAvLyBlbmNvZGUgKyB0byAlMkIgKG9yICUgdG8gJTI1KSB3aGVuIHNlbmRpbmcgdGhlIHJlcXVlc3QKICAgIHZhciBlbmNvZGVfcGx1cyA9IGZ1bmN0aW9uKHgpIHsKICAgICAgcmV0dXJuIHNlcnZlciA/IHgucmVwbGFjZSgvJS9nLCAnJTI1JykucmVwbGFjZSgvXCsvZywgJyUyQicpIDogeDsKICAgIH07CgogICAgLy8gc2VhcmNoIHRoZSBpLXRoIGNvbHVtbgogICAgdmFyIHNlYXJjaENvbHVtbiA9IGZ1bmN0aW9uKGksIHZhbHVlKSB7CiAgICAgIHZhciByZWdleCA9IGZhbHNlLCBjaSA9IHRydWU7CiAgICAgIGlmIChvcHRpb25zLnNlYXJjaCkgewogICAgICAgIHJlZ2V4ID0gb3B0aW9ucy5zZWFyY2gucmVnZXgsCiAgICAgICAgY2kgPSBvcHRpb25zLnNlYXJjaC5jYXNlSW5zZW5zaXRpdmUgIT09IGZhbHNlOwogICAgICB9CiAgICAgIHJldHVybiB0YWJsZS5jb2x1bW4oaSkuc2VhcmNoKGVuY29kZV9wbHVzKHZhbHVlKSwgcmVnZXgsICFyZWdleCwgY2kpOwogICAgfTsKCiAgICBpZiAoZGF0YS5maWx0ZXIgIT09ICdub25lJykgewoKICAgICAgZmlsdGVyUm93LmVhY2goZnVuY3Rpb24oaSwgdGQpIHsKCiAgICAgICAgdmFyICR0ZCA9ICQodGQpLCB0eXBlID0gJHRkLmRhdGEoJ3R5cGUnKSwgZmlsdGVyOwogICAgICAgIHZhciAkaW5wdXQgPSAkdGQuY2hpbGRyZW4oJ2RpdicpLmZpcnN0KCkuY2hpbGRyZW4oJ2lucHV0Jyk7CiAgICAgICAgJGlucHV0LnByb3AoJ2Rpc2FibGVkJywgIXRhYmxlLnNldHRpbmdzKClbMF0uYW9Db2x1bW5zW2ldLmJTZWFyY2hhYmxlIHx8IHR5cGUgPT09ICdkaXNhYmxlZCcpOwogICAgICAgICRpbnB1dC5vbignaW5wdXQgYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgJGlucHV0Lm5leHQoJ3NwYW4nKS50b2dnbGUoQm9vbGVhbigkaW5wdXQudmFsKCkpKTsKICAgICAgICB9KTsKICAgICAgICAvLyBCb290c3RyYXAgc2V0cyBwb2ludGVyLWV2ZW50cyB0byBub25lIGFuZCB3ZSB3b24ndCBiZSBhYmxlIHRvIGNsaWNrCiAgICAgICAgLy8gdGhlIGNsZWFyIGJ1dHRvbgogICAgICAgICRpbnB1dC5uZXh0KCdzcGFuJykuY3NzKCdwb2ludGVyLWV2ZW50cycsICdhdXRvJykuaGlkZSgpLmNsaWNrKGZ1bmN0aW9uKCkgewogICAgICAgICAgJCh0aGlzKS5oaWRlKCkucHJldignaW5wdXQnKS52YWwoJycpLnRyaWdnZXIoJ2lucHV0JykuZm9jdXMoKTsKICAgICAgICB9KTsKICAgICAgICB2YXIgc2VhcmNoQ29sOyAgLy8gc2VhcmNoIHN0cmluZyBmb3IgdGhpcyBjb2x1bW4KICAgICAgICBpZiAoc2VhcmNoQ29scyAmJiBzZWFyY2hDb2xzW2ldKSB7CiAgICAgICAgICBzZWFyY2hDb2wgPSBzZWFyY2hDb2xzW2ldOwogICAgICAgICAgJGlucHV0LnZhbChzZWFyY2hDb2wpLnRyaWdnZXIoJ2lucHV0Jyk7CiAgICAgICAgfQogICAgICAgIHZhciAkeCA9ICR0ZC5jaGlsZHJlbignZGl2JykubGFzdCgpOwoKICAgICAgICAvLyByZW1vdmUgdGhlIG92ZXJmbG93OiBoaWRkZW4gYXR0cmlidXRlIG9mIHRoZSBzY3JvbGxIZWFkCiAgICAgICAgLy8gKG90aGVyd2lzZSB0aGUgc2Nyb2xsaW5nIHRhYmxlIGJvZHkgb2JzY3VyZXMgdGhlIGZpbHRlcnMpCiAgICAgICAgLy8gVGhlIHdvcmthcm91bmQgYW5kIHRoZSBkaXNjdXNzaW9uIGZyb20KICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnN0dWRpby9EVC9pc3N1ZXMvNTU0I2lzc3VlY29tbWVudC01MTgwMDczNDcKICAgICAgICAvLyBPdGhlcndpc2UgdGhlIGZpbHRlciBzZWxlY3Rpb24gd2lsbCBub3QgYmUgYW5jaG9yZWQgdG8gdGhlIHZhbHVlcwogICAgICAgIC8vIHdoZW4gdGhlIGNvbHVtbnMgbnVtYmVyIGlzIG1hbnkgYW5kIHNjcm9sbFggaXMgZW5hYmxlZC4KICAgICAgICB2YXIgc2Nyb2xsSGVhZCA9ICQoZWwpLmZpbmQoJy5kYXRhVGFibGVzX3Njcm9sbEhlYWQsLmRhdGFUYWJsZXNfc2Nyb2xsRm9vdCcpOwogICAgICAgIHZhciBjc3NPdmVyZmxvd0hlYWQgPSBzY3JvbGxIZWFkLmNzcygnb3ZlcmZsb3cnKTsKICAgICAgICB2YXIgc2Nyb2xsQm9keSA9ICQoZWwpLmZpbmQoJy5kYXRhVGFibGVzX3Njcm9sbEJvZHknKTsKICAgICAgICB2YXIgY3NzT3ZlcmZsb3dCb2R5ID0gc2Nyb2xsQm9keS5jc3MoJ292ZXJmbG93Jyk7CiAgICAgICAgdmFyIHNjcm9sbFRhYmxlID0gJChlbCkuZmluZCgnLmRhdGFUYWJsZXNfc2Nyb2xsJyk7CiAgICAgICAgdmFyIGNzc092ZXJmbG93VGFibGUgPSBzY3JvbGxUYWJsZS5jc3MoJ292ZXJmbG93Jyk7CiAgICAgICAgaWYgKGNzc092ZXJmbG93SGVhZCA9PT0gJ2hpZGRlbicpIHsKICAgICAgICAgICR4Lm9uKCdzaG93IGhpZGUnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdzaG93JykgewogICAgICAgICAgICAgIHNjcm9sbEhlYWQuY3NzKCdvdmVyZmxvdycsICd2aXNpYmxlJyk7CiAgICAgICAgICAgICAgc2Nyb2xsQm9keS5jc3MoJ292ZXJmbG93JywgJ3Zpc2libGUnKTsKICAgICAgICAgICAgICBzY3JvbGxUYWJsZS5jc3MoJ292ZXJmbG93LXgnLCAnc2Nyb2xsJyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgc2Nyb2xsSGVhZC5jc3MoJ292ZXJmbG93JywgY3NzT3ZlcmZsb3dIZWFkKTsKICAgICAgICAgICAgICBzY3JvbGxCb2R5LmNzcygnb3ZlcmZsb3cnLCBjc3NPdmVyZmxvd0JvZHkpOwogICAgICAgICAgICAgIHNjcm9sbFRhYmxlLmNzcygnb3ZlcmZsb3cteCcsIGNzc092ZXJmbG93VGFibGUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICAgICR4LmNzcygnei1pbmRleCcsIDI1KTsKICAgICAgICB9CgogICAgICAgIGlmIChpbkFycmF5KHR5cGUsIFsnZmFjdG9yJywgJ2xvZ2ljYWwnXSkpIHsKICAgICAgICAgICRpbnB1dC5vbih7CiAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAkaW5wdXQucGFyZW50KCkuaGlkZSgpOyAkeC5zaG93KCkudHJpZ2dlcignc2hvdycpOyBmaWx0ZXJbMF0uc2VsZWN0aXplLmZvY3VzKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGlucHV0OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBpZiAoJGlucHV0LnZhbCgpID09PSAnJykgZmlsdGVyWzBdLnNlbGVjdGl6ZS5zZXRWYWx1ZShbXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgdmFyICRpbnB1dDIgPSAkeC5jaGlsZHJlbignc2VsZWN0Jyk7CiAgICAgICAgICBmaWx0ZXIgPSAkaW5wdXQyLnNlbGVjdGl6ZSh7CiAgICAgICAgICAgIG9wdGlvbnM6ICRpbnB1dDIuZGF0YSgnb3B0aW9ucycpLm1hcChmdW5jdGlvbih2LCBpKSB7CiAgICAgICAgICAgICAgcmV0dXJuICh7dGV4dDogdiwgdmFsdWU6IHZ9KTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIHBsdWdpbnM6IFsncmVtb3ZlX2J1dHRvbiddLAogICAgICAgICAgICBoaWRlU2VsZWN0ZWQ6IHRydWUsCiAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgdmFsdWUgPSBbXTsgLy8gY29tcGF0aWJpbGl0eSB3aXRoIGpRdWVyeSAzLjAKICAgICAgICAgICAgICAkaW5wdXQudmFsKHZhbHVlLmxlbmd0aCA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6ICcnKTsKICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoKSAkaW5wdXQudHJpZ2dlcignaW5wdXQnKTsKICAgICAgICAgICAgICAkaW5wdXQuYXR0cigndGl0bGUnLCAkaW5wdXQudmFsKCkpOwogICAgICAgICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgICAgICAgIHRhYmxlLmNvbHVtbihpKS5zZWFyY2godmFsdWUubGVuZ3RoID8gZW5jb2RlX3BsdXMoSlNPTi5zdHJpbmdpZnkodmFsdWUpKSA6ICcnKS5kcmF3KCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIC8vIHR1cm4gb2ZmIGZpbHRlciBpZiBub3RoaW5nIHNlbGVjdGVkCiAgICAgICAgICAgICAgJHRkLmRhdGEoJ2ZpbHRlcicsIHZhbHVlLmxlbmd0aCA+IDApOwogICAgICAgICAgICAgIHRhYmxlLmRyYXcoKTsgIC8vIHJlZHJhdyB0YWJsZSwgYW5kIGZpbHRlcnMgd2lsbCBiZSBhcHBsaWVkCiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgaWYgKHNlYXJjaENvbCkgZmlsdGVyWzBdLnNlbGVjdGl6ZS5zZXRWYWx1ZShKU09OLnBhcnNlKHNlYXJjaENvbCkpOwogICAgICAgICAgZmlsdGVyWzBdLnNlbGVjdGl6ZS5vbignYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAkeC5oaWRlKCkudHJpZ2dlcignaGlkZScpOyAkaW5wdXQucGFyZW50KCkuc2hvdygpOyAkaW5wdXQudHJpZ2dlcignYmx1cicpOwogICAgICAgICAgfSk7CiAgICAgICAgICBmaWx0ZXIubmV4dCgnZGl2JykuY3NzKCdtYXJnaW4tYm90dG9tJywgJ2F1dG8nKTsKICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdjaGFyYWN0ZXInKSB7CiAgICAgICAgICB2YXIgZnVuID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHNlYXJjaENvbHVtbihpLCAkaW5wdXQudmFsKCkpLmRyYXcoKTsKICAgICAgICAgIH07CiAgICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICAgIGZ1biA9ICQuZm4uZGF0YVRhYmxlLnV0aWwudGhyb3R0bGUoZnVuLCBvcHRpb25zLnNlYXJjaERlbGF5KTsKICAgICAgICAgIH0KICAgICAgICAgICRpbnB1dC5vbignaW5wdXQnLCBmdW4pOwogICAgICAgIH0gZWxzZSBpZiAoaW5BcnJheSh0eXBlLCBbJ251bWJlcicsICdpbnRlZ2VyJywgJ2RhdGUnLCAndGltZSddKSkgewogICAgICAgICAgdmFyICR4MCA9ICR4OwogICAgICAgICAgJHggPSAkeDAuY2hpbGRyZW4oJ2RpdicpLmZpcnN0KCk7CiAgICAgICAgICAkeDAuY3NzKHsKICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2ZmZicsCiAgICAgICAgICAgICdib3JkZXInOiAnMXB4ICNkZGQgc29saWQnLAogICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLAogICAgICAgICAgICAncGFkZGluZyc6ICcyMHB4IDIwcHggMTBweCAyMHB4JwogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgJHNwYW5zID0gJHgwLmNoaWxkcmVuKCdzcGFuJykuY3NzKHsKICAgICAgICAgICAgJ21hcmdpbi10b3AnOiAnMTBweCcsCiAgICAgICAgICAgICd3aGl0ZS1zcGFjZSc6ICdub3dyYXAnCiAgICAgICAgICB9KTsKICAgICAgICAgIHZhciAkc3BhbjEgPSAkc3BhbnMuZmlyc3QoKSwgJHNwYW4yID0gJHNwYW5zLmxhc3QoKTsKICAgICAgICAgIHZhciByMSA9ICskeC5kYXRhKCdtaW4nKSwgcjIgPSArJHguZGF0YSgnbWF4Jyk7CiAgICAgICAgICAvLyB3aGVuIHRoZSBudW1iZXJzIGFyZSB0b28gc21hbGwgb3IgaGF2ZSBtYW55IGRlY2ltYWwgcGxhY2VzLCB0aGUKICAgICAgICAgIC8vIHNsaWRlciBtYXkgaGF2ZSBudW1lcmljIHByZWNpc2lvbiBwcm9ibGVtcyAoIzE1MCkKICAgICAgICAgIHZhciBzY2FsZSA9IE1hdGgucG93KDEwLCBNYXRoLm1heCgwLCArJHguZGF0YSgnc2NhbGUnKSB8fCAwKSk7CiAgICAgICAgICByMSA9IE1hdGgucm91bmQocjEgKiBzY2FsZSk7IHIyID0gTWF0aC5yb3VuZChyMiAqIHNjYWxlKTsKICAgICAgICAgIHZhciBzY2FsZUJhY2sgPSBmdW5jdGlvbih4LCBzY2FsZSkgewogICAgICAgICAgICBpZiAoc2NhbGUgPT09IDEpIHJldHVybiB4OwogICAgICAgICAgICB2YXIgZCA9IE1hdGgucm91bmQoTWF0aC5sb2coc2NhbGUpIC8gTWF0aC5sb2coMTApKTsKICAgICAgICAgICAgLy8gdG8gYXZvaWQgcHJvYmxlbXMgbGlrZSAzLjQyMy8xMDAgLT4gMC4wMzQyMzAwMDAwMDAwMDAwMDMKICAgICAgICAgICAgcmV0dXJuICh4IC8gc2NhbGUpLnRvRml4ZWQoZCk7CiAgICAgICAgICB9OwogICAgICAgICAgdmFyIHNsaWRlcl9taW4gPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgcmV0dXJuIGZpbHRlci5ub1VpU2xpZGVyKCdvcHRpb25zJykucmFuZ2UubWluOwogICAgICAgICAgfTsKICAgICAgICAgIHZhciBzbGlkZXJfbWF4ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBmaWx0ZXIubm9VaVNsaWRlcignb3B0aW9ucycpLnJhbmdlLm1heDsKICAgICAgICAgIH07CiAgICAgICAgICAkaW5wdXQub24oewogICAgICAgICAgICBmb2N1czogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgJHgwLnNob3coKS50cmlnZ2VyKCdzaG93Jyk7CiAgICAgICAgICAgICAgLy8gZmlyc3QsIG1ha2Ugc3VyZSB0aGUgc2xpZGVyIGRpdiBsZWF2ZXMgYXQgbGVhc3QgMjBweCBiZXR3ZWVuCiAgICAgICAgICAgICAgLy8gdGhlIHR3byAoc2xpZGVyIHZhbHVlKSBzcGFuJ3MKICAgICAgICAgICAgICAkeDAud2lkdGgoTWF0aC5tYXgoMTYwLCAkc3BhbjEub3V0ZXJXaWR0aCgpICsgJHNwYW4yLm91dGVyV2lkdGgoKSArIDIwKSk7CiAgICAgICAgICAgICAgLy8gdGhlbiwgaWYgdGhlIGlucHV0IGlzIHJlYWxseSB3aWRlLCBtYWtlIHRoZSBzbGlkZXIgdGhlIHNhbWUKICAgICAgICAgICAgICAvLyB3aWR0aCBhcyB0aGUgaW5wdXQKICAgICAgICAgICAgICBpZiAoJHgwLm91dGVyV2lkdGgoKSA8ICRpbnB1dC5vdXRlcldpZHRoKCkpIHsKICAgICAgICAgICAgICAgICR4MC5vdXRlcldpZHRoKCRpbnB1dC5vdXRlcldpZHRoKCkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlIHNsaWRlciBkaXYgZG9lcyBub3QgcmVhY2ggYmV5b25kIHRoZSByaWdodCBtYXJnaW4KICAgICAgICAgICAgICBpZiAoJCh3aW5kb3cpLndpZHRoKCkgPCAkeDAub2Zmc2V0KCkubGVmdCArICR4MC53aWR0aCgpKSB7CiAgICAgICAgICAgICAgICAkeDAub2Zmc2V0KHsKICAgICAgICAgICAgICAgICAgJ2xlZnQnOiAkaW5wdXQub2Zmc2V0KCkubGVmdCArICRpbnB1dC5vdXRlcldpZHRoKCkgLSAkeDAub3V0ZXJXaWR0aCgpCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGJsdXI6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICR4MC5oaWRlKCkudHJpZ2dlcignaGlkZScpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnB1dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgaWYgKCRpbnB1dC52YWwoKSA9PT0gJycpIGZpbHRlci52YWwoW3NsaWRlcl9taW4oKSwgc2xpZGVyX21heCgpXSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGNoYW5nZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFyIHYgPSAkaW5wdXQudmFsKCkucmVwbGFjZSgvXHMvZywgJycpOwogICAgICAgICAgICAgIGlmICh2ID09PSAnJykgcmV0dXJuOwogICAgICAgICAgICAgIHYgPSB2LnNwbGl0KCcuLi4nKTsKICAgICAgICAgICAgICBpZiAodi5sZW5ndGggIT09IDIpIHsKICAgICAgICAgICAgICAgICRpbnB1dC5wYXJlbnQoKS5hZGRDbGFzcygnaGFzLWVycm9yJyk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh2WzBdID09PSAnJykgdlswXSA9IHNsaWRlcl9taW4oKTsKICAgICAgICAgICAgICBpZiAodlsxXSA9PT0gJycpIHZbMV0gPSBzbGlkZXJfbWF4KCk7CiAgICAgICAgICAgICAgJGlucHV0LnBhcmVudCgpLnJlbW92ZUNsYXNzKCdoYXMtZXJyb3InKTsKICAgICAgICAgICAgICAvLyB0cmVhdCBkYXRlIGFzIFVUQyB0aW1lIGF0IG1pZG5pZ2h0CiAgICAgICAgICAgICAgdmFyIHN0clRpbWUgPSBmdW5jdGlvbih4KSB7CiAgICAgICAgICAgICAgICB2YXIgcyA9IHR5cGUgPT09ICdkYXRlJyA/ICdUMDA6MDA6MDBaJyA6ICcnOwogICAgICAgICAgICAgICAgdmFyIHQgPSBuZXcgRGF0ZSh4ICsgcykuZ2V0VGltZSgpOwogICAgICAgICAgICAgICAgLy8gYWRkIDEwIG1pbnV0ZXMgdG8gZGF0ZSBzaW5jZSBpdCBkb2VzIG5vdCBodXJ0IHRoZSBkYXRlLCBhbmQKICAgICAgICAgICAgICAgIC8vIGl0IGhlbHBzIGF2b2lkIHRoZSB0cmlja3kgZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBwcm9ibGVtcywKICAgICAgICAgICAgICAgIC8vIGUuZy4gc29tZXRpbWVzIHRoZSBkYXRlIG1heSBiZSBhIGZldyBtaWxsaXNlY29uZHMgZWFybGllcgogICAgICAgICAgICAgICAgLy8gdGhhbiB0aGUgbWlkbmlnaHQgZHVlIHRvIHByZWNpc2lvbiBwcm9ibGVtcyBpbiBub1VpU2xpZGVyCiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZSA9PT0gJ2RhdGUnID8gdCArIDM2MDAwMDAgOiB0OwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgaWYgKGluQXJyYXkodHlwZSwgWydkYXRlJywgJ3RpbWUnXSkpIHsKICAgICAgICAgICAgICAgIHZbMF0gPSBzdHJUaW1lKHZbMF0pOwogICAgICAgICAgICAgICAgdlsxXSA9IHN0clRpbWUodlsxXSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh2WzBdICE9IHNsaWRlcl9taW4oKSkgdlswXSAqPSBzY2FsZTsKICAgICAgICAgICAgICBpZiAodlsxXSAhPSBzbGlkZXJfbWF4KCkpIHZbMV0gKj0gc2NhbGU7CiAgICAgICAgICAgICAgZmlsdGVyLnZhbCh2KTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgZm9ybWF0RGF0ZSA9IGZ1bmN0aW9uKGQsIGlzb0ZtdCkgewogICAgICAgICAgICBkID0gc2NhbGVCYWNrKGQsIHNjYWxlKTsKICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdudW1iZXInKSByZXR1cm4gZDsKICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdpbnRlZ2VyJykgcmV0dXJuIHBhcnNlSW50KGQpOwogICAgICAgICAgICB2YXIgeCA9IG5ldyBEYXRlKCtkKTsKICAgICAgICAgICAgdmFyIGZtdCA9ICgnZmlsdGVyRGF0ZUZtdCcgaW4gZGF0YSkgPyBkYXRhLmZpbHRlckRhdGVGbXRbaV0gOiB1bmRlZmluZWQ7CiAgICAgICAgICAgIGlmIChmbXQgIT09IHVuZGVmaW5lZCAmJiBpc29GbXQgPT09IGZhbHNlKSByZXR1cm4geFtmbXQubWV0aG9kXS5hcHBseSh4LCBmbXQucGFyYW1zKTsKICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdkYXRlJykgewogICAgICAgICAgICAgIHZhciBwYWQwID0gZnVuY3Rpb24oeCkgewogICAgICAgICAgICAgICAgcmV0dXJuICgnMCcgKyB4KS5zdWJzdHIoLTIsIDIpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgcmV0dXJuIHguZ2V0VVRDRnVsbFllYXIoKSArICctJyArIHBhZDAoMSArIHguZ2V0VVRDTW9udGgoKSkKICAgICAgICAgICAgICAgICAgICAgICsgJy0nICsgcGFkMCh4LmdldFVUQ0RhdGUoKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIHgudG9JU09TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfTsKICAgICAgICAgIHZhciBvcHRzID0gdHlwZSA9PT0gJ2RhdGUnID8geyBzdGVwOiA2MCAqIDYwICogMTAwMCB9IDoKICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PT0gJ2ludGVnZXInID8geyBzdGVwOiAxIH0gOiB7fTsKICAgICAgICAgIGZpbHRlciA9ICR4Lm5vVWlTbGlkZXIoJC5leHRlbmQoewogICAgICAgICAgICBzdGFydDogW3IxLCByMl0sCiAgICAgICAgICAgIHJhbmdlOiB7bWluOiByMSwgbWF4OiByMn0sCiAgICAgICAgICAgIGNvbm5lY3Q6IHRydWUKICAgICAgICAgIH0sIG9wdHMpKTsKICAgICAgICAgIGlmIChzY2FsZSA+IDEpIChmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIHQxID0gcjEsIHQyID0gcjI7CiAgICAgICAgICAgIHZhciB2YWwgPSBmaWx0ZXIudmFsKCk7CiAgICAgICAgICAgIHdoaWxlICh2YWxbMF0gPiByMSB8fCB2YWxbMV0gPCByMikgewogICAgICAgICAgICAgIGlmICh2YWxbMF0gPiByMSkgewogICAgICAgICAgICAgICAgdDEgLT0gdmFsWzBdIC0gcjE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh2YWxbMV0gPCByMikgewogICAgICAgICAgICAgICAgdDIgKz0gcjIgLSB2YWxbMV07CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZpbHRlciA9ICR4Lm5vVWlTbGlkZXIoJC5leHRlbmQoewogICAgICAgICAgICAgICAgc3RhcnQ6IFt0MSwgdDJdLAogICAgICAgICAgICAgICAgcmFuZ2U6IHttaW46IHQxLCBtYXg6IHQyfSwKICAgICAgICAgICAgICAgIGNvbm5lY3Q6IHRydWUKICAgICAgICAgICAgICB9LCBvcHRzKSwgdHJ1ZSk7CiAgICAgICAgICAgICAgdmFsID0gZmlsdGVyLnZhbCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHIxICA9IHQxOyByMiA9IHQyOwogICAgICAgICAgfSkoKTsKICAgICAgICAgIHZhciB1cGRhdGVTbGlkZXJUZXh0ID0gZnVuY3Rpb24odjEsIHYyKSB7CiAgICAgICAgICAgICRzcGFuMS50ZXh0KGZvcm1hdERhdGUodjEsIGZhbHNlKSk7ICRzcGFuMi50ZXh0KGZvcm1hdERhdGUodjIsIGZhbHNlKSk7CiAgICAgICAgICB9OwogICAgICAgICAgdXBkYXRlU2xpZGVyVGV4dChyMSwgcjIpOwogICAgICAgICAgdmFyIHVwZGF0ZVNsaWRlciA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgdmFyIHZhbCA9IGZpbHRlci52YWwoKTsKICAgICAgICAgICAgLy8gdHVybiBvZmYgZmlsdGVyIGlmIGluIGZ1bGwgcmFuZ2UKICAgICAgICAgICAgJHRkLmRhdGEoJ2ZpbHRlcicsIHZhbFswXSA+IHNsaWRlcl9taW4oKSB8fCB2YWxbMV0gPCBzbGlkZXJfbWF4KCkpOwogICAgICAgICAgICB2YXIgdjEgPSBmb3JtYXREYXRlKHZhbFswXSksIHYyID0gZm9ybWF0RGF0ZSh2YWxbMV0pLCBpdmFsOwogICAgICAgICAgICBpZiAoJHRkLmRhdGEoJ2ZpbHRlcicpKSB7CiAgICAgICAgICAgICAgaXZhbCA9IHYxICsgJyAuLi4gJyArIHYyOwogICAgICAgICAgICAgICRpbnB1dC5hdHRyKCd0aXRsZScsIGl2YWwpLnZhbChpdmFsKS50cmlnZ2VyKCdpbnB1dCcpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICRpbnB1dC5hdHRyKCd0aXRsZScsICcnKS52YWwoJycpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHVwZGF0ZVNsaWRlclRleHQodmFsWzBdLCB2YWxbMV0pOwogICAgICAgICAgICBpZiAoZS50eXBlID09PSAnc2xpZGUnKSByZXR1cm47ICAvLyBubyBzZWFyY2hpbmcgd2hlbiBzbGlkaW5nIG9ubHkKICAgICAgICAgICAgaWYgKHNlcnZlcikgewogICAgICAgICAgICAgIHRhYmxlLmNvbHVtbihpKS5zZWFyY2goJHRkLmRhdGEoJ2ZpbHRlcicpID8gaXZhbCA6ICcnKS5kcmF3KCk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRhYmxlLmRyYXcoKTsKICAgICAgICAgIH07CiAgICAgICAgICBmaWx0ZXIub24oewogICAgICAgICAgICBzZXQ6IHVwZGF0ZVNsaWRlciwKICAgICAgICAgICAgc2xpZGU6IHVwZGF0ZVNsaWRlcgogICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICAvLyBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHdpbGwgYmUgaGFuZGxlZCBieSBSIChvciB3aGF0ZXZlciBzZXJ2ZXIKICAgICAgICAvLyBsYW5ndWFnZSB5b3UgdXNlKTsgdGhlIGZvbGxvd2luZyBjb2RlIGlzIG9ubHkgbmVlZGVkIGZvciBjbGllbnQtc2lkZQogICAgICAgIC8vIHByb2Nlc3NpbmcKICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICAvLyBpZiBhIHNlYXJjaCBzdHJpbmcgaGFzIGJlZW4gcHJlLXNldCwgc2VhcmNoIG5vdwogICAgICAgICAgaWYgKHNlYXJjaENvbCkgc2VhcmNoQ29sdW1uKGksIHNlYXJjaENvbCkuZHJhdygpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgdmFyIGN1c3RvbUZpbHRlciA9IGZ1bmN0aW9uKHNldHRpbmdzLCBkYXRhLCBkYXRhSW5kZXgpIHsKICAgICAgICAgIC8vIHRoZXJlIGlzIG5vIHdheSB0byBhdHRhY2ggYSBzZWFyY2ggZnVuY3Rpb24gdG8gYSBzcGVjaWZpYyB0YWJsZSwKICAgICAgICAgIC8vIGFuZCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSBhIGdsb2JhbCBzZWFyY2ggZnVuY3Rpb24gaXMgbm90IGFwcGxpZWQgdG8KICAgICAgICAgIC8vIGFsbCB0YWJsZXMgKGkuZS4gYSByYW5nZSBmaWx0ZXIgaW4gYSBwcmV2aW91cyB0YWJsZSBzaG91bGQgbm90IGJlCiAgICAgICAgICAvLyBhcHBsaWVkIHRvIHRoZSBjdXJyZW50IHRhYmxlKTsgd2UgdXNlIHRoZSBzZXR0aW5ncyBvYmplY3QgdG8KICAgICAgICAgIC8vIGRldGVybWluZSBpZiB3ZSB3YW50IHRvIHBlcmZvcm0gc2VhcmNoaW5nIG9uIHRoZSBjdXJyZW50IHRhYmxlLAogICAgICAgICAgLy8gc2luY2Ugc2V0dGluZ3Muc1RhYmxlSWQgd2lsbCBiZSBkaWZmZXJlbnQgdG8gZGlmZmVyZW50IHRhYmxlcwogICAgICAgICAgaWYgKHRhYmxlLnNldHRpbmdzKClbMF0gIT09IHNldHRpbmdzKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIC8vIG5vIGZpbHRlciBvbiB0aGlzIGNvbHVtbiBvciBubyBuZWVkIHRvIGZpbHRlciB0aGlzIGNvbHVtbgogICAgICAgICAgaWYgKHR5cGVvZiBmaWx0ZXIgPT09ICd1bmRlZmluZWQnIHx8ICEkdGQuZGF0YSgnZmlsdGVyJykpIHJldHVybiB0cnVlOwoKICAgICAgICAgIHZhciByID0gZmlsdGVyLnZhbCgpLCB2LCByMCwgcjE7CiAgICAgICAgICB2YXIgaV9kYXRhID0gZnVuY3Rpb24oaSkgewogICAgICAgICAgICBpZiAoIWNvbFJlb3JkZXJFbmFibGVkKCkpIHJldHVybiBpOwogICAgICAgICAgICB2YXIgb3JkZXIgPSB0YWJsZS5jb2xSZW9yZGVyLm9yZGVyKCksIGs7CiAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBvcmRlci5sZW5ndGg7ICsraykgaWYgKG9yZGVyW2tdID09PSBpKSByZXR1cm4gazsKICAgICAgICAgICAgcmV0dXJuIGk7IC8vIGluIHRoZW9yeSBpdCB3aWxsIG5ldmVyIGJlIGhlcmUuLi4KICAgICAgICAgIH0KICAgICAgICAgIHYgPSBkYXRhW2lfZGF0YShpKV07CiAgICAgICAgICBpZiAodHlwZSA9PT0gJ251bWJlcicgfHwgdHlwZSA9PT0gJ2ludGVnZXInKSB7CiAgICAgICAgICAgIHYgPSBwYXJzZUZsb2F0KHYpOwogICAgICAgICAgICAvLyBob3cgdG8gaGFuZGxlIE5hTj8gY3VycmVudGx5IGV4Y2x1ZGUgdGhlc2Ugcm93cwogICAgICAgICAgICBpZiAoaXNOYU4odikpIHJldHVybihmYWxzZSk7CiAgICAgICAgICAgIHIwID0gcGFyc2VGbG9hdChzY2FsZUJhY2soclswXSwgc2NhbGUpKQogICAgICAgICAgICByMSA9IHBhcnNlRmxvYXQoc2NhbGVCYWNrKHJbMV0sIHNjYWxlKSk7CiAgICAgICAgICAgIGlmICh2ID49IHIwICYmIHYgPD0gcjEpIHJldHVybiB0cnVlOwogICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnZGF0ZScgfHwgdHlwZSA9PT0gJ3RpbWUnKSB7CiAgICAgICAgICAgIHYgPSBuZXcgRGF0ZSh2KTsKICAgICAgICAgICAgcjAgPSBuZXcgRGF0ZShyWzBdIC8gc2NhbGUpOyByMSA9IG5ldyBEYXRlKHJbMV0gLyBzY2FsZSk7CiAgICAgICAgICAgIGlmICh2ID49IHIwICYmIHYgPD0gcjEpIHJldHVybiB0cnVlOwogICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnZmFjdG9yJykgewogICAgICAgICAgICBpZiAoci5sZW5ndGggPT09IDAgfHwgaW5BcnJheSh2LCByKSkgcmV0dXJuIHRydWU7CiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdsb2dpY2FsJykgewogICAgICAgICAgICBpZiAoci5sZW5ndGggPT09IDApIHJldHVybiB0cnVlOwogICAgICAgICAgICBpZiAoaW5BcnJheSh2ID09PSAnJyA/ICduYScgOiB2LCByKSkgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfTsKCiAgICAgICAgJC5mbi5kYXRhVGFibGUuZXh0LnNlYXJjaC5wdXNoKGN1c3RvbUZpbHRlcik7CgogICAgICAgIC8vIHNlYXJjaCBmb3IgdGhlIHByZXNldCBzZWFyY2ggc3RyaW5ncyBpZiBpdCBpcyBub24tZW1wdHkKICAgICAgICBpZiAoc2VhcmNoQ29sKSB7CiAgICAgICAgICBpZiAoaW5BcnJheSh0eXBlLCBbJ2ZhY3RvcicsICdsb2dpY2FsJ10pKSB7CiAgICAgICAgICAgIGZpbHRlclswXS5zZWxlY3RpemUuc2V0VmFsdWUoSlNPTi5wYXJzZShzZWFyY2hDb2wpKTsKICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2NoYXJhY3RlcicpIHsKICAgICAgICAgICAgJGlucHV0LnRyaWdnZXIoJ2lucHV0Jyk7CiAgICAgICAgICB9IGVsc2UgaWYgKGluQXJyYXkodHlwZSwgWydudW1iZXInLCAnaW50ZWdlcicsICdkYXRlJywgJ3RpbWUnXSkpIHsKICAgICAgICAgICAgJGlucHV0LnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgIH0pOwoKICAgIH0KCiAgICAvLyBoaWdobGlnaHQgc2VhcmNoIGtleXdvcmRzCiAgICB2YXIgaGlnaGxpZ2h0ID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBib2R5ID0gJCh0YWJsZS50YWJsZSgpLmJvZHkoKSk7CiAgICAgIC8vIHJlbW92aW5nIHRoZSBvbGQgaGlnaGxpZ2h0aW5nIGZpcnN0CiAgICAgIGJvZHkudW5oaWdobGlnaHQoKTsKCiAgICAgIC8vIGRvbid0IGhpZ2hsaWdodCB0aGUgIm5vdCBmb3VuZCIgcm93LCBzbyB3ZSBnZXQgdGhlIHJvd3MgdXNpbmcgdGhlIGFwaQogICAgICBpZiAodGFibGUucm93cyh7IGZpbHRlcjogJ2FwcGxpZWQnIH0pLmRhdGEoKS5sZW5ndGggPT09IDApIHJldHVybjsKICAgICAgLy8gaGlnaGxpZ2h0IGdsb2JhbCBzZWFyY2gga2V5d29yZHMKICAgICAgYm9keS5oaWdobGlnaHQoJC50cmltKHRhYmxlLnNlYXJjaCgpKS5zcGxpdCgvXHMrLykpOwogICAgICAvLyB0aGVuIGhpZ2hsaWdodCBrZXl3b3JkcyBmcm9tIGluZGl2aWR1YWwgY29sdW1uIGZpbHRlcnMKICAgICAgaWYgKGZpbHRlclJvdykgZmlsdGVyUm93LmVhY2goZnVuY3Rpb24oaSwgdGQpIHsKICAgICAgICB2YXIgJHRkID0gJCh0ZCksIHR5cGUgPSAkdGQuZGF0YSgndHlwZScpOwogICAgICAgIGlmICh0eXBlICE9PSAnY2hhcmFjdGVyJykgcmV0dXJuOwogICAgICAgIHZhciAkaW5wdXQgPSAkdGQuY2hpbGRyZW4oJ2RpdicpLmZpcnN0KCkuY2hpbGRyZW4oJ2lucHV0Jyk7CiAgICAgICAgdmFyIGNvbHVtbiA9IHRhYmxlLmNvbHVtbihpKS5ub2RlcygpLnRvJCgpLAogICAgICAgICAgICB2YWwgPSAkLnRyaW0oJGlucHV0LnZhbCgpKTsKICAgICAgICBpZiAodHlwZSAhPT0gJ2NoYXJhY3RlcicgfHwgdmFsID09PSAnJykgcmV0dXJuOwogICAgICAgIGNvbHVtbi5oaWdobGlnaHQodmFsLnNwbGl0KC9ccysvKSk7CiAgICAgIH0pOwogICAgfTsKCiAgICBpZiAob3B0aW9ucy5zZWFyY2hIaWdobGlnaHQpIHsKICAgICAgdGFibGUKICAgICAgLm9uKCdkcmF3LmR0LmR0aCBjb2x1bW4tdmlzaWJpbGl0eS5kdC5kdGggY29sdW1uLXJlb3JkZXIuZHQuZHRoJywgaGlnaGxpZ2h0KQogICAgICAub24oJ2Rlc3Ryb3knLCBmdW5jdGlvbigpIHsKICAgICAgICAvLyByZW1vdmUgZXZlbnQgaGFuZGxlcgogICAgICAgIHRhYmxlLm9mZignZHJhdy5kdC5kdGggY29sdW1uLXZpc2liaWxpdHkuZHQuZHRoIGNvbHVtbi1yZW9yZGVyLmR0LmR0aCcpOwogICAgICB9KTsKCiAgICAgIC8vIFNldCB0aGUgb3B0aW9uIGZvciBlc2NhcGluZyByZWdleCBjaGFyYWN0ZXJzIGluIG91ciBzZWFyY2ggc3RyaW5nLiAgVGhpcyB3aWxsIGJlIHVzZWQKICAgICAgLy8gZm9yIGFsbCBmdXR1cmUgbWF0Y2hpbmcuCiAgICAgIGpRdWVyeS5mbi5oaWdobGlnaHQub3B0aW9ucy5lc2NhcGVSZWdleCA9ICghb3B0aW9ucy5zZWFyY2ggfHwgIW9wdGlvbnMuc2VhcmNoLnJlZ2V4KTsKCiAgICAgIC8vIGluaXRpYWwgaGlnaGxpZ2h0IGZvciBzdGF0ZSBzYXZlZCBjb25kaXRpb25zIGFuZCBpbml0aWFsIHN0YXRlcwogICAgICBoaWdobGlnaHQoKTsKICAgIH0KCiAgICAvLyBydW4gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIHRoZSB0YWJsZSBpbnN0YW5jZQogICAgaWYgKHR5cGVvZiBkYXRhLmNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSBkYXRhLmNhbGxiYWNrKHRhYmxlKTsKCiAgICAvLyBkb3VibGUgY2xpY2sgdG8gZWRpdCB0aGUgY2VsbCwgcm93LCBjb2x1bW4sIG9yIGFsbCBjZWxscwogICAgaWYgKGRhdGEuZWRpdGFibGUpIHRhYmxlLm9uKCdkYmxjbGljay5kdCcsICd0Ym9keSB0ZCcsIGZ1bmN0aW9uKGUpIHsKICAgICAgLy8gb25seSBicmluZyB1cCB0aGUgZWRpdG9yIHdoZW4gdGhlIGNlbGwgaXRzZWxmIGlzIGRiY2xpY2tlZCwgYW5kIGlnbm9yZQogICAgICAvLyBvdGhlciBkYmNsaWNrIGV2ZW50cyBidWJibGVkIHVwIChlLmcuIGZyb20gdGhlIDxpbnB1dD4pCiAgICAgIGlmIChlLnRhcmdldCAhPT0gdGhpcykgcmV0dXJuOwogICAgICB2YXIgdGFyZ2V0ID0gW10sIGltbWVkaWF0ZSA9IGZhbHNlOwogICAgICBzd2l0Y2ggKGRhdGEuZWRpdGFibGUudGFyZ2V0KSB7CiAgICAgICAgY2FzZSAnY2VsbCc6CiAgICAgICAgICB0YXJnZXQgPSBbdGhpc107CiAgICAgICAgICBpbW1lZGlhdGUgPSB0cnVlOyAgLy8gZWRpdCB3aWxsIHRha2UgZWZmZWN0IGltbWVkaWF0ZWx5CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdyb3cnOgogICAgICAgICAgdGFyZ2V0ID0gdGFibGUuY2VsbHModGFibGUuY2VsbCh0aGlzKS5pbmRleCgpLnJvdywgJyonKS5ub2RlcygpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY29sdW1uJzoKICAgICAgICAgIHRhcmdldCA9IHRhYmxlLmNlbGxzKCcqJywgdGFibGUuY2VsbCh0aGlzKS5pbmRleCgpLmNvbHVtbikubm9kZXMoKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2FsbCc6CiAgICAgICAgICB0YXJnZXQgPSB0YWJsZS5jZWxscygpLm5vZGVzKCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgdGhyb3cgJ1RoZSBlZGl0YWJsZSBwYXJhbWV0ZXIgbXVzdCBiZSAiY2VsbCIsICJyb3ciLCAiY29sdW1uIiwgb3IgImFsbCInOwogICAgICB9CiAgICAgIHZhciBkaXNhYmxlQ29scyA9IGRhdGEuZWRpdGFibGUuZGlzYWJsZSA/IGRhdGEuZWRpdGFibGUuZGlzYWJsZS5jb2x1bW5zIDogbnVsbDsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YXJnZXQubGVuZ3RoOyBpKyspIHsKICAgICAgICAoZnVuY3Rpb24oY2VsbCwgY3VycmVudCkgewogICAgICAgICAgdmFyICRjZWxsID0gJChjZWxsKSwgaHRtbCA9ICRjZWxsLmh0bWwoKTsKICAgICAgICAgIHZhciBfY2VsbCA9IHRhYmxlLmNlbGwoY2VsbCksIHZhbHVlID0gX2NlbGwuZGF0YSgpOwogICAgICAgICAgdmFyICRpbnB1dCA9ICQoJzxpbnB1dCB0eXBlPSJ0ZXh0Ij4nKSwgY2hhbmdlZCA9IGZhbHNlOwogICAgICAgICAgaWYgKCFpbW1lZGlhdGUpIHsKICAgICAgICAgICAgJGNlbGwuZGF0YSgnaW5wdXQnLCAkaW5wdXQpLmRhdGEoJ2h0bWwnLCBodG1sKTsKICAgICAgICAgICAgJGlucHV0LmF0dHIoJ3RpdGxlJywgJ0hpdCBDdHJsK0VudGVyIHRvIGZpbmlzaCBlZGl0aW5nLCBvciBFc2MgdG8gY2FuY2VsJyk7CiAgICAgICAgICB9CiAgICAgICAgICAkaW5wdXQudmFsKHZhbHVlKTsKICAgICAgICAgIGlmIChpbkFycmF5KF9jZWxsLmluZGV4KCkuY29sdW1uLCBkaXNhYmxlQ29scykpIHsKICAgICAgICAgICAgJGlucHV0LmF0dHIoJ3JlYWRvbmx5JywgJycpLmNzcygnZmlsdGVyJywgJ2ludmVydCgyNSUpJyk7CiAgICAgICAgICB9CiAgICAgICAgICAkY2VsbC5lbXB0eSgpLmFwcGVuZCgkaW5wdXQpOwogICAgICAgICAgaWYgKGNlbGwgPT09IGN1cnJlbnQpICRpbnB1dC5mb2N1cygpOwogICAgICAgICAgJGlucHV0LmNzcygnd2lkdGgnLCAnMTAwJScpOwoKICAgICAgICAgIGlmIChpbW1lZGlhdGUpICRpbnB1dC5vbignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgdmFsdWVOZXcgPSAkaW5wdXQudmFsKCk7CiAgICAgICAgICAgIGlmICh2YWx1ZU5ldyAhPSB2YWx1ZSkgewogICAgICAgICAgICAgIF9jZWxsLmRhdGEodmFsdWVOZXcpOwogICAgICAgICAgICAgIGlmIChIVE1MV2lkZ2V0cy5zaGlueU1vZGUpIHsKICAgICAgICAgICAgICAgIGNoYW5nZUlucHV0KCdjZWxsX2VkaXQnLCBbY2VsbEluZm8oY2VsbCldLCAnRFQuY2VsbEluZm8nLCBudWxsLCB7cHJpb3JpdHk6ICJldmVudCJ9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy8gZm9yIHNlcnZlci1zaWRlIHByb2Nlc3NpbmcsIHVzZXJzIGhhdmUgdG8gY2FsbCByZXBsYWNlRGF0YSgpIHRvIHVwZGF0ZSB0aGUgdGFibGUKICAgICAgICAgICAgICBpZiAoIXNlcnZlcikgdGFibGUuZHJhdyhmYWxzZSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgJGNlbGwuaHRtbChodG1sKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkaW5wdXQucmVtb3ZlKCk7CiAgICAgICAgICB9KS5vbignYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoIWNoYW5nZWQpICRpbnB1dC50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgIH0pLm9uKCdrZXl1cCcsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgLy8gaGl0IEVzY2FwZSB0byBjYW5jZWwgZWRpdGluZwogICAgICAgICAgICBpZiAoZS5rZXlDb2RlID09PSAyNykgJGlucHV0LnRyaWdnZXIoJ2JsdXInKTsKICAgICAgICAgIH0pOwoKICAgICAgICAgIC8vIGJ1bGsgZWRpdCAocm93LCBjb2x1bW4sIG9yIGFsbCkKICAgICAgICAgIGlmICghaW1tZWRpYXRlKSAkaW5wdXQub24oJ2tleXVwJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgcmVtb3ZlSW5wdXQgPSBmdW5jdGlvbigkY2VsbCwgcmVzdG9yZSkgewogICAgICAgICAgICAgICRjZWxsLmRhdGEoJ2lucHV0JykucmVtb3ZlKCk7CiAgICAgICAgICAgICAgaWYgKHJlc3RvcmUpICRjZWxsLmh0bWwoJGNlbGwuZGF0YSgnaHRtbCcpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZS5rZXlDb2RlID09PSAyNykgewogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFyZ2V0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICByZW1vdmVJbnB1dCgkKHRhcmdldFtpXSksIHRydWUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmIChlLmtleUNvZGUgPT09IDEzICYmIGUuY3RybEtleSkgewogICAgICAgICAgICAgIC8vIEN0cmwgKyBFbnRlcgogICAgICAgICAgICAgIHZhciBjZWxsLCAkY2VsbCwgX2NlbGwsIGNlbGxEYXRhID0gW107CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YXJnZXQubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIGNlbGwgPSB0YXJnZXRbaV07ICRjZWxsID0gJChjZWxsKTsgX2NlbGwgPSB0YWJsZS5jZWxsKGNlbGwpOwogICAgICAgICAgICAgICAgX2NlbGwuZGF0YSgkY2VsbC5kYXRhKCdpbnB1dCcpLnZhbCgpKTsKICAgICAgICAgICAgICAgIEhUTUxXaWRnZXRzLnNoaW55TW9kZSAmJiBjZWxsRGF0YS5wdXNoKGNlbGxJbmZvKGNlbGwpKTsKICAgICAgICAgICAgICAgIHJlbW92ZUlucHV0KCRjZWxsLCBmYWxzZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChIVE1MV2lkZ2V0cy5zaGlueU1vZGUpIHsKICAgICAgICAgICAgICAgIGNoYW5nZUlucHV0KCdjZWxsX2VkaXQnLCBjZWxsRGF0YSwgJ0RULmNlbGxJbmZvJywgbnVsbCwge3ByaW9yaXR5OiAiZXZlbnQifSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICghc2VydmVyKSB0YWJsZS5kcmF3KGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkodGFyZ2V0W2ldLCB0aGlzKTsKICAgICAgfQogICAgfSk7CgogICAgLy8gaW50ZXJhY3Rpb24gd2l0aCBzaGlueQogICAgaWYgKCFIVE1MV2lkZ2V0cy5zaGlueU1vZGUgJiYgIWNyb3NzdGFsa09wdGlvbnMuZ3JvdXApIHJldHVybjsKCiAgICB2YXIgbWV0aG9kcyA9IHt9OwogICAgdmFyIHNoaW55RGF0YSA9IHt9OwoKICAgIG1ldGhvZHMudXBkYXRlQ2FwdGlvbiA9IGZ1bmN0aW9uKGNhcHRpb24pIHsKICAgICAgaWYgKCFjYXB0aW9uKSByZXR1cm47CiAgICAgICR0YWJsZS5jaGlsZHJlbignY2FwdGlvbicpLnJlcGxhY2VXaXRoKGNhcHRpb24pOwogICAgfQoKICAgIC8vIHJlZ2lzdGVyIGNsZWFyIGZ1bmN0aW9ucyB0byByZW1vdmUgaW5wdXQgdmFsdWVzIHdoZW4gdGhlIHRhYmxlIGlzIHJlbW92ZWQKICAgIGluc3RhbmNlLmNsZWFySW5wdXRzID0ge307CgogICAgdmFyIGNoYW5nZUlucHV0ID0gZnVuY3Rpb24oaWQsIHZhbHVlLCB0eXBlLCBub0Nyb3NzdGFsaywgb3B0cykgewogICAgICB2YXIgZXZlbnQgPSBpZDsKICAgICAgaWQgPSBlbC5pZCArICdfJyArIGlkOwogICAgICBpZiAodHlwZSkgaWQgPSBpZCArICc6JyArIHR5cGU7CiAgICAgIC8vIGRvIG5vdCB1cGRhdGUgaWYgdGhlIG5ldyB2YWx1ZSBpcyB0aGUgc2FtZSBhcyBvbGQgdmFsdWUKICAgICAgaWYgKGV2ZW50ICE9PSAnY2VsbF9lZGl0JyAmJiAhL19jbGlja2VkJC8udGVzdChldmVudCkgJiYgc2hpbnlEYXRhLmhhc093blByb3BlcnR5KGlkKSAmJiBzaGlueURhdGFbaWRdID09PSBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpCiAgICAgICAgcmV0dXJuOwogICAgICBzaGlueURhdGFbaWRdID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpOwogICAgICBpZiAoSFRNTFdpZGdldHMuc2hpbnlNb2RlICYmIFNoaW55LnNldElucHV0VmFsdWUpIHsKICAgICAgICBTaGlueS5zZXRJbnB1dFZhbHVlKGlkLCB2YWx1ZSwgb3B0cyk7CiAgICAgICAgaWYgKCFpbnN0YW5jZS5jbGVhcklucHV0c1tpZF0pIGluc3RhbmNlLmNsZWFySW5wdXRzW2lkXSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgU2hpbnkuc2V0SW5wdXRWYWx1ZShpZCwgbnVsbCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBIQUNLCiAgICAgIGlmIChldmVudCA9PT0gInJvd3Nfc2VsZWN0ZWQiICYmICFub0Nyb3NzdGFsaykgewogICAgICAgIGlmIChjcm9zc3RhbGtPcHRpb25zLmdyb3VwKSB7CiAgICAgICAgICB2YXIga2V5cyA9IGNyb3NzdGFsa09wdGlvbnMua2V5OwogICAgICAgICAgdmFyIHNlbGVjdGVkS2V5cyA9IG51bGw7CiAgICAgICAgICBpZiAodmFsdWUpIHsKICAgICAgICAgICAgc2VsZWN0ZWRLZXlzID0gW107CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAvLyBUaGUgdmFsdWUgYXJyYXkncyBjb250ZW50cyB1c2UgMS1iYXNlZCByb3cgbnVtYmVycywgc28gd2UgbXVzdAogICAgICAgICAgICAgIC8vIGNvbnZlcnQgdG8gMC1iYXNlZCBiZWZvcmUgaW5kZXhpbmcgaW50byB0aGUga2V5cyBhcnJheS4KICAgICAgICAgICAgICBzZWxlY3RlZEtleXMucHVzaChrZXlzW3ZhbHVlW2ldIC0gMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpbnN0YW5jZS5jdHNlbGVjdEhhbmRsZS5zZXQoc2VsZWN0ZWRLZXlzKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CgogICAgdmFyIGFkZE9uZSA9IGZ1bmN0aW9uKHgpIHsKICAgICAgcmV0dXJuIHgubWFwKGZ1bmN0aW9uKGkpIHsgcmV0dXJuIDEgKyBpOyB9KTsKICAgIH07CgogICAgdmFyIHVuaXF1ZSA9IGZ1bmN0aW9uKHgpIHsKICAgICAgdmFyIHV4ID0gW107CiAgICAgICQuZWFjaCh4LCBmdW5jdGlvbihpLCBlbCl7CiAgICAgICAgaWYgKCQuaW5BcnJheShlbCwgdXgpID09PSAtMSkgdXgucHVzaChlbCk7CiAgICAgIH0pOwogICAgICByZXR1cm4gdXg7CiAgICB9CgogICAgLy8gY2hhbmdlIHRoZSByb3cgaW5kZXggb2YgYSBjZWxsCiAgICB2YXIgdHdlYWtDZWxsSW5kZXggPSBmdW5jdGlvbihjZWxsKSB7CiAgICAgIHZhciBpbmZvID0gY2VsbC5pbmRleCgpOwogICAgICAvLyBzb21lIGNlbGwgbWF5IG5vdCBiZSB2YWxpZC4gZS5nLCAjNzU5CiAgICAgIC8vIHdoZW4gdXNpbmcgdGhlIFJvd0dyb3VwIGV4dGVuc2lvbiwgZGF0YXRhYmxlcyB3aWxsCiAgICAgIC8vIGdlbmVyYXRlIHRoZSByb3cgbGFiZWwgYW5kIHRoZSBjZWxscyBhcmUgbm90IHBhcnQgb2YKICAgICAgLy8gdGhlIGRhdGEgdGh1cyBjb250YWluIG5vIHJvdy9jb2wgaW5mbwogICAgICBpZiAoaW5mbyA9PT0gdW5kZWZpbmVkKQogICAgICAgIHJldHVybiB7cm93OiBudWxsLCBjb2w6IG51bGx9OwogICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgaW5mby5yb3cgPSBEVF9yb3dzX2N1cnJlbnRbaW5mby5yb3ddOwogICAgICB9IGVsc2UgewogICAgICAgIGluZm8ucm93ICs9IDE7CiAgICAgIH0KICAgICAgcmV0dXJuIHtyb3c6IGluZm8ucm93LCBjb2w6IGluZm8uY29sdW1ufTsKICAgIH0KCiAgICB2YXIgY2xlYW5TZWxlY3RlZFZhbHVlcyA9IGZ1bmN0aW9uKCkgewogICAgICBjaGFuZ2VJbnB1dCgncm93c19zZWxlY3RlZCcsIFtdKTsKICAgICAgY2hhbmdlSW5wdXQoJ2NvbHVtbnNfc2VsZWN0ZWQnLCBbXSk7CiAgICAgIGNoYW5nZUlucHV0KCdjZWxsc19zZWxlY3RlZCcsIHRyYW5zcG9zZUFycmF5MkQoW10pLCAnc2hpbnkubWF0cml4Jyk7CiAgICB9CiAgICAvLyAjODI4IHdlIHNob3VsZCBjbGVhbiB0aGUgc2VsZWN0aW9uIG9uIHRoZSBzZXJ2ZXItc2lkZSB3aGVuIHRoZSB0YWJsZSByZWxvYWRzCiAgICBjbGVhblNlbGVjdGVkVmFsdWVzKCk7CgogICAgLy8gYSBmbGFnIHRvIGluZGljYXRlcyBpZiBzZWxlY3QgZXh0ZW5zaW9uIGlzIGluaXRpYWxpemVkIG9yIG5vdAogICAgdmFyIGZsYWdTZWxlY3RFeHQgPSB0YWJsZS5zZXR0aW5ncygpWzBdLl9zZWxlY3QgIT09IHVuZGVmaW5lZDsKICAgIC8vIHRoZSBTZWxlY3QgZXh0ZW5zaW9uIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gdGhlIGNsaWVudCBtb2RlIGFuZAogICAgLy8gd2hlbiB0aGUgc2VsZWN0aW9uLm1vZGUgaXMgc2V0IHRvIG5vbmUKICAgIGlmIChkYXRhLnNlbGVjdGlvbi5tb2RlID09PSAnbm9uZScgJiYgIXNlcnZlciAmJiBmbGFnU2VsZWN0RXh0KSB7CiAgICAgIHZhciB1cGRhdGVSb3dzU2VsZWN0ZWQgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3Moe3NlbGVjdGVkOiB0cnVlfSk7CiAgICAgICAgdmFyIHNlbGVjdGVkID0gW107CiAgICAgICAgJC5lYWNoKHJvd3MuaW5kZXhlcygpLnRvQXJyYXkoKSwgZnVuY3Rpb24oaSwgdikgewogICAgICAgICAgc2VsZWN0ZWQucHVzaCh2ICsgMSk7CiAgICAgICAgfSk7CiAgICAgICAgY2hhbmdlSW5wdXQoJ3Jvd3Nfc2VsZWN0ZWQnLCBzZWxlY3RlZCk7CiAgICAgIH0KICAgICAgdmFyIHVwZGF0ZUNvbHNTZWxlY3RlZCA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBjb2x1bW5zID0gdGFibGUuY29sdW1ucyh7c2VsZWN0ZWQ6IHRydWV9KTsKICAgICAgICBjaGFuZ2VJbnB1dCgnY29sdW1uc19zZWxlY3RlZCcsIGNvbHVtbnMuaW5kZXhlcygpLnRvQXJyYXkoKSk7CiAgICAgIH0KICAgICAgdmFyIHVwZGF0ZUNlbGxzU2VsZWN0ZWQgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgY2VsbHMgPSB0YWJsZS5jZWxscyh7c2VsZWN0ZWQ6IHRydWV9KTsKICAgICAgICB2YXIgc2VsZWN0ZWQgPSBbXTsKICAgICAgICBjZWxscy5ldmVyeShmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciByb3cgPSB0aGlzLmluZGV4KCkucm93OwogICAgICAgICAgdmFyIGNvbCA9IHRoaXMuaW5kZXgoKS5jb2x1bW47CiAgICAgICAgICBzZWxlY3RlZCA9IHNlbGVjdGVkLmNvbmNhdChbW3JvdyArIDEsIGNvbF1dKTsKICAgICAgICB9KTsKICAgICAgICBjaGFuZ2VJbnB1dCgnY2VsbHNfc2VsZWN0ZWQnLCB0cmFuc3Bvc2VBcnJheTJEKHNlbGVjdGVkKSwgJ3NoaW55Lm1hdHJpeCcpOwogICAgICB9CiAgICAgIHRhYmxlLm9uKCdzZWxlY3QgZGVzZWxlY3QnLCBmdW5jdGlvbihlLCBkdCwgdHlwZSwgaW5kZXhlcykgewogICAgICAgIHVwZGF0ZVJvd3NTZWxlY3RlZCgpOwogICAgICAgIHVwZGF0ZUNvbHNTZWxlY3RlZCgpOwogICAgICAgIHVwZGF0ZUNlbGxzU2VsZWN0ZWQoKTsKICAgICAgfSkKICAgIH0KCiAgICB2YXIgc2VsTW9kZSA9IGRhdGEuc2VsZWN0aW9uLm1vZGUsIHNlbFRhcmdldCA9IGRhdGEuc2VsZWN0aW9uLnRhcmdldDsKICAgIHZhciBzZWxEaXNhYmxlID0gZGF0YS5zZWxlY3Rpb24uc2VsZWN0YWJsZSA9PT0gZmFsc2U7CiAgICBpZiAoaW5BcnJheShzZWxNb2RlLCBbJ3NpbmdsZScsICdtdWx0aXBsZSddKSkgewogICAgICB2YXIgc2VsQ2xhc3MgPSBpbkFycmF5KGRhdGEuc3R5bGUsIFsnYm9vdHN0cmFwJywgJ2Jvb3RzdHJhcDQnXSkgPyAnYWN0aXZlJyA6ICdzZWxlY3RlZCc7CiAgICAgIC8vIHNlbGVjdGVkMTogcm93IGluZGljZXM7IHNlbGVjdGVkMjogY29sdW1uIGluZGljZXMKICAgICAgdmFyIGluaXRTZWwgPSBmdW5jdGlvbih4KSB7CiAgICAgICAgaWYgKHggPT09IG51bGwgfHwgdHlwZW9mIHggPT09ICdib29sZWFuJyB8fCBzZWxUYXJnZXQgPT09ICdjZWxsJykgewogICAgICAgICAgcmV0dXJuIHtyb3dzOiBbXSwgY29sczogW119OwogICAgICAgIH0gZWxzZSBpZiAoc2VsVGFyZ2V0ID09PSAncm93JykgewogICAgICAgICAgcmV0dXJuIHtyb3dzOiAkLm1ha2VBcnJheSh4KSwgY29sczogW119OwogICAgICAgIH0gZWxzZSBpZiAoc2VsVGFyZ2V0ID09PSAnY29sdW1uJykgewogICAgICAgICAgcmV0dXJuIHtyb3dzOiBbXSwgY29sczogJC5tYWtlQXJyYXkoeCl9OwogICAgICAgIH0gZWxzZSBpZiAoc2VsVGFyZ2V0ID09PSAncm93K2NvbHVtbicpIHsKICAgICAgICAgIHJldHVybiB7cm93czogJC5tYWtlQXJyYXkoeC5yb3dzKSwgY29sczogJC5tYWtlQXJyYXkoeC5jb2xzKX07CiAgICAgICAgfQogICAgICB9CiAgICAgIHZhciBzZWxlY3RlZCA9IGRhdGEuc2VsZWN0aW9uLnNlbGVjdGVkOwogICAgICB2YXIgc2VsZWN0ZWQxID0gaW5pdFNlbChzZWxlY3RlZCkucm93cywgc2VsZWN0ZWQyID0gaW5pdFNlbChzZWxlY3RlZCkuY29sczsKICAgICAgLy8gc2VsZWN0YWJsZSBzaG91bGQgY29udGFpbiBlaXRoZXIgYWxsIHBvc2l0aXZlIG9yIGFsbCBub24tcG9zaXRpdmUgdmFsdWVzLCBub3QgYm90aAogICAgICAvLyBwb3NpdGl2ZSB2YWx1ZXMgaW5kaWNhdGUgInNlbGVjdGFibGUiIHdoaWxlIG5vbi1wb3NpdGl2ZSB2YWx1ZXMgbWVhbnMgIm5vbnNlbGVjdGFibGUiCiAgICAgIC8vIHRoZSBhc3NlcnRpb24gaXMgcGVyZm9ybWVkIG9uIFIgc2lkZS4gKG9ubHkgY29sdW1uIGluZGljaWRlcyBjb3VsZCBiZSB6ZXJvIHdoaWNoIGluZGljYXRlcwogICAgICAvLyB0aGUgcm93IG5hbWUpCiAgICAgIHZhciBzZWxlY3RhYmxlID0gZGF0YS5zZWxlY3Rpb24uc2VsZWN0YWJsZTsKICAgICAgdmFyIHNlbGVjdGFibGUxID0gaW5pdFNlbChzZWxlY3RhYmxlKS5yb3dzLCBzZWxlY3RhYmxlMiA9IGluaXRTZWwoc2VsZWN0YWJsZSkuY29sczsKCiAgICAgIC8vIEFmdGVyIHVzZXJzIHJlb3JkZXIgdGhlIHJvd3Mgb3IgZmlsdGVyIHRoZSB0YWJsZSwgd2UgY2Fubm90IHVzZSB0aGUgdGFibGUgaW5kZXgKICAgICAgLy8gZGlyZWN0bHkuIEluc3RlYWQsIHdlIG5lZWQgdGhpcyBmdW5jdGlvbiB0byBmaW5kIG91dCB0aGUgcm93cyBiZXR3ZWVuIHRoZSB0d28gY2xpY2tzLgogICAgICAvLyBJZiB1c2VyIGZpbHRlciB0aGUgdGFibGUgYWdhaW4gYmV0d2VlbiB0aGUgc3RhcnQgY2xpY2sgYW5kIHRoZSBlbmQgY2xpY2ssIHRoZSBiZWhhdmlvcgogICAgICAvLyB3b3VsZCBiZSB1bmRlZmluZWQsIGJ1dCBpdCBzaG91bGQgbm90IGJlIGEgcHJvYmxlbS4KICAgICAgdmFyIHNoaWZ0U2VsUm93c0luZGV4ID0gZnVuY3Rpb24oc3RhcnQsIGVuZCkgewogICAgICAgIHZhciBpbmRleGVzID0gc2VydmVyID8gRFRfcm93c19hbGwgOiB0YWJsZS5yb3dzKHsgc2VhcmNoOiAnYXBwbGllZCcgfSkuaW5kZXhlcygpLnRvQXJyYXkoKTsKICAgICAgICBzdGFydCA9IGluZGV4ZXMuaW5kZXhPZihzdGFydCk7IGVuZCA9IGluZGV4ZXMuaW5kZXhPZihlbmQpOwogICAgICAgIC8vIGlmIHN0YXJ0IGlzIGxhcmdlciB0aGFuIGVuZCwgd2UgbmVlZCB0byBzd2FwCiAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB7CiAgICAgICAgICB2YXIgdG1wID0gZW5kOyBlbmQgPSBzdGFydDsgc3RhcnQgPSB0bXA7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpbmRleGVzLnNsaWNlKHN0YXJ0LCBlbmQgKyAxKTsKICAgICAgfQoKICAgICAgdmFyIHNlcnZlclJvd0luZGV4ID0gZnVuY3Rpb24oY2xpZW50Um93SW5kZXgpIHsKICAgICAgICByZXR1cm4gc2VydmVyID8gRFRfcm93c19jdXJyZW50W2NsaWVudFJvd0luZGV4XSA6IGNsaWVudFJvd0luZGV4ICsgMTsKICAgICAgfQoKICAgICAgLy8gcm93LCBjb2x1bW4sIG9yIGNlbGwgc2VsZWN0aW9uCiAgICAgIHZhciBsYXN0Q2xpY2tlZFJvdzsKICAgICAgaWYgKGluQXJyYXkoc2VsVGFyZ2V0LCBbJ3JvdycsICdyb3crY29sdW1uJ10pKSB7CiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNlbGVjdGVkIHJvd3MuIEl0IHdpbGwgYWxzbwogICAgICAgIC8vIHVwZGF0ZSB0aGUgc2VsZWN0ZWQxJ3MgdmFsdWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgcm93IHNlbGVjdGlvbiBzdGF0ZQogICAgICAgIC8vIE5vdGUgd2UgY2FuJ3QgcHV0IHRoaXMgZnVuY3Rpb24gaW5zaWRlIHNlbGVjdFJvd3MoKSBkaXJlY3RseSwKICAgICAgICAvLyB0aGUgcmVhc29uIGlzIG1ldGhvZC5zZWxlY3RSb3dzKCkgd2lsbCBvdmVycmlkZSBzZWxlY3RlZDEncyB2YWx1ZSBidXQgdGhpcwogICAgICAgIC8vIGZ1bmN0aW9uIHdpbGwgYWRkIHJvd3MgdG8gc2VsZWN0ZWQxIChrZWVwIHRoZSBleGlzdGluZyBzZWxlY3Rpb24pLCB3aGljaCBpcwogICAgICAgIC8vIGluY29uc2lzdGVudCB3aXRoIGNvbHVtbiBhbmQgY2VsbCBzZWxlY3Rpb24uCiAgICAgICAgdmFyIHNlbGVjdGVkUm93cyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIHJvd3MgPSB0YWJsZS5yb3dzKCcuJyArIHNlbENsYXNzKTsKICAgICAgICAgIHZhciBpZHggPSByb3dzLmluZGV4ZXMoKS50b0FycmF5KCk7CiAgICAgICAgICBpZiAoIXNlcnZlcikgewogICAgICAgICAgICBzZWxlY3RlZDEgPSBhZGRPbmUoaWR4KTsKICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkMTsKICAgICAgICAgIH0KICAgICAgICAgIGlkeCA9IGlkeC5tYXAoZnVuY3Rpb24oaSkgewogICAgICAgICAgICByZXR1cm4gRFRfcm93c19jdXJyZW50W2ldOwogICAgICAgICAgfSk7CiAgICAgICAgICBzZWxlY3RlZDEgPSBzZWxNb2RlID09PSAnbXVsdGlwbGUnID8gdW5pcXVlKHNlbGVjdGVkMS5jb25jYXQoaWR4KSkgOiBpZHg7CiAgICAgICAgICByZXR1cm4gc2VsZWN0ZWQxOwogICAgICAgIH0KICAgICAgICAvLyBDaGFuZ2Ugc2VsZWN0ZWQxJ3MgdmFsdWUgYmFzZWQgb24gc2VsZWN0YWJsZTEsIHRoZW4gcmVmcmVzaCB0aGUgcm93IHN0YXRlCiAgICAgICAgdmFyIG9ubHlLZWVwU2VsZWN0YWJsZVJvd3MgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChzZWxEaXNhYmxlKSB7IC8vIHVzZXJzIGNhbid0IHNlbGVjdDsgdXNlZnVsIHdoZW4gb25seSB3YW50IGJhY2tlbmQgc2VsZWN0CiAgICAgICAgICAgIHNlbGVjdGVkMSA9IFtdOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc2VsZWN0YWJsZTEubGVuZ3RoID09PSAwKSByZXR1cm47CiAgICAgICAgICB2YXIgbm9uc2VsZWN0YWJsZSA9IHNlbGVjdGFibGUxWzBdIDw9IDA7CiAgICAgICAgICBpZiAobm9uc2VsZWN0YWJsZSkgewogICAgICAgICAgICAvLyBzaG91bGQgbWFrZSBzZWxlY3RhYmxlMSBwb3NpdGl2ZQogICAgICAgICAgICBzZWxlY3RlZDEgPSAkKHNlbGVjdGVkMSkubm90KHNlbGVjdGFibGUxLm1hcChmdW5jdGlvbihpKSB7IHJldHVybiAtaTsgfSkpLmdldCgpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc2VsZWN0ZWQxID0gJChzZWxlY3RlZDEpLmZpbHRlcihzZWxlY3RhYmxlMSkuZ2V0KCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIENoYW5nZSBzZWxlY3RlZDEncyB2YWx1ZSBiYXNlZCBvbiBzZWxlY3RhYmxlMSwgdGhlbgogICAgICAgIC8vIHJlZnJlc2ggdGhlIHJvdyBzZWxlY3Rpb24gc3RhdGUgYWNjb3JkaW5nIHRvIHZhbHVlcyBpbiBzZWxlY3RlZDEKICAgICAgICB2YXIgc2VsZWN0Um93cyA9IGZ1bmN0aW9uKGlnbm9yZVNlbGVjdGFibGUpIHsKICAgICAgICAgIGlmICghaWdub3JlU2VsZWN0YWJsZSkgb25seUtlZXBTZWxlY3RhYmxlUm93cygpOwogICAgICAgICAgdGFibGUuJCgndHIuJyArIHNlbENsYXNzKS5yZW1vdmVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICBpZiAoc2VsZWN0ZWQxLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwogICAgICAgICAgaWYgKHNlcnZlcikgewogICAgICAgICAgICB0YWJsZS5yb3dzKHtwYWdlOiAnY3VycmVudCd9KS5ldmVyeShmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBpZiAoaW5BcnJheShEVF9yb3dzX2N1cnJlbnRbdGhpcy5pbmRleCgpXSwgc2VsZWN0ZWQxKSkgewogICAgICAgICAgICAgICAgJCh0aGlzLm5vZGUoKSkuYWRkQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgc2VsZWN0ZWQwID0gc2VsZWN0ZWQxLm1hcChmdW5jdGlvbihpKSB7IHJldHVybiBpIC0gMTsgfSk7CiAgICAgICAgICAgICQodGFibGUucm93cyhzZWxlY3RlZDApLm5vZGVzKCkpLmFkZENsYXNzKHNlbENsYXNzKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdGFibGUub24oJ21vdXNlZG93bi5kdCcsICd0Ym9keSB0cicsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyksIHRoaXNSb3cgPSB0YWJsZS5yb3codGhpcyk7CiAgICAgICAgICBpZiAoc2VsTW9kZSA9PT0gJ211bHRpcGxlJykgewogICAgICAgICAgICBpZiAoZS5zaGlmdEtleSAmJiBsYXN0Q2xpY2tlZFJvdyAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgLy8gc2VsZWN0IG9yIGRlLXNlbGVjdCBkZXBlbmRzIG9uIHRoZSBsYXN0IGNsaWNrZWQgcm93J3Mgc3RhdHVzCiAgICAgICAgICAgICAgdmFyIGZsYWdTZWwgPSAhJHRoaXMuaGFzQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAgIHZhciBjcnRDbGlja2VkUm93ID0gc2VydmVyUm93SW5kZXgodGhpc1Jvdy5pbmRleCgpKTsKICAgICAgICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICAgICAgICB2YXIgcm93c0luZGV4ID0gc2hpZnRTZWxSb3dzSW5kZXgobGFzdENsaWNrZWRSb3csIGNydENsaWNrZWRSb3cpOwogICAgICAgICAgICAgICAgLy8gdXBkYXRlIGN1cnJlbnQgcGFnZSdzIHNlbENsYXNzCiAgICAgICAgICAgICAgICByb3dzSW5kZXgubWFwKGZ1bmN0aW9uKGkpIHsKICAgICAgICAgICAgICAgICAgdmFyIHJvd0luZGV4ID0gRFRfcm93c19jdXJyZW50LmluZGV4T2YoaSk7CiAgICAgICAgICAgICAgICAgIGlmIChyb3dJbmRleCA+PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJvdyA9IHRhYmxlLnJvdyhyb3dJbmRleCkubm9kZXMoKS50byQoKTsKICAgICAgICAgICAgICAgICAgICB2YXIgZmxhZ1Jvd1NlbCA9ICFyb3cuaGFzQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAgICAgICAgIGlmIChmbGFnU2VsID09PSBmbGFnUm93U2VsKSByb3cudG9nZ2xlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBzZWxlY3RlZDEKICAgICAgICAgICAgICAgIGlmIChmbGFnU2VsKSB7CiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkMSA9IHVuaXF1ZShzZWxlY3RlZDEuY29uY2F0KHJvd3NJbmRleCkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQxID0gc2VsZWN0ZWQxLmZpbHRlcihmdW5jdGlvbihpbmRleCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAhaW5BcnJheShpbmRleCwgcm93c0luZGV4KTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIGpzIHN0YXJ0cyBmcm9tIDAKICAgICAgICAgICAgICAgIHNoaWZ0U2VsUm93c0luZGV4KGxhc3RDbGlja2VkUm93IC0gMSwgY3J0Q2xpY2tlZFJvdyAtIDEpLm1hcChmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICAgICAgICB2YXIgcm93ID0gdGFibGUucm93KHZhbHVlKS5ub2RlcygpLnRvJCgpOwogICAgICAgICAgICAgICAgICB2YXIgZmxhZ1Jvd1NlbCA9ICFyb3cuaGFzQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAgICAgICBpZiAoZmxhZ1NlbCA9PT0gZmxhZ1Jvd1NlbCkgcm93LnRvZ2dsZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgJHRoaXMudG9nZ2xlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoJHRoaXMuaGFzQ2xhc3Moc2VsQ2xhc3MpKSB7CiAgICAgICAgICAgICAgJHRoaXMucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRhYmxlLiQoJ3RyLicgKyBzZWxDbGFzcykucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAgICR0aGlzLmFkZENsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHNlcnZlciAmJiAhJHRoaXMuaGFzQ2xhc3Moc2VsQ2xhc3MpKSB7CiAgICAgICAgICAgIHZhciBpZCA9IERUX3Jvd3NfY3VycmVudFt0aGlzUm93LmluZGV4KCldOwogICAgICAgICAgICAvLyByZW1vdmUgaWQgZnJvbSBzZWxlY3RlZDEgc2luY2UgaXRzIGNsYXNzIC5zZWxlY3RlZCBoYXMgYmVlbiByZW1vdmVkCiAgICAgICAgICAgIGlmIChpbkFycmF5KGlkLCBzZWxlY3RlZDEpKSBzZWxlY3RlZDEuc3BsaWNlKCQuaW5BcnJheShpZCwgc2VsZWN0ZWQxKSwgMSk7CiAgICAgICAgICB9CiAgICAgICAgICBzZWxlY3RlZFJvd3MoKTsgLy8gdXBkYXRlIHNlbGVjdGVkMSdzIHZhbHVlIGJhc2VkIG9uIHNlbENsYXNzCiAgICAgICAgICBzZWxlY3RSb3dzKGZhbHNlKTsgLy8gb25seSBrZWVwIHRoZSBzZWxlY3RhYmxlIHJvd3MKICAgICAgICAgIGNoYW5nZUlucHV0KCdyb3dzX3NlbGVjdGVkJywgc2VsZWN0ZWQxKTsKICAgICAgICAgIGNoYW5nZUlucHV0KCdyb3dfbGFzdF9jbGlja2VkJywgc2VydmVyUm93SW5kZXgodGhpc1Jvdy5pbmRleCgpKSwgbnVsbCwgbnVsbCwge3ByaW9yaXR5OiAnZXZlbnQnfSk7CiAgICAgICAgICBsYXN0Q2xpY2tlZFJvdyA9IHNlcnZlclJvd0luZGV4KHRoaXNSb3cuaW5kZXgoKSk7CiAgICAgICAgfSk7CiAgICAgICAgc2VsZWN0Um93cyhmYWxzZSk7ICAvLyBpbiBjYXNlIHVzZXJzIGhhdmUgc3BlY2lmaWVkIHByZS1zZWxlY3RlZCByb3dzCiAgICAgICAgLy8gcmVzdG9yZSBzZWxlY3RlZCByb3dzIGFmdGVyIHRoZSB0YWJsZSBpcyByZWRyYXduIChlLmcuIHNvcnQvc2VhcmNoL3BhZ2UpOwogICAgICAgIC8vIGNsaWVudC1zaWRlIHRhYmxlcyB3aWxsIHByZXNlcnZlIHRoZSBzZWxlY3Rpb25zIGF1dG9tYXRpY2FsbHk7IGZvcgogICAgICAgIC8vIHNlcnZlci1zaWRlIHRhYmxlcywgd2UgaGF2ZSB0byAqcmVhbCogcm93IGluZGljZXMgYXJlIGluIGBzZWxlY3RlZDFgCiAgICAgICAgY2hhbmdlSW5wdXQoJ3Jvd3Nfc2VsZWN0ZWQnLCBzZWxlY3RlZDEpOwogICAgICAgIGlmIChzZXJ2ZXIpIHRhYmxlLm9uKCdkcmF3LmR0JywgZnVuY3Rpb24oZSkgeyBzZWxlY3RSb3dzKGZhbHNlKTsgfSk7CiAgICAgICAgbWV0aG9kcy5zZWxlY3RSb3dzID0gZnVuY3Rpb24oc2VsZWN0ZWQsIGlnbm9yZVNlbGVjdGFibGUpIHsKICAgICAgICAgIHNlbGVjdGVkMSA9ICQubWFrZUFycmF5KHNlbGVjdGVkKTsKICAgICAgICAgIHNlbGVjdFJvd3MoaWdub3JlU2VsZWN0YWJsZSk7CiAgICAgICAgICBjaGFuZ2VJbnB1dCgncm93c19zZWxlY3RlZCcsIHNlbGVjdGVkMSk7CiAgICAgICAgfQogICAgICB9CgogICAgICBpZiAoaW5BcnJheShzZWxUYXJnZXQsIFsnY29sdW1uJywgJ3Jvdytjb2x1bW4nXSkpIHsKICAgICAgICBpZiAoc2VsVGFyZ2V0ID09PSAncm93K2NvbHVtbicpIHsKICAgICAgICAgICQodGFibGUuY29sdW1ucygpLmZvb3RlcigpKS5jc3MoJ2N1cnNvcicsICdwb2ludGVyJyk7CiAgICAgICAgfQogICAgICAgIC8vIHVwZGF0ZSBzZWxlY3RlZDIncyB2YWx1ZSBiYXNlZCBvbiBzZWxlY3RhYmxlMgogICAgICAgIHZhciBvbmx5S2VlcFNlbGVjdGFibGVDb2xzID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoc2VsRGlzYWJsZSkgeyAvLyB1c2VycyBjYW4ndCBzZWxlY3Q7IHVzZWZ1bCB3aGVuIG9ubHkgd2FudCBiYWNrZW5kIHNlbGVjdAogICAgICAgICAgICBzZWxlY3RlZDIgPSBbXTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHNlbGVjdGFibGUyLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwogICAgICAgICAgdmFyIG5vbnNlbGVjdGFibGUgPSBzZWxlY3RhYmxlMlswXSA8PSAwOwogICAgICAgICAgaWYgKG5vbnNlbGVjdGFibGUpIHsKICAgICAgICAgICAgLy8gbmVlZCB0byBtYWtlIHNlbGVjdGFibGUyIHBvc2l0aXZlCiAgICAgICAgICAgIHNlbGVjdGVkMiA9ICQoc2VsZWN0ZWQyKS5ub3Qoc2VsZWN0YWJsZTIubWFwKGZ1bmN0aW9uKGkpIHsgcmV0dXJuIC1pOyB9KSkuZ2V0KCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzZWxlY3RlZDIgPSAkKHNlbGVjdGVkMikuZmlsdGVyKHNlbGVjdGFibGUyKS5nZXQoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gdXBkYXRlIHNlbGVjdGVkMiBhbmQgdGhlbgogICAgICAgIC8vIHJlZnJlc2ggdGhlIGNvbCBzZWxlY3Rpb24gc3RhdGUgYWNjb3JkaW5nIHRvIHZhbHVlcyBpbiBzZWxlY3RlZDIKICAgICAgICB2YXIgc2VsZWN0Q29scyA9IGZ1bmN0aW9uKGlnbm9yZVNlbGVjdGFibGUpIHsKICAgICAgICAgIGlmICghaWdub3JlU2VsZWN0YWJsZSkgb25seUtlZXBTZWxlY3RhYmxlQ29scygpOwogICAgICAgICAgLy8gaWYgc2VsZWN0ZWQyIGlzIG5vdCBhIHZhbGlkZSBpbmRleCAoZS5nLiwgbGFyZ2VyIHRoYW4gdGhlIGNvbHVtbiBudW1iZXIpCiAgICAgICAgICAvLyB0YWJsZS5jb2x1bW5zKHNlbGVjdGVkMikgd2lsbCBmYWlsIGFuZCByZXN1bHQgaW4gYSBibGFuayB0YWJsZQogICAgICAgICAgLy8gdGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgdGFibGUucm93cygpLCB3aGVyZSB0aGUgb3V0LW9mLXJhbmdlIGluZGV4ZXMKICAgICAgICAgIC8vIGRvZXNuJ3QgYWZmZWN0IGF0IGFsbAogICAgICAgICAgc2VsZWN0ZWQyID0gJChzZWxlY3RlZDIpLmZpbHRlcih0YWJsZS5jb2x1bW5zKCkuaW5kZXhlcygpKS5nZXQoKTsKICAgICAgICAgIHRhYmxlLmNvbHVtbnMoKS5ub2RlcygpLmZsYXR0ZW4oKS50byQoKS5yZW1vdmVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICBpZiAoc2VsZWN0ZWQyLmxlbmd0aCA+IDApCiAgICAgICAgICAgIHRhYmxlLmNvbHVtbnMoc2VsZWN0ZWQyKS5ub2RlcygpLmZsYXR0ZW4oKS50byQoKS5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgfQogICAgICAgIHZhciBjYWxsYmFjayA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIGNvbElkeCA9IHNlbFRhcmdldCA9PT0gJ2NvbHVtbicgPyB0YWJsZS5jZWxsKHRoaXMpLmluZGV4KCkuY29sdW1uIDoKICAgICAgICAgICAgICAkLmluQXJyYXkodGhpcywgdGFibGUuY29sdW1ucygpLmZvb3RlcigpKSwKICAgICAgICAgICAgICB0aGlzQ29sID0gJCh0YWJsZS5jb2x1bW4oY29sSWR4KS5ub2RlcygpKTsKICAgICAgICAgIGlmIChjb2xJZHggPT09IC0xKSByZXR1cm47CiAgICAgICAgICBpZiAodGhpc0NvbC5oYXNDbGFzcyhzZWxDbGFzcykpIHsKICAgICAgICAgICAgdGhpc0NvbC5yZW1vdmVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgIHNlbGVjdGVkMi5zcGxpY2UoJC5pbkFycmF5KGNvbElkeCwgc2VsZWN0ZWQyKSwgMSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoc2VsTW9kZSA9PT0gJ3NpbmdsZScpICQodGFibGUuY2VsbHMoKS5ub2RlcygpKS5yZW1vdmVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgIHRoaXNDb2wuYWRkQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICBzZWxlY3RlZDIgPSBzZWxNb2RlID09PSAnc2luZ2xlJyA/IFtjb2xJZHhdIDogdW5pcXVlKHNlbGVjdGVkMi5jb25jYXQoW2NvbElkeF0pKTsKICAgICAgICAgIH0KICAgICAgICAgIHNlbGVjdENvbHMoZmFsc2UpOyAvLyB1cGRhdGUgc2VsZWN0ZWQyIGJhc2VkIG9uIHNlbGVjdGFibGUKICAgICAgICAgIGNoYW5nZUlucHV0KCdjb2x1bW5zX3NlbGVjdGVkJywgc2VsZWN0ZWQyKTsKICAgICAgICB9CiAgICAgICAgaWYgKHNlbFRhcmdldCA9PT0gJ2NvbHVtbicpIHsKICAgICAgICAgICQodGFibGUudGFibGUoKS5ib2R5KCkpLm9uKCdjbGljay5kdCcsICd0ZCcsIGNhbGxiYWNrKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgJCh0YWJsZS50YWJsZSgpLmZvb3RlcigpKS5vbignY2xpY2suZHQnLCAndHIgdGgnLCBjYWxsYmFjayk7CiAgICAgICAgfQogICAgICAgIHNlbGVjdENvbHMoZmFsc2UpOyAgLy8gaW4gY2FzZSB1c2VycyBoYXZlIHNwZWNpZmllZCBwcmUtc2VsZWN0ZWQgY29sdW1ucwogICAgICAgIGNoYW5nZUlucHV0KCdjb2x1bW5zX3NlbGVjdGVkJywgc2VsZWN0ZWQyKTsKICAgICAgICBpZiAoc2VydmVyKSB0YWJsZS5vbignZHJhdy5kdCcsIGZ1bmN0aW9uKGUpIHsgc2VsZWN0Q29scyhmYWxzZSk7IH0pOwogICAgICAgIG1ldGhvZHMuc2VsZWN0Q29sdW1ucyA9IGZ1bmN0aW9uKHNlbGVjdGVkLCBpZ25vcmVTZWxlY3RhYmxlKSB7CiAgICAgICAgICBzZWxlY3RlZDIgPSAkLm1ha2VBcnJheShzZWxlY3RlZCk7CiAgICAgICAgICBzZWxlY3RDb2xzKGlnbm9yZVNlbGVjdGFibGUpOwogICAgICAgICAgY2hhbmdlSW5wdXQoJ2NvbHVtbnNfc2VsZWN0ZWQnLCBzZWxlY3RlZDIpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKHNlbFRhcmdldCA9PT0gJ2NlbGwnKSB7CiAgICAgICAgdmFyIHNlbGVjdGVkMyA9IFtdLCBzZWxlY3RhYmxlMyA9IFtdOwogICAgICAgIGlmIChzZWxlY3RlZCAhPT0gbnVsbCkgc2VsZWN0ZWQzID0gc2VsZWN0ZWQ7CiAgICAgICAgaWYgKHNlbGVjdGFibGUgIT09IG51bGwgJiYgdHlwZW9mIHNlbGVjdGFibGUgIT09ICdib29sZWFuJykgc2VsZWN0YWJsZTMgPSBzZWxlY3RhYmxlOwogICAgICAgIHZhciBmaW5kSW5kZXggPSBmdW5jdGlvbihpaiwgc2VsKSB7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoaWpbMF0gPT09IHNlbFtpXVswXSAmJiBpalsxXSA9PT0gc2VsW2ldWzFdKSByZXR1cm4gaTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgIC8vIENoYW5nZSBzZWxlY3RlZDMncyB2YWx1ZSBiYXNlZCBvbiBzZWxlY3RhYmxlMywgdGhlbiByZWZyZXNoIHRoZSBjZWxsIHN0YXRlCiAgICAgICAgdmFyIG9ubHlLZWVwU2VsZWN0YWJsZUNlbGxzID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoc2VsRGlzYWJsZSkgeyAvLyB1c2VycyBjYW4ndCBzZWxlY3Q7IHVzZWZ1bCB3aGVuIG9ubHkgd2FudCBiYWNrZW5kIHNlbGVjdAogICAgICAgICAgICBzZWxlY3RlZDMgPSBbXTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHNlbGVjdGFibGUzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwogICAgICAgICAgdmFyIG5vbnNlbGVjdGFibGUgPSBzZWxlY3RhYmxlM1swXVswXSA8PSAwOwogICAgICAgICAgdmFyIG91dCA9IFtdOwogICAgICAgICAgaWYgKG5vbnNlbGVjdGFibGUpIHsKICAgICAgICAgICAgc2VsZWN0ZWQzLm1hcChmdW5jdGlvbihpaikgewogICAgICAgICAgICAgIC8vIHNob3VsZCBtYWtlIHNlbGVjdGFibGUzIHBvc2l0aXZlCiAgICAgICAgICAgICAgaWYgKGZpbmRJbmRleChbLWlqWzBdLCAtaWpbMV1dLCBzZWxlY3RhYmxlMykgPT09IC0xKSB7IG91dC5wdXNoKGlqKTsgfQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHNlbGVjdGVkMy5tYXAoZnVuY3Rpb24oaWopIHsKICAgICAgICAgICAgICBpZiAoZmluZEluZGV4KGlqLCBzZWxlY3RhYmxlMykgPiAtMSkgeyBvdXQucHVzaChpaik7IH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgICBzZWxlY3RlZDMgPSBvdXQ7CiAgICAgICAgfQogICAgICAgIC8vIENoYW5nZSBzZWxlY3RlZDMncyB2YWx1ZSBiYXNlZCBvbiBzZWxlY3RhYmxlMywgdGhlbgogICAgICAgIC8vIHJlZnJlc2ggdGhlIGNlbGwgc2VsZWN0aW9uIHN0YXRlIGFjY29yZGluZyB0byB2YWx1ZXMgaW4gc2VsZWN0ZWQzCiAgICAgICAgdmFyIHNlbGVjdENlbGxzID0gZnVuY3Rpb24oaWdub3JlU2VsZWN0YWJsZSkgewogICAgICAgICAgaWYgKCFpZ25vcmVTZWxlY3RhYmxlKSBvbmx5S2VlcFNlbGVjdGFibGVDZWxscygpOwogICAgICAgICAgdGFibGUuJCgndGQuJyArIHNlbENsYXNzKS5yZW1vdmVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICBpZiAoc2VsZWN0ZWQzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwogICAgICAgICAgaWYgKHNlcnZlcikgewogICAgICAgICAgICB0YWJsZS5jZWxscyh7cGFnZTogJ2N1cnJlbnQnfSkuZXZlcnkoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFyIGluZm8gPSB0d2Vha0NlbGxJbmRleCh0aGlzKTsKICAgICAgICAgICAgICBpZiAoZmluZEluZGV4KFtpbmZvLnJvdywgaW5mby5jb2xdLCBzZWxlY3RlZDMpID4gLTEpCiAgICAgICAgICAgICAgICAkKHRoaXMubm9kZSgpKS5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc2VsZWN0ZWQzLm1hcChmdW5jdGlvbihpaikgewogICAgICAgICAgICAgICQodGFibGUuY2VsbChpalswXSAtIDEsIGlqWzFdKS5ub2RlKCkpLmFkZENsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICB0YWJsZS5vbignY2xpY2suZHQnLCAndGJvZHkgdGQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyksIGluZm8gPSB0d2Vha0NlbGxJbmRleCh0YWJsZS5jZWxsKHRoaXMpKTsKICAgICAgICAgIGlmICgkdGhpcy5oYXNDbGFzcyhzZWxDbGFzcykpIHsKICAgICAgICAgICAgJHRoaXMucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICBzZWxlY3RlZDMuc3BsaWNlKGZpbmRJbmRleChbaW5mby5yb3csIGluZm8uY29sXSwgc2VsZWN0ZWQzKSwgMSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoc2VsTW9kZSA9PT0gJ3NpbmdsZScpICQodGFibGUuY2VsbHMoKS5ub2RlcygpKS5yZW1vdmVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgICR0aGlzLmFkZENsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgc2VsZWN0ZWQzID0gc2VsTW9kZSA9PT0gJ3NpbmdsZScgPyBbW2luZm8ucm93LCBpbmZvLmNvbF1dIDoKICAgICAgICAgICAgICB1bmlxdWUoc2VsZWN0ZWQzLmNvbmNhdChbW2luZm8ucm93LCBpbmZvLmNvbF1dKSk7CiAgICAgICAgICB9CiAgICAgICAgICBzZWxlY3RDZWxscyhmYWxzZSk7IC8vIG11c3QgY2FsbCB0aGlzIHRvIHVwZGF0ZSBzZWxlY3RlZDMgYmFzZWQgb24gc2VsZWN0YWJsZTMKICAgICAgICAgIGNoYW5nZUlucHV0KCdjZWxsc19zZWxlY3RlZCcsIHRyYW5zcG9zZUFycmF5MkQoc2VsZWN0ZWQzKSwgJ3NoaW55Lm1hdHJpeCcpOwogICAgICAgIH0pOwogICAgICAgIHNlbGVjdENlbGxzKGZhbHNlKTsgIC8vIGluIGNhc2UgdXNlcnMgaGF2ZSBzcGVjaWZpZWQgcHJlLXNlbGVjdGVkIGNvbHVtbnMKICAgICAgICBjaGFuZ2VJbnB1dCgnY2VsbHNfc2VsZWN0ZWQnLCB0cmFuc3Bvc2VBcnJheTJEKHNlbGVjdGVkMyksICdzaGlueS5tYXRyaXgnKTsKCiAgICAgICAgaWYgKHNlcnZlcikgdGFibGUub24oJ2RyYXcuZHQnLCBmdW5jdGlvbihlKSB7IHNlbGVjdENlbGxzKGZhbHNlKTsgfSk7CiAgICAgICAgbWV0aG9kcy5zZWxlY3RDZWxscyA9IGZ1bmN0aW9uKHNlbGVjdGVkLCBpZ25vcmVTZWxlY3RhYmxlKSB7CiAgICAgICAgICBzZWxlY3RlZDMgPSBzZWxlY3RlZCA/IHNlbGVjdGVkIDogW107CiAgICAgICAgICBzZWxlY3RDZWxscyhpZ25vcmVTZWxlY3RhYmxlKTsKICAgICAgICAgIGNoYW5nZUlucHV0KCdjZWxsc19zZWxlY3RlZCcsIHRyYW5zcG9zZUFycmF5MkQoc2VsZWN0ZWQzKSwgJ3NoaW55Lm1hdHJpeCcpOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIC8vIGV4cG9zZSBzb21lIHRhYmxlIGluZm8gdG8gU2hpbnkKICAgIHZhciB1cGRhdGVUYWJsZUluZm8gPSBmdW5jdGlvbihlLCBzZXR0aW5ncykgewogICAgICAvLyBUT0RPOiBpcyBhbnlvbmUgaW50ZXJlc3RlZCBpbiB0aGUgcGFnZSBpbmZvPwogICAgICAvLyBjaGFuZ2VJbnB1dCgncGFnZV9pbmZvJywgdGFibGUucGFnZS5pbmZvKCkpOwogICAgICB2YXIgdXBkYXRlUm93SW5mbyA9IGZ1bmN0aW9uKGlkLCBtb2RpZmllcikgewogICAgICAgIHZhciBpZHg7CiAgICAgICAgaWYgKHNlcnZlcikgewogICAgICAgICAgaWR4ID0gbW9kaWZpZXIucGFnZSA9PT0gJ2N1cnJlbnQnID8gRFRfcm93c19jdXJyZW50IDogRFRfcm93c19hbGw7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZhciByb3dzID0gdGFibGUucm93cygkLmV4dGVuZCh7CiAgICAgICAgICAgIHNlYXJjaDogJ2FwcGxpZWQnLAogICAgICAgICAgICBwYWdlOiAnYWxsJwogICAgICAgICAgfSwgbW9kaWZpZXIpKTsKICAgICAgICAgIGlkeCA9IGFkZE9uZShyb3dzLmluZGV4ZXMoKS50b0FycmF5KCkpOwogICAgICAgIH0KICAgICAgICBjaGFuZ2VJbnB1dCgncm93cycgKyAnXycgKyBpZCwgaWR4KTsKICAgICAgfTsKICAgICAgdXBkYXRlUm93SW5mbygnY3VycmVudCcsIHtwYWdlOiAnY3VycmVudCd9KTsKICAgICAgdXBkYXRlUm93SW5mbygnYWxsJywge30pOwogICAgfQogICAgdGFibGUub24oJ2RyYXcuZHQnLCB1cGRhdGVUYWJsZUluZm8pOwogICAgdXBkYXRlVGFibGVJbmZvKCk7CgogICAgLy8gc3RhdGUgaW5mbwogICAgdGFibGUub24oJ2RyYXcuZHQgY29sdW1uLXZpc2liaWxpdHkuZHQnLCBmdW5jdGlvbigpIHsKICAgICAgY2hhbmdlSW5wdXQoJ3N0YXRlJywgdGFibGUuc3RhdGUoKSk7CiAgICB9KTsKICAgIGNoYW5nZUlucHV0KCdzdGF0ZScsIHRhYmxlLnN0YXRlKCkpOwoKICAgIC8vIHNlYXJjaCBpbmZvCiAgICB2YXIgdXBkYXRlU2VhcmNoSW5mbyA9IGZ1bmN0aW9uKCkgewogICAgICBjaGFuZ2VJbnB1dCgnc2VhcmNoJywgdGFibGUuc2VhcmNoKCkpOwogICAgICBpZiAoZmlsdGVyUm93KSBjaGFuZ2VJbnB1dCgnc2VhcmNoX2NvbHVtbnMnLCBmaWx0ZXJSb3cudG9BcnJheSgpLm1hcChmdW5jdGlvbih0ZCkgewogICAgICAgIHJldHVybiAkKHRkKS5maW5kKCdpbnB1dCcpLmZpcnN0KCkudmFsKCk7CiAgICAgIH0pKTsKICAgIH0KICAgIHRhYmxlLm9uKCdkcmF3LmR0JywgdXBkYXRlU2VhcmNoSW5mbyk7CiAgICB1cGRhdGVTZWFyY2hJbmZvKCk7CgogICAgdmFyIGNlbGxJbmZvID0gZnVuY3Rpb24odGhpeikgewogICAgICB2YXIgaW5mbyA9IHR3ZWFrQ2VsbEluZGV4KHRhYmxlLmNlbGwodGhpeikpOwogICAgICBpbmZvLnZhbHVlID0gdGFibGUuY2VsbCh0aGl6KS5kYXRhKCk7CiAgICAgIHJldHVybiBpbmZvOwogICAgfQogICAgLy8gdGhlIGN1cnJlbnQgY2VsbCBjbGlja2VkIG9uCiAgICB0YWJsZS5vbignY2xpY2suZHQnLCAndGJvZHkgdGQnLCBmdW5jdGlvbigpIHsKICAgICAgY2hhbmdlSW5wdXQoJ2NlbGxfY2xpY2tlZCcsIGNlbGxJbmZvKHRoaXMpLCBudWxsLCBudWxsLCB7cHJpb3JpdHk6ICdldmVudCd9KTsKICAgIH0pCiAgICBjaGFuZ2VJbnB1dCgnY2VsbF9jbGlja2VkJywge30pOwoKICAgIC8vIGRvIG5vdCB0cmlnZ2VyIHRhYmxlIHNlbGVjdGlvbiB3aGVuIGNsaWNraW5nIG9uIGxpbmtzIHVubGVzcyB0aGV5IGhhdmUgY2xhc3NlcwogICAgdGFibGUub24oJ2NsaWNrLmR0JywgJ3Rib2R5IHRkIGEnLCBmdW5jdGlvbihlKSB7CiAgICAgIGlmICh0aGlzLmNsYXNzTmFtZSA9PT0gJycpIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICB9KTsKCiAgICBtZXRob2RzLmFkZFJvdyA9IGZ1bmN0aW9uKGRhdGEsIHJvd25hbWUsIHJlc2V0UGFnaW5nKSB7CiAgICAgIHZhciBkYXRhMCA9IHRhYmxlLnJvdygwKS5kYXRhKCksIG4gPSBkYXRhMC5sZW5ndGgsIGQgPSBuIC0gZGF0YS5sZW5ndGg7CiAgICAgIGlmIChkID09PSAxKSB7CiAgICAgICAgZGF0YSA9IHJvd25hbWUuY29uY2F0KGRhdGEpCiAgICAgIH0gZWxzZSBpZiAoZCAhPT0gMCkgewogICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOwogICAgICAgIGNvbnNvbGUubG9nKGRhdGEwKTsKICAgICAgICB0aHJvdyAnTmV3IGRhdGEgbXVzdCBiZSBvZiB0aGUgc2FtZSBsZW5ndGggYXMgY3VycmVudCBkYXRhICgnICsgbiArICcpJzsKICAgICAgfTsKICAgICAgdGFibGUucm93LmFkZChkYXRhKS5kcmF3KHJlc2V0UGFnaW5nKTsKICAgIH0KCiAgICBtZXRob2RzLnVwZGF0ZVNlYXJjaCA9IGZ1bmN0aW9uKGtleXdvcmRzKSB7CiAgICAgIGlmIChrZXl3b3Jkcy5nbG9iYWwgIT09IG51bGwpCiAgICAgICAgJCh0YWJsZS50YWJsZSgpLmNvbnRhaW5lcigpKS5maW5kKCdpbnB1dFt0eXBlPXNlYXJjaF0nKS5maXJzdCgpCiAgICAgICAgICAgICAudmFsKGtleXdvcmRzLmdsb2JhbCkudHJpZ2dlcignaW5wdXQnKTsKICAgICAgdmFyIGNvbHVtbnMgPSBrZXl3b3Jkcy5jb2x1bW5zOwogICAgICBpZiAoIWZpbHRlclJvdyB8fCBjb2x1bW5zID09PSBudWxsKSByZXR1cm47CiAgICAgIGZpbHRlclJvdy50b0FycmF5KCkubWFwKGZ1bmN0aW9uKHRkLCBpKSB7CiAgICAgICAgdmFyIHYgPSB0eXBlb2YgY29sdW1ucyA9PT0gJ3N0cmluZycgPyBjb2x1bW5zIDogY29sdW1uc1tpXTsKICAgICAgICBpZiAodHlwZW9mIHYgPT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygnVGhlIHNlYXJjaCBrZXl3b3JkIGZvciBjb2x1bW4gJyArIGkgKyAnIGlzIHVuZGVmaW5lZCcpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgICQodGQpLmZpbmQoJ2lucHV0JykuZmlyc3QoKS52YWwodik7CiAgICAgICAgc2VhcmNoQ29sdW1uKGksIHYpOwogICAgICB9KTsKICAgICAgdGFibGUuZHJhdygpOwogICAgfQoKICAgIG1ldGhvZHMuaGlkZUNvbHMgPSBmdW5jdGlvbihoaWRlLCByZXNldCkgewogICAgICBpZiAocmVzZXQpIHRhYmxlLmNvbHVtbnMoKS52aXNpYmxlKHRydWUsIGZhbHNlKTsKICAgICAgdGFibGUuY29sdW1ucyhoaWRlKS52aXNpYmxlKGZhbHNlKTsKICAgIH0KCiAgICBtZXRob2RzLnNob3dDb2xzID0gZnVuY3Rpb24oc2hvdywgcmVzZXQpIHsKICAgICAgaWYgKHJlc2V0KSB0YWJsZS5jb2x1bW5zKCkudmlzaWJsZShmYWxzZSwgZmFsc2UpOwogICAgICB0YWJsZS5jb2x1bW5zKHNob3cpLnZpc2libGUodHJ1ZSk7CiAgICB9CgogICAgbWV0aG9kcy5jb2xSZW9yZGVyID0gZnVuY3Rpb24ob3JkZXIsIG9yaWdPcmRlcikgewogICAgICB0YWJsZS5jb2xSZW9yZGVyLm9yZGVyKG9yZGVyLCBvcmlnT3JkZXIpOwogICAgfQoKICAgIG1ldGhvZHMuc2VsZWN0UGFnZSA9IGZ1bmN0aW9uKHBhZ2UpIHsKICAgICAgaWYgKHRhYmxlLnBhZ2UuaW5mbygpLnBhZ2VzIDwgcGFnZSB8fCBwYWdlIDwgMSkgewogICAgICAgIHRocm93ICdTZWxlY3RlZCBwYWdlIGlzIG91dCBvZiByYW5nZSc7CiAgICAgIH07CiAgICAgIHRhYmxlLnBhZ2UocGFnZSAtIDEpLmRyYXcoZmFsc2UpOwogICAgfQoKICAgIG1ldGhvZHMucmVsb2FkRGF0YSA9IGZ1bmN0aW9uKHJlc2V0UGFnaW5nLCBjbGVhclNlbGVjdGlvbikgewogICAgICAvLyBlbXB0eSBzZWxlY3Rpb25zIGZpcnN0IGlmIG5lY2Vzc2FyeQogICAgICBpZiAobWV0aG9kcy5zZWxlY3RSb3dzICYmIGluQXJyYXkoJ3JvdycsIGNsZWFyU2VsZWN0aW9uKSkgbWV0aG9kcy5zZWxlY3RSb3dzKFtdKTsKICAgICAgaWYgKG1ldGhvZHMuc2VsZWN0Q29sdW1ucyAmJiBpbkFycmF5KCdjb2x1bW4nLCBjbGVhclNlbGVjdGlvbikpIG1ldGhvZHMuc2VsZWN0Q29sdW1ucyhbXSk7CiAgICAgIGlmIChtZXRob2RzLnNlbGVjdENlbGxzICYmIGluQXJyYXkoJ2NlbGwnLCBjbGVhclNlbGVjdGlvbikpIG1ldGhvZHMuc2VsZWN0Q2VsbHMoW10pOwogICAgICB0YWJsZS5hamF4LnJlbG9hZChudWxsLCByZXNldFBhZ2luZyk7CiAgICB9CgogICAgdGFibGUuc2hpbnlNZXRob2RzID0gbWV0aG9kczsKICB9LAogIHJlc2l6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQsIGluc3RhbmNlKSB7CiAgICBpZiAoaW5zdGFuY2UuZGF0YSkgdGhpcy5yZW5kZXJWYWx1ZShlbCwgaW5zdGFuY2UuZGF0YSwgaW5zdGFuY2UpOwoKICAgIC8vIGR5bmFtaWNhbGx5IGFkanVzdCBoZWlnaHQgaWYgZmlsbENvbnRhaW5lciA9IFRSVUUKICAgIGlmIChpbnN0YW5jZS5maWxsQ29udGFpbmVyKQogICAgICB0aGlzLmZpbGxBdmFpbGFibGVIZWlnaHQoZWwsIGhlaWdodCk7CgogICAgdGhpcy5hZGp1c3RXaWR0aChlbCk7CiAgfSwKCiAgLy8gZHluYW1pY2FsbHkgc2V0IHRoZSBzY3JvbGwgYm9keSB0byBmaWxsIGF2YWlsYWJsZSBoZWlnaHQKICAvLyAodXNlZCB3aXRoIGZpbGxDb250YWluZXIgPSBUUlVFKQogIGZpbGxBdmFpbGFibGVIZWlnaHQ6IGZ1bmN0aW9uKGVsLCBhdmFpbGFibGVIZWlnaHQpIHsKCiAgICAvLyBzZWUgaG93IG11Y2ggb2YgdGhlIHRhYmxlIGlzIG9jY3VwaWVkIGJ5IGhlYWRlci9mb290ZXIgZWxlbWVudHMKICAgIC8vIGFuZCB1c2UgdGhhdCB0byBjb21wdXRlIGEgdGFyZ2V0IHNjcm9sbCBib2R5IGhlaWdodAogICAgdmFyIGR0V3JhcHBlciA9ICQoZWwpLmZpbmQoJ2Rpdi5kYXRhVGFibGVzX3dyYXBwZXInKTsKICAgIHZhciBkdFNjcm9sbEJvZHkgPSAkKGVsKS5maW5kKCQoJ2Rpdi5kYXRhVGFibGVzX3Njcm9sbEJvZHknKSk7CiAgICB2YXIgZnJhbWluZ0hlaWdodCA9IGR0V3JhcHBlci5pbm5lckhlaWdodCgpIC0gZHRTY3JvbGxCb2R5LmlubmVySGVpZ2h0KCk7CiAgICB2YXIgc2Nyb2xsQm9keUhlaWdodCA9IGF2YWlsYWJsZUhlaWdodCAtIGZyYW1pbmdIZWlnaHQ7CgogICAgLy8gc2V0IHRoZSBoZWlnaHQKICAgIGR0U2Nyb2xsQm9keS5oZWlnaHQoc2Nyb2xsQm9keUhlaWdodCArICdweCcpOwogIH0sCgogIC8vIGFkanVzdCB0aGUgd2lkdGggb2YgY29sdW1uczsgcmVtb3ZlIHRoZSBoYXJkLWNvZGVkIHdpZHRocyBvbiB0YWJsZSBhbmQgdGhlCiAgLy8gc2Nyb2xsIGhlYWRlciB3aGVuIHNjcm9sbFgvWSBhcmUgZW5hYmxlZAogIGFkanVzdFdpZHRoOiBmdW5jdGlvbihlbCkgewogICAgdmFyICRlbCA9ICQoZWwpLCB0YWJsZSA9ICRlbC5kYXRhKCdkYXRhdGFibGUnKTsKICAgIGlmICh0YWJsZSkgdGFibGUuY29sdW1ucy5hZGp1c3QoKTsKICAgICRlbC5maW5kKCcuZGF0YVRhYmxlc19zY3JvbGxIZWFkSW5uZXInKS5jc3MoJ3dpZHRoJywgJycpCiAgICAgICAgLmNoaWxkcmVuKCd0YWJsZScpLmNzcygnbWFyZ2luLWxlZnQnLCAnJyk7CiAgfQp9KTsKCiAgaWYgKCFIVE1MV2lkZ2V0cy5zaGlueU1vZGUpIHJldHVybjsKCiAgU2hpbnkuYWRkQ3VzdG9tTWVzc2FnZUhhbmRsZXIoJ2RhdGF0YWJsZS1jYWxscycsIGZ1bmN0aW9uKGRhdGEpIHsKICAgIHZhciBpZCA9IGRhdGEuaWQ7CiAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CiAgICB2YXIgdGFibGUgPSBlbCA/ICQoZWwpLmRhdGEoJ2RhdGF0YWJsZScpIDogbnVsbDsKICAgIGlmICghdGFibGUpIHsKICAgICAgY29uc29sZS5sb2coIkNvdWxkbid0IGZpbmQgdGFibGUgd2l0aCBpZCAiICsgaWQpOwogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIG1ldGhvZHMgPSB0YWJsZS5zaGlueU1ldGhvZHMsIGNhbGwgPSBkYXRhLmNhbGw7CiAgICBpZiAobWV0aG9kc1tjYWxsLm1ldGhvZF0pIHsKICAgICAgbWV0aG9kc1tjYWxsLm1ldGhvZF0uYXBwbHkodGFibGUsIGNhbGwuYXJncyk7CiAgICB9IGVsc2UgewogICAgICBjb25zb2xlLmxvZygiVW5rbm93biBtZXRob2QgIiArIGNhbGwubWV0aG9kKTsKICAgIH0KICB9KTsKCn0pKCk7Cg=="></script>
<link href="data:text/css;charset=utf-8,table%2EdataTable%7Bwidth%3A100%25%3Bmargin%3A0%20auto%3Bclear%3Aboth%3Bborder%2Dcollapse%3Aseparate%3Bborder%2Dspacing%3A0%7Dtable%2EdataTable%20thead%20th%2Ctable%2EdataTable%20tfoot%20th%7Bfont%2Dweight%3Abold%7Dtable%2EdataTable%20thead%20th%2Ctable%2EdataTable%20thead%20td%7Bpadding%3A10px%2018px%3Bborder%2Dbottom%3A1px%20solid%20%23111%7Dtable%2EdataTable%20thead%20th%3Aactive%2Ctable%2EdataTable%20thead%20td%3Aactive%7Boutline%3Anone%7Dtable%2EdataTable%20tfoot%20th%2Ctable%2EdataTable%20tfoot%20td%7Bpadding%3A10px%2018px%206px%2018px%3Bborder%2Dtop%3A1px%20solid%20%23111%7Dtable%2EdataTable%20thead%20%2Esorting%2Ctable%2EdataTable%20thead%20%2Esorting%5Fasc%2Ctable%2EdataTable%20thead%20%2Esorting%5Fdesc%2Ctable%2EdataTable%20thead%20%2Esorting%5Fasc%5Fdisabled%2Ctable%2EdataTable%20thead%20%2Esorting%5Fdesc%5Fdisabled%7Bcursor%3Apointer%3B%2Acursor%3Ahand%3Bbackground%2Drepeat%3Ano%2Drepeat%3Bbackground%2Dposition%3Acenter%20right%7Dtable%2EdataTable%20thead%20%2Esorting%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7XQMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL%2BTq%2FQCM1oNiJidwox0355mXnG%2FDrEtIQ6azioNZQxI0ykPhTQIwhCR%2BBmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P%2BGtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fasc%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS%2FgDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM%2BwTENuQahAvEO9DMwiGdwAxOymGJQLxTyD%2BjgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg%3D%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fdesc%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA%2FBOIv2PBIPFEUgxjB%2BIdQPwfC94HxLykus4GiD%2BhGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL%2BAuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fasc%5Fdisabled%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAW0lEQVQoz2NgoCm4w3Vnwh02wspK7%2Fy6k01Ikdadx3f%2B37l9RxmfIsY7c4GKQHDiHUbcyhzvvIMq%2B3THBpci3jv7oIpAcMcdduzKEu%2F8vPMdDn%2FeiWQYBYMKAAC3ykIEuYQJUgAAAABJRU5ErkJggg%3D%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fdesc%5Fdisabled%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAWUlEQVQoz2NgGAWDCtyJvPPzznc4%2FHknEbsy9js77vyHw313eHGZZ3PnE1TRuzuOuK1lvDMRqmzuHUZ87lO%2Bcxuo6PEdLUIeyb7z604pYf%2By3Zlwh4u2YQoAc7ZCBHH4jigAAAAASUVORK5CYII%3D%29%7Dtable%2EdataTable%20tbody%20tr%7Bbackground%2Dcolor%3A%23ffffff%7Dtable%2EdataTable%20tbody%20tr%2Eselected%7Bbackground%2Dcolor%3A%23B0BED9%7Dtable%2EdataTable%20tbody%20th%2Ctable%2EdataTable%20tbody%20td%7Bpadding%3A8px%2010px%7Dtable%2EdataTable%2Erow%2Dborder%20tbody%20th%2Ctable%2EdataTable%2Erow%2Dborder%20tbody%20td%2Ctable%2EdataTable%2Edisplay%20tbody%20th%2Ctable%2EdataTable%2Edisplay%20tbody%20td%7Bborder%2Dtop%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Erow%2Dborder%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Erow%2Dborder%20tbody%20tr%3Afirst%2Dchild%20td%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3Anone%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20th%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20td%7Bborder%2Dtop%3A1px%20solid%20%23ddd%3Bborder%2Dright%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%20th%3Afirst%2Dchild%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%20td%3Afirst%2Dchild%7Bborder%2Dleft%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3Anone%7Dtable%2EdataTable%2Estripe%20tbody%20tr%2Eodd%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%7Bbackground%2Dcolor%3A%23f9f9f9%7Dtable%2EdataTable%2Estripe%20tbody%20tr%2Eodd%2Eselected%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%7Bbackground%2Dcolor%3A%23acbad4%7Dtable%2EdataTable%2Ehover%20tbody%20tr%3Ahover%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%7Bbackground%2Dcolor%3A%23f6f6f6%7Dtable%2EdataTable%2Ehover%20tbody%20tr%3Ahover%2Eselected%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%7Bbackground%2Dcolor%3A%23aab7d1%7Dtable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F3%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F1%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F2%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23fafafa%7Dtable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23acbad5%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23f1f1f1%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23f3f3f3%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F3%7Bbackground%2Dcolor%3Awhitesmoke%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23a6b4cd%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23a8b5cf%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23a9b7d1%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23fafafa%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23fcfcfc%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23fefefe%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23acbad5%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23aebcd6%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23afbdd8%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23eaeaea%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23ececec%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23efefef%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23a2aec7%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23a3b0c9%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23a5b2cb%7Dtable%2EdataTable%2Eno%2Dfooter%7Bborder%2Dbottom%3A1px%20solid%20%23111%7Dtable%2EdataTable%2Enowrap%20th%2Ctable%2EdataTable%2Enowrap%20td%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%2Ecompact%20thead%20th%2Ctable%2EdataTable%2Ecompact%20thead%20td%7Bpadding%3A4px%2017px%204px%204px%7Dtable%2EdataTable%2Ecompact%20tfoot%20th%2Ctable%2EdataTable%2Ecompact%20tfoot%20td%7Bpadding%3A4px%7Dtable%2EdataTable%2Ecompact%20tbody%20th%2Ctable%2EdataTable%2Ecompact%20tbody%20td%7Bpadding%3A4px%7Dtable%2EdataTable%20th%2Edt%2Dleft%2Ctable%2EdataTable%20td%2Edt%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20th%2Edt%2Dcenter%2Ctable%2EdataTable%20td%2Edt%2Dcenter%2Ctable%2EdataTable%20td%2EdataTables%5Fempty%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20th%2Edt%2Dright%2Ctable%2EdataTable%20td%2Edt%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20th%2Edt%2Djustify%2Ctable%2EdataTable%20td%2Edt%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20th%2Edt%2Dnowrap%2Ctable%2EdataTable%20td%2Edt%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dcenter%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dleft%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dcenter%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dcenter%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dright%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Djustify%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dnowrap%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%2Ctable%2EdataTable%20th%2Ctable%2EdataTable%20td%7Bbox%2Dsizing%3Acontent%2Dbox%7D%2EdataTables%5Fwrapper%7Bposition%3Arelative%3Bclear%3Aboth%3B%2Azoom%3A1%3Bzoom%3A1%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%7Bfloat%3Aleft%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bfloat%3Aright%3Btext%2Dalign%3Aright%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%20input%7Bmargin%2Dleft%3A0%2E5em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%7Bclear%3Aboth%3Bfloat%3Aleft%3Bpadding%2Dtop%3A0%2E755em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bfloat%3Aright%3Btext%2Dalign%3Aright%3Bpadding%2Dtop%3A0%2E25em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%7Bbox%2Dsizing%3Aborder%2Dbox%3Bdisplay%3Ainline%2Dblock%3Bmin%2Dwidth%3A1%2E5em%3Bpadding%3A0%2E5em%201em%3Bmargin%2Dleft%3A2px%3Btext%2Dalign%3Acenter%3Btext%2Ddecoration%3Anone%20%21important%3Bcursor%3Apointer%3B%2Acursor%3Ahand%3Bcolor%3A%23333%20%21important%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A2px%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Ecurrent%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Ecurrent%3Ahover%7Bcolor%3A%23333%20%21important%3Bborder%3A1px%20solid%20%23979797%3Bbackground%2Dcolor%3Awhite%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%23fff%29%2C%20color%2Dstop%28100%25%2C%20%23dcdcdc%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%3Ahover%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%3Aactive%7Bcursor%3Adefault%3Bcolor%3A%23666%20%21important%3Bborder%3A1px%20solid%20transparent%3Bbackground%3Atransparent%3Bbox%2Dshadow%3Anone%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%3Ahover%7Bcolor%3Awhite%20%21important%3Bborder%3A1px%20solid%20%23111%3Bbackground%2Dcolor%3A%23585858%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%23585858%29%2C%20color%2Dstop%28100%25%2C%20%23111%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%23585858%200%25%2C%20%23111%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%3Aactive%7Boutline%3Anone%3Bbackground%2Dcolor%3A%232b2b2b%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%232b2b2b%29%2C%20color%2Dstop%28100%25%2C%20%230c0c0c%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbox%2Dshadow%3Ainset%200%200%203px%20%23111%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Eellipsis%7Bpadding%3A0%201em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fprocessing%7Bposition%3Aabsolute%3Btop%3A50%25%3Bleft%3A50%25%3Bwidth%3A100%25%3Bheight%3A40px%3Bmargin%2Dleft%3A%2D50%25%3Bmargin%2Dtop%3A%2D25px%3Bpadding%2Dtop%3A20px%3Btext%2Dalign%3Acenter%3Bfont%2Dsize%3A1%2E2em%3Bbackground%2Dcolor%3Awhite%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20right%20top%2C%20color%2Dstop%280%25%2C%20rgba%28255%2C255%2C255%2C0%29%29%2C%20color%2Dstop%2825%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%29%2C%20color%2Dstop%2875%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%29%2C%20color%2Dstop%28100%25%2C%20rgba%28255%2C255%2C255%2C0%29%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20right%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fprocessing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bcolor%3A%23333%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%7Bclear%3Aboth%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%7B%2Amargin%2Dtop%3A%2D1px%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Ethead%3Etr%3Eth%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Ethead%3Etr%3Etd%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Etbody%3Etr%3Eth%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Etbody%3Etr%3Etd%7Bvertical%2Dalign%3Amiddle%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Ethead%3Etr%3Eth%3Ediv%2EdataTables%5Fsizing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Ethead%3Etr%3Etd%3Ediv%2EdataTables%5Fsizing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Etbody%3Etr%3Eth%3Ediv%2EdataTables%5Fsizing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Etbody%3Etr%3Etd%3Ediv%2EdataTables%5Fsizing%7Bheight%3A0%3Boverflow%3Ahidden%3Bmargin%3A0%20%21important%3Bpadding%3A0%20%21important%7D%2EdataTables%5Fwrapper%2Eno%2Dfooter%20%2EdataTables%5FscrollBody%7Bborder%2Dbottom%3A1px%20solid%20%23111%7D%2EdataTables%5Fwrapper%2Eno%2Dfooter%20div%2EdataTables%5FscrollHead%20table%2EdataTable%2C%2EdataTables%5Fwrapper%2Eno%2Dfooter%20div%2EdataTables%5FscrollBody%3Etable%7Bborder%2Dbottom%3Anone%7D%2EdataTables%5Fwrapper%3Aafter%7Bvisibility%3Ahidden%3Bdisplay%3Ablock%3Bcontent%3A%22%22%3Bclear%3Aboth%3Bheight%3A0%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20767px%29%7B%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bfloat%3Anone%3Btext%2Dalign%3Acenter%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bmargin%2Dtop%3A0%2E5em%7D%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20640px%29%7B%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bfloat%3Anone%3Btext%2Dalign%3Acenter%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bmargin%2Dtop%3A0%2E5em%7D%7D%0A" rel="stylesheet" />
<link href="data:text/css;charset=utf-8,%0Atable%2EdataTable%20tr%2Eselected%20td%2C%20table%2EdataTable%20td%2Eselected%20%7B%0Abackground%2Dcolor%3A%20%23b0bed9%20%21important%3B%0A%7D%0A%0A%2EdataTables%5FscrollBody%20%2EdataTables%5Fsizing%20%7B%0Avisibility%3A%20hidden%3B%0A%7D%0A%0Adiv%2Edatatables%20%7B%0Acolor%3A%20%23333%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,LyohCiAgIENvcHlyaWdodCAyMDA4LTIwMTkgU3ByeU1lZGlhIEx0ZC4KCiBUaGlzIHNvdXJjZSBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2U6CiAgIE1JVCBsaWNlbnNlIC0gaHR0cDovL2RhdGF0YWJsZXMubmV0L2xpY2Vuc2UKCiBUaGlzIHNvdXJjZSBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkKIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIGxpY2Vuc2UgZmlsZXMgZm9yIGRldGFpbHMuCgogRm9yIGRldGFpbHMgcGxlYXNlIHJlZmVyIHRvOiBodHRwOi8vd3d3LmRhdGF0YWJsZXMubmV0CiBEYXRhVGFibGVzIDEuMTAuMjAKIMKpMjAwOC0yMDE5IFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiovCnZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5maW5kSW50ZXJuYWw9ZnVuY3Rpb24oZix6LHkpe2YgaW5zdGFuY2VvZiBTdHJpbmcmJihmPVN0cmluZyhmKSk7Zm9yKHZhciBwPWYubGVuZ3RoLEg9MDtIPHA7SCsrKXt2YXIgTD1mW0hdO2lmKHouY2FsbCh5LEwsSCxmKSlyZXR1cm57aTpILHY6TH19cmV0dXJue2k6LTEsdjp2b2lkIDB9fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTsKJGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oZix6LHkpe2YhPUFycmF5LnByb3RvdHlwZSYmZiE9T2JqZWN0LnByb3RvdHlwZSYmKGZbel09eS52YWx1ZSl9OyRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGYpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3c9PT1mP2Y6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJm51bGwhPWdsb2JhbD9nbG9iYWw6Zn07JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7CiRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oZix6LHkscCl7aWYoeil7eT0kanNjb21wLmdsb2JhbDtmPWYuc3BsaXQoIi4iKTtmb3IocD0wO3A8Zi5sZW5ndGgtMTtwKyspe3ZhciBIPWZbcF07SCBpbiB5fHwoeVtIXT17fSk7eT15W0hdfWY9ZltmLmxlbmd0aC0xXTtwPXlbZl07ej16KHApO3ohPXAmJm51bGwhPXomJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoeSxmLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6en0pfX07JGpzY29tcC5wb2x5ZmlsbCgiQXJyYXkucHJvdG90eXBlLmZpbmQiLGZ1bmN0aW9uKGYpe3JldHVybiBmP2Y6ZnVuY3Rpb24oZix5KXtyZXR1cm4gJGpzY29tcC5maW5kSW50ZXJuYWwodGhpcyxmLHkpLnZ9fSwiZXM2IiwiZXMzIik7CihmdW5jdGlvbihmKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxmdW5jdGlvbih6KXtyZXR1cm4gZih6LHdpbmRvdyxkb2N1bWVudCl9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKHoseSl7enx8KHo9d2luZG93KTt5fHwoeT0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3c/cmVxdWlyZSgianF1ZXJ5Iik6cmVxdWlyZSgianF1ZXJ5IikoeikpO3JldHVybiBmKHkseix6LmRvY3VtZW50KX06ZihqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGYseix5LHApe2Z1bmN0aW9uIEgoYSl7dmFyIGIsYyxkPXt9O2YuZWFjaChhLGZ1bmN0aW9uKGUsaCl7KGI9ZS5tYXRjaCgvXihbXkEtWl0rPykoW0EtWl0pLykpJiYtMSE9PSJhIGFhIGFpIGFvIGFzIGIgZm4gaSBtIG8gcyAiLmluZGV4T2YoYlsxXSsiICIpJiYoYz1lLnJlcGxhY2UoYlswXSxiWzJdLnRvTG93ZXJDYXNlKCkpLApkW2NdPWUsIm8iPT09YlsxXSYmSChhW2VdKSl9KTthLl9odW5nYXJpYW5NYXA9ZH1mdW5jdGlvbiBMKGEsYixjKXthLl9odW5nYXJpYW5NYXB8fEgoYSk7dmFyIGQ7Zi5lYWNoKGIsZnVuY3Rpb24oZSxoKXtkPWEuX2h1bmdhcmlhbk1hcFtlXTtkPT09cHx8IWMmJmJbZF0hPT1wfHwoIm8iPT09ZC5jaGFyQXQoMCk/KGJbZF18fChiW2RdPXt9KSxmLmV4dGVuZCghMCxiW2RdLGJbZV0pLEwoYVtkXSxiW2RdLGMpKTpiW2RdPWJbZV0pfSl9ZnVuY3Rpb24gR2EoYSl7dmFyIGI9cS5kZWZhdWx0cy5vTGFuZ3VhZ2UsYz1iLnNEZWNpbWFsO2MmJkhhKGMpO2lmKGEpe3ZhciBkPWEuc1plcm9SZWNvcmRzOyFhLnNFbXB0eVRhYmxlJiZkJiYiTm8gZGF0YSBhdmFpbGFibGUgaW4gdGFibGUiPT09Yi5zRW1wdHlUYWJsZSYmTShhLGEsInNaZXJvUmVjb3JkcyIsInNFbXB0eVRhYmxlIik7IWEuc0xvYWRpbmdSZWNvcmRzJiZkJiYiTG9hZGluZy4uLiI9PT1iLnNMb2FkaW5nUmVjb3JkcyYmTShhLGEsCiJzWmVyb1JlY29yZHMiLCJzTG9hZGluZ1JlY29yZHMiKTthLnNJbmZvVGhvdXNhbmRzJiYoYS5zVGhvdXNhbmRzPWEuc0luZm9UaG91c2FuZHMpOyhhPWEuc0RlY2ltYWwpJiZjIT09YSYmSGEoYSl9fWZ1bmN0aW9uIGpiKGEpe0YoYSwib3JkZXJpbmciLCJiU29ydCIpO0YoYSwib3JkZXJNdWx0aSIsImJTb3J0TXVsdGkiKTtGKGEsIm9yZGVyQ2xhc3NlcyIsImJTb3J0Q2xhc3NlcyIpO0YoYSwib3JkZXJDZWxsc1RvcCIsImJTb3J0Q2VsbHNUb3AiKTtGKGEsIm9yZGVyIiwiYWFTb3J0aW5nIik7RihhLCJvcmRlckZpeGVkIiwiYWFTb3J0aW5nRml4ZWQiKTtGKGEsInBhZ2luZyIsImJQYWdpbmF0ZSIpO0YoYSwicGFnaW5nVHlwZSIsInNQYWdpbmF0aW9uVHlwZSIpO0YoYSwicGFnZUxlbmd0aCIsImlEaXNwbGF5TGVuZ3RoIik7RihhLCJzZWFyY2hpbmciLCJiRmlsdGVyIik7ImJvb2xlYW4iPT09dHlwZW9mIGEuc1Njcm9sbFgmJihhLnNTY3JvbGxYPWEuc1Njcm9sbFg/IjEwMCUiOgoiIik7ImJvb2xlYW4iPT09dHlwZW9mIGEuc2Nyb2xsWCYmKGEuc2Nyb2xsWD1hLnNjcm9sbFg/IjEwMCUiOiIiKTtpZihhPWEuYW9TZWFyY2hDb2xzKWZvcih2YXIgYj0wLGM9YS5sZW5ndGg7YjxjO2IrKylhW2JdJiZMKHEubW9kZWxzLm9TZWFyY2gsYVtiXSl9ZnVuY3Rpb24ga2IoYSl7RihhLCJvcmRlcmFibGUiLCJiU29ydGFibGUiKTtGKGEsIm9yZGVyRGF0YSIsImFEYXRhU29ydCIpO0YoYSwib3JkZXJTZXF1ZW5jZSIsImFzU29ydGluZyIpO0YoYSwib3JkZXJEYXRhVHlwZSIsInNvcnREYXRhVHlwZSIpO3ZhciBiPWEuYURhdGFTb3J0OyJudW1iZXIiIT09dHlwZW9mIGJ8fGYuaXNBcnJheShiKXx8KGEuYURhdGFTb3J0PVtiXSl9ZnVuY3Rpb24gbGIoYSl7aWYoIXEuX19icm93c2VyKXt2YXIgYj17fTtxLl9fYnJvd3Nlcj1iO3ZhciBjPWYoIjxkaXYvPiIpLmNzcyh7cG9zaXRpb246ImZpeGVkIix0b3A6MCxsZWZ0Oi0xKmYoeikuc2Nyb2xsTGVmdCgpLGhlaWdodDoxLHdpZHRoOjEsCm92ZXJmbG93OiJoaWRkZW4ifSkuYXBwZW5kKGYoIjxkaXYvPiIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix0b3A6MSxsZWZ0OjEsd2lkdGg6MTAwLG92ZXJmbG93OiJzY3JvbGwifSkuYXBwZW5kKGYoIjxkaXYvPiIpLmNzcyh7d2lkdGg6IjEwMCUiLGhlaWdodDoxMH0pKSkuYXBwZW5kVG8oImJvZHkiKSxkPWMuY2hpbGRyZW4oKSxlPWQuY2hpbGRyZW4oKTtiLmJhcldpZHRoPWRbMF0ub2Zmc2V0V2lkdGgtZFswXS5jbGllbnRXaWR0aDtiLmJTY3JvbGxPdmVyc2l6ZT0xMDA9PT1lWzBdLm9mZnNldFdpZHRoJiYxMDAhPT1kWzBdLmNsaWVudFdpZHRoO2IuYlNjcm9sbGJhckxlZnQ9MSE9PU1hdGgucm91bmQoZS5vZmZzZXQoKS5sZWZ0KTtiLmJCb3VuZGluZz1jWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoPyEwOiExO2MucmVtb3ZlKCl9Zi5leHRlbmQoYS5vQnJvd3NlcixxLl9fYnJvd3Nlcik7YS5vU2Nyb2xsLmlCYXJXaWR0aD1xLl9fYnJvd3Nlci5iYXJXaWR0aH0KZnVuY3Rpb24gbWIoYSxiLGMsZCxlLGgpe3ZhciBnPSExO2lmKGMhPT1wKXt2YXIgaz1jO2c9ITB9Zm9yKDtkIT09ZTspYS5oYXNPd25Qcm9wZXJ0eShkKSYmKGs9Zz9iKGssYVtkXSxkLGEpOmFbZF0sZz0hMCxkKz1oKTtyZXR1cm4ga31mdW5jdGlvbiBJYShhLGIpe3ZhciBjPXEuZGVmYXVsdHMuY29sdW1uLGQ9YS5hb0NvbHVtbnMubGVuZ3RoO2M9Zi5leHRlbmQoe30scS5tb2RlbHMub0NvbHVtbixjLHtuVGg6Yj9iOnkuY3JlYXRlRWxlbWVudCgidGgiKSxzVGl0bGU6Yy5zVGl0bGU/Yy5zVGl0bGU6Yj9iLmlubmVySFRNTDoiIixhRGF0YVNvcnQ6Yy5hRGF0YVNvcnQ/Yy5hRGF0YVNvcnQ6W2RdLG1EYXRhOmMubURhdGE/Yy5tRGF0YTpkLGlkeDpkfSk7YS5hb0NvbHVtbnMucHVzaChjKTtjPWEuYW9QcmVTZWFyY2hDb2xzO2NbZF09Zi5leHRlbmQoe30scS5tb2RlbHMub1NlYXJjaCxjW2RdKTttYShhLGQsZihiKS5kYXRhKCkpfWZ1bmN0aW9uIG1hKGEsYixjKXtiPWEuYW9Db2x1bW5zW2JdOwp2YXIgZD1hLm9DbGFzc2VzLGU9ZihiLm5UaCk7aWYoIWIuc1dpZHRoT3JpZyl7Yi5zV2lkdGhPcmlnPWUuYXR0cigid2lkdGgiKXx8bnVsbDt2YXIgaD0oZS5hdHRyKCJzdHlsZSIpfHwiIikubWF0Y2goL3dpZHRoOlxzKihcZCtbcHhlbSVdKykvKTtoJiYoYi5zV2lkdGhPcmlnPWhbMV0pfWMhPT1wJiZudWxsIT09YyYmKGtiKGMpLEwocS5kZWZhdWx0cy5jb2x1bW4sYywhMCksYy5tRGF0YVByb3A9PT1wfHxjLm1EYXRhfHwoYy5tRGF0YT1jLm1EYXRhUHJvcCksYy5zVHlwZSYmKGIuX3NNYW51YWxUeXBlPWMuc1R5cGUpLGMuY2xhc3NOYW1lJiYhYy5zQ2xhc3MmJihjLnNDbGFzcz1jLmNsYXNzTmFtZSksYy5zQ2xhc3MmJmUuYWRkQ2xhc3MoYy5zQ2xhc3MpLGYuZXh0ZW5kKGIsYyksTShiLGMsInNXaWR0aCIsInNXaWR0aE9yaWciKSxjLmlEYXRhU29ydCE9PXAmJihiLmFEYXRhU29ydD1bYy5pRGF0YVNvcnRdKSxNKGIsYywiYURhdGFTb3J0IikpO3ZhciBnPWIubURhdGEsaz1VKGcpLApsPWIubVJlbmRlcj9VKGIubVJlbmRlcik6bnVsbDtjPWZ1bmN0aW9uKGEpe3JldHVybiJzdHJpbmciPT09dHlwZW9mIGEmJi0xIT09YS5pbmRleE9mKCJAIil9O2IuX2JBdHRyU3JjPWYuaXNQbGFpbk9iamVjdChnKSYmKGMoZy5zb3J0KXx8YyhnLnR5cGUpfHxjKGcuZmlsdGVyKSk7Yi5fc2V0dGVyPW51bGw7Yi5mbkdldERhdGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWsoYSxiLHAsYyk7cmV0dXJuIGwmJmI/bChkLGIsYSxjKTpkfTtiLmZuU2V0RGF0YT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIFEoZykoYSxiLGMpfTsibnVtYmVyIiE9PXR5cGVvZiBnJiYoYS5fcm93UmVhZE9iamVjdD0hMCk7YS5vRmVhdHVyZXMuYlNvcnR8fChiLmJTb3J0YWJsZT0hMSxlLmFkZENsYXNzKGQuc1NvcnRhYmxlTm9uZSkpO2E9LTEhPT1mLmluQXJyYXkoImFzYyIsYi5hc1NvcnRpbmcpO2M9LTEhPT1mLmluQXJyYXkoImRlc2MiLGIuYXNTb3J0aW5nKTtiLmJTb3J0YWJsZSYmKGF8fGMpP2EmJiFjPyhiLnNTb3J0aW5nQ2xhc3M9CmQuc1NvcnRhYmxlQXNjLGIuc1NvcnRpbmdDbGFzc0pVST1kLnNTb3J0SlVJQXNjQWxsb3dlZCk6IWEmJmM/KGIuc1NvcnRpbmdDbGFzcz1kLnNTb3J0YWJsZURlc2MsYi5zU29ydGluZ0NsYXNzSlVJPWQuc1NvcnRKVUlEZXNjQWxsb3dlZCk6KGIuc1NvcnRpbmdDbGFzcz1kLnNTb3J0YWJsZSxiLnNTb3J0aW5nQ2xhc3NKVUk9ZC5zU29ydEpVSSk6KGIuc1NvcnRpbmdDbGFzcz1kLnNTb3J0YWJsZU5vbmUsYi5zU29ydGluZ0NsYXNzSlVJPSIiKX1mdW5jdGlvbiBhYShhKXtpZighMSE9PWEub0ZlYXR1cmVzLmJBdXRvV2lkdGgpe3ZhciBiPWEuYW9Db2x1bW5zO0phKGEpO2Zvcih2YXIgYz0wLGQ9Yi5sZW5ndGg7YzxkO2MrKyliW2NdLm5UaC5zdHlsZS53aWR0aD1iW2NdLnNXaWR0aH1iPWEub1Njcm9sbDsiIj09PWIuc1kmJiIiPT09Yi5zWHx8bmEoYSk7QShhLG51bGwsImNvbHVtbi1zaXppbmciLFthXSl9ZnVuY3Rpb24gYmEoYSxiKXthPW9hKGEsImJWaXNpYmxlIik7cmV0dXJuIm51bWJlciI9PT0KdHlwZW9mIGFbYl0/YVtiXTpudWxsfWZ1bmN0aW9uIGNhKGEsYil7YT1vYShhLCJiVmlzaWJsZSIpO2I9Zi5pbkFycmF5KGIsYSk7cmV0dXJuLTEhPT1iP2I6bnVsbH1mdW5jdGlvbiBXKGEpe3ZhciBiPTA7Zi5lYWNoKGEuYW9Db2x1bW5zLGZ1bmN0aW9uKGEsZCl7ZC5iVmlzaWJsZSYmIm5vbmUiIT09ZihkLm5UaCkuY3NzKCJkaXNwbGF5IikmJmIrK30pO3JldHVybiBifWZ1bmN0aW9uIG9hKGEsYil7dmFyIGM9W107Zi5tYXAoYS5hb0NvbHVtbnMsZnVuY3Rpb24oYSxlKXthW2JdJiZjLnB1c2goZSl9KTtyZXR1cm4gY31mdW5jdGlvbiBLYShhKXt2YXIgYj1hLmFvQ29sdW1ucyxjPWEuYW9EYXRhLGQ9cS5leHQudHlwZS5kZXRlY3QsZSxoLGc7dmFyIGs9MDtmb3IoZT1iLmxlbmd0aDtrPGU7aysrKXt2YXIgZj1iW2tdO3ZhciBuPVtdO2lmKCFmLnNUeXBlJiZmLl9zTWFudWFsVHlwZSlmLnNUeXBlPWYuX3NNYW51YWxUeXBlO2Vsc2UgaWYoIWYuc1R5cGUpe3ZhciBtPTA7Zm9yKGg9CmQubGVuZ3RoO208aDttKyspe3ZhciB3PTA7Zm9yKGc9Yy5sZW5ndGg7dzxnO3crKyl7blt3XT09PXAmJihuW3ddPUkoYSx3LGssInR5cGUiKSk7dmFyIHU9ZFttXShuW3ddLGEpO2lmKCF1JiZtIT09ZC5sZW5ndGgtMSlicmVhaztpZigiaHRtbCI9PT11KWJyZWFrfWlmKHUpe2Yuc1R5cGU9dTticmVha319Zi5zVHlwZXx8KGYuc1R5cGU9InN0cmluZyIpfX19ZnVuY3Rpb24gbmIoYSxiLGMsZCl7dmFyIGUsaCxnLGs9YS5hb0NvbHVtbnM7aWYoYilmb3IoZT1iLmxlbmd0aC0xOzA8PWU7ZS0tKXt2YXIgbD1iW2VdO3ZhciBuPWwudGFyZ2V0cyE9PXA/bC50YXJnZXRzOmwuYVRhcmdldHM7Zi5pc0FycmF5KG4pfHwobj1bbl0pO3ZhciBtPTA7Zm9yKGg9bi5sZW5ndGg7bTxoO20rKylpZigibnVtYmVyIj09PXR5cGVvZiBuW21dJiYwPD1uW21dKXtmb3IoO2subGVuZ3RoPD1uW21dOylJYShhKTtkKG5bbV0sbCl9ZWxzZSBpZigibnVtYmVyIj09PXR5cGVvZiBuW21dJiYwPm5bbV0pZChrLmxlbmd0aCsKblttXSxsKTtlbHNlIGlmKCJzdHJpbmciPT09dHlwZW9mIG5bbV0pe3ZhciB3PTA7Zm9yKGc9ay5sZW5ndGg7dzxnO3crKykoIl9hbGwiPT1uW21dfHxmKGtbd10ublRoKS5oYXNDbGFzcyhuW21dKSkmJmQodyxsKX19aWYoYylmb3IoZT0wLGE9Yy5sZW5ndGg7ZTxhO2UrKylkKGUsY1tlXSl9ZnVuY3Rpb24gUihhLGIsYyxkKXt2YXIgZT1hLmFvRGF0YS5sZW5ndGgsaD1mLmV4dGVuZCghMCx7fSxxLm1vZGVscy5vUm93LHtzcmM6Yz8iZG9tIjoiZGF0YSIsaWR4OmV9KTtoLl9hRGF0YT1iO2EuYW9EYXRhLnB1c2goaCk7Zm9yKHZhciBnPWEuYW9Db2x1bW5zLGs9MCxsPWcubGVuZ3RoO2s8bDtrKyspZ1trXS5zVHlwZT1udWxsO2EuYWlEaXNwbGF5TWFzdGVyLnB1c2goZSk7Yj1hLnJvd0lkRm4oYik7YiE9PXAmJihhLmFJZHNbYl09aCk7IWMmJmEub0ZlYXR1cmVzLmJEZWZlclJlbmRlcnx8TGEoYSxlLGMsZCk7cmV0dXJuIGV9ZnVuY3Rpb24gcGEoYSxiKXt2YXIgYztiIGluc3RhbmNlb2YKZnx8KGI9ZihiKSk7cmV0dXJuIGIubWFwKGZ1bmN0aW9uKGIsZSl7Yz1NYShhLGUpO3JldHVybiBSKGEsYy5kYXRhLGUsYy5jZWxscyl9KX1mdW5jdGlvbiBJKGEsYixjLGQpe3ZhciBlPWEuaURyYXcsaD1hLmFvQ29sdW1uc1tjXSxnPWEuYW9EYXRhW2JdLl9hRGF0YSxrPWguc0RlZmF1bHRDb250ZW50LGY9aC5mbkdldERhdGEoZyxkLHtzZXR0aW5nczphLHJvdzpiLGNvbDpjfSk7aWYoZj09PXApcmV0dXJuIGEuaURyYXdFcnJvciE9ZSYmbnVsbD09PWsmJihPKGEsMCwiUmVxdWVzdGVkIHVua25vd24gcGFyYW1ldGVyICIrKCJmdW5jdGlvbiI9PXR5cGVvZiBoLm1EYXRhPyJ7ZnVuY3Rpb259IjoiJyIraC5tRGF0YSsiJyIpKyIgZm9yIHJvdyAiK2IrIiwgY29sdW1uICIrYyw0KSxhLmlEcmF3RXJyb3I9ZSksaztpZigoZj09PWd8fG51bGw9PT1mKSYmbnVsbCE9PWsmJmQhPT1wKWY9aztlbHNlIGlmKCJmdW5jdGlvbiI9PT10eXBlb2YgZilyZXR1cm4gZi5jYWxsKGcpO3JldHVybiBudWxsPT09CmYmJiJkaXNwbGF5Ij09ZD8iIjpmfWZ1bmN0aW9uIG9iKGEsYixjLGQpe2EuYW9Db2x1bW5zW2NdLmZuU2V0RGF0YShhLmFvRGF0YVtiXS5fYURhdGEsZCx7c2V0dGluZ3M6YSxyb3c6Yixjb2w6Y30pfWZ1bmN0aW9uIE5hKGEpe3JldHVybiBmLm1hcChhLm1hdGNoKC8oXFwufFteXC5dKSsvZyl8fFsiIl0sZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvXFxcLi9nLCIuIil9KX1mdW5jdGlvbiBVKGEpe2lmKGYuaXNQbGFpbk9iamVjdChhKSl7dmFyIGI9e307Zi5lYWNoKGEsZnVuY3Rpb24oYSxjKXtjJiYoYlthXT1VKGMpKX0pO3JldHVybiBmdW5jdGlvbihhLGMsaCxnKXt2YXIgZD1iW2NdfHxiLl87cmV0dXJuIGQhPT1wP2QoYSxjLGgsZyk6YX19aWYobnVsbD09PWEpcmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBhfTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpcmV0dXJuIGZ1bmN0aW9uKGIsYyxoLGcpe3JldHVybiBhKGIsYyxoLGcpfTtpZigic3RyaW5nIiE9PXR5cGVvZiBhfHwKLTE9PT1hLmluZGV4T2YoIi4iKSYmLTE9PT1hLmluZGV4T2YoIlsiKSYmLTE9PT1hLmluZGV4T2YoIigiKSlyZXR1cm4gZnVuY3Rpb24oYixjKXtyZXR1cm4gYlthXX07dmFyIGM9ZnVuY3Rpb24oYSxiLGgpe2lmKCIiIT09aCl7dmFyIGQ9TmEoaCk7Zm9yKHZhciBlPTAsbD1kLmxlbmd0aDtlPGw7ZSsrKXtoPWRbZV0ubWF0Y2goZGEpO3ZhciBuPWRbZV0ubWF0Y2goWCk7aWYoaCl7ZFtlXT1kW2VdLnJlcGxhY2UoZGEsIiIpOyIiIT09ZFtlXSYmKGE9YVtkW2VdXSk7bj1bXTtkLnNwbGljZSgwLGUrMSk7ZD1kLmpvaW4oIi4iKTtpZihmLmlzQXJyYXkoYSkpZm9yKGU9MCxsPWEubGVuZ3RoO2U8bDtlKyspbi5wdXNoKGMoYVtlXSxiLGQpKTthPWhbMF0uc3Vic3RyaW5nKDEsaFswXS5sZW5ndGgtMSk7YT0iIj09PWE/bjpuLmpvaW4oYSk7YnJlYWt9ZWxzZSBpZihuKXtkW2VdPWRbZV0ucmVwbGFjZShYLCIiKTthPWFbZFtlXV0oKTtjb250aW51ZX1pZihudWxsPT09YXx8YVtkW2VdXT09PQpwKXJldHVybiBwO2E9YVtkW2VdXX19cmV0dXJuIGF9O3JldHVybiBmdW5jdGlvbihiLGUpe3JldHVybiBjKGIsZSxhKX19ZnVuY3Rpb24gUShhKXtpZihmLmlzUGxhaW5PYmplY3QoYSkpcmV0dXJuIFEoYS5fKTtpZihudWxsPT09YSlyZXR1cm4gZnVuY3Rpb24oKXt9O2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSlyZXR1cm4gZnVuY3Rpb24oYixkLGUpe2EoYiwic2V0IixkLGUpfTtpZigic3RyaW5nIiE9PXR5cGVvZiBhfHwtMT09PWEuaW5kZXhPZigiLiIpJiYtMT09PWEuaW5kZXhPZigiWyIpJiYtMT09PWEuaW5kZXhPZigiKCIpKXJldHVybiBmdW5jdGlvbihiLGQpe2JbYV09ZH07dmFyIGI9ZnVuY3Rpb24oYSxkLGUpe2U9TmEoZSk7dmFyIGM9ZVtlLmxlbmd0aC0xXTtmb3IodmFyIGcsayxsPTAsbj1lLmxlbmd0aC0xO2w8bjtsKyspe2c9ZVtsXS5tYXRjaChkYSk7az1lW2xdLm1hdGNoKFgpO2lmKGcpe2VbbF09ZVtsXS5yZXBsYWNlKGRhLCIiKTthW2VbbF1dPVtdO2M9ZS5zbGljZSgpOwpjLnNwbGljZSgwLGwrMSk7Zz1jLmpvaW4oIi4iKTtpZihmLmlzQXJyYXkoZCkpZm9yKGs9MCxuPWQubGVuZ3RoO2s8bjtrKyspYz17fSxiKGMsZFtrXSxnKSxhW2VbbF1dLnB1c2goYyk7ZWxzZSBhW2VbbF1dPWQ7cmV0dXJufWsmJihlW2xdPWVbbF0ucmVwbGFjZShYLCIiKSxhPWFbZVtsXV0oZCkpO2lmKG51bGw9PT1hW2VbbF1dfHxhW2VbbF1dPT09cClhW2VbbF1dPXt9O2E9YVtlW2xdXX1pZihjLm1hdGNoKFgpKWFbYy5yZXBsYWNlKFgsIiIpXShkKTtlbHNlIGFbYy5yZXBsYWNlKGRhLCIiKV09ZH07cmV0dXJuIGZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIoYyxkLGEpfX1mdW5jdGlvbiBPYShhKXtyZXR1cm4gSihhLmFvRGF0YSwiX2FEYXRhIil9ZnVuY3Rpb24gcWEoYSl7YS5hb0RhdGEubGVuZ3RoPTA7YS5haURpc3BsYXlNYXN0ZXIubGVuZ3RoPTA7YS5haURpc3BsYXkubGVuZ3RoPTA7YS5hSWRzPXt9fWZ1bmN0aW9uIHJhKGEsYixjKXtmb3IodmFyIGQ9LTEsZT0wLGg9YS5sZW5ndGg7ZTwKaDtlKyspYVtlXT09Yj9kPWU6YVtlXT5iJiZhW2VdLS07IC0xIT1kJiZjPT09cCYmYS5zcGxpY2UoZCwxKX1mdW5jdGlvbiBlYShhLGIsYyxkKXt2YXIgZT1hLmFvRGF0YVtiXSxoLGc9ZnVuY3Rpb24oYyxkKXtmb3IoO2MuY2hpbGROb2Rlcy5sZW5ndGg7KWMucmVtb3ZlQ2hpbGQoYy5maXJzdENoaWxkKTtjLmlubmVySFRNTD1JKGEsYixkLCJkaXNwbGF5Iil9O2lmKCJkb20iIT09YyYmKGMmJiJhdXRvIiE9PWN8fCJkb20iIT09ZS5zcmMpKXt2YXIgaz1lLmFuQ2VsbHM7aWYoaylpZihkIT09cClnKGtbZF0sZCk7ZWxzZSBmb3IoYz0wLGg9ay5sZW5ndGg7YzxoO2MrKylnKGtbY10sYyl9ZWxzZSBlLl9hRGF0YT1NYShhLGUsZCxkPT09cD9wOmUuX2FEYXRhKS5kYXRhO2UuX2FTb3J0RGF0YT1udWxsO2UuX2FGaWx0ZXJEYXRhPW51bGw7Zz1hLmFvQ29sdW1ucztpZihkIT09cClnW2RdLnNUeXBlPW51bGw7ZWxzZXtjPTA7Zm9yKGg9Zy5sZW5ndGg7YzxoO2MrKylnW2NdLnNUeXBlPW51bGw7ClBhKGEsZSl9fWZ1bmN0aW9uIE1hKGEsYixjLGQpe3ZhciBlPVtdLGg9Yi5maXJzdENoaWxkLGcsaz0wLGwsbj1hLmFvQ29sdW1ucyxtPWEuX3Jvd1JlYWRPYmplY3Q7ZD1kIT09cD9kOm0/e306W107dmFyIHc9ZnVuY3Rpb24oYSxiKXtpZigic3RyaW5nIj09PXR5cGVvZiBhKXt2YXIgYz1hLmluZGV4T2YoIkAiKTstMSE9PWMmJihjPWEuc3Vic3RyaW5nKGMrMSksUShhKShkLGIuZ2V0QXR0cmlidXRlKGMpKSl9fSx1PWZ1bmN0aW9uKGEpe2lmKGM9PT1wfHxjPT09aylnPW5ba10sbD1mLnRyaW0oYS5pbm5lckhUTUwpLGcmJmcuX2JBdHRyU3JjPyhRKGcubURhdGEuXykoZCxsKSx3KGcubURhdGEuc29ydCxhKSx3KGcubURhdGEudHlwZSxhKSx3KGcubURhdGEuZmlsdGVyLGEpKTptPyhnLl9zZXR0ZXJ8fChnLl9zZXR0ZXI9UShnLm1EYXRhKSksZy5fc2V0dGVyKGQsbCkpOmRba109bDtrKyt9O2lmKGgpZm9yKDtoOyl7dmFyIHE9aC5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpO2lmKCJURCI9PQpxfHwiVEgiPT1xKXUoaCksZS5wdXNoKGgpO2g9aC5uZXh0U2libGluZ31lbHNlIGZvcihlPWIuYW5DZWxscyxoPTAscT1lLmxlbmd0aDtoPHE7aCsrKXUoZVtoXSk7KGI9Yi5maXJzdENoaWxkP2I6Yi5uVHIpJiYoYj1iLmdldEF0dHJpYnV0ZSgiaWQiKSkmJlEoYS5yb3dJZCkoZCxiKTtyZXR1cm57ZGF0YTpkLGNlbGxzOmV9fWZ1bmN0aW9uIExhKGEsYixjLGQpe3ZhciBlPWEuYW9EYXRhW2JdLGg9ZS5fYURhdGEsZz1bXSxrLGw7aWYobnVsbD09PWUublRyKXt2YXIgbj1jfHx5LmNyZWF0ZUVsZW1lbnQoInRyIik7ZS5uVHI9bjtlLmFuQ2VsbHM9ZztuLl9EVF9Sb3dJbmRleD1iO1BhKGEsZSk7dmFyIG09MDtmb3Ioaz1hLmFvQ29sdW1ucy5sZW5ndGg7bTxrO20rKyl7dmFyIHc9YS5hb0NvbHVtbnNbbV07dmFyIHA9KGw9Yz8hMTohMCk/eS5jcmVhdGVFbGVtZW50KHcuc0NlbGxUeXBlKTpkW21dO3AuX0RUX0NlbGxJbmRleD17cm93OmIsY29sdW1uOm19O2cucHVzaChwKTtpZihsfHwKIShjJiYhdy5tUmVuZGVyJiZ3Lm1EYXRhPT09bXx8Zi5pc1BsYWluT2JqZWN0KHcubURhdGEpJiZ3Lm1EYXRhLl89PT1tKyIuZGlzcGxheSIpKXAuaW5uZXJIVE1MPUkoYSxiLG0sImRpc3BsYXkiKTt3LnNDbGFzcyYmKHAuY2xhc3NOYW1lKz0iICIrdy5zQ2xhc3MpO3cuYlZpc2libGUmJiFjP24uYXBwZW5kQ2hpbGQocCk6IXcuYlZpc2libGUmJmMmJnAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwKTt3LmZuQ3JlYXRlZENlbGwmJncuZm5DcmVhdGVkQ2VsbC5jYWxsKGEub0luc3RhbmNlLHAsSShhLGIsbSksaCxiLG0pfUEoYSwiYW9Sb3dDcmVhdGVkQ2FsbGJhY2siLG51bGwsW24saCxiLGddKX1lLm5Uci5zZXRBdHRyaWJ1dGUoInJvbGUiLCJyb3ciKX1mdW5jdGlvbiBQYShhLGIpe3ZhciBjPWIublRyLGQ9Yi5fYURhdGE7aWYoYyl7aWYoYT1hLnJvd0lkRm4oZCkpYy5pZD1hO2QuRFRfUm93Q2xhc3MmJihhPWQuRFRfUm93Q2xhc3Muc3BsaXQoIiAiKSxiLl9fcm93Yz1iLl9fcm93Yz8KdGEoYi5fX3Jvd2MuY29uY2F0KGEpKTphLGYoYykucmVtb3ZlQ2xhc3MoYi5fX3Jvd2Muam9pbigiICIpKS5hZGRDbGFzcyhkLkRUX1Jvd0NsYXNzKSk7ZC5EVF9Sb3dBdHRyJiZmKGMpLmF0dHIoZC5EVF9Sb3dBdHRyKTtkLkRUX1Jvd0RhdGEmJmYoYykuZGF0YShkLkRUX1Jvd0RhdGEpfX1mdW5jdGlvbiBwYihhKXt2YXIgYixjLGQ9YS5uVEhlYWQsZT1hLm5URm9vdCxoPTA9PT1mKCJ0aCwgdGQiLGQpLmxlbmd0aCxnPWEub0NsYXNzZXMsaz1hLmFvQ29sdW1ucztoJiYoYz1mKCI8dHIvPiIpLmFwcGVuZFRvKGQpKTt2YXIgbD0wO2ZvcihiPWsubGVuZ3RoO2w8YjtsKyspe3ZhciBuPWtbbF07dmFyIG09ZihuLm5UaCkuYWRkQ2xhc3Mobi5zQ2xhc3MpO2gmJm0uYXBwZW5kVG8oYyk7YS5vRmVhdHVyZXMuYlNvcnQmJihtLmFkZENsYXNzKG4uc1NvcnRpbmdDbGFzcyksITEhPT1uLmJTb3J0YWJsZSYmKG0uYXR0cigidGFiaW5kZXgiLGEuaVRhYkluZGV4KS5hdHRyKCJhcmlhLWNvbnRyb2xzIiwKYS5zVGFibGVJZCksUWEoYSxuLm5UaCxsKSkpO24uc1RpdGxlIT1tWzBdLmlubmVySFRNTCYmbS5odG1sKG4uc1RpdGxlKTtSYShhLCJoZWFkZXIiKShhLG0sbixnKX1oJiZmYShhLmFvSGVhZGVyLGQpO2YoZCkuZmluZCgiPnRyIikuYXR0cigicm9sZSIsInJvdyIpO2YoZCkuZmluZCgiPnRyPnRoLCA+dHI+dGQiKS5hZGRDbGFzcyhnLnNIZWFkZXJUSCk7ZihlKS5maW5kKCI+dHI+dGgsID50cj50ZCIpLmFkZENsYXNzKGcuc0Zvb3RlclRIKTtpZihudWxsIT09ZSlmb3IoYT1hLmFvRm9vdGVyWzBdLGw9MCxiPWEubGVuZ3RoO2w8YjtsKyspbj1rW2xdLG4ublRmPWFbbF0uY2VsbCxuLnNDbGFzcyYmZihuLm5UZikuYWRkQ2xhc3Mobi5zQ2xhc3MpfWZ1bmN0aW9uIGhhKGEsYixjKXt2YXIgZCxlLGg9W10sZz1bXSxrPWEuYW9Db2x1bW5zLmxlbmd0aDtpZihiKXtjPT09cCYmKGM9ITEpO3ZhciBsPTA7Zm9yKGQ9Yi5sZW5ndGg7bDxkO2wrKyl7aFtsXT1iW2xdLnNsaWNlKCk7aFtsXS5uVHI9CmJbbF0ublRyO2ZvcihlPWstMTswPD1lO2UtLSlhLmFvQ29sdW1uc1tlXS5iVmlzaWJsZXx8Y3x8aFtsXS5zcGxpY2UoZSwxKTtnLnB1c2goW10pfWw9MDtmb3IoZD1oLmxlbmd0aDtsPGQ7bCsrKXtpZihhPWhbbF0ublRyKWZvcig7ZT1hLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoZSk7ZT0wO2ZvcihiPWhbbF0ubGVuZ3RoO2U8YjtlKyspe3ZhciBuPWs9MTtpZihnW2xdW2VdPT09cCl7YS5hcHBlbmRDaGlsZChoW2xdW2VdLmNlbGwpO2ZvcihnW2xdW2VdPTE7aFtsK2tdIT09cCYmaFtsXVtlXS5jZWxsPT1oW2wra11bZV0uY2VsbDspZ1tsK2tdW2VdPTEsaysrO2Zvcig7aFtsXVtlK25dIT09cCYmaFtsXVtlXS5jZWxsPT1oW2xdW2Urbl0uY2VsbDspe2ZvcihjPTA7YzxrO2MrKylnW2wrY11bZStuXT0xO24rK31mKGhbbF1bZV0uY2VsbCkuYXR0cigicm93c3BhbiIsaykuYXR0cigiY29sc3BhbiIsbil9fX19fWZ1bmN0aW9uIFMoYSl7dmFyIGI9QShhLCJhb1ByZURyYXdDYWxsYmFjayIsCiJwcmVEcmF3IixbYV0pO2lmKC0xIT09Zi5pbkFycmF5KCExLGIpKUsoYSwhMSk7ZWxzZXtiPVtdO3ZhciBjPTAsZD1hLmFzU3RyaXBlQ2xhc3NlcyxlPWQubGVuZ3RoLGg9YS5vTGFuZ3VhZ2UsZz1hLmlJbml0RGlzcGxheVN0YXJ0LGs9InNzcCI9PUQoYSksbD1hLmFpRGlzcGxheTthLmJEcmF3aW5nPSEwO2chPT1wJiYtMSE9PWcmJihhLl9pRGlzcGxheVN0YXJ0PWs/ZzpnPj1hLmZuUmVjb3Jkc0Rpc3BsYXkoKT8wOmcsYS5pSW5pdERpc3BsYXlTdGFydD0tMSk7Zz1hLl9pRGlzcGxheVN0YXJ0O3ZhciBuPWEuZm5EaXNwbGF5RW5kKCk7aWYoYS5iRGVmZXJMb2FkaW5nKWEuYkRlZmVyTG9hZGluZz0hMSxhLmlEcmF3KyssSyhhLCExKTtlbHNlIGlmKCFrKWEuaURyYXcrKztlbHNlIGlmKCFhLmJEZXN0cm95aW5nJiYhcWIoYSkpcmV0dXJuO2lmKDAhPT1sLmxlbmd0aClmb3IoaD1rP2EuYW9EYXRhLmxlbmd0aDpuLGs9az8wOmc7azxoO2srKyl7dmFyIG09bFtrXSx3PWEuYW9EYXRhW21dOwpudWxsPT09dy5uVHImJkxhKGEsbSk7dmFyIHU9dy5uVHI7aWYoMCE9PWUpe3ZhciBxPWRbYyVlXTt3Ll9zUm93U3RyaXBlIT1xJiYoZih1KS5yZW1vdmVDbGFzcyh3Ll9zUm93U3RyaXBlKS5hZGRDbGFzcyhxKSx3Ll9zUm93U3RyaXBlPXEpfUEoYSwiYW9Sb3dDYWxsYmFjayIsbnVsbCxbdSx3Ll9hRGF0YSxjLGssbV0pO2IucHVzaCh1KTtjKyt9ZWxzZSBjPWguc1plcm9SZWNvcmRzLDE9PWEuaURyYXcmJiJhamF4Ij09RChhKT9jPWguc0xvYWRpbmdSZWNvcmRzOmguc0VtcHR5VGFibGUmJjA9PT1hLmZuUmVjb3Jkc1RvdGFsKCkmJihjPWguc0VtcHR5VGFibGUpLGJbMF09ZigiPHRyLz4iLHsiY2xhc3MiOmU/ZFswXToiIn0pLmFwcGVuZChmKCI8dGQgLz4iLHt2YWxpZ246InRvcCIsY29sU3BhbjpXKGEpLCJjbGFzcyI6YS5vQ2xhc3Nlcy5zUm93RW1wdHl9KS5odG1sKGMpKVswXTtBKGEsImFvSGVhZGVyQ2FsbGJhY2siLCJoZWFkZXIiLFtmKGEublRIZWFkKS5jaGlsZHJlbigidHIiKVswXSwKT2EoYSksZyxuLGxdKTtBKGEsImFvRm9vdGVyQ2FsbGJhY2siLCJmb290ZXIiLFtmKGEublRGb290KS5jaGlsZHJlbigidHIiKVswXSxPYShhKSxnLG4sbF0pO2Q9ZihhLm5UQm9keSk7ZC5jaGlsZHJlbigpLmRldGFjaCgpO2QuYXBwZW5kKGYoYikpO0EoYSwiYW9EcmF3Q2FsbGJhY2siLCJkcmF3IixbYV0pO2EuYlNvcnRlZD0hMTthLmJGaWx0ZXJlZD0hMTthLmJEcmF3aW5nPSExfX1mdW5jdGlvbiBWKGEsYil7dmFyIGM9YS5vRmVhdHVyZXMsZD1jLmJGaWx0ZXI7Yy5iU29ydCYmcmIoYSk7ZD9pYShhLGEub1ByZXZpb3VzU2VhcmNoKTphLmFpRGlzcGxheT1hLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOyEwIT09YiYmKGEuX2lEaXNwbGF5U3RhcnQ9MCk7YS5fZHJhd0hvbGQ9YjtTKGEpO2EuX2RyYXdIb2xkPSExfWZ1bmN0aW9uIHNiKGEpe3ZhciBiPWEub0NsYXNzZXMsYz1mKGEublRhYmxlKTtjPWYoIjxkaXYvPiIpLmluc2VydEJlZm9yZShjKTt2YXIgZD1hLm9GZWF0dXJlcyxlPQpmKCI8ZGl2Lz4iLHtpZDphLnNUYWJsZUlkKyJfd3JhcHBlciIsImNsYXNzIjpiLnNXcmFwcGVyKyhhLm5URm9vdD8iIjoiICIrYi5zTm9Gb290ZXIpfSk7YS5uSG9sZGluZz1jWzBdO2EublRhYmxlV3JhcHBlcj1lWzBdO2EublRhYmxlUmVpbnNlcnRCZWZvcmU9YS5uVGFibGUubmV4dFNpYmxpbmc7Zm9yKHZhciBoPWEuc0RvbS5zcGxpdCgiIiksZyxrLGwsbixtLHAsdT0wO3U8aC5sZW5ndGg7dSsrKXtnPW51bGw7az1oW3VdO2lmKCI8Ij09ayl7bD1mKCI8ZGl2Lz4iKVswXTtuPWhbdSsxXTtpZigiJyI9PW58fCciJz09bil7bT0iIjtmb3IocD0yO2hbdStwXSE9bjspbSs9aFt1K3BdLHArKzsiSCI9PW0/bT1iLnNKVUlIZWFkZXI6IkYiPT1tJiYobT1iLnNKVUlGb290ZXIpOy0xIT1tLmluZGV4T2YoIi4iKT8obj1tLnNwbGl0KCIuIiksbC5pZD1uWzBdLnN1YnN0cigxLG5bMF0ubGVuZ3RoLTEpLGwuY2xhc3NOYW1lPW5bMV0pOiIjIj09bS5jaGFyQXQoMCk/bC5pZD1tLnN1YnN0cigxLAptLmxlbmd0aC0xKTpsLmNsYXNzTmFtZT1tO3UrPXB9ZS5hcHBlbmQobCk7ZT1mKGwpfWVsc2UgaWYoIj4iPT1rKWU9ZS5wYXJlbnQoKTtlbHNlIGlmKCJsIj09ayYmZC5iUGFnaW5hdGUmJmQuYkxlbmd0aENoYW5nZSlnPXRiKGEpO2Vsc2UgaWYoImYiPT1rJiZkLmJGaWx0ZXIpZz11YihhKTtlbHNlIGlmKCJyIj09ayYmZC5iUHJvY2Vzc2luZylnPXZiKGEpO2Vsc2UgaWYoInQiPT1rKWc9d2IoYSk7ZWxzZSBpZigiaSI9PWsmJmQuYkluZm8pZz14YihhKTtlbHNlIGlmKCJwIj09ayYmZC5iUGFnaW5hdGUpZz15YihhKTtlbHNlIGlmKDAhPT1xLmV4dC5mZWF0dXJlLmxlbmd0aClmb3IobD1xLmV4dC5mZWF0dXJlLHA9MCxuPWwubGVuZ3RoO3A8bjtwKyspaWYoaz09bFtwXS5jRmVhdHVyZSl7Zz1sW3BdLmZuSW5pdChhKTticmVha31nJiYobD1hLmFhbkZlYXR1cmVzLGxba118fChsW2tdPVtdKSxsW2tdLnB1c2goZyksZS5hcHBlbmQoZykpfWMucmVwbGFjZVdpdGgoZSk7YS5uSG9sZGluZz0KbnVsbH1mdW5jdGlvbiBmYShhLGIpe2I9ZihiKS5jaGlsZHJlbigidHIiKTt2YXIgYyxkLGU7YS5zcGxpY2UoMCxhLmxlbmd0aCk7dmFyIGg9MDtmb3IoZT1iLmxlbmd0aDtoPGU7aCsrKWEucHVzaChbXSk7aD0wO2ZvcihlPWIubGVuZ3RoO2g8ZTtoKyspe3ZhciBnPWJbaF07Zm9yKGM9Zy5maXJzdENoaWxkO2M7KXtpZigiVEQiPT1jLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCl8fCJUSCI9PWMubm9kZU5hbWUudG9VcHBlckNhc2UoKSl7dmFyIGs9MSpjLmdldEF0dHJpYnV0ZSgiY29sc3BhbiIpO3ZhciBsPTEqYy5nZXRBdHRyaWJ1dGUoInJvd3NwYW4iKTtrPWsmJjAhPT1rJiYxIT09az9rOjE7bD1sJiYwIT09bCYmMSE9PWw/bDoxO3ZhciBuPTA7Zm9yKGQ9YVtoXTtkW25dOyluKys7dmFyIG09bjt2YXIgcD0xPT09az8hMDohMTtmb3IoZD0wO2Q8aztkKyspZm9yKG49MDtuPGw7bisrKWFbaCtuXVttK2RdPXtjZWxsOmMsdW5pcXVlOnB9LGFbaCtuXS5uVHI9Z31jPWMubmV4dFNpYmxpbmd9fX0KZnVuY3Rpb24gdWEoYSxiLGMpe3ZhciBkPVtdO2N8fChjPWEuYW9IZWFkZXIsYiYmKGM9W10sZmEoYyxiKSkpO2I9MDtmb3IodmFyIGU9Yy5sZW5ndGg7YjxlO2IrKylmb3IodmFyIGg9MCxnPWNbYl0ubGVuZ3RoO2g8ZztoKyspIWNbYl1baF0udW5pcXVlfHxkW2hdJiZhLmJTb3J0Q2VsbHNUb3B8fChkW2hdPWNbYl1baF0uY2VsbCk7cmV0dXJuIGR9ZnVuY3Rpb24gdmEoYSxiLGMpe0EoYSwiYW9TZXJ2ZXJQYXJhbXMiLCJzZXJ2ZXJQYXJhbXMiLFtiXSk7aWYoYiYmZi5pc0FycmF5KGIpKXt2YXIgZD17fSxlPS8oLio/KVxbXF0kLztmLmVhY2goYixmdW5jdGlvbihhLGIpeyhhPWIubmFtZS5tYXRjaChlKSk/KGE9YVswXSxkW2FdfHwoZFthXT1bXSksZFthXS5wdXNoKGIudmFsdWUpKTpkW2IubmFtZV09Yi52YWx1ZX0pO2I9ZH12YXIgaD1hLmFqYXgsZz1hLm9JbnN0YW5jZSxrPWZ1bmN0aW9uKGIpe0EoYSxudWxsLCJ4aHIiLFthLGIsYS5qcVhIUl0pO2MoYil9O2lmKGYuaXNQbGFpbk9iamVjdChoKSYmCmguZGF0YSl7dmFyIGw9aC5kYXRhO3ZhciBuPSJmdW5jdGlvbiI9PT10eXBlb2YgbD9sKGIsYSk6bDtiPSJmdW5jdGlvbiI9PT10eXBlb2YgbCYmbj9uOmYuZXh0ZW5kKCEwLGIsbik7ZGVsZXRlIGguZGF0YX1uPXtkYXRhOmIsc3VjY2VzczpmdW5jdGlvbihiKXt2YXIgYz1iLmVycm9yfHxiLnNFcnJvcjtjJiZPKGEsMCxjKTthLmpzb249YjtrKGIpfSxkYXRhVHlwZToianNvbiIsY2FjaGU6ITEsdHlwZTphLnNTZXJ2ZXJNZXRob2QsZXJyb3I6ZnVuY3Rpb24oYixjLGQpe2Q9QShhLG51bGwsInhociIsW2EsbnVsbCxhLmpxWEhSXSk7LTE9PT1mLmluQXJyYXkoITAsZCkmJigicGFyc2VyZXJyb3IiPT1jP08oYSwwLCJJbnZhbGlkIEpTT04gcmVzcG9uc2UiLDEpOjQ9PT1iLnJlYWR5U3RhdGUmJk8oYSwwLCJBamF4IGVycm9yIiw3KSk7SyhhLCExKX19O2Eub0FqYXhEYXRhPWI7QShhLG51bGwsInByZVhociIsW2EsYl0pO2EuZm5TZXJ2ZXJEYXRhP2EuZm5TZXJ2ZXJEYXRhLmNhbGwoZywKYS5zQWpheFNvdXJjZSxmLm1hcChiLGZ1bmN0aW9uKGEsYil7cmV0dXJue25hbWU6Yix2YWx1ZTphfX0pLGssYSk6YS5zQWpheFNvdXJjZXx8InN0cmluZyI9PT10eXBlb2YgaD9hLmpxWEhSPWYuYWpheChmLmV4dGVuZChuLHt1cmw6aHx8YS5zQWpheFNvdXJjZX0pKToiZnVuY3Rpb24iPT09dHlwZW9mIGg/YS5qcVhIUj1oLmNhbGwoZyxiLGssYSk6KGEuanFYSFI9Zi5hamF4KGYuZXh0ZW5kKG4saCkpLGguZGF0YT1sKX1mdW5jdGlvbiBxYihhKXtyZXR1cm4gYS5iQWpheERhdGFHZXQ/KGEuaURyYXcrKyxLKGEsITApLHZhKGEsemIoYSksZnVuY3Rpb24oYil7QWIoYSxiKX0pLCExKTohMH1mdW5jdGlvbiB6YihhKXt2YXIgYj1hLmFvQ29sdW1ucyxjPWIubGVuZ3RoLGQ9YS5vRmVhdHVyZXMsZT1hLm9QcmV2aW91c1NlYXJjaCxoPWEuYW9QcmVTZWFyY2hDb2xzLGc9W10saz1ZKGEpO3ZhciBsPWEuX2lEaXNwbGF5U3RhcnQ7dmFyIG49ITEhPT1kLmJQYWdpbmF0ZT9hLl9pRGlzcGxheUxlbmd0aDoKLTE7dmFyIG09ZnVuY3Rpb24oYSxiKXtnLnB1c2goe25hbWU6YSx2YWx1ZTpifSl9O20oInNFY2hvIixhLmlEcmF3KTttKCJpQ29sdW1ucyIsYyk7bSgic0NvbHVtbnMiLEooYiwic05hbWUiKS5qb2luKCIsIikpO20oImlEaXNwbGF5U3RhcnQiLGwpO20oImlEaXNwbGF5TGVuZ3RoIixuKTt2YXIgcD17ZHJhdzphLmlEcmF3LGNvbHVtbnM6W10sb3JkZXI6W10sc3RhcnQ6bCxsZW5ndGg6bixzZWFyY2g6e3ZhbHVlOmUuc1NlYXJjaCxyZWdleDplLmJSZWdleH19O2ZvcihsPTA7bDxjO2wrKyl7dmFyIHU9YltsXTt2YXIgc2E9aFtsXTtuPSJmdW5jdGlvbiI9PXR5cGVvZiB1Lm1EYXRhPyJmdW5jdGlvbiI6dS5tRGF0YTtwLmNvbHVtbnMucHVzaCh7ZGF0YTpuLG5hbWU6dS5zTmFtZSxzZWFyY2hhYmxlOnUuYlNlYXJjaGFibGUsb3JkZXJhYmxlOnUuYlNvcnRhYmxlLHNlYXJjaDp7dmFsdWU6c2Euc1NlYXJjaCxyZWdleDpzYS5iUmVnZXh9fSk7bSgibURhdGFQcm9wXyIrbCxuKTtkLmJGaWx0ZXImJgoobSgic1NlYXJjaF8iK2wsc2Euc1NlYXJjaCksbSgiYlJlZ2V4XyIrbCxzYS5iUmVnZXgpLG0oImJTZWFyY2hhYmxlXyIrbCx1LmJTZWFyY2hhYmxlKSk7ZC5iU29ydCYmbSgiYlNvcnRhYmxlXyIrbCx1LmJTb3J0YWJsZSl9ZC5iRmlsdGVyJiYobSgic1NlYXJjaCIsZS5zU2VhcmNoKSxtKCJiUmVnZXgiLGUuYlJlZ2V4KSk7ZC5iU29ydCYmKGYuZWFjaChrLGZ1bmN0aW9uKGEsYil7cC5vcmRlci5wdXNoKHtjb2x1bW46Yi5jb2wsZGlyOmIuZGlyfSk7bSgiaVNvcnRDb2xfIithLGIuY29sKTttKCJzU29ydERpcl8iK2EsYi5kaXIpfSksbSgiaVNvcnRpbmdDb2xzIixrLmxlbmd0aCkpO2I9cS5leHQubGVnYWN5LmFqYXg7cmV0dXJuIG51bGw9PT1iP2Euc0FqYXhTb3VyY2U/ZzpwOmI/ZzpwfWZ1bmN0aW9uIEFiKGEsYil7dmFyIGM9ZnVuY3Rpb24oYSxjKXtyZXR1cm4gYlthXSE9PXA/YlthXTpiW2NdfSxkPXdhKGEsYiksZT1jKCJzRWNobyIsImRyYXciKSxoPWMoImlUb3RhbFJlY29yZHMiLAoicmVjb3Jkc1RvdGFsIik7Yz1jKCJpVG90YWxEaXNwbGF5UmVjb3JkcyIsInJlY29yZHNGaWx0ZXJlZCIpO2lmKGUpe2lmKDEqZTxhLmlEcmF3KXJldHVybjthLmlEcmF3PTEqZX1xYShhKTthLl9pUmVjb3Jkc1RvdGFsPXBhcnNlSW50KGgsMTApO2EuX2lSZWNvcmRzRGlzcGxheT1wYXJzZUludChjLDEwKTtlPTA7Zm9yKGg9ZC5sZW5ndGg7ZTxoO2UrKylSKGEsZFtlXSk7YS5haURpc3BsYXk9YS5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTthLmJBamF4RGF0YUdldD0hMTtTKGEpO2EuX2JJbml0Q29tcGxldGV8fHhhKGEsYik7YS5iQWpheERhdGFHZXQ9ITA7SyhhLCExKX1mdW5jdGlvbiB3YShhLGIpe2E9Zi5pc1BsYWluT2JqZWN0KGEuYWpheCkmJmEuYWpheC5kYXRhU3JjIT09cD9hLmFqYXguZGF0YVNyYzphLnNBamF4RGF0YVByb3A7cmV0dXJuImRhdGEiPT09YT9iLmFhRGF0YXx8YlthXToiIiE9PWE/VShhKShiKTpifWZ1bmN0aW9uIHViKGEpe3ZhciBiPWEub0NsYXNzZXMsYz0KYS5zVGFibGVJZCxkPWEub0xhbmd1YWdlLGU9YS5vUHJldmlvdXNTZWFyY2gsaD1hLmFhbkZlYXR1cmVzLGc9JzxpbnB1dCB0eXBlPSJzZWFyY2giIGNsYXNzPSInK2Iuc0ZpbHRlcklucHV0KyciLz4nLGs9ZC5zU2VhcmNoO2s9ay5tYXRjaCgvX0lOUFVUXy8pP2sucmVwbGFjZSgiX0lOUFVUXyIsZyk6aytnO2I9ZigiPGRpdi8+Iix7aWQ6aC5mP251bGw6YysiX2ZpbHRlciIsImNsYXNzIjpiLnNGaWx0ZXJ9KS5hcHBlbmQoZigiPGxhYmVsLz4iKS5hcHBlbmQoaykpO2g9ZnVuY3Rpb24oKXt2YXIgYj10aGlzLnZhbHVlP3RoaXMudmFsdWU6IiI7YiE9ZS5zU2VhcmNoJiYoaWEoYSx7c1NlYXJjaDpiLGJSZWdleDplLmJSZWdleCxiU21hcnQ6ZS5iU21hcnQsYkNhc2VJbnNlbnNpdGl2ZTplLmJDYXNlSW5zZW5zaXRpdmV9KSxhLl9pRGlzcGxheVN0YXJ0PTAsUyhhKSl9O2c9bnVsbCE9PWEuc2VhcmNoRGVsYXk/YS5zZWFyY2hEZWxheToic3NwIj09PUQoYSk/NDAwOjA7dmFyIGw9ZigiaW5wdXQiLApiKS52YWwoZS5zU2VhcmNoKS5hdHRyKCJwbGFjZWhvbGRlciIsZC5zU2VhcmNoUGxhY2Vob2xkZXIpLm9uKCJrZXl1cC5EVCBzZWFyY2guRFQgaW5wdXQuRFQgcGFzdGUuRFQgY3V0LkRUIixnP1NhKGgsZyk6aCkub24oImtleXByZXNzLkRUIixmdW5jdGlvbihhKXtpZigxMz09YS5rZXlDb2RlKXJldHVybiExfSkuYXR0cigiYXJpYS1jb250cm9scyIsYyk7ZihhLm5UYWJsZSkub24oInNlYXJjaC5kdC5EVCIsZnVuY3Rpb24oYixjKXtpZihhPT09Yyl0cnl7bFswXSE9PXkuYWN0aXZlRWxlbWVudCYmbC52YWwoZS5zU2VhcmNoKX1jYXRjaCh3KXt9fSk7cmV0dXJuIGJbMF19ZnVuY3Rpb24gaWEoYSxiLGMpe3ZhciBkPWEub1ByZXZpb3VzU2VhcmNoLGU9YS5hb1ByZVNlYXJjaENvbHMsaD1mdW5jdGlvbihhKXtkLnNTZWFyY2g9YS5zU2VhcmNoO2QuYlJlZ2V4PWEuYlJlZ2V4O2QuYlNtYXJ0PWEuYlNtYXJ0O2QuYkNhc2VJbnNlbnNpdGl2ZT1hLmJDYXNlSW5zZW5zaXRpdmV9LGc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuYkVzY2FwZVJlZ2V4IT09CnA/IWEuYkVzY2FwZVJlZ2V4OmEuYlJlZ2V4fTtLYShhKTtpZigic3NwIiE9RChhKSl7QmIoYSxiLnNTZWFyY2gsYyxnKGIpLGIuYlNtYXJ0LGIuYkNhc2VJbnNlbnNpdGl2ZSk7aChiKTtmb3IoYj0wO2I8ZS5sZW5ndGg7YisrKUNiKGEsZVtiXS5zU2VhcmNoLGIsZyhlW2JdKSxlW2JdLmJTbWFydCxlW2JdLmJDYXNlSW5zZW5zaXRpdmUpO0RiKGEpfWVsc2UgaChiKTthLmJGaWx0ZXJlZD0hMDtBKGEsbnVsbCwic2VhcmNoIixbYV0pfWZ1bmN0aW9uIERiKGEpe2Zvcih2YXIgYj1xLmV4dC5zZWFyY2gsYz1hLmFpRGlzcGxheSxkLGUsaD0wLGc9Yi5sZW5ndGg7aDxnO2grKyl7Zm9yKHZhciBrPVtdLGw9MCxuPWMubGVuZ3RoO2w8bjtsKyspZT1jW2xdLGQ9YS5hb0RhdGFbZV0sYltoXShhLGQuX2FGaWx0ZXJEYXRhLGUsZC5fYURhdGEsbCkmJmsucHVzaChlKTtjLmxlbmd0aD0wO2YubWVyZ2UoYyxrKX19ZnVuY3Rpb24gQ2IoYSxiLGMsZCxlLGgpe2lmKCIiIT09Yil7dmFyIGc9W10saz0KYS5haURpc3BsYXk7ZD1UYShiLGQsZSxoKTtmb3IoZT0wO2U8ay5sZW5ndGg7ZSsrKWI9YS5hb0RhdGFba1tlXV0uX2FGaWx0ZXJEYXRhW2NdLGQudGVzdChiKSYmZy5wdXNoKGtbZV0pO2EuYWlEaXNwbGF5PWd9fWZ1bmN0aW9uIEJiKGEsYixjLGQsZSxoKXtlPVRhKGIsZCxlLGgpO3ZhciBnPWEub1ByZXZpb3VzU2VhcmNoLnNTZWFyY2gsaz1hLmFpRGlzcGxheU1hc3RlcjtoPVtdOzAhPT1xLmV4dC5zZWFyY2gubGVuZ3RoJiYoYz0hMCk7dmFyIGY9RWIoYSk7aWYoMD49Yi5sZW5ndGgpYS5haURpc3BsYXk9ay5zbGljZSgpO2Vsc2V7aWYoZnx8Y3x8ZHx8Zy5sZW5ndGg+Yi5sZW5ndGh8fDAhPT1iLmluZGV4T2YoZyl8fGEuYlNvcnRlZClhLmFpRGlzcGxheT1rLnNsaWNlKCk7Yj1hLmFpRGlzcGxheTtmb3IoYz0wO2M8Yi5sZW5ndGg7YysrKWUudGVzdChhLmFvRGF0YVtiW2NdXS5fc0ZpbHRlclJvdykmJmgucHVzaChiW2NdKTthLmFpRGlzcGxheT1ofX1mdW5jdGlvbiBUYShhLGIsCmMsZCl7YT1iP2E6VWEoYSk7YyYmKGE9Il4oPz0uKj8iK2YubWFwKGEubWF0Y2goLyJbXiJdKyJ8W14gXSsvZyl8fFsiIl0sZnVuY3Rpb24oYSl7aWYoJyInPT09YS5jaGFyQXQoMCkpe3ZhciBiPWEubWF0Y2goL14iKC4qKSIkLyk7YT1iP2JbMV06YX1yZXR1cm4gYS5yZXBsYWNlKCciJywiIil9KS5qb2luKCIpKD89Lio/IikrIikuKiQiKTtyZXR1cm4gbmV3IFJlZ0V4cChhLGQ/ImkiOiIiKX1mdW5jdGlvbiBFYihhKXt2YXIgYj1hLmFvQ29sdW1ucyxjLGQsZT1xLmV4dC50eXBlLnNlYXJjaDt2YXIgaD0hMTt2YXIgZz0wO2ZvcihjPWEuYW9EYXRhLmxlbmd0aDtnPGM7ZysrKXt2YXIgaz1hLmFvRGF0YVtnXTtpZighay5fYUZpbHRlckRhdGEpe3ZhciBmPVtdO3ZhciBuPTA7Zm9yKGQ9Yi5sZW5ndGg7bjxkO24rKyl7aD1iW25dO2lmKGguYlNlYXJjaGFibGUpe3ZhciBtPUkoYSxnLG4sImZpbHRlciIpO2VbaC5zVHlwZV0mJihtPWVbaC5zVHlwZV0obSkpO251bGw9PT1tJiYobT0iIik7CiJzdHJpbmciIT09dHlwZW9mIG0mJm0udG9TdHJpbmcmJihtPW0udG9TdHJpbmcoKSl9ZWxzZSBtPSIiO20uaW5kZXhPZiYmLTEhPT1tLmluZGV4T2YoIiYiKSYmKHlhLmlubmVySFRNTD1tLG09JGI/eWEudGV4dENvbnRlbnQ6eWEuaW5uZXJUZXh0KTttLnJlcGxhY2UmJihtPW0ucmVwbGFjZSgvW1xyXG5cdTIwMjhdL2csIiIpKTtmLnB1c2gobSl9ay5fYUZpbHRlckRhdGE9ZjtrLl9zRmlsdGVyUm93PWYuam9pbigiICAiKTtoPSEwfX1yZXR1cm4gaH1mdW5jdGlvbiBGYihhKXtyZXR1cm57c2VhcmNoOmEuc1NlYXJjaCxzbWFydDphLmJTbWFydCxyZWdleDphLmJSZWdleCxjYXNlSW5zZW5zaXRpdmU6YS5iQ2FzZUluc2Vuc2l0aXZlfX1mdW5jdGlvbiBHYihhKXtyZXR1cm57c1NlYXJjaDphLnNlYXJjaCxiU21hcnQ6YS5zbWFydCxiUmVnZXg6YS5yZWdleCxiQ2FzZUluc2Vuc2l0aXZlOmEuY2FzZUluc2Vuc2l0aXZlfX1mdW5jdGlvbiB4YihhKXt2YXIgYj1hLnNUYWJsZUlkLGM9YS5hYW5GZWF0dXJlcy5pLApkPWYoIjxkaXYvPiIseyJjbGFzcyI6YS5vQ2xhc3Nlcy5zSW5mbyxpZDpjP251bGw6YisiX2luZm8ifSk7Y3x8KGEuYW9EcmF3Q2FsbGJhY2sucHVzaCh7Zm46SGIsc05hbWU6ImluZm9ybWF0aW9uIn0pLGQuYXR0cigicm9sZSIsInN0YXR1cyIpLmF0dHIoImFyaWEtbGl2ZSIsInBvbGl0ZSIpLGYoYS5uVGFibGUpLmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiLGIrIl9pbmZvIikpO3JldHVybiBkWzBdfWZ1bmN0aW9uIEhiKGEpe3ZhciBiPWEuYWFuRmVhdHVyZXMuaTtpZigwIT09Yi5sZW5ndGgpe3ZhciBjPWEub0xhbmd1YWdlLGQ9YS5faURpc3BsYXlTdGFydCsxLGU9YS5mbkRpc3BsYXlFbmQoKSxoPWEuZm5SZWNvcmRzVG90YWwoKSxnPWEuZm5SZWNvcmRzRGlzcGxheSgpLGs9Zz9jLnNJbmZvOmMuc0luZm9FbXB0eTtnIT09aCYmKGsrPSIgIitjLnNJbmZvRmlsdGVyZWQpO2srPWMuc0luZm9Qb3N0Rml4O2s9SWIoYSxrKTtjPWMuZm5JbmZvQ2FsbGJhY2s7bnVsbCE9PWMmJihrPWMuY2FsbChhLm9JbnN0YW5jZSwKYSxkLGUsaCxnLGspKTtmKGIpLmh0bWwoayl9fWZ1bmN0aW9uIEliKGEsYil7dmFyIGM9YS5mbkZvcm1hdE51bWJlcixkPWEuX2lEaXNwbGF5U3RhcnQrMSxlPWEuX2lEaXNwbGF5TGVuZ3RoLGg9YS5mblJlY29yZHNEaXNwbGF5KCksZz0tMT09PWU7cmV0dXJuIGIucmVwbGFjZSgvX1NUQVJUXy9nLGMuY2FsbChhLGQpKS5yZXBsYWNlKC9fRU5EXy9nLGMuY2FsbChhLGEuZm5EaXNwbGF5RW5kKCkpKS5yZXBsYWNlKC9fTUFYXy9nLGMuY2FsbChhLGEuZm5SZWNvcmRzVG90YWwoKSkpLnJlcGxhY2UoL19UT1RBTF8vZyxjLmNhbGwoYSxoKSkucmVwbGFjZSgvX1BBR0VfL2csYy5jYWxsKGEsZz8xOk1hdGguY2VpbChkL2UpKSkucmVwbGFjZSgvX1BBR0VTXy9nLGMuY2FsbChhLGc/MTpNYXRoLmNlaWwoaC9lKSkpfWZ1bmN0aW9uIGphKGEpe3ZhciBiPWEuaUluaXREaXNwbGF5U3RhcnQsYz1hLmFvQ29sdW1uczt2YXIgZD1hLm9GZWF0dXJlczt2YXIgZT1hLmJEZWZlckxvYWRpbmc7aWYoYS5iSW5pdGlhbGlzZWQpe3NiKGEpOwpwYihhKTtoYShhLGEuYW9IZWFkZXIpO2hhKGEsYS5hb0Zvb3Rlcik7SyhhLCEwKTtkLmJBdXRvV2lkdGgmJkphKGEpO3ZhciBoPTA7Zm9yKGQ9Yy5sZW5ndGg7aDxkO2grKyl7dmFyIGc9Y1toXTtnLnNXaWR0aCYmKGcublRoLnN0eWxlLndpZHRoPUIoZy5zV2lkdGgpKX1BKGEsbnVsbCwicHJlSW5pdCIsW2FdKTtWKGEpO2M9RChhKTtpZigic3NwIiE9Y3x8ZSkiYWpheCI9PWM/dmEoYSxbXSxmdW5jdGlvbihjKXt2YXIgZD13YShhLGMpO2ZvcihoPTA7aDxkLmxlbmd0aDtoKyspUihhLGRbaF0pO2EuaUluaXREaXNwbGF5U3RhcnQ9YjtWKGEpO0soYSwhMSk7eGEoYSxjKX0sYSk6KEsoYSwhMSkseGEoYSkpfWVsc2Ugc2V0VGltZW91dChmdW5jdGlvbigpe2phKGEpfSwyMDApfWZ1bmN0aW9uIHhhKGEsYil7YS5fYkluaXRDb21wbGV0ZT0hMDsoYnx8YS5vSW5pdC5hYURhdGEpJiZhYShhKTtBKGEsbnVsbCwicGx1Z2luLWluaXQiLFthLGJdKTtBKGEsImFvSW5pdENvbXBsZXRlIiwiaW5pdCIsClthLGJdKX1mdW5jdGlvbiBWYShhLGIpe2I9cGFyc2VJbnQoYiwxMCk7YS5faURpc3BsYXlMZW5ndGg9YjtXYShhKTtBKGEsbnVsbCwibGVuZ3RoIixbYSxiXSl9ZnVuY3Rpb24gdGIoYSl7dmFyIGI9YS5vQ2xhc3NlcyxjPWEuc1RhYmxlSWQsZD1hLmFMZW5ndGhNZW51LGU9Zi5pc0FycmF5KGRbMF0pLGg9ZT9kWzBdOmQ7ZD1lP2RbMV06ZDtlPWYoIjxzZWxlY3QvPiIse25hbWU6YysiX2xlbmd0aCIsImFyaWEtY29udHJvbHMiOmMsImNsYXNzIjpiLnNMZW5ndGhTZWxlY3R9KTtmb3IodmFyIGc9MCxrPWgubGVuZ3RoO2c8aztnKyspZVswXVtnXT1uZXcgT3B0aW9uKCJudW1iZXIiPT09dHlwZW9mIGRbZ10/YS5mbkZvcm1hdE51bWJlcihkW2ddKTpkW2ddLGhbZ10pO3ZhciBsPWYoIjxkaXY+PGxhYmVsLz48L2Rpdj4iKS5hZGRDbGFzcyhiLnNMZW5ndGgpO2EuYWFuRmVhdHVyZXMubHx8KGxbMF0uaWQ9YysiX2xlbmd0aCIpO2wuY2hpbGRyZW4oKS5hcHBlbmQoYS5vTGFuZ3VhZ2Uuc0xlbmd0aE1lbnUucmVwbGFjZSgiX01FTlVfIiwKZVswXS5vdXRlckhUTUwpKTtmKCJzZWxlY3QiLGwpLnZhbChhLl9pRGlzcGxheUxlbmd0aCkub24oImNoYW5nZS5EVCIsZnVuY3Rpb24oYil7VmEoYSxmKHRoaXMpLnZhbCgpKTtTKGEpfSk7ZihhLm5UYWJsZSkub24oImxlbmd0aC5kdC5EVCIsZnVuY3Rpb24oYixjLGQpe2E9PT1jJiZmKCJzZWxlY3QiLGwpLnZhbChkKX0pO3JldHVybiBsWzBdfWZ1bmN0aW9uIHliKGEpe3ZhciBiPWEuc1BhZ2luYXRpb25UeXBlLGM9cS5leHQucGFnZXJbYl0sZD0iZnVuY3Rpb24iPT09dHlwZW9mIGMsZT1mdW5jdGlvbihhKXtTKGEpfTtiPWYoIjxkaXYvPiIpLmFkZENsYXNzKGEub0NsYXNzZXMuc1BhZ2luZytiKVswXTt2YXIgaD1hLmFhbkZlYXR1cmVzO2R8fGMuZm5Jbml0KGEsYixlKTtoLnB8fChiLmlkPWEuc1RhYmxlSWQrIl9wYWdpbmF0ZSIsYS5hb0RyYXdDYWxsYmFjay5wdXNoKHtmbjpmdW5jdGlvbihhKXtpZihkKXt2YXIgYj1hLl9pRGlzcGxheVN0YXJ0LGc9YS5faURpc3BsYXlMZW5ndGgsCmY9YS5mblJlY29yZHNEaXNwbGF5KCksbT0tMT09PWc7Yj1tPzA6TWF0aC5jZWlsKGIvZyk7Zz1tPzE6TWF0aC5jZWlsKGYvZyk7Zj1jKGIsZyk7dmFyIHA7bT0wO2ZvcihwPWgucC5sZW5ndGg7bTxwO20rKylSYShhLCJwYWdlQnV0dG9uIikoYSxoLnBbbV0sbSxmLGIsZyl9ZWxzZSBjLmZuVXBkYXRlKGEsZSl9LHNOYW1lOiJwYWdpbmF0aW9uIn0pKTtyZXR1cm4gYn1mdW5jdGlvbiBYYShhLGIsYyl7dmFyIGQ9YS5faURpc3BsYXlTdGFydCxlPWEuX2lEaXNwbGF5TGVuZ3RoLGg9YS5mblJlY29yZHNEaXNwbGF5KCk7MD09PWh8fC0xPT09ZT9kPTA6Im51bWJlciI9PT10eXBlb2YgYj8oZD1iKmUsZD5oJiYoZD0wKSk6ImZpcnN0Ij09Yj9kPTA6InByZXZpb3VzIj09Yj8oZD0wPD1lP2QtZTowLDA+ZCYmKGQ9MCkpOiJuZXh0Ij09Yj9kK2U8aCYmKGQrPWUpOiJsYXN0Ij09Yj9kPU1hdGguZmxvb3IoKGgtMSkvZSkqZTpPKGEsMCwiVW5rbm93biBwYWdpbmcgYWN0aW9uOiAiK2IsNSk7Yj0KYS5faURpc3BsYXlTdGFydCE9PWQ7YS5faURpc3BsYXlTdGFydD1kO2ImJihBKGEsbnVsbCwicGFnZSIsW2FdKSxjJiZTKGEpKTtyZXR1cm4gYn1mdW5jdGlvbiB2YihhKXtyZXR1cm4gZigiPGRpdi8+Iix7aWQ6YS5hYW5GZWF0dXJlcy5yP251bGw6YS5zVGFibGVJZCsiX3Byb2Nlc3NpbmciLCJjbGFzcyI6YS5vQ2xhc3Nlcy5zUHJvY2Vzc2luZ30pLmh0bWwoYS5vTGFuZ3VhZ2Uuc1Byb2Nlc3NpbmcpLmluc2VydEJlZm9yZShhLm5UYWJsZSlbMF19ZnVuY3Rpb24gSyhhLGIpe2Eub0ZlYXR1cmVzLmJQcm9jZXNzaW5nJiZmKGEuYWFuRmVhdHVyZXMucikuY3NzKCJkaXNwbGF5IixiPyJibG9jayI6Im5vbmUiKTtBKGEsbnVsbCwicHJvY2Vzc2luZyIsW2EsYl0pfWZ1bmN0aW9uIHdiKGEpe3ZhciBiPWYoYS5uVGFibGUpO2IuYXR0cigicm9sZSIsImdyaWQiKTt2YXIgYz1hLm9TY3JvbGw7aWYoIiI9PT1jLnNYJiYiIj09PWMuc1kpcmV0dXJuIGEublRhYmxlO3ZhciBkPWMuc1gsZT1jLnNZLApoPWEub0NsYXNzZXMsZz1iLmNoaWxkcmVuKCJjYXB0aW9uIiksaz1nLmxlbmd0aD9nWzBdLl9jYXB0aW9uU2lkZTpudWxsLGw9ZihiWzBdLmNsb25lTm9kZSghMSkpLG49ZihiWzBdLmNsb25lTm9kZSghMSkpLG09Yi5jaGlsZHJlbigidGZvb3QiKTttLmxlbmd0aHx8KG09bnVsbCk7bD1mKCI8ZGl2Lz4iLHsiY2xhc3MiOmguc1Njcm9sbFdyYXBwZXJ9KS5hcHBlbmQoZigiPGRpdi8+Iix7ImNsYXNzIjpoLnNTY3JvbGxIZWFkfSkuY3NzKHtvdmVyZmxvdzoiaGlkZGVuIixwb3NpdGlvbjoicmVsYXRpdmUiLGJvcmRlcjowLHdpZHRoOmQ/ZD9CKGQpOm51bGw6IjEwMCUifSkuYXBwZW5kKGYoIjxkaXYvPiIseyJjbGFzcyI6aC5zU2Nyb2xsSGVhZElubmVyfSkuY3NzKHsiYm94LXNpemluZyI6ImNvbnRlbnQtYm94Iix3aWR0aDpjLnNYSW5uZXJ8fCIxMDAlIn0pLmFwcGVuZChsLnJlbW92ZUF0dHIoImlkIikuY3NzKCJtYXJnaW4tbGVmdCIsMCkuYXBwZW5kKCJ0b3AiPT09az9nOm51bGwpLmFwcGVuZChiLmNoaWxkcmVuKCJ0aGVhZCIpKSkpKS5hcHBlbmQoZigiPGRpdi8+IiwKeyJjbGFzcyI6aC5zU2Nyb2xsQm9keX0pLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIixvdmVyZmxvdzoiYXV0byIsd2lkdGg6ZD9CKGQpOm51bGx9KS5hcHBlbmQoYikpO20mJmwuYXBwZW5kKGYoIjxkaXYvPiIseyJjbGFzcyI6aC5zU2Nyb2xsRm9vdH0pLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiIsYm9yZGVyOjAsd2lkdGg6ZD9kP0IoZCk6bnVsbDoiMTAwJSJ9KS5hcHBlbmQoZigiPGRpdi8+Iix7ImNsYXNzIjpoLnNTY3JvbGxGb290SW5uZXJ9KS5hcHBlbmQobi5yZW1vdmVBdHRyKCJpZCIpLmNzcygibWFyZ2luLWxlZnQiLDApLmFwcGVuZCgiYm90dG9tIj09PWs/ZzpudWxsKS5hcHBlbmQoYi5jaGlsZHJlbigidGZvb3QiKSkpKSk7Yj1sLmNoaWxkcmVuKCk7dmFyIHA9YlswXTtoPWJbMV07dmFyIHU9bT9iWzJdOm51bGw7aWYoZClmKGgpLm9uKCJzY3JvbGwuRFQiLGZ1bmN0aW9uKGEpe2E9dGhpcy5zY3JvbGxMZWZ0O3Auc2Nyb2xsTGVmdD1hO20mJih1LnNjcm9sbExlZnQ9YSl9KTsKZihoKS5jc3MoZSYmYy5iQ29sbGFwc2U/Im1heC1oZWlnaHQiOiJoZWlnaHQiLGUpO2EublNjcm9sbEhlYWQ9cDthLm5TY3JvbGxCb2R5PWg7YS5uU2Nyb2xsRm9vdD11O2EuYW9EcmF3Q2FsbGJhY2sucHVzaCh7Zm46bmEsc05hbWU6InNjcm9sbGluZyJ9KTtyZXR1cm4gbFswXX1mdW5jdGlvbiBuYShhKXt2YXIgYj1hLm9TY3JvbGwsYz1iLnNYLGQ9Yi5zWElubmVyLGU9Yi5zWTtiPWIuaUJhcldpZHRoO3ZhciBoPWYoYS5uU2Nyb2xsSGVhZCksZz1oWzBdLnN0eWxlLGs9aC5jaGlsZHJlbigiZGl2IiksbD1rWzBdLnN0eWxlLG49ay5jaGlsZHJlbigidGFibGUiKTtrPWEublNjcm9sbEJvZHk7dmFyIG09ZihrKSx3PWsuc3R5bGUsdT1mKGEublNjcm9sbEZvb3QpLmNoaWxkcmVuKCJkaXYiKSxxPXUuY2hpbGRyZW4oInRhYmxlIiksdD1mKGEublRIZWFkKSxyPWYoYS5uVGFibGUpLHY9clswXSx6YT12LnN0eWxlLFQ9YS5uVEZvb3Q/ZihhLm5URm9vdCk6bnVsbCxBPWEub0Jyb3dzZXIsCng9QS5iU2Nyb2xsT3ZlcnNpemUsYWM9SihhLmFvQ29sdW1ucywiblRoIiksWWE9W10seT1bXSx6PVtdLEM9W10sRyxIPWZ1bmN0aW9uKGEpe2E9YS5zdHlsZTthLnBhZGRpbmdUb3A9IjAiO2EucGFkZGluZ0JvdHRvbT0iMCI7YS5ib3JkZXJUb3BXaWR0aD0iMCI7YS5ib3JkZXJCb3R0b21XaWR0aD0iMCI7YS5oZWlnaHQ9MH07dmFyIEQ9ay5zY3JvbGxIZWlnaHQ+ay5jbGllbnRIZWlnaHQ7aWYoYS5zY3JvbGxCYXJWaXMhPT1EJiZhLnNjcm9sbEJhclZpcyE9PXApYS5zY3JvbGxCYXJWaXM9RCxhYShhKTtlbHNle2Euc2Nyb2xsQmFyVmlzPUQ7ci5jaGlsZHJlbigidGhlYWQsIHRmb290IikucmVtb3ZlKCk7aWYoVCl7dmFyIEU9VC5jbG9uZSgpLnByZXBlbmRUbyhyKTt2YXIgRj1ULmZpbmQoInRyIik7RT1FLmZpbmQoInRyIil9dmFyIEk9dC5jbG9uZSgpLnByZXBlbmRUbyhyKTt0PXQuZmluZCgidHIiKTtEPUkuZmluZCgidHIiKTtJLmZpbmQoInRoLCB0ZCIpLnJlbW92ZUF0dHIoInRhYmluZGV4Iik7CmN8fCh3LndpZHRoPSIxMDAlIixoWzBdLnN0eWxlLndpZHRoPSIxMDAlIik7Zi5lYWNoKHVhKGEsSSksZnVuY3Rpb24oYixjKXtHPWJhKGEsYik7Yy5zdHlsZS53aWR0aD1hLmFvQ29sdW1uc1tHXS5zV2lkdGh9KTtUJiZOKGZ1bmN0aW9uKGEpe2Euc3R5bGUud2lkdGg9IiJ9LEUpO2g9ci5vdXRlcldpZHRoKCk7IiI9PT1jPyh6YS53aWR0aD0iMTAwJSIseCYmKHIuZmluZCgidGJvZHkiKS5oZWlnaHQoKT5rLm9mZnNldEhlaWdodHx8InNjcm9sbCI9PW0uY3NzKCJvdmVyZmxvdy15IikpJiYoemEud2lkdGg9QihyLm91dGVyV2lkdGgoKS1iKSksaD1yLm91dGVyV2lkdGgoKSk6IiIhPT1kJiYoemEud2lkdGg9QihkKSxoPXIub3V0ZXJXaWR0aCgpKTtOKEgsRCk7TihmdW5jdGlvbihhKXt6LnB1c2goYS5pbm5lckhUTUwpO1lhLnB1c2goQihmKGEpLmNzcygid2lkdGgiKSkpfSxEKTtOKGZ1bmN0aW9uKGEsYil7LTEhPT1mLmluQXJyYXkoYSxhYykmJihhLnN0eWxlLndpZHRoPVlhW2JdKX0sCnQpO2YoRCkuaGVpZ2h0KDApO1QmJihOKEgsRSksTihmdW5jdGlvbihhKXtDLnB1c2goYS5pbm5lckhUTUwpO3kucHVzaChCKGYoYSkuY3NzKCJ3aWR0aCIpKSl9LEUpLE4oZnVuY3Rpb24oYSxiKXthLnN0eWxlLndpZHRoPXlbYl19LEYpLGYoRSkuaGVpZ2h0KDApKTtOKGZ1bmN0aW9uKGEsYil7YS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImRhdGFUYWJsZXNfc2l6aW5nIj4nK3pbYl0rIjwvZGl2PiI7YS5jaGlsZE5vZGVzWzBdLnN0eWxlLmhlaWdodD0iMCI7YS5jaGlsZE5vZGVzWzBdLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO2Euc3R5bGUud2lkdGg9WWFbYl19LEQpO1QmJk4oZnVuY3Rpb24oYSxiKXthLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZGF0YVRhYmxlc19zaXppbmciPicrQ1tiXSsiPC9kaXY+IjthLmNoaWxkTm9kZXNbMF0uc3R5bGUuaGVpZ2h0PSIwIjthLmNoaWxkTm9kZXNbMF0uc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7YS5zdHlsZS53aWR0aD15W2JdfSxFKTtyLm91dGVyV2lkdGgoKTwKaD8oRj1rLnNjcm9sbEhlaWdodD5rLm9mZnNldEhlaWdodHx8InNjcm9sbCI9PW0uY3NzKCJvdmVyZmxvdy15Iik/aCtiOmgseCYmKGsuc2Nyb2xsSGVpZ2h0Pmsub2Zmc2V0SGVpZ2h0fHwic2Nyb2xsIj09bS5jc3MoIm92ZXJmbG93LXkiKSkmJih6YS53aWR0aD1CKEYtYikpLCIiIT09YyYmIiI9PT1kfHxPKGEsMSwiUG9zc2libGUgY29sdW1uIG1pc2FsaWdubWVudCIsNikpOkY9IjEwMCUiO3cud2lkdGg9QihGKTtnLndpZHRoPUIoRik7VCYmKGEublNjcm9sbEZvb3Quc3R5bGUud2lkdGg9QihGKSk7IWUmJngmJih3LmhlaWdodD1CKHYub2Zmc2V0SGVpZ2h0K2IpKTtjPXIub3V0ZXJXaWR0aCgpO25bMF0uc3R5bGUud2lkdGg9QihjKTtsLndpZHRoPUIoYyk7ZD1yLmhlaWdodCgpPmsuY2xpZW50SGVpZ2h0fHwic2Nyb2xsIj09bS5jc3MoIm92ZXJmbG93LXkiKTtlPSJwYWRkaW5nIisoQS5iU2Nyb2xsYmFyTGVmdD8iTGVmdCI6IlJpZ2h0Iik7bFtlXT1kP2IrInB4IjoiMHB4IjtUJiYKKHFbMF0uc3R5bGUud2lkdGg9QihjKSx1WzBdLnN0eWxlLndpZHRoPUIoYyksdVswXS5zdHlsZVtlXT1kP2IrInB4IjoiMHB4Iik7ci5jaGlsZHJlbigiY29sZ3JvdXAiKS5pbnNlcnRCZWZvcmUoci5jaGlsZHJlbigidGhlYWQiKSk7bS50cmlnZ2VyKCJzY3JvbGwiKTshYS5iU29ydGVkJiYhYS5iRmlsdGVyZWR8fGEuX2RyYXdIb2xkfHwoay5zY3JvbGxUb3A9MCl9fWZ1bmN0aW9uIE4oYSxiLGMpe2Zvcih2YXIgZD0wLGU9MCxoPWIubGVuZ3RoLGcsaztlPGg7KXtnPWJbZV0uZmlyc3RDaGlsZDtmb3Ioaz1jP2NbZV0uZmlyc3RDaGlsZDpudWxsO2c7KTE9PT1nLm5vZGVUeXBlJiYoYz9hKGcsayxkKTphKGcsZCksZCsrKSxnPWcubmV4dFNpYmxpbmcsaz1jP2submV4dFNpYmxpbmc6bnVsbDtlKyt9fWZ1bmN0aW9uIEphKGEpe3ZhciBiPWEublRhYmxlLGM9YS5hb0NvbHVtbnMsZD1hLm9TY3JvbGwsZT1kLnNZLGg9ZC5zWCxnPWQuc1hJbm5lcixrPWMubGVuZ3RoLGw9b2EoYSwiYlZpc2libGUiKSwKbj1mKCJ0aCIsYS5uVEhlYWQpLG09Yi5nZXRBdHRyaWJ1dGUoIndpZHRoIikscD1iLnBhcmVudE5vZGUsdT0hMSxxLHQ9YS5vQnJvd3NlcjtkPXQuYlNjcm9sbE92ZXJzaXplOyhxPWIuc3R5bGUud2lkdGgpJiYtMSE9PXEuaW5kZXhPZigiJSIpJiYobT1xKTtmb3IocT0wO3E8bC5sZW5ndGg7cSsrKXt2YXIgcj1jW2xbcV1dO251bGwhPT1yLnNXaWR0aCYmKHIuc1dpZHRoPUpiKHIuc1dpZHRoT3JpZyxwKSx1PSEwKX1pZihkfHwhdSYmIWgmJiFlJiZrPT1XKGEpJiZrPT1uLmxlbmd0aClmb3IocT0wO3E8aztxKyspbD1iYShhLHEpLG51bGwhPT1sJiYoY1tsXS5zV2lkdGg9QihuLmVxKHEpLndpZHRoKCkpKTtlbHNle2s9ZihiKS5jbG9uZSgpLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpLnJlbW92ZUF0dHIoImlkIik7ay5maW5kKCJ0Ym9keSB0ciIpLnJlbW92ZSgpO3ZhciB2PWYoIjx0ci8+IikuYXBwZW5kVG8oay5maW5kKCJ0Ym9keSIpKTtrLmZpbmQoInRoZWFkLCB0Zm9vdCIpLnJlbW92ZSgpOwprLmFwcGVuZChmKGEublRIZWFkKS5jbG9uZSgpKS5hcHBlbmQoZihhLm5URm9vdCkuY2xvbmUoKSk7ay5maW5kKCJ0Zm9vdCB0aCwgdGZvb3QgdGQiKS5jc3MoIndpZHRoIiwiIik7bj11YShhLGsuZmluZCgidGhlYWQiKVswXSk7Zm9yKHE9MDtxPGwubGVuZ3RoO3ErKylyPWNbbFtxXV0sbltxXS5zdHlsZS53aWR0aD1udWxsIT09ci5zV2lkdGhPcmlnJiYiIiE9PXIuc1dpZHRoT3JpZz9CKHIuc1dpZHRoT3JpZyk6IiIsci5zV2lkdGhPcmlnJiZoJiZmKG5bcV0pLmFwcGVuZChmKCI8ZGl2Lz4iKS5jc3Moe3dpZHRoOnIuc1dpZHRoT3JpZyxtYXJnaW46MCxwYWRkaW5nOjAsYm9yZGVyOjAsaGVpZ2h0OjF9KSk7aWYoYS5hb0RhdGEubGVuZ3RoKWZvcihxPTA7cTxsLmxlbmd0aDtxKyspdT1sW3FdLHI9Y1t1XSxmKEtiKGEsdSkpLmNsb25lKCExKS5hcHBlbmQoci5zQ29udGVudFBhZGRpbmcpLmFwcGVuZFRvKHYpO2YoIltuYW1lXSIsaykucmVtb3ZlQXR0cigibmFtZSIpO3I9ZigiPGRpdi8+IikuY3NzKGh8fAplP3twb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6MCxoZWlnaHQ6MSxyaWdodDowLG92ZXJmbG93OiJoaWRkZW4ifTp7fSkuYXBwZW5kKGspLmFwcGVuZFRvKHApO2gmJmc/ay53aWR0aChnKTpoPyhrLmNzcygid2lkdGgiLCJhdXRvIiksay5yZW1vdmVBdHRyKCJ3aWR0aCIpLGsud2lkdGgoKTxwLmNsaWVudFdpZHRoJiZtJiZrLndpZHRoKHAuY2xpZW50V2lkdGgpKTplP2sud2lkdGgocC5jbGllbnRXaWR0aCk6bSYmay53aWR0aChtKTtmb3IocT1lPTA7cTxsLmxlbmd0aDtxKyspcD1mKG5bcV0pLGc9cC5vdXRlcldpZHRoKCktcC53aWR0aCgpLHA9dC5iQm91bmRpbmc/TWF0aC5jZWlsKG5bcV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpOnAub3V0ZXJXaWR0aCgpLGUrPXAsY1tsW3FdXS5zV2lkdGg9QihwLWcpO2Iuc3R5bGUud2lkdGg9QihlKTtyLnJlbW92ZSgpfW0mJihiLnN0eWxlLndpZHRoPUIobSkpOyFtJiYhaHx8YS5fcmVzekV2dHx8KGI9ZnVuY3Rpb24oKXtmKHopLm9uKCJyZXNpemUuRFQtIisKYS5zSW5zdGFuY2UsU2EoZnVuY3Rpb24oKXthYShhKX0pKX0sZD9zZXRUaW1lb3V0KGIsMUUzKTpiKCksYS5fcmVzekV2dD0hMCl9ZnVuY3Rpb24gSmIoYSxiKXtpZighYSlyZXR1cm4gMDthPWYoIjxkaXYvPiIpLmNzcygid2lkdGgiLEIoYSkpLmFwcGVuZFRvKGJ8fHkuYm9keSk7Yj1hWzBdLm9mZnNldFdpZHRoO2EucmVtb3ZlKCk7cmV0dXJuIGJ9ZnVuY3Rpb24gS2IoYSxiKXt2YXIgYz1MYihhLGIpO2lmKDA+YylyZXR1cm4gbnVsbDt2YXIgZD1hLmFvRGF0YVtjXTtyZXR1cm4gZC5uVHI/ZC5hbkNlbGxzW2JdOmYoIjx0ZC8+IikuaHRtbChJKGEsYyxiLCJkaXNwbGF5IikpWzBdfWZ1bmN0aW9uIExiKGEsYil7Zm9yKHZhciBjLGQ9LTEsZT0tMSxoPTAsZz1hLmFvRGF0YS5sZW5ndGg7aDxnO2grKyljPUkoYSxoLGIsImRpc3BsYXkiKSsiIixjPWMucmVwbGFjZShiYywiIiksYz1jLnJlcGxhY2UoLyZuYnNwOy9nLCIgIiksYy5sZW5ndGg+ZCYmKGQ9Yy5sZW5ndGgsZT1oKTtyZXR1cm4gZX0KZnVuY3Rpb24gQihhKXtyZXR1cm4gbnVsbD09PWE/IjBweCI6Im51bWJlciI9PXR5cGVvZiBhPzA+YT8iMHB4IjphKyJweCI6YS5tYXRjaCgvXGQkLyk/YSsicHgiOmF9ZnVuY3Rpb24gWShhKXt2YXIgYj1bXSxjPWEuYW9Db2x1bW5zO3ZhciBkPWEuYWFTb3J0aW5nRml4ZWQ7dmFyIGU9Zi5pc1BsYWluT2JqZWN0KGQpO3ZhciBoPVtdO3ZhciBnPWZ1bmN0aW9uKGEpe2EubGVuZ3RoJiYhZi5pc0FycmF5KGFbMF0pP2gucHVzaChhKTpmLm1lcmdlKGgsYSl9O2YuaXNBcnJheShkKSYmZyhkKTtlJiZkLnByZSYmZyhkLnByZSk7ZyhhLmFhU29ydGluZyk7ZSYmZC5wb3N0JiZnKGQucG9zdCk7Zm9yKGE9MDthPGgubGVuZ3RoO2ErKyl7dmFyIGs9aFthXVswXTtnPWNba10uYURhdGFTb3J0O2Q9MDtmb3IoZT1nLmxlbmd0aDtkPGU7ZCsrKXt2YXIgbD1nW2RdO3ZhciBuPWNbbF0uc1R5cGV8fCJzdHJpbmciO2hbYV0uX2lkeD09PXAmJihoW2FdLl9pZHg9Zi5pbkFycmF5KGhbYV1bMV0sY1tsXS5hc1NvcnRpbmcpKTsKYi5wdXNoKHtzcmM6ayxjb2w6bCxkaXI6aFthXVsxXSxpbmRleDpoW2FdLl9pZHgsdHlwZTpuLGZvcm1hdHRlcjpxLmV4dC50eXBlLm9yZGVyW24rIi1wcmUiXX0pfX1yZXR1cm4gYn1mdW5jdGlvbiByYihhKXt2YXIgYixjPVtdLGQ9cS5leHQudHlwZS5vcmRlcixlPWEuYW9EYXRhLGg9MCxnPWEuYWlEaXNwbGF5TWFzdGVyO0thKGEpO3ZhciBrPVkoYSk7dmFyIGY9MDtmb3IoYj1rLmxlbmd0aDtmPGI7ZisrKXt2YXIgbj1rW2ZdO24uZm9ybWF0dGVyJiZoKys7TWIoYSxuLmNvbCl9aWYoInNzcCIhPUQoYSkmJjAhPT1rLmxlbmd0aCl7Zj0wO2ZvcihiPWcubGVuZ3RoO2Y8YjtmKyspY1tnW2ZdXT1mO2g9PT1rLmxlbmd0aD9nLnNvcnQoZnVuY3Rpb24oYSxiKXt2YXIgZCxoPWsubGVuZ3RoLGc9ZVthXS5fYVNvcnREYXRhLGY9ZVtiXS5fYVNvcnREYXRhO2ZvcihkPTA7ZDxoO2QrKyl7dmFyIGw9a1tkXTt2YXIgbT1nW2wuY29sXTt2YXIgbj1mW2wuY29sXTttPW08bj8tMTptPm4/MTowOwppZigwIT09bSlyZXR1cm4iYXNjIj09PWwuZGlyP206LW19bT1jW2FdO249Y1tiXTtyZXR1cm4gbTxuPy0xOm0+bj8xOjB9KTpnLnNvcnQoZnVuY3Rpb24oYSxiKXt2YXIgaCxnPWsubGVuZ3RoLGY9ZVthXS5fYVNvcnREYXRhLGw9ZVtiXS5fYVNvcnREYXRhO2ZvcihoPTA7aDxnO2grKyl7dmFyIG09a1toXTt2YXIgbj1mW20uY29sXTt2YXIgcD1sW20uY29sXTttPWRbbS50eXBlKyItIittLmRpcl18fGRbInN0cmluZy0iK20uZGlyXTtuPW0obixwKTtpZigwIT09bilyZXR1cm4gbn1uPWNbYV07cD1jW2JdO3JldHVybiBuPHA/LTE6bj5wPzE6MH0pfWEuYlNvcnRlZD0hMH1mdW5jdGlvbiBOYihhKXt2YXIgYj1hLmFvQ29sdW1ucyxjPVkoYSk7YT1hLm9MYW5ndWFnZS5vQXJpYTtmb3IodmFyIGQ9MCxlPWIubGVuZ3RoO2Q8ZTtkKyspe3ZhciBoPWJbZF07dmFyIGc9aC5hc1NvcnRpbmc7dmFyIGs9aC5zVGl0bGUucmVwbGFjZSgvPC4qPz4vZywiIik7dmFyIGY9aC5uVGg7Zi5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtc29ydCIpOwpoLmJTb3J0YWJsZSYmKDA8Yy5sZW5ndGgmJmNbMF0uY29sPT1kPyhmLnNldEF0dHJpYnV0ZSgiYXJpYS1zb3J0IiwiYXNjIj09Y1swXS5kaXI/ImFzY2VuZGluZyI6ImRlc2NlbmRpbmciKSxoPWdbY1swXS5pbmRleCsxXXx8Z1swXSk6aD1nWzBdLGsrPSJhc2MiPT09aD9hLnNTb3J0QXNjZW5kaW5nOmEuc1NvcnREZXNjZW5kaW5nKTtmLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsayl9fWZ1bmN0aW9uIFphKGEsYixjLGQpe3ZhciBlPWEuYWFTb3J0aW5nLGg9YS5hb0NvbHVtbnNbYl0uYXNTb3J0aW5nLGc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLl9pZHg7Yz09PXAmJihjPWYuaW5BcnJheShhWzFdLGgpKTtyZXR1cm4gYysxPGgubGVuZ3RoP2MrMTpiP251bGw6MH07Im51bWJlciI9PT10eXBlb2YgZVswXSYmKGU9YS5hYVNvcnRpbmc9W2VdKTtjJiZhLm9GZWF0dXJlcy5iU29ydE11bHRpPyhjPWYuaW5BcnJheShiLEooZSwiMCIpKSwtMSE9PWM/KGI9ZyhlW2NdLCEwKSxudWxsPT09CmImJjE9PT1lLmxlbmd0aCYmKGI9MCksbnVsbD09PWI/ZS5zcGxpY2UoYywxKTooZVtjXVsxXT1oW2JdLGVbY10uX2lkeD1iKSk6KGUucHVzaChbYixoWzBdLDBdKSxlW2UubGVuZ3RoLTFdLl9pZHg9MCkpOmUubGVuZ3RoJiZlWzBdWzBdPT1iPyhiPWcoZVswXSksZS5sZW5ndGg9MSxlWzBdWzFdPWhbYl0sZVswXS5faWR4PWIpOihlLmxlbmd0aD0wLGUucHVzaChbYixoWzBdXSksZVswXS5faWR4PTApO1YoYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGQmJmQoYSl9ZnVuY3Rpb24gUWEoYSxiLGMsZCl7dmFyIGU9YS5hb0NvbHVtbnNbY107JGEoYix7fSxmdW5jdGlvbihiKXshMSE9PWUuYlNvcnRhYmxlJiYoYS5vRmVhdHVyZXMuYlByb2Nlc3Npbmc/KEsoYSwhMCksc2V0VGltZW91dChmdW5jdGlvbigpe1phKGEsYyxiLnNoaWZ0S2V5LGQpOyJzc3AiIT09RChhKSYmSyhhLCExKX0sMCkpOlphKGEsYyxiLnNoaWZ0S2V5LGQpKX0pfWZ1bmN0aW9uIEFhKGEpe3ZhciBiPWEuYUxhc3RTb3J0LApjPWEub0NsYXNzZXMuc1NvcnRDb2x1bW4sZD1ZKGEpLGU9YS5vRmVhdHVyZXMsaDtpZihlLmJTb3J0JiZlLmJTb3J0Q2xhc3Nlcyl7ZT0wO2ZvcihoPWIubGVuZ3RoO2U8aDtlKyspe3ZhciBnPWJbZV0uc3JjO2YoSihhLmFvRGF0YSwiYW5DZWxscyIsZykpLnJlbW92ZUNsYXNzKGMrKDI+ZT9lKzE6MykpfWU9MDtmb3IoaD1kLmxlbmd0aDtlPGg7ZSsrKWc9ZFtlXS5zcmMsZihKKGEuYW9EYXRhLCJhbkNlbGxzIixnKSkuYWRkQ2xhc3MoYysoMj5lP2UrMTozKSl9YS5hTGFzdFNvcnQ9ZH1mdW5jdGlvbiBNYihhLGIpe3ZhciBjPWEuYW9Db2x1bW5zW2JdLGQ9cS5leHQub3JkZXJbYy5zU29ydERhdGFUeXBlXSxlO2QmJihlPWQuY2FsbChhLm9JbnN0YW5jZSxhLGIsY2EoYSxiKSkpO2Zvcih2YXIgaCxnPXEuZXh0LnR5cGUub3JkZXJbYy5zVHlwZSsiLXByZSJdLGs9MCxmPWEuYW9EYXRhLmxlbmd0aDtrPGY7aysrKWlmKGM9YS5hb0RhdGFba10sYy5fYVNvcnREYXRhfHwoYy5fYVNvcnREYXRhPQpbXSksIWMuX2FTb3J0RGF0YVtiXXx8ZCloPWQ/ZVtrXTpJKGEsayxiLCJzb3J0IiksYy5fYVNvcnREYXRhW2JdPWc/ZyhoKTpofWZ1bmN0aW9uIEJhKGEpe2lmKGEub0ZlYXR1cmVzLmJTdGF0ZVNhdmUmJiFhLmJEZXN0cm95aW5nKXt2YXIgYj17dGltZTorbmV3IERhdGUsc3RhcnQ6YS5faURpc3BsYXlTdGFydCxsZW5ndGg6YS5faURpc3BsYXlMZW5ndGgsb3JkZXI6Zi5leHRlbmQoITAsW10sYS5hYVNvcnRpbmcpLHNlYXJjaDpGYihhLm9QcmV2aW91c1NlYXJjaCksY29sdW1uczpmLm1hcChhLmFvQ29sdW1ucyxmdW5jdGlvbihiLGQpe3JldHVybnt2aXNpYmxlOmIuYlZpc2libGUsc2VhcmNoOkZiKGEuYW9QcmVTZWFyY2hDb2xzW2RdKX19KX07QShhLCJhb1N0YXRlU2F2ZVBhcmFtcyIsInN0YXRlU2F2ZVBhcmFtcyIsW2EsYl0pO2Eub1NhdmVkU3RhdGU9YjthLmZuU3RhdGVTYXZlQ2FsbGJhY2suY2FsbChhLm9JbnN0YW5jZSxhLGIpfX1mdW5jdGlvbiBPYihhLGIsYyl7dmFyIGQsCmUsaD1hLmFvQ29sdW1ucztiPWZ1bmN0aW9uKGIpe2lmKGImJmIudGltZSl7dmFyIGc9QShhLCJhb1N0YXRlTG9hZFBhcmFtcyIsInN0YXRlTG9hZFBhcmFtcyIsW2EsYl0pO2lmKC0xPT09Zi5pbkFycmF5KCExLGcpJiYoZz1hLmlTdGF0ZUR1cmF0aW9uLCEoMDxnJiZiLnRpbWU8K25ldyBEYXRlLTFFMypnfHxiLmNvbHVtbnMmJmgubGVuZ3RoIT09Yi5jb2x1bW5zLmxlbmd0aCkpKXthLm9Mb2FkZWRTdGF0ZT1mLmV4dGVuZCghMCx7fSxiKTtiLnN0YXJ0IT09cCYmKGEuX2lEaXNwbGF5U3RhcnQ9Yi5zdGFydCxhLmlJbml0RGlzcGxheVN0YXJ0PWIuc3RhcnQpO2IubGVuZ3RoIT09cCYmKGEuX2lEaXNwbGF5TGVuZ3RoPWIubGVuZ3RoKTtiLm9yZGVyIT09cCYmKGEuYWFTb3J0aW5nPVtdLGYuZWFjaChiLm9yZGVyLGZ1bmN0aW9uKGIsYyl7YS5hYVNvcnRpbmcucHVzaChjWzBdPj1oLmxlbmd0aD9bMCxjWzFdXTpjKX0pKTtiLnNlYXJjaCE9PXAmJmYuZXh0ZW5kKGEub1ByZXZpb3VzU2VhcmNoLApHYihiLnNlYXJjaCkpO2lmKGIuY29sdW1ucylmb3IoZD0wLGU9Yi5jb2x1bW5zLmxlbmd0aDtkPGU7ZCsrKWc9Yi5jb2x1bW5zW2RdLGcudmlzaWJsZSE9PXAmJihoW2RdLmJWaXNpYmxlPWcudmlzaWJsZSksZy5zZWFyY2ghPT1wJiZmLmV4dGVuZChhLmFvUHJlU2VhcmNoQ29sc1tkXSxHYihnLnNlYXJjaCkpO0EoYSwiYW9TdGF0ZUxvYWRlZCIsInN0YXRlTG9hZGVkIixbYSxiXSl9fWMoKX07aWYoYS5vRmVhdHVyZXMuYlN0YXRlU2F2ZSl7dmFyIGc9YS5mblN0YXRlTG9hZENhbGxiYWNrLmNhbGwoYS5vSW5zdGFuY2UsYSxiKTtnIT09cCYmYihnKX1lbHNlIGMoKX1mdW5jdGlvbiBDYShhKXt2YXIgYj1xLnNldHRpbmdzO2E9Zi5pbkFycmF5KGEsSihiLCJuVGFibGUiKSk7cmV0dXJuLTEhPT1hP2JbYV06bnVsbH1mdW5jdGlvbiBPKGEsYixjLGQpe2M9IkRhdGFUYWJsZXMgd2FybmluZzogIisoYT8idGFibGUgaWQ9IithLnNUYWJsZUlkKyIgLSAiOiIiKStjO2QmJihjKz0iLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGVycm9yLCBwbGVhc2Ugc2VlIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC90bi8iKwpkKTtpZihiKXouY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKGMpO2Vsc2UgaWYoYj1xLmV4dCxiPWIuc0Vyck1vZGV8fGIuZXJyTW9kZSxhJiZBKGEsbnVsbCwiZXJyb3IiLFthLGQsY10pLCJhbGVydCI9PWIpYWxlcnQoYyk7ZWxzZXtpZigidGhyb3ciPT1iKXRocm93IEVycm9yKGMpOyJmdW5jdGlvbiI9PXR5cGVvZiBiJiZiKGEsZCxjKX19ZnVuY3Rpb24gTShhLGIsYyxkKXtmLmlzQXJyYXkoYyk/Zi5lYWNoKGMsZnVuY3Rpb24oYyxkKXtmLmlzQXJyYXkoZCk/TShhLGIsZFswXSxkWzFdKTpNKGEsYixkKX0pOihkPT09cCYmKGQ9YyksYltjXSE9PXAmJihhW2RdPWJbY10pKX1mdW5jdGlvbiBhYihhLGIsYyl7dmFyIGQ7Zm9yKGQgaW4gYilpZihiLmhhc093blByb3BlcnR5KGQpKXt2YXIgZT1iW2RdO2YuaXNQbGFpbk9iamVjdChlKT8oZi5pc1BsYWluT2JqZWN0KGFbZF0pfHwoYVtkXT17fSksZi5leHRlbmQoITAsYVtkXSxlKSk6YyYmImRhdGEiIT09ZCYmImFhRGF0YSIhPT0KZCYmZi5pc0FycmF5KGUpP2FbZF09ZS5zbGljZSgpOmFbZF09ZX1yZXR1cm4gYX1mdW5jdGlvbiAkYShhLGIsYyl7ZihhKS5vbigiY2xpY2suRFQiLGIsZnVuY3Rpb24oYil7ZihhKS5ibHVyKCk7YyhiKX0pLm9uKCJrZXlwcmVzcy5EVCIsYixmdW5jdGlvbihhKXsxMz09PWEud2hpY2gmJihhLnByZXZlbnREZWZhdWx0KCksYyhhKSl9KS5vbigic2VsZWN0c3RhcnQuRFQiLGZ1bmN0aW9uKCl7cmV0dXJuITF9KX1mdW5jdGlvbiBFKGEsYixjLGQpe2MmJmFbYl0ucHVzaCh7Zm46YyxzTmFtZTpkfSl9ZnVuY3Rpb24gQShhLGIsYyxkKXt2YXIgZT1bXTtiJiYoZT1mLm1hcChhW2JdLnNsaWNlKCkucmV2ZXJzZSgpLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGIuZm4uYXBwbHkoYS5vSW5zdGFuY2UsZCl9KSk7bnVsbCE9PWMmJihiPWYuRXZlbnQoYysiLmR0IiksZihhLm5UYWJsZSkudHJpZ2dlcihiLGQpLGUucHVzaChiLnJlc3VsdCkpO3JldHVybiBlfWZ1bmN0aW9uIFdhKGEpe3ZhciBiPWEuX2lEaXNwbGF5U3RhcnQsCmM9YS5mbkRpc3BsYXlFbmQoKSxkPWEuX2lEaXNwbGF5TGVuZ3RoO2I+PWMmJihiPWMtZCk7Yi09YiVkO2lmKC0xPT09ZHx8MD5iKWI9MDthLl9pRGlzcGxheVN0YXJ0PWJ9ZnVuY3Rpb24gUmEoYSxiKXthPWEucmVuZGVyZXI7dmFyIGM9cS5leHQucmVuZGVyZXJbYl07cmV0dXJuIGYuaXNQbGFpbk9iamVjdChhKSYmYVtiXT9jW2FbYl1dfHxjLl86InN0cmluZyI9PT10eXBlb2YgYT9jW2FdfHxjLl86Yy5ffWZ1bmN0aW9uIEQoYSl7cmV0dXJuIGEub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlPyJzc3AiOmEuYWpheHx8YS5zQWpheFNvdXJjZT8iYWpheCI6ImRvbSJ9ZnVuY3Rpb24ga2EoYSxiKXt2YXIgYz1QYi5udW1iZXJzX2xlbmd0aCxkPU1hdGguZmxvb3IoYy8yKTtiPD1jP2E9WigwLGIpOmE8PWQ/KGE9WigwLGMtMiksYS5wdXNoKCJlbGxpcHNpcyIpLGEucHVzaChiLTEpKTooYT49Yi0xLWQ/YT1aKGItKGMtMiksYik6KGE9WihhLWQrMixhK2QtMSksYS5wdXNoKCJlbGxpcHNpcyIpLAphLnB1c2goYi0xKSksYS5zcGxpY2UoMCwwLCJlbGxpcHNpcyIpLGEuc3BsaWNlKDAsMCwwKSk7YS5EVF9lbD0ic3BhbiI7cmV0dXJuIGF9ZnVuY3Rpb24gSGEoYSl7Zi5lYWNoKHtudW06ZnVuY3Rpb24oYil7cmV0dXJuIERhKGIsYSl9LCJudW0tZm10IjpmdW5jdGlvbihiKXtyZXR1cm4gRGEoYixhLGJiKX0sImh0bWwtbnVtIjpmdW5jdGlvbihiKXtyZXR1cm4gRGEoYixhLEVhKX0sImh0bWwtbnVtLWZtdCI6ZnVuY3Rpb24oYil7cmV0dXJuIERhKGIsYSxFYSxiYil9fSxmdW5jdGlvbihiLGMpe0MudHlwZS5vcmRlcltiK2ErIi1wcmUiXT1jO2IubWF0Y2goL15odG1sXC0vKSYmKEMudHlwZS5zZWFyY2hbYithXT1DLnR5cGUuc2VhcmNoLmh0bWwpfSl9ZnVuY3Rpb24gUWIoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGI9W0NhKHRoaXNbcS5leHQuaUFwaUluZGV4XSldLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTtyZXR1cm4gcS5leHQuaW50ZXJuYWxbYV0uYXBwbHkodGhpcywKYil9fXZhciBxPWZ1bmN0aW9uKGEpe3RoaXMuJD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmFwaSghMCkuJChhLGIpfTt0aGlzLl89ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5hcGkoITApLnJvd3MoYSxiKS5kYXRhKCl9O3RoaXMuYXBpPWZ1bmN0aW9uKGEpe3JldHVybiBhP25ldyB2KENhKHRoaXNbQy5pQXBpSW5kZXhdKSk6bmV3IHYodGhpcyl9O3RoaXMuZm5BZGREYXRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5hcGkoITApO2E9Zi5pc0FycmF5KGEpJiYoZi5pc0FycmF5KGFbMF0pfHxmLmlzUGxhaW5PYmplY3QoYVswXSkpP2Mucm93cy5hZGQoYSk6Yy5yb3cuYWRkKGEpOyhiPT09cHx8YikmJmMuZHJhdygpO3JldHVybiBhLmZsYXR0ZW4oKS50b0FycmF5KCl9O3RoaXMuZm5BZGp1c3RDb2x1bW5TaXppbmc9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5hcGkoITApLmNvbHVtbnMuYWRqdXN0KCksYz1iLnNldHRpbmdzKClbMF0sZD1jLm9TY3JvbGw7YT09PXB8fGE/Yi5kcmF3KCExKToKKCIiIT09ZC5zWHx8IiIhPT1kLnNZKSYmbmEoYyl9O3RoaXMuZm5DbGVhclRhYmxlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuYXBpKCEwKS5jbGVhcigpOyhhPT09cHx8YSkmJmIuZHJhdygpfTt0aGlzLmZuQ2xvc2U9ZnVuY3Rpb24oYSl7dGhpcy5hcGkoITApLnJvdyhhKS5jaGlsZC5oaWRlKCl9O3RoaXMuZm5EZWxldGVSb3c9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMuYXBpKCEwKTthPWQucm93cyhhKTt2YXIgZT1hLnNldHRpbmdzKClbMF0saD1lLmFvRGF0YVthWzBdWzBdXTthLnJlbW92ZSgpO2ImJmIuY2FsbCh0aGlzLGUsaCk7KGM9PT1wfHxjKSYmZC5kcmF3KCk7cmV0dXJuIGh9O3RoaXMuZm5EZXN0cm95PWZ1bmN0aW9uKGEpe3RoaXMuYXBpKCEwKS5kZXN0cm95KGEpfTt0aGlzLmZuRHJhdz1mdW5jdGlvbihhKXt0aGlzLmFwaSghMCkuZHJhdyhhKX07dGhpcy5mbkZpbHRlcj1mdW5jdGlvbihhLGIsYyxkLGUsZil7ZT10aGlzLmFwaSghMCk7bnVsbD09PWJ8fGI9PT1wPwplLnNlYXJjaChhLGMsZCxmKTplLmNvbHVtbihiKS5zZWFyY2goYSxjLGQsZik7ZS5kcmF3KCl9O3RoaXMuZm5HZXREYXRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5hcGkoITApO2lmKGEhPT1wKXt2YXIgZD1hLm5vZGVOYW1lP2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKToiIjtyZXR1cm4gYiE9PXB8fCJ0ZCI9PWR8fCJ0aCI9PWQ/Yy5jZWxsKGEsYikuZGF0YSgpOmMucm93KGEpLmRhdGEoKXx8bnVsbH1yZXR1cm4gYy5kYXRhKCkudG9BcnJheSgpfTt0aGlzLmZuR2V0Tm9kZXM9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5hcGkoITApO3JldHVybiBhIT09cD9iLnJvdyhhKS5ub2RlKCk6Yi5yb3dzKCkubm9kZXMoKS5mbGF0dGVuKCkudG9BcnJheSgpfTt0aGlzLmZuR2V0UG9zaXRpb249ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5hcGkoITApLGM9YS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpO3JldHVybiJUUiI9PWM/Yi5yb3coYSkuaW5kZXgoKToiVEQiPT1jfHwiVEgiPT1jPyhhPWIuY2VsbChhKS5pbmRleCgpLApbYS5yb3csYS5jb2x1bW5WaXNpYmxlLGEuY29sdW1uXSk6bnVsbH07dGhpcy5mbklzT3Blbj1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hcGkoITApLnJvdyhhKS5jaGlsZC5pc1Nob3duKCl9O3RoaXMuZm5PcGVuPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5hcGkoITApLnJvdyhhKS5jaGlsZChiLGMpLnNob3coKS5jaGlsZCgpWzBdfTt0aGlzLmZuUGFnZUNoYW5nZT1mdW5jdGlvbihhLGIpe2E9dGhpcy5hcGkoITApLnBhZ2UoYSk7KGI9PT1wfHxiKSYmYS5kcmF3KCExKX07dGhpcy5mblNldENvbHVtblZpcz1mdW5jdGlvbihhLGIsYyl7YT10aGlzLmFwaSghMCkuY29sdW1uKGEpLnZpc2libGUoYik7KGM9PT1wfHxjKSYmYS5jb2x1bW5zLmFkanVzdCgpLmRyYXcoKX07dGhpcy5mblNldHRpbmdzPWZ1bmN0aW9uKCl7cmV0dXJuIENhKHRoaXNbQy5pQXBpSW5kZXhdKX07dGhpcy5mblNvcnQ9ZnVuY3Rpb24oYSl7dGhpcy5hcGkoITApLm9yZGVyKGEpLmRyYXcoKX07dGhpcy5mblNvcnRMaXN0ZW5lcj0KZnVuY3Rpb24oYSxiLGMpe3RoaXMuYXBpKCEwKS5vcmRlci5saXN0ZW5lcihhLGIsYyl9O3RoaXMuZm5VcGRhdGU9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgaD10aGlzLmFwaSghMCk7Yz09PXB8fG51bGw9PT1jP2gucm93KGIpLmRhdGEoYSk6aC5jZWxsKGIsYykuZGF0YShhKTsoZT09PXB8fGUpJiZoLmNvbHVtbnMuYWRqdXN0KCk7KGQ9PT1wfHxkKSYmaC5kcmF3KCk7cmV0dXJuIDB9O3RoaXMuZm5WZXJzaW9uQ2hlY2s9Qy5mblZlcnNpb25DaGVjazt2YXIgYj10aGlzLGM9YT09PXAsZD10aGlzLmxlbmd0aDtjJiYoYT17fSk7dGhpcy5vQXBpPXRoaXMuaW50ZXJuYWw9Qy5pbnRlcm5hbDtmb3IodmFyIGUgaW4gcS5leHQuaW50ZXJuYWwpZSYmKHRoaXNbZV09UWIoZSkpO3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPXt9LGc9MTxkP2FiKGUsYSwhMCk6YSxrPTAsbDtlPXRoaXMuZ2V0QXR0cmlidXRlKCJpZCIpO3ZhciBuPSExLG09cS5kZWZhdWx0cyx3PWYodGhpcyk7aWYoInRhYmxlIiE9CnRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlPKG51bGwsMCwiTm9uLXRhYmxlIG5vZGUgaW5pdGlhbGlzYXRpb24gKCIrdGhpcy5ub2RlTmFtZSsiKSIsMik7ZWxzZXtqYihtKTtrYihtLmNvbHVtbik7TChtLG0sITApO0wobS5jb2x1bW4sbS5jb2x1bW4sITApO0wobSxmLmV4dGVuZChnLHcuZGF0YSgpKSwhMCk7dmFyIHU9cS5zZXR0aW5ncztrPTA7Zm9yKGw9dS5sZW5ndGg7azxsO2srKyl7dmFyIHQ9dVtrXTtpZih0Lm5UYWJsZT09dGhpc3x8dC5uVEhlYWQmJnQublRIZWFkLnBhcmVudE5vZGU9PXRoaXN8fHQublRGb290JiZ0Lm5URm9vdC5wYXJlbnROb2RlPT10aGlzKXt2YXIgdj1nLmJSZXRyaWV2ZSE9PXA/Zy5iUmV0cmlldmU6bS5iUmV0cmlldmU7aWYoY3x8dilyZXR1cm4gdC5vSW5zdGFuY2U7aWYoZy5iRGVzdHJveSE9PXA/Zy5iRGVzdHJveTptLmJEZXN0cm95KXt0Lm9JbnN0YW5jZS5mbkRlc3Ryb3koKTticmVha31lbHNle08odCwwLCJDYW5ub3QgcmVpbml0aWFsaXNlIERhdGFUYWJsZSIsCjMpO3JldHVybn19aWYodC5zVGFibGVJZD09dGhpcy5pZCl7dS5zcGxpY2UoaywxKTticmVha319aWYobnVsbD09PWV8fCIiPT09ZSl0aGlzLmlkPWU9IkRhdGFUYWJsZXNfVGFibGVfIitxLmV4dC5fdW5pcXVlKys7dmFyIHI9Zi5leHRlbmQoITAse30scS5tb2RlbHMub1NldHRpbmdzLHtzRGVzdHJveVdpZHRoOndbMF0uc3R5bGUud2lkdGgsc0luc3RhbmNlOmUsc1RhYmxlSWQ6ZX0pO3IublRhYmxlPXRoaXM7ci5vQXBpPWIuaW50ZXJuYWw7ci5vSW5pdD1nO3UucHVzaChyKTtyLm9JbnN0YW5jZT0xPT09Yi5sZW5ndGg/Yjp3LmRhdGFUYWJsZSgpO2piKGcpO0dhKGcub0xhbmd1YWdlKTtnLmFMZW5ndGhNZW51JiYhZy5pRGlzcGxheUxlbmd0aCYmKGcuaURpc3BsYXlMZW5ndGg9Zi5pc0FycmF5KGcuYUxlbmd0aE1lbnVbMF0pP2cuYUxlbmd0aE1lbnVbMF1bMF06Zy5hTGVuZ3RoTWVudVswXSk7Zz1hYihmLmV4dGVuZCghMCx7fSxtKSxnKTtNKHIub0ZlYXR1cmVzLGcsImJQYWdpbmF0ZSBiTGVuZ3RoQ2hhbmdlIGJGaWx0ZXIgYlNvcnQgYlNvcnRNdWx0aSBiSW5mbyBiUHJvY2Vzc2luZyBiQXV0b1dpZHRoIGJTb3J0Q2xhc3NlcyBiU2VydmVyU2lkZSBiRGVmZXJSZW5kZXIiLnNwbGl0KCIgIikpOwpNKHIsZyxbImFzU3RyaXBlQ2xhc3NlcyIsImFqYXgiLCJmblNlcnZlckRhdGEiLCJmbkZvcm1hdE51bWJlciIsInNTZXJ2ZXJNZXRob2QiLCJhYVNvcnRpbmciLCJhYVNvcnRpbmdGaXhlZCIsImFMZW5ndGhNZW51Iiwic1BhZ2luYXRpb25UeXBlIiwic0FqYXhTb3VyY2UiLCJzQWpheERhdGFQcm9wIiwiaVN0YXRlRHVyYXRpb24iLCJzRG9tIiwiYlNvcnRDZWxsc1RvcCIsImlUYWJJbmRleCIsImZuU3RhdGVMb2FkQ2FsbGJhY2siLCJmblN0YXRlU2F2ZUNhbGxiYWNrIiwicmVuZGVyZXIiLCJzZWFyY2hEZWxheSIsInJvd0lkIixbImlDb29raWVEdXJhdGlvbiIsImlTdGF0ZUR1cmF0aW9uIl0sWyJvU2VhcmNoIiwib1ByZXZpb3VzU2VhcmNoIl0sWyJhb1NlYXJjaENvbHMiLCJhb1ByZVNlYXJjaENvbHMiXSxbImlEaXNwbGF5TGVuZ3RoIiwiX2lEaXNwbGF5TGVuZ3RoIl1dKTtNKHIub1Njcm9sbCxnLFtbInNTY3JvbGxYIiwic1giXSxbInNTY3JvbGxYSW5uZXIiLCJzWElubmVyIl0sClsic1Njcm9sbFkiLCJzWSJdLFsiYlNjcm9sbENvbGxhcHNlIiwiYkNvbGxhcHNlIl1dKTtNKHIub0xhbmd1YWdlLGcsImZuSW5mb0NhbGxiYWNrIik7RShyLCJhb0RyYXdDYWxsYmFjayIsZy5mbkRyYXdDYWxsYmFjaywidXNlciIpO0UociwiYW9TZXJ2ZXJQYXJhbXMiLGcuZm5TZXJ2ZXJQYXJhbXMsInVzZXIiKTtFKHIsImFvU3RhdGVTYXZlUGFyYW1zIixnLmZuU3RhdGVTYXZlUGFyYW1zLCJ1c2VyIik7RShyLCJhb1N0YXRlTG9hZFBhcmFtcyIsZy5mblN0YXRlTG9hZFBhcmFtcywidXNlciIpO0UociwiYW9TdGF0ZUxvYWRlZCIsZy5mblN0YXRlTG9hZGVkLCJ1c2VyIik7RShyLCJhb1Jvd0NhbGxiYWNrIixnLmZuUm93Q2FsbGJhY2ssInVzZXIiKTtFKHIsImFvUm93Q3JlYXRlZENhbGxiYWNrIixnLmZuQ3JlYXRlZFJvdywidXNlciIpO0UociwiYW9IZWFkZXJDYWxsYmFjayIsZy5mbkhlYWRlckNhbGxiYWNrLCJ1c2VyIik7RShyLCJhb0Zvb3RlckNhbGxiYWNrIixnLmZuRm9vdGVyQ2FsbGJhY2ssCiJ1c2VyIik7RShyLCJhb0luaXRDb21wbGV0ZSIsZy5mbkluaXRDb21wbGV0ZSwidXNlciIpO0UociwiYW9QcmVEcmF3Q2FsbGJhY2siLGcuZm5QcmVEcmF3Q2FsbGJhY2ssInVzZXIiKTtyLnJvd0lkRm49VShnLnJvd0lkKTtsYihyKTt2YXIgeD1yLm9DbGFzc2VzO2YuZXh0ZW5kKHgscS5leHQuY2xhc3NlcyxnLm9DbGFzc2VzKTt3LmFkZENsYXNzKHguc1RhYmxlKTtyLmlJbml0RGlzcGxheVN0YXJ0PT09cCYmKHIuaUluaXREaXNwbGF5U3RhcnQ9Zy5pRGlzcGxheVN0YXJ0LHIuX2lEaXNwbGF5U3RhcnQ9Zy5pRGlzcGxheVN0YXJ0KTtudWxsIT09Zy5pRGVmZXJMb2FkaW5nJiYoci5iRGVmZXJMb2FkaW5nPSEwLGU9Zi5pc0FycmF5KGcuaURlZmVyTG9hZGluZyksci5faVJlY29yZHNEaXNwbGF5PWU/Zy5pRGVmZXJMb2FkaW5nWzBdOmcuaURlZmVyTG9hZGluZyxyLl9pUmVjb3Jkc1RvdGFsPWU/Zy5pRGVmZXJMb2FkaW5nWzFdOmcuaURlZmVyTG9hZGluZyk7dmFyIHk9ci5vTGFuZ3VhZ2U7CmYuZXh0ZW5kKCEwLHksZy5vTGFuZ3VhZ2UpO3kuc1VybCYmKGYuYWpheCh7ZGF0YVR5cGU6Impzb24iLHVybDp5LnNVcmwsc3VjY2VzczpmdW5jdGlvbihhKXtHYShhKTtMKG0ub0xhbmd1YWdlLGEpO2YuZXh0ZW5kKCEwLHksYSk7amEocil9LGVycm9yOmZ1bmN0aW9uKCl7amEocil9fSksbj0hMCk7bnVsbD09PWcuYXNTdHJpcGVDbGFzc2VzJiYoci5hc1N0cmlwZUNsYXNzZXM9W3guc1N0cmlwZU9kZCx4LnNTdHJpcGVFdmVuXSk7ZT1yLmFzU3RyaXBlQ2xhc3Nlczt2YXIgej13LmNoaWxkcmVuKCJ0Ym9keSIpLmZpbmQoInRyIikuZXEoMCk7LTEhPT1mLmluQXJyYXkoITAsZi5tYXAoZSxmdW5jdGlvbihhLGIpe3JldHVybiB6Lmhhc0NsYXNzKGEpfSkpJiYoZigidGJvZHkgdHIiLHRoaXMpLnJlbW92ZUNsYXNzKGUuam9pbigiICIpKSxyLmFzRGVzdHJveVN0cmlwZXM9ZS5zbGljZSgpKTtlPVtdO3U9dGhpcy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGhlYWQiKTswIT09dS5sZW5ndGgmJgooZmEoci5hb0hlYWRlcix1WzBdKSxlPXVhKHIpKTtpZihudWxsPT09Zy5hb0NvbHVtbnMpZm9yKHU9W10saz0wLGw9ZS5sZW5ndGg7azxsO2srKyl1LnB1c2gobnVsbCk7ZWxzZSB1PWcuYW9Db2x1bW5zO2s9MDtmb3IobD11Lmxlbmd0aDtrPGw7aysrKUlhKHIsZT9lW2tdOm51bGwpO25iKHIsZy5hb0NvbHVtbkRlZnMsdSxmdW5jdGlvbihhLGIpe21hKHIsYSxiKX0pO2lmKHoubGVuZ3RoKXt2YXIgQj1mdW5jdGlvbihhLGIpe3JldHVybiBudWxsIT09YS5nZXRBdHRyaWJ1dGUoImRhdGEtIitiKT9iOm51bGx9O2YoelswXSkuY2hpbGRyZW4oInRoLCB0ZCIpLmVhY2goZnVuY3Rpb24oYSxiKXt2YXIgYz1yLmFvQ29sdW1uc1thXTtpZihjLm1EYXRhPT09YSl7dmFyIGQ9QihiLCJzb3J0Iil8fEIoYiwib3JkZXIiKTtiPUIoYiwiZmlsdGVyIil8fEIoYiwic2VhcmNoIik7aWYobnVsbCE9PWR8fG51bGwhPT1iKWMubURhdGE9e186YSsiLmRpc3BsYXkiLHNvcnQ6bnVsbCE9PWQ/YSsiLkBkYXRhLSIrCmQ6cCx0eXBlOm51bGwhPT1kP2ErIi5AZGF0YS0iK2Q6cCxmaWx0ZXI6bnVsbCE9PWI/YSsiLkBkYXRhLSIrYjpwfSxtYShyLGEpfX0pfXZhciBDPXIub0ZlYXR1cmVzO2U9ZnVuY3Rpb24oKXtpZihnLmFhU29ydGluZz09PXApe3ZhciBhPXIuYWFTb3J0aW5nO2s9MDtmb3IobD1hLmxlbmd0aDtrPGw7aysrKWFba11bMV09ci5hb0NvbHVtbnNba10uYXNTb3J0aW5nWzBdfUFhKHIpO0MuYlNvcnQmJkUociwiYW9EcmF3Q2FsbGJhY2siLGZ1bmN0aW9uKCl7aWYoci5iU29ydGVkKXt2YXIgYT1ZKHIpLGI9e307Zi5lYWNoKGEsZnVuY3Rpb24oYSxjKXtiW2Muc3JjXT1jLmRpcn0pO0EocixudWxsLCJvcmRlciIsW3IsYSxiXSk7TmIocil9fSk7RShyLCJhb0RyYXdDYWxsYmFjayIsZnVuY3Rpb24oKXsoci5iU29ydGVkfHwic3NwIj09PUQocil8fEMuYkRlZmVyUmVuZGVyKSYmQWEocil9LCJzYyIpO2E9dy5jaGlsZHJlbigiY2FwdGlvbiIpLmVhY2goZnVuY3Rpb24oKXt0aGlzLl9jYXB0aW9uU2lkZT0KZih0aGlzKS5jc3MoImNhcHRpb24tc2lkZSIpfSk7dmFyIGI9dy5jaGlsZHJlbigidGhlYWQiKTswPT09Yi5sZW5ndGgmJihiPWYoIjx0aGVhZC8+IikuYXBwZW5kVG8odykpO3IublRIZWFkPWJbMF07Yj13LmNoaWxkcmVuKCJ0Ym9keSIpOzA9PT1iLmxlbmd0aCYmKGI9ZigiPHRib2R5Lz4iKS5hcHBlbmRUbyh3KSk7ci5uVEJvZHk9YlswXTtiPXcuY2hpbGRyZW4oInRmb290Iik7MD09PWIubGVuZ3RoJiYwPGEubGVuZ3RoJiYoIiIhPT1yLm9TY3JvbGwuc1h8fCIiIT09ci5vU2Nyb2xsLnNZKSYmKGI9ZigiPHRmb290Lz4iKS5hcHBlbmRUbyh3KSk7MD09PWIubGVuZ3RofHwwPT09Yi5jaGlsZHJlbigpLmxlbmd0aD93LmFkZENsYXNzKHguc05vRm9vdGVyKTowPGIubGVuZ3RoJiYoci5uVEZvb3Q9YlswXSxmYShyLmFvRm9vdGVyLHIublRGb290KSk7aWYoZy5hYURhdGEpZm9yKGs9MDtrPGcuYWFEYXRhLmxlbmd0aDtrKyspUihyLGcuYWFEYXRhW2tdKTtlbHNlKHIuYkRlZmVyTG9hZGluZ3x8CiJkb20iPT1EKHIpKSYmcGEocixmKHIublRCb2R5KS5jaGlsZHJlbigidHIiKSk7ci5haURpc3BsYXk9ci5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTtyLmJJbml0aWFsaXNlZD0hMDshMT09PW4mJmphKHIpfTtnLmJTdGF0ZVNhdmU/KEMuYlN0YXRlU2F2ZT0hMCxFKHIsImFvRHJhd0NhbGxiYWNrIixCYSwic3RhdGVfc2F2ZSIpLE9iKHIsZyxlKSk6ZSgpfX0pO2I9bnVsbDtyZXR1cm4gdGhpc30sQyx0LHgsY2I9e30sUmI9L1tcclxuXHUyMDI4XS9nLEVhPS88Lio/Pi9nLGNjPS9eXGR7Miw0fVtcLlwvXC1dXGR7MSwyfVtcLlwvXC1dXGR7MSwyfShbVCBdezF9XGR7MSwyfVs6XC5dXGR7Mn0oW1wuOl1cZHsyfSk/KT8kLyxkYz0vKFwvfFwufFwqfFwrfFw/fFx8fFwofFwpfFxbfFxdfFx7fFx9fFxcfFwkfFxefFwtKS9nLGJiPS9bJywkwqPigqzCpSVcdTIwMDlcdTIwMkZcdTIwQkRcdTIwYTlcdTIwQkFyZmvJg86eXS9naSxQPWZ1bmN0aW9uKGEpe3JldHVybiBhJiYhMCE9PWEmJiItIiE9PWE/ITE6CiEwfSxTYj1mdW5jdGlvbihhKXt2YXIgYj1wYXJzZUludChhLDEwKTtyZXR1cm4haXNOYU4oYikmJmlzRmluaXRlKGEpP2I6bnVsbH0sVGI9ZnVuY3Rpb24oYSxiKXtjYltiXXx8KGNiW2JdPW5ldyBSZWdFeHAoVWEoYiksImciKSk7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgYSYmIi4iIT09Yj9hLnJlcGxhY2UoL1wuL2csIiIpLnJlcGxhY2UoY2JbYl0sIi4iKTphfSxkYj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9InN0cmluZyI9PT10eXBlb2YgYTtpZihQKGEpKXJldHVybiEwO2ImJmQmJihhPVRiKGEsYikpO2MmJmQmJihhPWEucmVwbGFjZShiYiwiIikpO3JldHVybiFpc05hTihwYXJzZUZsb2F0KGEpKSYmaXNGaW5pdGUoYSl9LFViPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUChhKT8hMDpQKGEpfHwic3RyaW5nIj09PXR5cGVvZiBhP2RiKGEucmVwbGFjZShFYSwiIiksYixjKT8hMDpudWxsOm51bGx9LEo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGU9MCxoPWEubGVuZ3RoO2lmKGMhPT0KcClmb3IoO2U8aDtlKyspYVtlXSYmYVtlXVtiXSYmZC5wdXNoKGFbZV1bYl1bY10pO2Vsc2UgZm9yKDtlPGg7ZSsrKWFbZV0mJmQucHVzaChhW2VdW2JdKTtyZXR1cm4gZH0sbGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9W10saD0wLGc9Yi5sZW5ndGg7aWYoZCE9PXApZm9yKDtoPGc7aCsrKWFbYltoXV1bY10mJmUucHVzaChhW2JbaF1dW2NdW2RdKTtlbHNlIGZvcig7aDxnO2grKyllLnB1c2goYVtiW2hdXVtjXSk7cmV0dXJuIGV9LFo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtpZihiPT09cCl7Yj0wO3ZhciBkPWF9ZWxzZSBkPWIsYj1hO2ZvcihhPWI7YTxkO2ErKyljLnB1c2goYSk7cmV0dXJuIGN9LFZiPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD1hLmxlbmd0aDtjPGQ7YysrKWFbY10mJmIucHVzaChhW2NdKTtyZXR1cm4gYn0sdGE9ZnVuY3Rpb24oYSl7YTp7aWYoISgyPmEubGVuZ3RoKSl7dmFyIGI9YS5zbGljZSgpLnNvcnQoKTtmb3IodmFyIGM9YlswXSxkPTEsCmU9Yi5sZW5ndGg7ZDxlO2QrKyl7aWYoYltkXT09PWMpe2I9ITE7YnJlYWsgYX1jPWJbZF19fWI9ITB9aWYoYilyZXR1cm4gYS5zbGljZSgpO2I9W107ZT1hLmxlbmd0aDt2YXIgaCxnPTA7ZD0wO2E6Zm9yKDtkPGU7ZCsrKXtjPWFbZF07Zm9yKGg9MDtoPGc7aCsrKWlmKGJbaF09PT1jKWNvbnRpbnVlIGE7Yi5wdXNoKGMpO2crK31yZXR1cm4gYn07cS51dGlsPXt0aHJvdHRsZTpmdW5jdGlvbihhLGIpe3ZhciBjPWIhPT1wP2I6MjAwLGQsZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYj10aGlzLGc9K25ldyBEYXRlLGY9YXJndW1lbnRzO2QmJmc8ZCtjPyhjbGVhclRpbWVvdXQoZSksZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZD1wO2EuYXBwbHkoYixmKX0sYykpOihkPWcsYS5hcHBseShiLGYpKX19LGVzY2FwZVJlZ2V4OmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoZGMsIlxcJDEiKX19O3ZhciBGPWZ1bmN0aW9uKGEsYixjKXthW2JdIT09cCYmKGFbY109YVtiXSl9LGRhPS9cWy4qP1xdJC8sClg9L1woXCkkLyxVYT1xLnV0aWwuZXNjYXBlUmVnZXgseWE9ZigiPGRpdj4iKVswXSwkYj15YS50ZXh0Q29udGVudCE9PXAsYmM9LzwuKj8+L2csU2E9cS51dGlsLnRocm90dGxlLFdiPVtdLEc9QXJyYXkucHJvdG90eXBlLGVjPWZ1bmN0aW9uKGEpe3ZhciBiLGM9cS5zZXR0aW5ncyxkPWYubWFwKGMsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5uVGFibGV9KTtpZihhKXtpZihhLm5UYWJsZSYmYS5vQXBpKXJldHVyblthXTtpZihhLm5vZGVOYW1lJiYidGFibGUiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXt2YXIgZT1mLmluQXJyYXkoYSxkKTtyZXR1cm4tMSE9PWU/W2NbZV1dOm51bGx9aWYoYSYmImZ1bmN0aW9uIj09PXR5cGVvZiBhLnNldHRpbmdzKXJldHVybiBhLnNldHRpbmdzKCkudG9BcnJheSgpOyJzdHJpbmciPT09dHlwZW9mIGE/Yj1mKGEpOmEgaW5zdGFuY2VvZiBmJiYoYj1hKX1lbHNlIHJldHVybltdO2lmKGIpcmV0dXJuIGIubWFwKGZ1bmN0aW9uKGEpe2U9Zi5pbkFycmF5KHRoaXMsCmQpO3JldHVybi0xIT09ZT9jW2VdOm51bGx9KS50b0FycmF5KCl9O3ZhciB2PWZ1bmN0aW9uKGEsYil7aWYoISh0aGlzIGluc3RhbmNlb2YgdikpcmV0dXJuIG5ldyB2KGEsYik7dmFyIGM9W10sZD1mdW5jdGlvbihhKXsoYT1lYyhhKSkmJmMucHVzaC5hcHBseShjLGEpfTtpZihmLmlzQXJyYXkoYSkpZm9yKHZhciBlPTAsaD1hLmxlbmd0aDtlPGg7ZSsrKWQoYVtlXSk7ZWxzZSBkKGEpO3RoaXMuY29udGV4dD10YShjKTtiJiZmLm1lcmdlKHRoaXMsYik7dGhpcy5zZWxlY3Rvcj17cm93czpudWxsLGNvbHM6bnVsbCxvcHRzOm51bGx9O3YuZXh0ZW5kKHRoaXMsdGhpcyxXYil9O3EuQXBpPXY7Zi5leHRlbmQodi5wcm90b3R5cGUse2FueTpmdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5jb3VudCgpfSxjb25jYXQ6Ry5jb25jYXQsY29udGV4dDpbXSxjb3VudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZsYXR0ZW4oKS5sZW5ndGh9LGVhY2g6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz0KdGhpcy5sZW5ndGg7YjxjO2IrKylhLmNhbGwodGhpcyx0aGlzW2JdLGIsdGhpcyk7cmV0dXJuIHRoaXN9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY29udGV4dDtyZXR1cm4gYi5sZW5ndGg+YT9uZXcgdihiW2FdLHRoaXNbYV0pOm51bGx9LGZpbHRlcjpmdW5jdGlvbihhKXt2YXIgYj1bXTtpZihHLmZpbHRlciliPUcuZmlsdGVyLmNhbGwodGhpcyxhLHRoaXMpO2Vsc2UgZm9yKHZhciBjPTAsZD10aGlzLmxlbmd0aDtjPGQ7YysrKWEuY2FsbCh0aGlzLHRoaXNbY10sYyx0aGlzKSYmYi5wdXNoKHRoaXNbY10pO3JldHVybiBuZXcgdih0aGlzLmNvbnRleHQsYil9LGZsYXR0ZW46ZnVuY3Rpb24oKXt2YXIgYT1bXTtyZXR1cm4gbmV3IHYodGhpcy5jb250ZXh0LGEuY29uY2F0LmFwcGx5KGEsdGhpcy50b0FycmF5KCkpKX0sam9pbjpHLmpvaW4saW5kZXhPZjpHLmluZGV4T2Z8fGZ1bmN0aW9uKGEsYil7Yj1ifHwwO2Zvcih2YXIgYz10aGlzLmxlbmd0aDtiPGM7YisrKWlmKHRoaXNbYl09PT0KYSlyZXR1cm4gYjtyZXR1cm4tMX0saXRlcmF0b3I6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9W10saCxnLGY9dGhpcy5jb250ZXh0LGwsbj10aGlzLnNlbGVjdG9yOyJzdHJpbmciPT09dHlwZW9mIGEmJihkPWMsYz1iLGI9YSxhPSExKTt2YXIgbT0wO2ZvcihoPWYubGVuZ3RoO208aDttKyspe3ZhciBxPW5ldyB2KGZbbV0pO2lmKCJ0YWJsZSI9PT1iKXt2YXIgdT1jLmNhbGwocSxmW21dLG0pO3UhPT1wJiZlLnB1c2godSl9ZWxzZSBpZigiY29sdW1ucyI9PT1ifHwicm93cyI9PT1iKXU9Yy5jYWxsKHEsZlttXSx0aGlzW21dLG0pLHUhPT1wJiZlLnB1c2godSk7ZWxzZSBpZigiY29sdW1uIj09PWJ8fCJjb2x1bW4tcm93cyI9PT1ifHwicm93Ij09PWJ8fCJjZWxsIj09PWIpe3ZhciB0PXRoaXNbbV07ImNvbHVtbi1yb3dzIj09PWImJihsPUZhKGZbbV0sbi5vcHRzKSk7dmFyIHg9MDtmb3IoZz10Lmxlbmd0aDt4PGc7eCsrKXU9dFt4XSx1PSJjZWxsIj09PWI/Yy5jYWxsKHEsZlttXSx1LnJvdywKdS5jb2x1bW4sbSx4KTpjLmNhbGwocSxmW21dLHUsbSx4LGwpLHUhPT1wJiZlLnB1c2godSl9fXJldHVybiBlLmxlbmd0aHx8ZD8oYT1uZXcgdihmLGE/ZS5jb25jYXQuYXBwbHkoW10sZSk6ZSksYj1hLnNlbGVjdG9yLGIucm93cz1uLnJvd3MsYi5jb2xzPW4uY29scyxiLm9wdHM9bi5vcHRzLGEpOnRoaXN9LGxhc3RJbmRleE9mOkcubGFzdEluZGV4T2Z8fGZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaW5kZXhPZi5hcHBseSh0aGlzLnRvQXJyYXkucmV2ZXJzZSgpLGFyZ3VtZW50cyl9LGxlbmd0aDowLG1hcDpmdW5jdGlvbihhKXt2YXIgYj1bXTtpZihHLm1hcCliPUcubWFwLmNhbGwodGhpcyxhLHRoaXMpO2Vsc2UgZm9yKHZhciBjPTAsZD10aGlzLmxlbmd0aDtjPGQ7YysrKWIucHVzaChhLmNhbGwodGhpcyx0aGlzW2NdLGMpKTtyZXR1cm4gbmV3IHYodGhpcy5jb250ZXh0LGIpfSxwbHVjazpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGJbYV19KX0sCnBvcDpHLnBvcCxwdXNoOkcucHVzaCxyZWR1Y2U6Ry5yZWR1Y2V8fGZ1bmN0aW9uKGEsYil7cmV0dXJuIG1iKHRoaXMsYSxiLDAsdGhpcy5sZW5ndGgsMSl9LHJlZHVjZVJpZ2h0OkcucmVkdWNlUmlnaHR8fGZ1bmN0aW9uKGEsYil7cmV0dXJuIG1iKHRoaXMsYSxiLHRoaXMubGVuZ3RoLTEsLTEsLTEpfSxyZXZlcnNlOkcucmV2ZXJzZSxzZWxlY3RvcjpudWxsLHNoaWZ0Okcuc2hpZnQsc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHYodGhpcy5jb250ZXh0LHRoaXMpfSxzb3J0Okcuc29ydCxzcGxpY2U6Ry5zcGxpY2UsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBHLnNsaWNlLmNhbGwodGhpcyl9LHRvJDpmdW5jdGlvbigpe3JldHVybiBmKHRoaXMpfSx0b0pRdWVyeTpmdW5jdGlvbigpe3JldHVybiBmKHRoaXMpfSx1bmlxdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHYodGhpcy5jb250ZXh0LHRhKHRoaXMpKX0sdW5zaGlmdDpHLnVuc2hpZnR9KTt2LmV4dGVuZD1mdW5jdGlvbihhLApiLGMpe2lmKGMubGVuZ3RoJiZiJiYoYiBpbnN0YW5jZW9mIHZ8fGIuX19kdF93cmFwcGVyKSl7dmFyIGQsZT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGQ9Yi5hcHBseShhLGFyZ3VtZW50cyk7di5leHRlbmQoZCxkLGMubWV0aG9kRXh0KTtyZXR1cm4gZH19O3ZhciBoPTA7Zm9yKGQ9Yy5sZW5ndGg7aDxkO2grKyl7dmFyIGc9Y1toXTtiW2cubmFtZV09ImZ1bmN0aW9uIj09PWcudHlwZT9lKGEsZy52YWwsZyk6Im9iamVjdCI9PT1nLnR5cGU/e306Zy52YWw7YltnLm5hbWVdLl9fZHRfd3JhcHBlcj0hMDt2LmV4dGVuZChhLGJbZy5uYW1lXSxnLnByb3BFeHQpfX19O3YucmVnaXN0ZXI9dD1mdW5jdGlvbihhLGIpe2lmKGYuaXNBcnJheShhKSlmb3IodmFyIGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspdi5yZWdpc3RlcihhW2NdLGIpO2Vsc2V7ZD1hLnNwbGl0KCIuIik7dmFyIGU9V2IsaDthPTA7Zm9yKGM9ZC5sZW5ndGg7YTxjO2ErKyl7dmFyIGc9KGg9LTEhPT0KZFthXS5pbmRleE9mKCIoKSIpKT9kW2FdLnJlcGxhY2UoIigpIiwiIik6ZFthXTthOnt2YXIgaz0wO2Zvcih2YXIgbD1lLmxlbmd0aDtrPGw7aysrKWlmKGVba10ubmFtZT09PWcpe2s9ZVtrXTticmVhayBhfWs9bnVsbH1rfHwoaz17bmFtZTpnLHZhbDp7fSxtZXRob2RFeHQ6W10scHJvcEV4dDpbXSx0eXBlOiJvYmplY3QifSxlLnB1c2goaykpO2E9PT1jLTE/KGsudmFsPWIsay50eXBlPSJmdW5jdGlvbiI9PT10eXBlb2YgYj8iZnVuY3Rpb24iOmYuaXNQbGFpbk9iamVjdChiKT8ib2JqZWN0Ijoib3RoZXIiKTplPWg/ay5tZXRob2RFeHQ6ay5wcm9wRXh0fX19O3YucmVnaXN0ZXJQbHVyYWw9eD1mdW5jdGlvbihhLGIsYyl7di5yZWdpc3RlcihhLGMpO3YucmVnaXN0ZXIoYixmdW5jdGlvbigpe3ZhciBhPWMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBhPT09dGhpcz90aGlzOmEgaW5zdGFuY2VvZiB2P2EubGVuZ3RoP2YuaXNBcnJheShhWzBdKT9uZXcgdihhLmNvbnRleHQsCmFbMF0pOmFbMF06cDphfSl9O3ZhciBmYz1mdW5jdGlvbihhLGIpe2lmKCJudW1iZXIiPT09dHlwZW9mIGEpcmV0dXJuW2JbYV1dO3ZhciBjPWYubWFwKGIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5uVGFibGV9KTtyZXR1cm4gZihjKS5maWx0ZXIoYSkubWFwKGZ1bmN0aW9uKGEpe2E9Zi5pbkFycmF5KHRoaXMsYyk7cmV0dXJuIGJbYV19KS50b0FycmF5KCl9O3QoInRhYmxlcygpIixmdW5jdGlvbihhKXtyZXR1cm4gYT9uZXcgdihmYyhhLHRoaXMuY29udGV4dCkpOnRoaXN9KTt0KCJ0YWJsZSgpIixmdW5jdGlvbihhKXthPXRoaXMudGFibGVzKGEpO3ZhciBiPWEuY29udGV4dDtyZXR1cm4gYi5sZW5ndGg/bmV3IHYoYlswXSk6YX0pO3goInRhYmxlcygpLm5vZGVzKCkiLCJ0YWJsZSgpLm5vZGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5UYWJsZX0sMSl9KTt4KCJ0YWJsZXMoKS5ib2R5KCkiLCJ0YWJsZSgpLmJvZHkoKSIsCmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXtyZXR1cm4gYS5uVEJvZHl9LDEpfSk7eCgidGFibGVzKCkuaGVhZGVyKCkiLCJ0YWJsZSgpLmhlYWRlcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRIZWFkfSwxKX0pO3goInRhYmxlcygpLmZvb3RlcigpIiwidGFibGUoKS5mb290ZXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5URm9vdH0sMSl9KTt4KCJ0YWJsZXMoKS5jb250YWluZXJzKCkiLCJ0YWJsZSgpLmNvbnRhaW5lcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRhYmxlV3JhcHBlcn0sMSl9KTt0KCJkcmF3KCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7InBhZ2UiPT09CmE/UyhiKTooInN0cmluZyI9PT10eXBlb2YgYSYmKGE9ImZ1bGwtaG9sZCI9PT1hPyExOiEwKSxWKGIsITE9PT1hKSl9KX0pO3QoInBhZ2UoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1wP3RoaXMucGFnZS5pbmZvKCkucGFnZTp0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7WGEoYixhKX0pfSk7dCgicGFnZS5pbmZvKCkiLGZ1bmN0aW9uKGEpe2lmKDA9PT10aGlzLmNvbnRleHQubGVuZ3RoKXJldHVybiBwO2E9dGhpcy5jb250ZXh0WzBdO3ZhciBiPWEuX2lEaXNwbGF5U3RhcnQsYz1hLm9GZWF0dXJlcy5iUGFnaW5hdGU/YS5faURpc3BsYXlMZW5ndGg6LTEsZD1hLmZuUmVjb3Jkc0Rpc3BsYXkoKSxlPS0xPT09YztyZXR1cm57cGFnZTplPzA6TWF0aC5mbG9vcihiL2MpLHBhZ2VzOmU/MTpNYXRoLmNlaWwoZC9jKSxzdGFydDpiLGVuZDphLmZuRGlzcGxheUVuZCgpLGxlbmd0aDpjLHJlY29yZHNUb3RhbDphLmZuUmVjb3Jkc1RvdGFsKCkscmVjb3Jkc0Rpc3BsYXk6ZCwKc2VydmVyU2lkZToic3NwIj09PUQoYSl9fSk7dCgicGFnZS5sZW4oKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1wPzAhPT10aGlzLmNvbnRleHQubGVuZ3RoP3RoaXMuY29udGV4dFswXS5faURpc3BsYXlMZW5ndGg6cDp0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7VmEoYixhKX0pfSk7dmFyIFhiPWZ1bmN0aW9uKGEsYixjKXtpZihjKXt2YXIgZD1uZXcgdihhKTtkLm9uZSgiZHJhdyIsZnVuY3Rpb24oKXtjKGQuYWpheC5qc29uKCkpfSl9aWYoInNzcCI9PUQoYSkpVihhLGIpO2Vsc2V7SyhhLCEwKTt2YXIgZT1hLmpxWEhSO2UmJjQhPT1lLnJlYWR5U3RhdGUmJmUuYWJvcnQoKTt2YShhLFtdLGZ1bmN0aW9uKGMpe3FhKGEpO2M9d2EoYSxjKTtmb3IodmFyIGQ9MCxlPWMubGVuZ3RoO2Q8ZTtkKyspUihhLGNbZF0pO1YoYSxiKTtLKGEsITEpfSl9fTt0KCJhamF4Lmpzb24oKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7aWYoMDxhLmxlbmd0aClyZXR1cm4gYVswXS5qc29ufSk7CnQoImFqYXgucGFyYW1zKCkiLGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jb250ZXh0O2lmKDA8YS5sZW5ndGgpcmV0dXJuIGFbMF0ub0FqYXhEYXRhfSk7dCgiYWpheC5yZWxvYWQoKSIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGMpe1hiKGMsITE9PT1iLGEpfSl9KTt0KCJhamF4LnVybCgpIixmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNvbnRleHQ7aWYoYT09PXApe2lmKDA9PT1iLmxlbmd0aClyZXR1cm4gcDtiPWJbMF07cmV0dXJuIGIuYWpheD9mLmlzUGxhaW5PYmplY3QoYi5hamF4KT9iLmFqYXgudXJsOmIuYWpheDpiLnNBamF4U291cmNlfXJldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7Zi5pc1BsYWluT2JqZWN0KGIuYWpheCk/Yi5hamF4LnVybD1hOmIuYWpheD1hfSl9KTt0KCJhamF4LnVybCgpLmxvYWQoKSIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGMpe1hiKGMsCiExPT09YixhKX0pfSk7dmFyIGViPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGg9W10sZyxrLGw7dmFyIG49dHlwZW9mIGI7YiYmInN0cmluZyIhPT1uJiYiZnVuY3Rpb24iIT09biYmYi5sZW5ndGghPT1wfHwoYj1bYl0pO249MDtmb3Ioaz1iLmxlbmd0aDtuPGs7bisrKXt2YXIgbT1iW25dJiZiW25dLnNwbGl0JiYhYltuXS5tYXRjaCgvW1xbXCg6XS8pP2Jbbl0uc3BsaXQoIiwiKTpbYltuXV07dmFyIHE9MDtmb3IobD1tLmxlbmd0aDtxPGw7cSsrKShnPWMoInN0cmluZyI9PT10eXBlb2YgbVtxXT9mLnRyaW0obVtxXSk6bVtxXSkpJiZnLmxlbmd0aCYmKGg9aC5jb25jYXQoZykpfWE9Qy5zZWxlY3RvclthXTtpZihhLmxlbmd0aClmb3Iobj0wLGs9YS5sZW5ndGg7bjxrO24rKyloPWFbbl0oZCxlLGgpO3JldHVybiB0YShoKX0sZmI9ZnVuY3Rpb24oYSl7YXx8KGE9e30pO2EuZmlsdGVyJiZhLnNlYXJjaD09PXAmJihhLnNlYXJjaD1hLmZpbHRlcik7cmV0dXJuIGYuZXh0ZW5kKHtzZWFyY2g6Im5vbmUiLApvcmRlcjoiY3VycmVudCIscGFnZToiYWxsIn0sYSl9LGdiPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wLGM9YS5sZW5ndGg7YjxjO2IrKylpZigwPGFbYl0ubGVuZ3RoKXJldHVybiBhWzBdPWFbYl0sYVswXS5sZW5ndGg9MSxhLmxlbmd0aD0xLGEuY29udGV4dD1bYS5jb250ZXh0W2JdXSxhO2EubGVuZ3RoPTA7cmV0dXJuIGF9LEZhPWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZD1hLmFpRGlzcGxheTt2YXIgZT1hLmFpRGlzcGxheU1hc3Rlcjt2YXIgaD1iLnNlYXJjaDt2YXIgZz1iLm9yZGVyO2I9Yi5wYWdlO2lmKCJzc3AiPT1EKGEpKXJldHVybiJyZW1vdmVkIj09PWg/W106WigwLGUubGVuZ3RoKTtpZigiY3VycmVudCI9PWIpZm9yKGc9YS5faURpc3BsYXlTdGFydCxhPWEuZm5EaXNwbGF5RW5kKCk7ZzxhO2crKyljLnB1c2goZFtnXSk7ZWxzZSBpZigiY3VycmVudCI9PWd8fCJhcHBsaWVkIj09ZylpZigibm9uZSI9PWgpYz1lLnNsaWNlKCk7ZWxzZSBpZigiYXBwbGllZCI9PWgpYz0KZC5zbGljZSgpO2Vsc2V7aWYoInJlbW92ZWQiPT1oKXt2YXIgaz17fTtnPTA7Zm9yKGE9ZC5sZW5ndGg7ZzxhO2crKylrW2RbZ11dPW51bGw7Yz1mLm1hcChlLGZ1bmN0aW9uKGEpe3JldHVybiBrLmhhc093blByb3BlcnR5KGEpP251bGw6YX0pfX1lbHNlIGlmKCJpbmRleCI9PWd8fCJvcmlnaW5hbCI9PWcpZm9yKGc9MCxhPWEuYW9EYXRhLmxlbmd0aDtnPGE7ZysrKSJub25lIj09aD9jLnB1c2goZyk6KGU9Zi5pbkFycmF5KGcsZCksKC0xPT09ZSYmInJlbW92ZWQiPT1ofHwwPD1lJiYiYXBwbGllZCI9PWgpJiZjLnB1c2goZykpO3JldHVybiBjfSxnYz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGViKCJyb3ciLGIsZnVuY3Rpb24oYil7dmFyIGU9U2IoYiksZz1hLmFvRGF0YTtpZihudWxsIT09ZSYmIWMpcmV0dXJuW2VdO2R8fChkPUZhKGEsYykpO2lmKG51bGwhPT1lJiYtMSE9PWYuaW5BcnJheShlLGQpKXJldHVybltlXTtpZihudWxsPT09Ynx8Yj09PXB8fCIiPT09YilyZXR1cm4gZDsKaWYoImZ1bmN0aW9uIj09PXR5cGVvZiBiKXJldHVybiBmLm1hcChkLGZ1bmN0aW9uKGEpe3ZhciBjPWdbYV07cmV0dXJuIGIoYSxjLl9hRGF0YSxjLm5Ucik/YTpudWxsfSk7aWYoYi5ub2RlTmFtZSl7ZT1iLl9EVF9Sb3dJbmRleDt2YXIgaz1iLl9EVF9DZWxsSW5kZXg7aWYoZSE9PXApcmV0dXJuIGdbZV0mJmdbZV0ublRyPT09Yj9bZV06W107aWYoaylyZXR1cm4gZ1trLnJvd10mJmdbay5yb3ddLm5Ucj09PWIucGFyZW50Tm9kZT9bay5yb3ddOltdO2U9ZihiKS5jbG9zZXN0KCIqW2RhdGEtZHQtcm93XSIpO3JldHVybiBlLmxlbmd0aD9bZS5kYXRhKCJkdC1yb3ciKV06W119aWYoInN0cmluZyI9PT10eXBlb2YgYiYmIiMiPT09Yi5jaGFyQXQoMCkmJihlPWEuYUlkc1tiLnJlcGxhY2UoL14jLywiIildLGUhPT1wKSlyZXR1cm5bZS5pZHhdO2U9VmIobGEoYS5hb0RhdGEsZCwiblRyIikpO3JldHVybiBmKGUpLmZpbHRlcihiKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fRFRfUm93SW5kZXh9KS50b0FycmF5KCl9LAphLGMpfTt0KCJyb3dzKCkiLGZ1bmN0aW9uKGEsYil7YT09PXA/YT0iIjpmLmlzUGxhaW5PYmplY3QoYSkmJihiPWEsYT0iIik7Yj1mYihiKTt2YXIgYz10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyl7cmV0dXJuIGdjKGMsYSxiKX0sMSk7Yy5zZWxlY3Rvci5yb3dzPWE7Yy5zZWxlY3Rvci5vcHRzPWI7cmV0dXJuIGN9KTt0KCJyb3dzKCkubm9kZXMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihhLGIpe3JldHVybiBhLmFvRGF0YVtiXS5uVHJ8fHB9LDEpfSk7dCgicm93cygpLmRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcighMCwicm93cyIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gbGEoYS5hb0RhdGEsYiwiX2FEYXRhIil9LDEpfSk7eCgicm93cygpLmNhY2hlKCkiLCJyb3coKS5jYWNoZSgpIixmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihiLGMpe2I9Yi5hb0RhdGFbY107CnJldHVybiJzZWFyY2giPT09YT9iLl9hRmlsdGVyRGF0YTpiLl9hU29ydERhdGF9LDEpfSk7eCgicm93cygpLmludmFsaWRhdGUoKSIsInJvdygpLmludmFsaWRhdGUoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInJvdyIsZnVuY3Rpb24oYixjKXtlYShiLGMsYSl9KX0pO3goInJvd3MoKS5pbmRleGVzKCkiLCJyb3coKS5pbmRleCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJyb3ciLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGJ9LDEpfSk7eCgicm93cygpLmlkcygpIiwicm93KCkuaWQoKSIsZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9dGhpcy5jb250ZXh0LGQ9MCxlPWMubGVuZ3RoO2Q8ZTtkKyspZm9yKHZhciBoPTAsZz10aGlzW2RdLmxlbmd0aDtoPGc7aCsrKXt2YXIgZj1jW2RdLnJvd0lkRm4oY1tkXS5hb0RhdGFbdGhpc1tkXVtoXV0uX2FEYXRhKTtiLnB1c2goKCEwPT09YT8iIyI6IiIpK2YpfXJldHVybiBuZXcgdihjLGIpfSk7eCgicm93cygpLnJlbW92ZSgpIiwKInJvdygpLnJlbW92ZSgpIixmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihiLGMsZCl7dmFyIGU9Yi5hb0RhdGEsaD1lW2NdLGcsZjtlLnNwbGljZShjLDEpO3ZhciBsPTA7Zm9yKGc9ZS5sZW5ndGg7bDxnO2wrKyl7dmFyIG49ZVtsXTt2YXIgbT1uLmFuQ2VsbHM7bnVsbCE9PW4ublRyJiYobi5uVHIuX0RUX1Jvd0luZGV4PWwpO2lmKG51bGwhPT1tKWZvcihuPTAsZj1tLmxlbmd0aDtuPGY7bisrKW1bbl0uX0RUX0NlbGxJbmRleC5yb3c9bH1yYShiLmFpRGlzcGxheU1hc3RlcixjKTtyYShiLmFpRGlzcGxheSxjKTtyYShhW2RdLGMsITEpOzA8Yi5faVJlY29yZHNEaXNwbGF5JiZiLl9pUmVjb3Jkc0Rpc3BsYXktLTtXYShiKTtjPWIucm93SWRGbihoLl9hRGF0YSk7YyE9PXAmJmRlbGV0ZSBiLmFJZHNbY119KTt0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsZD1hLmFvRGF0YS5sZW5ndGg7YjxkO2IrKylhLmFvRGF0YVtiXS5pZHg9CmJ9KTtyZXR1cm4gdGhpc30pO3QoInJvd3MuYWRkKCkiLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXt2YXIgYyxkPVtdO3ZhciBnPTA7Zm9yKGM9YS5sZW5ndGg7ZzxjO2crKyl7dmFyIGY9YVtnXTtmLm5vZGVOYW1lJiYiVFIiPT09Zi5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpP2QucHVzaChwYShiLGYpWzBdKTpkLnB1c2goUihiLGYpKX1yZXR1cm4gZH0sMSksYz10aGlzLnJvd3MoLTEpO2MucG9wKCk7Zi5tZXJnZShjLGIpO3JldHVybiBjfSk7dCgicm93KCkiLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGdiKHRoaXMucm93cyhhLGIpKX0pO3QoInJvdygpLmRhdGEoKSIsZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jb250ZXh0O2lmKGE9PT1wKXJldHVybiBiLmxlbmd0aCYmdGhpcy5sZW5ndGg/YlswXS5hb0RhdGFbdGhpc1swXV0uX2FEYXRhOnA7dmFyIGM9YlswXS5hb0RhdGFbdGhpc1swXV07Yy5fYURhdGE9YTtmLmlzQXJyYXkoYSkmJmMublRyLmlkJiYKUShiWzBdLnJvd0lkKShhLGMublRyLmlkKTtlYShiWzBdLHRoaXNbMF0sImRhdGEiKTtyZXR1cm4gdGhpc30pO3QoInJvdygpLm5vZGUoKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7cmV0dXJuIGEubGVuZ3RoJiZ0aGlzLmxlbmd0aD9hWzBdLmFvRGF0YVt0aGlzWzBdXS5uVHJ8fG51bGw6bnVsbH0pO3QoInJvdy5hZGQoKSIsZnVuY3Rpb24oYSl7YSBpbnN0YW5jZW9mIGYmJmEubGVuZ3RoJiYoYT1hWzBdKTt2YXIgYj10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7cmV0dXJuIGEubm9kZU5hbWUmJiJUUiI9PT1hLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk/cGEoYixhKVswXTpSKGIsYSl9KTtyZXR1cm4gdGhpcy5yb3coYlswXSl9KTt2YXIgaGM9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9W10saD1mdW5jdGlvbihiLGMpe2lmKGYuaXNBcnJheShiKXx8YiBpbnN0YW5jZW9mIGYpZm9yKHZhciBkPTAsZz1iLmxlbmd0aDtkPGc7ZCsrKWgoYltkXSxjKTtlbHNlIGIubm9kZU5hbWUmJgoidHIiPT09Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP2UucHVzaChiKTooZD1mKCI8dHI+PHRkLz48L3RyPiIpLmFkZENsYXNzKGMpLGYoInRkIixkKS5hZGRDbGFzcyhjKS5odG1sKGIpWzBdLmNvbFNwYW49VyhhKSxlLnB1c2goZFswXSkpfTtoKGMsZCk7Yi5fZGV0YWlscyYmYi5fZGV0YWlscy5kZXRhY2goKTtiLl9kZXRhaWxzPWYoZSk7Yi5fZGV0YWlsc1Nob3cmJmIuX2RldGFpbHMuaW5zZXJ0QWZ0ZXIoYi5uVHIpfSxoYj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuY29udGV4dDtjLmxlbmd0aCYmKGE9Y1swXS5hb0RhdGFbYiE9PXA/YjphWzBdXSkmJmEuX2RldGFpbHMmJihhLl9kZXRhaWxzLnJlbW92ZSgpLGEuX2RldGFpbHNTaG93PXAsYS5fZGV0YWlscz1wKX0sWWI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmNvbnRleHQ7Yy5sZW5ndGgmJmEubGVuZ3RoJiYoYT1jWzBdLmFvRGF0YVthWzBdXSxhLl9kZXRhaWxzJiYoKGEuX2RldGFpbHNTaG93PWIpP2EuX2RldGFpbHMuaW5zZXJ0QWZ0ZXIoYS5uVHIpOgphLl9kZXRhaWxzLmRldGFjaCgpLGljKGNbMF0pKSl9LGljPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyB2KGEpLGM9YS5hb0RhdGE7Yi5vZmYoImRyYXcuZHQuRFRfZGV0YWlscyBjb2x1bW4tdmlzaWJpbGl0eS5kdC5EVF9kZXRhaWxzIGRlc3Ryb3kuZHQuRFRfZGV0YWlscyIpOzA8SihjLCJfZGV0YWlscyIpLmxlbmd0aCYmKGIub24oImRyYXcuZHQuRFRfZGV0YWlscyIsZnVuY3Rpb24oZCxlKXthPT09ZSYmYi5yb3dzKHtwYWdlOiJjdXJyZW50In0pLmVxKDApLmVhY2goZnVuY3Rpb24oYSl7YT1jW2FdO2EuX2RldGFpbHNTaG93JiZhLl9kZXRhaWxzLmluc2VydEFmdGVyKGEublRyKX0pfSksYi5vbigiY29sdW1uLXZpc2liaWxpdHkuZHQuRFRfZGV0YWlscyIsZnVuY3Rpb24oYixlLGYsZyl7aWYoYT09PWUpZm9yKGU9VyhlKSxmPTAsZz1jLmxlbmd0aDtmPGc7ZisrKWI9Y1tmXSxiLl9kZXRhaWxzJiZiLl9kZXRhaWxzLmNoaWxkcmVuKCJ0ZFtjb2xzcGFuXSIpLmF0dHIoImNvbHNwYW4iLAplKX0pLGIub24oImRlc3Ryb3kuZHQuRFRfZGV0YWlscyIsZnVuY3Rpb24oZCxlKXtpZihhPT09ZSlmb3IoZD0wLGU9Yy5sZW5ndGg7ZDxlO2QrKyljW2RdLl9kZXRhaWxzJiZoYihiLGQpfSkpfTt0KCJyb3coKS5jaGlsZCgpIixmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY29udGV4dDtpZihhPT09cClyZXR1cm4gYy5sZW5ndGgmJnRoaXMubGVuZ3RoP2NbMF0uYW9EYXRhW3RoaXNbMF1dLl9kZXRhaWxzOnA7ITA9PT1hP3RoaXMuY2hpbGQuc2hvdygpOiExPT09YT9oYih0aGlzKTpjLmxlbmd0aCYmdGhpcy5sZW5ndGgmJmhjKGNbMF0sY1swXS5hb0RhdGFbdGhpc1swXV0sYSxiKTtyZXR1cm4gdGhpc30pO3QoWyJyb3coKS5jaGlsZC5zaG93KCkiLCJyb3coKS5jaGlsZCgpLnNob3coKSJdLGZ1bmN0aW9uKGEpe1liKHRoaXMsITApO3JldHVybiB0aGlzfSk7dChbInJvdygpLmNoaWxkLmhpZGUoKSIsInJvdygpLmNoaWxkKCkuaGlkZSgpIl0sZnVuY3Rpb24oKXtZYih0aGlzLCExKTsKcmV0dXJuIHRoaXN9KTt0KFsicm93KCkuY2hpbGQucmVtb3ZlKCkiLCJyb3coKS5jaGlsZCgpLnJlbW92ZSgpIl0sZnVuY3Rpb24oKXtoYih0aGlzKTtyZXR1cm4gdGhpc30pO3QoInJvdygpLmNoaWxkLmlzU2hvd24oKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7cmV0dXJuIGEubGVuZ3RoJiZ0aGlzLmxlbmd0aD9hWzBdLmFvRGF0YVt0aGlzWzBdXS5fZGV0YWlsc1Nob3d8fCExOiExfSk7dmFyIGpjPS9eKFteOl0rKToobmFtZXx2aXNJZHh8dmlzaWJsZSkkLyxaYj1mdW5jdGlvbihhLGIsYyxkLGUpe2M9W107ZD0wO2Zvcih2YXIgZj1lLmxlbmd0aDtkPGY7ZCsrKWMucHVzaChJKGEsZVtkXSxiKSk7cmV0dXJuIGN9LGtjPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmFvQ29sdW1ucyxlPUooZCwic05hbWUiKSxoPUooZCwiblRoIik7cmV0dXJuIGViKCJjb2x1bW4iLGIsZnVuY3Rpb24oYil7dmFyIGc9U2IoYik7aWYoIiI9PT1iKXJldHVybiBaKGQubGVuZ3RoKTtpZihudWxsIT09CmcpcmV0dXJuWzA8PWc/ZzpkLmxlbmd0aCtnXTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGIpe3ZhciBsPUZhKGEsYyk7cmV0dXJuIGYubWFwKGQsZnVuY3Rpb24oYyxkKXtyZXR1cm4gYihkLFpiKGEsZCwwLDAsbCksaFtkXSk/ZDpudWxsfSl9dmFyIG49InN0cmluZyI9PT10eXBlb2YgYj9iLm1hdGNoKGpjKToiIjtpZihuKXN3aXRjaChuWzJdKXtjYXNlICJ2aXNJZHgiOmNhc2UgInZpc2libGUiOmc9cGFyc2VJbnQoblsxXSwxMCk7aWYoMD5nKXt2YXIgbT1mLm1hcChkLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuYlZpc2libGU/YjpudWxsfSk7cmV0dXJuW21bbS5sZW5ndGgrZ11dfXJldHVybltiYShhLGcpXTtjYXNlICJuYW1lIjpyZXR1cm4gZi5tYXAoZSxmdW5jdGlvbihhLGIpe3JldHVybiBhPT09blsxXT9iOm51bGx9KTtkZWZhdWx0OnJldHVybltdfWlmKGIubm9kZU5hbWUmJmIuX0RUX0NlbGxJbmRleClyZXR1cm5bYi5fRFRfQ2VsbEluZGV4LmNvbHVtbl07Zz1mKGgpLmZpbHRlcihiKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gZi5pbkFycmF5KHRoaXMsCmgpfSkudG9BcnJheSgpO2lmKGcubGVuZ3RofHwhYi5ub2RlTmFtZSlyZXR1cm4gZztnPWYoYikuY2xvc2VzdCgiKltkYXRhLWR0LWNvbHVtbl0iKTtyZXR1cm4gZy5sZW5ndGg/W2cuZGF0YSgiZHQtY29sdW1uIildOltdfSxhLGMpfTt0KCJjb2x1bW5zKCkiLGZ1bmN0aW9uKGEsYil7YT09PXA/YT0iIjpmLmlzUGxhaW5PYmplY3QoYSkmJihiPWEsYT0iIik7Yj1mYihiKTt2YXIgYz10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyl7cmV0dXJuIGtjKGMsYSxiKX0sMSk7Yy5zZWxlY3Rvci5jb2xzPWE7Yy5zZWxlY3Rvci5vcHRzPWI7cmV0dXJuIGN9KTt4KCJjb2x1bW5zKCkuaGVhZGVyKCkiLCJjb2x1bW4oKS5oZWFkZXIoKSIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihhLGIpe3JldHVybiBhLmFvQ29sdW1uc1tiXS5uVGh9LDEpfSk7eCgiY29sdW1ucygpLmZvb3RlcigpIiwiY29sdW1uKCkuZm9vdGVyKCkiLGZ1bmN0aW9uKGEsCmIpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuYW9Db2x1bW5zW2JdLm5UZn0sMSl9KTt4KCJjb2x1bW5zKCkuZGF0YSgpIiwiY29sdW1uKCkuZGF0YSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4tcm93cyIsWmIsMSl9KTt4KCJjb2x1bW5zKCkuZGF0YVNyYygpIiwiY29sdW1uKCkuZGF0YVNyYygpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuYW9Db2x1bW5zW2JdLm1EYXRhfSwxKX0pO3goImNvbHVtbnMoKS5jYWNoZSgpIiwiY29sdW1uKCkuY2FjaGUoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbi1yb3dzIixmdW5jdGlvbihiLGMsZCxlLGYpe3JldHVybiBsYShiLmFvRGF0YSxmLCJzZWFyY2giPT09YT8iX2FGaWx0ZXJEYXRhIjoiX2FTb3J0RGF0YSIsYyl9LDEpfSk7eCgiY29sdW1ucygpLm5vZGVzKCkiLAoiY29sdW1uKCkubm9kZXMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uLXJvd3MiLGZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIGxhKGEuYW9EYXRhLGUsImFuQ2VsbHMiLGIpfSwxKX0pO3goImNvbHVtbnMoKS52aXNpYmxlKCkiLCJjb2x1bW4oKS52aXNpYmxlKCkiLGZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcyxkPXRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oYixjKXtpZihhPT09cClyZXR1cm4gYi5hb0NvbHVtbnNbY10uYlZpc2libGU7dmFyIGQ9Yi5hb0NvbHVtbnMsZT1kW2NdLGg9Yi5hb0RhdGEsbjtpZihhIT09cCYmZS5iVmlzaWJsZSE9PWEpe2lmKGEpe3ZhciBtPWYuaW5BcnJheSghMCxKKGQsImJWaXNpYmxlIiksYysxKTtkPTA7Zm9yKG49aC5sZW5ndGg7ZDxuO2QrKyl7dmFyIHE9aFtkXS5uVHI7Yj1oW2RdLmFuQ2VsbHM7cSYmcS5pbnNlcnRCZWZvcmUoYltjXSxiW21dfHxudWxsKX19ZWxzZSBmKEooYi5hb0RhdGEsImFuQ2VsbHMiLApjKSkuZGV0YWNoKCk7ZS5iVmlzaWJsZT1hfX0pO2EhPT1wJiZ0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZCl7aGEoZCxkLmFvSGVhZGVyKTtoYShkLGQuYW9Gb290ZXIpO2QuYWlEaXNwbGF5Lmxlbmd0aHx8ZihkLm5UQm9keSkuZmluZCgidGRbY29sc3Bhbl0iKS5hdHRyKCJjb2xzcGFuIixXKGQpKTtCYShkKTtjLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGMsZCl7QShjLG51bGwsImNvbHVtbi12aXNpYmlsaXR5IixbYyxkLGEsYl0pfSk7KGI9PT1wfHxiKSYmYy5jb2x1bW5zLmFkanVzdCgpfSk7cmV0dXJuIGR9KTt4KCJjb2x1bW5zKCkuaW5kZXhlcygpIiwiY29sdW1uKCkuaW5kZXgoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oYixjKXtyZXR1cm4idmlzaWJsZSI9PT1hP2NhKGIsYyk6Y30sMSl9KTt0KCJjb2x1bW5zLmFkanVzdCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7YWEoYSl9LAoxKX0pO3QoImNvbHVtbi5pbmRleCgpIixmdW5jdGlvbihhLGIpe2lmKDAhPT10aGlzLmNvbnRleHQubGVuZ3RoKXt2YXIgYz10aGlzLmNvbnRleHRbMF07aWYoImZyb21WaXNpYmxlIj09PWF8fCJ0b0RhdGEiPT09YSlyZXR1cm4gYmEoYyxiKTtpZigiZnJvbURhdGEiPT09YXx8InRvVmlzaWJsZSI9PT1hKXJldHVybiBjYShjLGIpfX0pO3QoImNvbHVtbigpIixmdW5jdGlvbihhLGIpe3JldHVybiBnYih0aGlzLmNvbHVtbnMoYSxiKSl9KTt2YXIgbGM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuYW9EYXRhLGU9RmEoYSxjKSxoPVZiKGxhKGQsZSwiYW5DZWxscyIpKSxnPWYoW10uY29uY2F0LmFwcGx5KFtdLGgpKSxrLGw9YS5hb0NvbHVtbnMubGVuZ3RoLG4sbSxxLHUsdCx2O3JldHVybiBlYigiY2VsbCIsYixmdW5jdGlvbihiKXt2YXIgYz0iZnVuY3Rpb24iPT09dHlwZW9mIGI7aWYobnVsbD09PWJ8fGI9PT1wfHxjKXtuPVtdO209MDtmb3IocT1lLmxlbmd0aDttPHE7bSsrKWZvcihrPQplW21dLHU9MDt1PGw7dSsrKXQ9e3JvdzprLGNvbHVtbjp1fSxjPyh2PWRba10sYih0LEkoYSxrLHUpLHYuYW5DZWxscz92LmFuQ2VsbHNbdV06bnVsbCkmJm4ucHVzaCh0KSk6bi5wdXNoKHQpO3JldHVybiBufWlmKGYuaXNQbGFpbk9iamVjdChiKSlyZXR1cm4gYi5jb2x1bW4hPT1wJiZiLnJvdyE9PXAmJi0xIT09Zi5pbkFycmF5KGIucm93LGUpP1tiXTpbXTtjPWcuZmlsdGVyKGIpLm1hcChmdW5jdGlvbihhLGIpe3JldHVybntyb3c6Yi5fRFRfQ2VsbEluZGV4LnJvdyxjb2x1bW46Yi5fRFRfQ2VsbEluZGV4LmNvbHVtbn19KS50b0FycmF5KCk7aWYoYy5sZW5ndGh8fCFiLm5vZGVOYW1lKXJldHVybiBjO3Y9ZihiKS5jbG9zZXN0KCIqW2RhdGEtZHQtcm93XSIpO3JldHVybiB2Lmxlbmd0aD9be3Jvdzp2LmRhdGEoImR0LXJvdyIpLGNvbHVtbjp2LmRhdGEoImR0LWNvbHVtbiIpfV06W119LGEsYyl9O3QoImNlbGxzKCkiLGZ1bmN0aW9uKGEsYixjKXtmLmlzUGxhaW5PYmplY3QoYSkmJgooYS5yb3c9PT1wPyhjPWEsYT1udWxsKTooYz1iLGI9bnVsbCkpO2YuaXNQbGFpbk9iamVjdChiKSYmKGM9YixiPW51bGwpO2lmKG51bGw9PT1ifHxiPT09cClyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe3JldHVybiBsYyhiLGEsZmIoYykpfSk7dmFyIGQ9Yz97cGFnZTpjLnBhZ2Usb3JkZXI6Yy5vcmRlcixzZWFyY2g6Yy5zZWFyY2h9Ont9LGU9dGhpcy5jb2x1bW5zKGIsZCksaD10aGlzLnJvd3MoYSxkKSxnLGssbCxuO2Q9dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEsYil7YT1bXTtnPTA7Zm9yKGs9aFtiXS5sZW5ndGg7ZzxrO2crKylmb3IobD0wLG49ZVtiXS5sZW5ndGg7bDxuO2wrKylhLnB1c2goe3JvdzpoW2JdW2ddLGNvbHVtbjplW2JdW2xdfSk7cmV0dXJuIGF9LDEpO2Q9YyYmYy5zZWxlY3RlZD90aGlzLmNlbGxzKGQsYyk6ZDtmLmV4dGVuZChkLnNlbGVjdG9yLHtjb2xzOmIscm93czphLG9wdHM6Y30pO3JldHVybiBkfSk7eCgiY2VsbHMoKS5ub2RlcygpIiwKImNlbGwoKS5ub2RlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4oYT1hLmFvRGF0YVtiXSkmJmEuYW5DZWxscz9hLmFuQ2VsbHNbY106cH0sMSl9KTt0KCJjZWxscygpLmRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBJKGEsYixjKX0sMSl9KTt4KCJjZWxscygpLmNhY2hlKCkiLCJjZWxsKCkuY2FjaGUoKSIsZnVuY3Rpb24oYSl7YT0ic2VhcmNoIj09PWE/Il9hRmlsdGVyRGF0YSI6Il9hU29ydERhdGEiO3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihiLGMsZCl7cmV0dXJuIGIuYW9EYXRhW2NdW2FdW2RdfSwxKX0pO3goImNlbGxzKCkucmVuZGVyKCkiLCJjZWxsKCkucmVuZGVyKCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihiLGMsZCl7cmV0dXJuIEkoYixjLGQsYSl9LAoxKX0pO3goImNlbGxzKCkuaW5kZXhlcygpIiwiY2VsbCgpLmluZGV4KCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm57cm93OmIsY29sdW1uOmMsY29sdW1uVmlzaWJsZTpjYShhLGMpfX0sMSl9KTt4KCJjZWxscygpLmludmFsaWRhdGUoKSIsImNlbGwoKS5pbnZhbGlkYXRlKCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihiLGMsZCl7ZWEoYixjLGEsZCl9KX0pO3QoImNlbGwoKSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBnYih0aGlzLmNlbGxzKGEsYixjKSl9KTt0KCJjZWxsKCkuZGF0YSgpIixmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNvbnRleHQsYz10aGlzWzBdO2lmKGE9PT1wKXJldHVybiBiLmxlbmd0aCYmYy5sZW5ndGg/SShiWzBdLGNbMF0ucm93LGNbMF0uY29sdW1uKTpwO29iKGJbMF0sY1swXS5yb3csY1swXS5jb2x1bW4sYSk7ZWEoYlswXSxjWzBdLnJvdywKImRhdGEiLGNbMF0uY29sdW1uKTtyZXR1cm4gdGhpc30pO3QoIm9yZGVyKCkiLGZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jb250ZXh0O2lmKGE9PT1wKXJldHVybiAwIT09Yy5sZW5ndGg/Y1swXS5hYVNvcnRpbmc6cDsibnVtYmVyIj09PXR5cGVvZiBhP2E9W1thLGJdXTphLmxlbmd0aCYmIWYuaXNBcnJheShhWzBdKSYmKGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXtiLmFhU29ydGluZz1hLnNsaWNlKCl9KX0pO3QoIm9yZGVyLmxpc3RlbmVyKCkiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGQpe1FhKGQsYSxiLGMpfSl9KTt0KCJvcmRlci5maXhlZCgpIixmdW5jdGlvbihhKXtpZighYSl7dmFyIGI9dGhpcy5jb250ZXh0O2I9Yi5sZW5ndGg/YlswXS5hYVNvcnRpbmdGaXhlZDpwO3JldHVybiBmLmlzQXJyYXkoYik/e3ByZTpifToKYn1yZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe2IuYWFTb3J0aW5nRml4ZWQ9Zi5leHRlbmQoITAse30sYSl9KX0pO3QoWyJjb2x1bW5zKCkub3JkZXIoKSIsImNvbHVtbigpLm9yZGVyKCkiXSxmdW5jdGlvbihhKXt2YXIgYj10aGlzO3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyxkKXt2YXIgZT1bXTtmLmVhY2goYltkXSxmdW5jdGlvbihiLGMpe2UucHVzaChbYyxhXSl9KTtjLmFhU29ydGluZz1lfSl9KTt0KCJzZWFyY2goKSIsZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcy5jb250ZXh0O3JldHVybiBhPT09cD8wIT09ZS5sZW5ndGg/ZVswXS5vUHJldmlvdXNTZWFyY2guc1NlYXJjaDpwOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtlLm9GZWF0dXJlcy5iRmlsdGVyJiZpYShlLGYuZXh0ZW5kKHt9LGUub1ByZXZpb3VzU2VhcmNoLHtzU2VhcmNoOmErIiIsYlJlZ2V4Om51bGw9PT1iPyExOmIsYlNtYXJ0Om51bGw9PT0KYz8hMDpjLGJDYXNlSW5zZW5zaXRpdmU6bnVsbD09PWQ/ITA6ZH0pLDEpfSl9KTt4KCJjb2x1bW5zKCkuc2VhcmNoKCkiLCJjb2x1bW4oKS5zZWFyY2goKSIsZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oZSxoKXt2YXIgZz1lLmFvUHJlU2VhcmNoQ29scztpZihhPT09cClyZXR1cm4gZ1toXS5zU2VhcmNoO2Uub0ZlYXR1cmVzLmJGaWx0ZXImJihmLmV4dGVuZChnW2hdLHtzU2VhcmNoOmErIiIsYlJlZ2V4Om51bGw9PT1iPyExOmIsYlNtYXJ0Om51bGw9PT1jPyEwOmMsYkNhc2VJbnNlbnNpdGl2ZTpudWxsPT09ZD8hMDpkfSksaWEoZSxlLm9QcmV2aW91c1NlYXJjaCwxKSl9KX0pO3QoInN0YXRlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGV4dC5sZW5ndGg/dGhpcy5jb250ZXh0WzBdLm9TYXZlZFN0YXRlOm51bGx9KTt0KCJzdGF0ZS5jbGVhcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsCmZ1bmN0aW9uKGEpe2EuZm5TdGF0ZVNhdmVDYWxsYmFjay5jYWxsKGEub0luc3RhbmNlLGEse30pfSl9KTt0KCJzdGF0ZS5sb2FkZWQoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZXh0Lmxlbmd0aD90aGlzLmNvbnRleHRbMF0ub0xvYWRlZFN0YXRlOm51bGx9KTt0KCJzdGF0ZS5zYXZlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXtCYShhKX0pfSk7cS52ZXJzaW9uQ2hlY2s9cS5mblZlcnNpb25DaGVjaz1mdW5jdGlvbihhKXt2YXIgYj1xLnZlcnNpb24uc3BsaXQoIi4iKTthPWEuc3BsaXQoIi4iKTtmb3IodmFyIGMsZCxlPTAsZj1hLmxlbmd0aDtlPGY7ZSsrKWlmKGM9cGFyc2VJbnQoYltlXSwxMCl8fDAsZD1wYXJzZUludChhW2VdLDEwKXx8MCxjIT09ZClyZXR1cm4gYz5kO3JldHVybiEwfTtxLmlzRGF0YVRhYmxlPXEuZm5Jc0RhdGFUYWJsZT1mdW5jdGlvbihhKXt2YXIgYj1mKGEpLmdldCgwKSxjPSExO2lmKGEgaW5zdGFuY2VvZgpxLkFwaSlyZXR1cm4hMDtmLmVhY2gocS5zZXR0aW5ncyxmdW5jdGlvbihhLGUpe2E9ZS5uU2Nyb2xsSGVhZD9mKCJ0YWJsZSIsZS5uU2Nyb2xsSGVhZClbMF06bnVsbDt2YXIgZD1lLm5TY3JvbGxGb290P2YoInRhYmxlIixlLm5TY3JvbGxGb290KVswXTpudWxsO2lmKGUublRhYmxlPT09Ynx8YT09PWJ8fGQ9PT1iKWM9ITB9KTtyZXR1cm4gY307cS50YWJsZXM9cS5mblRhYmxlcz1mdW5jdGlvbihhKXt2YXIgYj0hMTtmLmlzUGxhaW5PYmplY3QoYSkmJihiPWEuYXBpLGE9YS52aXNpYmxlKTt2YXIgYz1mLm1hcChxLnNldHRpbmdzLGZ1bmN0aW9uKGIpe2lmKCFhfHxhJiZmKGIublRhYmxlKS5pcygiOnZpc2libGUiKSlyZXR1cm4gYi5uVGFibGV9KTtyZXR1cm4gYj9uZXcgdihjKTpjfTtxLmNhbWVsVG9IdW5nYXJpYW49TDt0KCIkKCkiLGZ1bmN0aW9uKGEsYil7Yj10aGlzLnJvd3MoYikubm9kZXMoKTtiPWYoYik7cmV0dXJuIGYoW10uY29uY2F0KGIuZmlsdGVyKGEpLnRvQXJyYXkoKSwKYi5maW5kKGEpLnRvQXJyYXkoKSkpfSk7Zi5lYWNoKFsib24iLCJvbmUiLCJvZmYiXSxmdW5jdGlvbihhLGIpe3QoYisiKCkiLGZ1bmN0aW9uKCl7dmFyIGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTthWzBdPWYubWFwKGFbMF0uc3BsaXQoL1xzLyksZnVuY3Rpb24oYSl7cmV0dXJuIGEubWF0Y2goL1wuZHRcYi8pP2E6YSsiLmR0In0pLmpvaW4oIiAiKTt2YXIgZD1mKHRoaXMudGFibGVzKCkubm9kZXMoKSk7ZFtiXS5hcHBseShkLGEpO3JldHVybiB0aGlzfSl9KTt0KCJjbGVhcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cWEoYSl9KX0pO3QoInNldHRpbmdzKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB2KHRoaXMuY29udGV4dCx0aGlzLmNvbnRleHQpfSk7dCgiaW5pdCgpIixmdW5jdGlvbigpe3ZhciBhPXRoaXMuY29udGV4dDtyZXR1cm4gYS5sZW5ndGg/YVswXS5vSW5pdDpudWxsfSk7dCgiZGF0YSgpIiwKZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3JldHVybiBKKGEuYW9EYXRhLCJfYURhdGEiKX0pLmZsYXR0ZW4oKX0pO3QoImRlc3Ryb3koKSIsZnVuY3Rpb24oYSl7YT1hfHwhMTtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe3ZhciBjPWIublRhYmxlV3JhcHBlci5wYXJlbnROb2RlLGQ9Yi5vQ2xhc3NlcyxlPWIublRhYmxlLGg9Yi5uVEJvZHksZz1iLm5USGVhZCxrPWIublRGb290LGw9ZihlKTtoPWYoaCk7dmFyIG49ZihiLm5UYWJsZVdyYXBwZXIpLG09Zi5tYXAoYi5hb0RhdGEsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRyfSkscDtiLmJEZXN0cm95aW5nPSEwO0EoYiwiYW9EZXN0cm95Q2FsbGJhY2siLCJkZXN0cm95IixbYl0pO2F8fChuZXcgdihiKSkuY29sdW1ucygpLnZpc2libGUoITApO24ub2ZmKCIuRFQiKS5maW5kKCI6bm90KHRib2R5ICopIikub2ZmKCIuRFQiKTtmKHopLm9mZigiLkRULSIrYi5zSW5zdGFuY2UpOwplIT1nLnBhcmVudE5vZGUmJihsLmNoaWxkcmVuKCJ0aGVhZCIpLmRldGFjaCgpLGwuYXBwZW5kKGcpKTtrJiZlIT1rLnBhcmVudE5vZGUmJihsLmNoaWxkcmVuKCJ0Zm9vdCIpLmRldGFjaCgpLGwuYXBwZW5kKGspKTtiLmFhU29ydGluZz1bXTtiLmFhU29ydGluZ0ZpeGVkPVtdO0FhKGIpO2YobSkucmVtb3ZlQ2xhc3MoYi5hc1N0cmlwZUNsYXNzZXMuam9pbigiICIpKTtmKCJ0aCwgdGQiLGcpLnJlbW92ZUNsYXNzKGQuc1NvcnRhYmxlKyIgIitkLnNTb3J0YWJsZUFzYysiICIrZC5zU29ydGFibGVEZXNjKyIgIitkLnNTb3J0YWJsZU5vbmUpO2guY2hpbGRyZW4oKS5kZXRhY2goKTtoLmFwcGVuZChtKTtnPWE/InJlbW92ZSI6ImRldGFjaCI7bFtnXSgpO25bZ10oKTshYSYmYyYmKGMuaW5zZXJ0QmVmb3JlKGUsYi5uVGFibGVSZWluc2VydEJlZm9yZSksbC5jc3MoIndpZHRoIixiLnNEZXN0cm95V2lkdGgpLnJlbW92ZUNsYXNzKGQuc1RhYmxlKSwocD1iLmFzRGVzdHJveVN0cmlwZXMubGVuZ3RoKSYmCmguY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKGEpe2YodGhpcykuYWRkQ2xhc3MoYi5hc0Rlc3Ryb3lTdHJpcGVzW2ElcF0pfSkpO2M9Zi5pbkFycmF5KGIscS5zZXR0aW5ncyk7LTEhPT1jJiZxLnNldHRpbmdzLnNwbGljZShjLDEpfSl9KTtmLmVhY2goWyJjb2x1bW4iLCJyb3ciLCJjZWxsIl0sZnVuY3Rpb24oYSxiKXt0KGIrInMoKS5ldmVyeSgpIixmdW5jdGlvbihhKXt2YXIgYz10aGlzLnNlbGVjdG9yLm9wdHMsZT10aGlzO3JldHVybiB0aGlzLml0ZXJhdG9yKGIsZnVuY3Rpb24oZCxmLGssbCxuKXthLmNhbGwoZVtiXShmLCJjZWxsIj09PWI/azpjLCJjZWxsIj09PWI/YzpwKSxmLGssbCxuKX0pfSl9KTt0KCJpMThuKCkiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmNvbnRleHRbMF07YT1VKGEpKGQub0xhbmd1YWdlKTthPT09cCYmKGE9Yik7YyE9PXAmJmYuaXNQbGFpbk9iamVjdChhKSYmKGE9YVtjXSE9PXA/YVtjXTphLl8pO3JldHVybiBhLnJlcGxhY2UoIiVkIixjKX0pOwpxLnZlcnNpb249IjEuMTAuMjAiO3Euc2V0dGluZ3M9W107cS5tb2RlbHM9e307cS5tb2RlbHMub1NlYXJjaD17YkNhc2VJbnNlbnNpdGl2ZTohMCxzU2VhcmNoOiIiLGJSZWdleDohMSxiU21hcnQ6ITB9O3EubW9kZWxzLm9Sb3c9e25UcjpudWxsLGFuQ2VsbHM6bnVsbCxfYURhdGE6W10sX2FTb3J0RGF0YTpudWxsLF9hRmlsdGVyRGF0YTpudWxsLF9zRmlsdGVyUm93Om51bGwsX3NSb3dTdHJpcGU6IiIsc3JjOm51bGwsaWR4Oi0xfTtxLm1vZGVscy5vQ29sdW1uPXtpZHg6bnVsbCxhRGF0YVNvcnQ6bnVsbCxhc1NvcnRpbmc6bnVsbCxiU2VhcmNoYWJsZTpudWxsLGJTb3J0YWJsZTpudWxsLGJWaXNpYmxlOm51bGwsX3NNYW51YWxUeXBlOm51bGwsX2JBdHRyU3JjOiExLGZuQ3JlYXRlZENlbGw6bnVsbCxmbkdldERhdGE6bnVsbCxmblNldERhdGE6bnVsbCxtRGF0YTpudWxsLG1SZW5kZXI6bnVsbCxuVGg6bnVsbCxuVGY6bnVsbCxzQ2xhc3M6bnVsbCxzQ29udGVudFBhZGRpbmc6bnVsbCwKc0RlZmF1bHRDb250ZW50Om51bGwsc05hbWU6bnVsbCxzU29ydERhdGFUeXBlOiJzdGQiLHNTb3J0aW5nQ2xhc3M6bnVsbCxzU29ydGluZ0NsYXNzSlVJOm51bGwsc1RpdGxlOm51bGwsc1R5cGU6bnVsbCxzV2lkdGg6bnVsbCxzV2lkdGhPcmlnOm51bGx9O3EuZGVmYXVsdHM9e2FhRGF0YTpudWxsLGFhU29ydGluZzpbWzAsImFzYyJdXSxhYVNvcnRpbmdGaXhlZDpbXSxhamF4Om51bGwsYUxlbmd0aE1lbnU6WzEwLDI1LDUwLDEwMF0sYW9Db2x1bW5zOm51bGwsYW9Db2x1bW5EZWZzOm51bGwsYW9TZWFyY2hDb2xzOltdLGFzU3RyaXBlQ2xhc3NlczpudWxsLGJBdXRvV2lkdGg6ITAsYkRlZmVyUmVuZGVyOiExLGJEZXN0cm95OiExLGJGaWx0ZXI6ITAsYkluZm86ITAsYkxlbmd0aENoYW5nZTohMCxiUGFnaW5hdGU6ITAsYlByb2Nlc3Npbmc6ITEsYlJldHJpZXZlOiExLGJTY3JvbGxDb2xsYXBzZTohMSxiU2VydmVyU2lkZTohMSxiU29ydDohMCxiU29ydE11bHRpOiEwLGJTb3J0Q2VsbHNUb3A6ITEsCmJTb3J0Q2xhc3NlczohMCxiU3RhdGVTYXZlOiExLGZuQ3JlYXRlZFJvdzpudWxsLGZuRHJhd0NhbGxiYWNrOm51bGwsZm5Gb290ZXJDYWxsYmFjazpudWxsLGZuRm9ybWF0TnVtYmVyOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRvU3RyaW5nKCkucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg/IVxkKSkvZyx0aGlzLm9MYW5ndWFnZS5zVGhvdXNhbmRzKX0sZm5IZWFkZXJDYWxsYmFjazpudWxsLGZuSW5mb0NhbGxiYWNrOm51bGwsZm5Jbml0Q29tcGxldGU6bnVsbCxmblByZURyYXdDYWxsYmFjazpudWxsLGZuUm93Q2FsbGJhY2s6bnVsbCxmblNlcnZlckRhdGE6bnVsbCxmblNlcnZlclBhcmFtczpudWxsLGZuU3RhdGVMb2FkQ2FsbGJhY2s6ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiBKU09OLnBhcnNlKCgtMT09PWEuaVN0YXRlRHVyYXRpb24/c2Vzc2lvblN0b3JhZ2U6bG9jYWxTdG9yYWdlKS5nZXRJdGVtKCJEYXRhVGFibGVzXyIrYS5zSW5zdGFuY2UrIl8iK2xvY2F0aW9uLnBhdGhuYW1lKSl9Y2F0Y2goYil7fX0sCmZuU3RhdGVMb2FkUGFyYW1zOm51bGwsZm5TdGF0ZUxvYWRlZDpudWxsLGZuU3RhdGVTYXZlQ2FsbGJhY2s6ZnVuY3Rpb24oYSxiKXt0cnl7KC0xPT09YS5pU3RhdGVEdXJhdGlvbj9zZXNzaW9uU3RvcmFnZTpsb2NhbFN0b3JhZ2UpLnNldEl0ZW0oIkRhdGFUYWJsZXNfIithLnNJbnN0YW5jZSsiXyIrbG9jYXRpb24ucGF0aG5hbWUsSlNPTi5zdHJpbmdpZnkoYikpfWNhdGNoKGMpe319LGZuU3RhdGVTYXZlUGFyYW1zOm51bGwsaVN0YXRlRHVyYXRpb246NzIwMCxpRGVmZXJMb2FkaW5nOm51bGwsaURpc3BsYXlMZW5ndGg6MTAsaURpc3BsYXlTdGFydDowLGlUYWJJbmRleDowLG9DbGFzc2VzOnt9LG9MYW5ndWFnZTp7b0FyaWE6e3NTb3J0QXNjZW5kaW5nOiI6IGFjdGl2YXRlIHRvIHNvcnQgY29sdW1uIGFzY2VuZGluZyIsc1NvcnREZXNjZW5kaW5nOiI6IGFjdGl2YXRlIHRvIHNvcnQgY29sdW1uIGRlc2NlbmRpbmcifSxvUGFnaW5hdGU6e3NGaXJzdDoiRmlyc3QiLHNMYXN0OiJMYXN0IiwKc05leHQ6Ik5leHQiLHNQcmV2aW91czoiUHJldmlvdXMifSxzRW1wdHlUYWJsZToiTm8gZGF0YSBhdmFpbGFibGUgaW4gdGFibGUiLHNJbmZvOiJTaG93aW5nIF9TVEFSVF8gdG8gX0VORF8gb2YgX1RPVEFMXyBlbnRyaWVzIixzSW5mb0VtcHR5OiJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMiLHNJbmZvRmlsdGVyZWQ6IihmaWx0ZXJlZCBmcm9tIF9NQVhfIHRvdGFsIGVudHJpZXMpIixzSW5mb1Bvc3RGaXg6IiIsc0RlY2ltYWw6IiIsc1Rob3VzYW5kczoiLCIsc0xlbmd0aE1lbnU6IlNob3cgX01FTlVfIGVudHJpZXMiLHNMb2FkaW5nUmVjb3JkczoiTG9hZGluZy4uLiIsc1Byb2Nlc3Npbmc6IlByb2Nlc3NpbmcuLi4iLHNTZWFyY2g6IlNlYXJjaDoiLHNTZWFyY2hQbGFjZWhvbGRlcjoiIixzVXJsOiIiLHNaZXJvUmVjb3JkczoiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCJ9LG9TZWFyY2g6Zi5leHRlbmQoe30scS5tb2RlbHMub1NlYXJjaCksc0FqYXhEYXRhUHJvcDoiZGF0YSIsCnNBamF4U291cmNlOm51bGwsc0RvbToibGZydGlwIixzZWFyY2hEZWxheTpudWxsLHNQYWdpbmF0aW9uVHlwZToic2ltcGxlX251bWJlcnMiLHNTY3JvbGxYOiIiLHNTY3JvbGxYSW5uZXI6IiIsc1Njcm9sbFk6IiIsc1NlcnZlck1ldGhvZDoiR0VUIixyZW5kZXJlcjpudWxsLHJvd0lkOiJEVF9Sb3dJZCJ9O0gocS5kZWZhdWx0cyk7cS5kZWZhdWx0cy5jb2x1bW49e2FEYXRhU29ydDpudWxsLGlEYXRhU29ydDotMSxhc1NvcnRpbmc6WyJhc2MiLCJkZXNjIl0sYlNlYXJjaGFibGU6ITAsYlNvcnRhYmxlOiEwLGJWaXNpYmxlOiEwLGZuQ3JlYXRlZENlbGw6bnVsbCxtRGF0YTpudWxsLG1SZW5kZXI6bnVsbCxzQ2VsbFR5cGU6InRkIixzQ2xhc3M6IiIsc0NvbnRlbnRQYWRkaW5nOiIiLHNEZWZhdWx0Q29udGVudDpudWxsLHNOYW1lOiIiLHNTb3J0RGF0YVR5cGU6InN0ZCIsc1RpdGxlOm51bGwsc1R5cGU6bnVsbCxzV2lkdGg6bnVsbH07SChxLmRlZmF1bHRzLmNvbHVtbik7cS5tb2RlbHMub1NldHRpbmdzPQp7b0ZlYXR1cmVzOntiQXV0b1dpZHRoOm51bGwsYkRlZmVyUmVuZGVyOm51bGwsYkZpbHRlcjpudWxsLGJJbmZvOm51bGwsYkxlbmd0aENoYW5nZTpudWxsLGJQYWdpbmF0ZTpudWxsLGJQcm9jZXNzaW5nOm51bGwsYlNlcnZlclNpZGU6bnVsbCxiU29ydDpudWxsLGJTb3J0TXVsdGk6bnVsbCxiU29ydENsYXNzZXM6bnVsbCxiU3RhdGVTYXZlOm51bGx9LG9TY3JvbGw6e2JDb2xsYXBzZTpudWxsLGlCYXJXaWR0aDowLHNYOm51bGwsc1hJbm5lcjpudWxsLHNZOm51bGx9LG9MYW5ndWFnZTp7Zm5JbmZvQ2FsbGJhY2s6bnVsbH0sb0Jyb3dzZXI6e2JTY3JvbGxPdmVyc2l6ZTohMSxiU2Nyb2xsYmFyTGVmdDohMSxiQm91bmRpbmc6ITEsYmFyV2lkdGg6MH0sYWpheDpudWxsLGFhbkZlYXR1cmVzOltdLGFvRGF0YTpbXSxhaURpc3BsYXk6W10sYWlEaXNwbGF5TWFzdGVyOltdLGFJZHM6e30sYW9Db2x1bW5zOltdLGFvSGVhZGVyOltdLGFvRm9vdGVyOltdLG9QcmV2aW91c1NlYXJjaDp7fSwKYW9QcmVTZWFyY2hDb2xzOltdLGFhU29ydGluZzpudWxsLGFhU29ydGluZ0ZpeGVkOltdLGFzU3RyaXBlQ2xhc3NlczpudWxsLGFzRGVzdHJveVN0cmlwZXM6W10sc0Rlc3Ryb3lXaWR0aDowLGFvUm93Q2FsbGJhY2s6W10sYW9IZWFkZXJDYWxsYmFjazpbXSxhb0Zvb3RlckNhbGxiYWNrOltdLGFvRHJhd0NhbGxiYWNrOltdLGFvUm93Q3JlYXRlZENhbGxiYWNrOltdLGFvUHJlRHJhd0NhbGxiYWNrOltdLGFvSW5pdENvbXBsZXRlOltdLGFvU3RhdGVTYXZlUGFyYW1zOltdLGFvU3RhdGVMb2FkUGFyYW1zOltdLGFvU3RhdGVMb2FkZWQ6W10sc1RhYmxlSWQ6IiIsblRhYmxlOm51bGwsblRIZWFkOm51bGwsblRGb290Om51bGwsblRCb2R5Om51bGwsblRhYmxlV3JhcHBlcjpudWxsLGJEZWZlckxvYWRpbmc6ITEsYkluaXRpYWxpc2VkOiExLGFvT3BlblJvd3M6W10sc0RvbTpudWxsLHNlYXJjaERlbGF5Om51bGwsc1BhZ2luYXRpb25UeXBlOiJ0d29fYnV0dG9uIixpU3RhdGVEdXJhdGlvbjowLAphb1N0YXRlU2F2ZTpbXSxhb1N0YXRlTG9hZDpbXSxvU2F2ZWRTdGF0ZTpudWxsLG9Mb2FkZWRTdGF0ZTpudWxsLHNBamF4U291cmNlOm51bGwsc0FqYXhEYXRhUHJvcDpudWxsLGJBamF4RGF0YUdldDohMCxqcVhIUjpudWxsLGpzb246cCxvQWpheERhdGE6cCxmblNlcnZlckRhdGE6bnVsbCxhb1NlcnZlclBhcmFtczpbXSxzU2VydmVyTWV0aG9kOm51bGwsZm5Gb3JtYXROdW1iZXI6bnVsbCxhTGVuZ3RoTWVudTpudWxsLGlEcmF3OjAsYkRyYXdpbmc6ITEsaURyYXdFcnJvcjotMSxfaURpc3BsYXlMZW5ndGg6MTAsX2lEaXNwbGF5U3RhcnQ6MCxfaVJlY29yZHNUb3RhbDowLF9pUmVjb3Jkc0Rpc3BsYXk6MCxvQ2xhc3Nlczp7fSxiRmlsdGVyZWQ6ITEsYlNvcnRlZDohMSxiU29ydENlbGxzVG9wOm51bGwsb0luaXQ6bnVsbCxhb0Rlc3Ryb3lDYWxsYmFjazpbXSxmblJlY29yZHNUb3RhbDpmdW5jdGlvbigpe3JldHVybiJzc3AiPT1EKHRoaXMpPzEqdGhpcy5faVJlY29yZHNUb3RhbDoKdGhpcy5haURpc3BsYXlNYXN0ZXIubGVuZ3RofSxmblJlY29yZHNEaXNwbGF5OmZ1bmN0aW9uKCl7cmV0dXJuInNzcCI9PUQodGhpcyk/MSp0aGlzLl9pUmVjb3Jkc0Rpc3BsYXk6dGhpcy5haURpc3BsYXkubGVuZ3RofSxmbkRpc3BsYXlFbmQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9pRGlzcGxheUxlbmd0aCxiPXRoaXMuX2lEaXNwbGF5U3RhcnQsYz1iK2EsZD10aGlzLmFpRGlzcGxheS5sZW5ndGgsZT10aGlzLm9GZWF0dXJlcyxmPWUuYlBhZ2luYXRlO3JldHVybiBlLmJTZXJ2ZXJTaWRlPyExPT09Znx8LTE9PT1hP2IrZDpNYXRoLm1pbihiK2EsdGhpcy5faVJlY29yZHNEaXNwbGF5KTohZnx8Yz5kfHwtMT09PWE/ZDpjfSxvSW5zdGFuY2U6bnVsbCxzSW5zdGFuY2U6bnVsbCxpVGFiSW5kZXg6MCxuU2Nyb2xsSGVhZDpudWxsLG5TY3JvbGxGb290Om51bGwsYUxhc3RTb3J0OltdLG9QbHVnaW5zOnt9LHJvd0lkRm46bnVsbCxyb3dJZDpudWxsfTtxLmV4dD1DPXtidXR0b25zOnt9LApjbGFzc2VzOnt9LGJ1aWxkZXI6Ii1zb3VyY2UtIixlcnJNb2RlOiJhbGVydCIsZmVhdHVyZTpbXSxzZWFyY2g6W10sc2VsZWN0b3I6e2NlbGw6W10sY29sdW1uOltdLHJvdzpbXX0saW50ZXJuYWw6e30sbGVnYWN5OnthamF4Om51bGx9LHBhZ2VyOnt9LHJlbmRlcmVyOntwYWdlQnV0dG9uOnt9LGhlYWRlcjp7fX0sb3JkZXI6e30sdHlwZTp7ZGV0ZWN0OltdLHNlYXJjaDp7fSxvcmRlcjp7fX0sX3VuaXF1ZTowLGZuVmVyc2lvbkNoZWNrOnEuZm5WZXJzaW9uQ2hlY2ssaUFwaUluZGV4OjAsb0pVSUNsYXNzZXM6e30sc1ZlcnNpb246cS52ZXJzaW9ufTtmLmV4dGVuZChDLHthZm5GaWx0ZXJpbmc6Qy5zZWFyY2gsYVR5cGVzOkMudHlwZS5kZXRlY3Qsb2ZuU2VhcmNoOkMudHlwZS5zZWFyY2gsb1NvcnQ6Qy50eXBlLm9yZGVyLGFmblNvcnREYXRhOkMub3JkZXIsYW9GZWF0dXJlczpDLmZlYXR1cmUsb0FwaTpDLmludGVybmFsLG9TdGRDbGFzc2VzOkMuY2xhc3NlcyxvUGFnaW5hdGlvbjpDLnBhZ2VyfSk7CmYuZXh0ZW5kKHEuZXh0LmNsYXNzZXMse3NUYWJsZToiZGF0YVRhYmxlIixzTm9Gb290ZXI6Im5vLWZvb3RlciIsc1BhZ2VCdXR0b246InBhZ2luYXRlX2J1dHRvbiIsc1BhZ2VCdXR0b25BY3RpdmU6ImN1cnJlbnQiLHNQYWdlQnV0dG9uRGlzYWJsZWQ6ImRpc2FibGVkIixzU3RyaXBlT2RkOiJvZGQiLHNTdHJpcGVFdmVuOiJldmVuIixzUm93RW1wdHk6ImRhdGFUYWJsZXNfZW1wdHkiLHNXcmFwcGVyOiJkYXRhVGFibGVzX3dyYXBwZXIiLHNGaWx0ZXI6ImRhdGFUYWJsZXNfZmlsdGVyIixzSW5mbzoiZGF0YVRhYmxlc19pbmZvIixzUGFnaW5nOiJkYXRhVGFibGVzX3BhZ2luYXRlIHBhZ2luZ18iLHNMZW5ndGg6ImRhdGFUYWJsZXNfbGVuZ3RoIixzUHJvY2Vzc2luZzoiZGF0YVRhYmxlc19wcm9jZXNzaW5nIixzU29ydEFzYzoic29ydGluZ19hc2MiLHNTb3J0RGVzYzoic29ydGluZ19kZXNjIixzU29ydGFibGU6InNvcnRpbmciLHNTb3J0YWJsZUFzYzoic29ydGluZ19hc2NfZGlzYWJsZWQiLApzU29ydGFibGVEZXNjOiJzb3J0aW5nX2Rlc2NfZGlzYWJsZWQiLHNTb3J0YWJsZU5vbmU6InNvcnRpbmdfZGlzYWJsZWQiLHNTb3J0Q29sdW1uOiJzb3J0aW5nXyIsc0ZpbHRlcklucHV0OiIiLHNMZW5ndGhTZWxlY3Q6IiIsc1Njcm9sbFdyYXBwZXI6ImRhdGFUYWJsZXNfc2Nyb2xsIixzU2Nyb2xsSGVhZDoiZGF0YVRhYmxlc19zY3JvbGxIZWFkIixzU2Nyb2xsSGVhZElubmVyOiJkYXRhVGFibGVzX3Njcm9sbEhlYWRJbm5lciIsc1Njcm9sbEJvZHk6ImRhdGFUYWJsZXNfc2Nyb2xsQm9keSIsc1Njcm9sbEZvb3Q6ImRhdGFUYWJsZXNfc2Nyb2xsRm9vdCIsc1Njcm9sbEZvb3RJbm5lcjoiZGF0YVRhYmxlc19zY3JvbGxGb290SW5uZXIiLHNIZWFkZXJUSDoiIixzRm9vdGVyVEg6IiIsc1NvcnRKVUlBc2M6IiIsc1NvcnRKVUlEZXNjOiIiLHNTb3J0SlVJOiIiLHNTb3J0SlVJQXNjQWxsb3dlZDoiIixzU29ydEpVSURlc2NBbGxvd2VkOiIiLHNTb3J0SlVJV3JhcHBlcjoiIixzU29ydEljb246IiIsCnNKVUlIZWFkZXI6IiIsc0pVSUZvb3RlcjoiIn0pO3ZhciBQYj1xLmV4dC5wYWdlcjtmLmV4dGVuZChQYix7c2ltcGxlOmZ1bmN0aW9uKGEsYil7cmV0dXJuWyJwcmV2aW91cyIsIm5leHQiXX0sZnVsbDpmdW5jdGlvbihhLGIpe3JldHVyblsiZmlyc3QiLCJwcmV2aW91cyIsIm5leHQiLCJsYXN0Il19LG51bWJlcnM6ZnVuY3Rpb24oYSxiKXtyZXR1cm5ba2EoYSxiKV19LHNpbXBsZV9udW1iZXJzOmZ1bmN0aW9uKGEsYil7cmV0dXJuWyJwcmV2aW91cyIsa2EoYSxiKSwibmV4dCJdfSxmdWxsX251bWJlcnM6ZnVuY3Rpb24oYSxiKXtyZXR1cm5bImZpcnN0IiwicHJldmlvdXMiLGthKGEsYiksIm5leHQiLCJsYXN0Il19LGZpcnN0X2xhc3RfbnVtYmVyczpmdW5jdGlvbihhLGIpe3JldHVyblsiZmlyc3QiLGthKGEsYiksImxhc3QiXX0sX251bWJlcnM6a2EsbnVtYmVyc19sZW5ndGg6N30pO2YuZXh0ZW5kKCEwLHEuZXh0LnJlbmRlcmVyLHtwYWdlQnV0dG9uOntfOmZ1bmN0aW9uKGEsYiwKYyxkLGUsaCl7dmFyIGc9YS5vQ2xhc3NlcyxrPWEub0xhbmd1YWdlLm9QYWdpbmF0ZSxsPWEub0xhbmd1YWdlLm9BcmlhLnBhZ2luYXRlfHx7fSxuLG0scT0wLHQ9ZnVuY3Rpb24oYixkKXt2YXIgcCxyPWcuc1BhZ2VCdXR0b25EaXNhYmxlZCx1PWZ1bmN0aW9uKGIpe1hhKGEsYi5kYXRhLmFjdGlvbiwhMCl9O3ZhciB3PTA7Zm9yKHA9ZC5sZW5ndGg7dzxwO3crKyl7dmFyIHY9ZFt3XTtpZihmLmlzQXJyYXkodikpe3ZhciB4PWYoIjwiKyh2LkRUX2VsfHwiZGl2IikrIi8+IikuYXBwZW5kVG8oYik7dCh4LHYpfWVsc2V7bj1udWxsO209djt4PWEuaVRhYkluZGV4O3N3aXRjaCh2KXtjYXNlICJlbGxpcHNpcyI6Yi5hcHBlbmQoJzxzcGFuIGNsYXNzPSJlbGxpcHNpcyI+JiN4MjAyNjs8L3NwYW4+Jyk7YnJlYWs7Y2FzZSAiZmlyc3QiOm49ay5zRmlyc3Q7MD09PWUmJih4PS0xLG0rPSIgIityKTticmVhaztjYXNlICJwcmV2aW91cyI6bj1rLnNQcmV2aW91czswPT09ZSYmKHg9LTEsbSs9CiIgIityKTticmVhaztjYXNlICJuZXh0IjpuPWsuc05leHQ7ZT09PWgtMSYmKHg9LTEsbSs9IiAiK3IpO2JyZWFrO2Nhc2UgImxhc3QiOm49ay5zTGFzdDtlPT09aC0xJiYoeD0tMSxtKz0iICIrcik7YnJlYWs7ZGVmYXVsdDpuPXYrMSxtPWU9PT12P2cuc1BhZ2VCdXR0b25BY3RpdmU6IiJ9bnVsbCE9PW4mJih4PWYoIjxhPiIseyJjbGFzcyI6Zy5zUGFnZUJ1dHRvbisiICIrbSwiYXJpYS1jb250cm9scyI6YS5zVGFibGVJZCwiYXJpYS1sYWJlbCI6bFt2XSwiZGF0YS1kdC1pZHgiOnEsdGFiaW5kZXg6eCxpZDowPT09YyYmInN0cmluZyI9PT10eXBlb2Ygdj9hLnNUYWJsZUlkKyJfIit2Om51bGx9KS5odG1sKG4pLmFwcGVuZFRvKGIpLCRhKHgse2FjdGlvbjp2fSx1KSxxKyspfX19O3RyeXt2YXIgdj1mKGIpLmZpbmQoeS5hY3RpdmVFbGVtZW50KS5kYXRhKCJkdC1pZHgiKX1jYXRjaChtYyl7fXQoZihiKS5lbXB0eSgpLGQpO3YhPT1wJiZmKGIpLmZpbmQoIltkYXRhLWR0LWlkeD0iKwp2KyJdIikuZm9jdXMoKX19fSk7Zi5leHRlbmQocS5leHQudHlwZS5kZXRlY3QsW2Z1bmN0aW9uKGEsYil7Yj1iLm9MYW5ndWFnZS5zRGVjaW1hbDtyZXR1cm4gZGIoYSxiKT8ibnVtIitiOm51bGx9LGZ1bmN0aW9uKGEsYil7aWYoYSYmIShhIGluc3RhbmNlb2YgRGF0ZSkmJiFjYy50ZXN0KGEpKXJldHVybiBudWxsO2I9RGF0ZS5wYXJzZShhKTtyZXR1cm4gbnVsbCE9PWImJiFpc05hTihiKXx8UChhKT8iZGF0ZSI6bnVsbH0sZnVuY3Rpb24oYSxiKXtiPWIub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBkYihhLGIsITApPyJudW0tZm10IitiOm51bGx9LGZ1bmN0aW9uKGEsYil7Yj1iLm9MYW5ndWFnZS5zRGVjaW1hbDtyZXR1cm4gVWIoYSxiKT8iaHRtbC1udW0iK2I6bnVsbH0sZnVuY3Rpb24oYSxiKXtiPWIub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBVYihhLGIsITApPyJodG1sLW51bS1mbXQiK2I6bnVsbH0sZnVuY3Rpb24oYSxiKXtyZXR1cm4gUChhKXx8InN0cmluZyI9PT0KdHlwZW9mIGEmJi0xIT09YS5pbmRleE9mKCI8Iik/Imh0bWwiOm51bGx9XSk7Zi5leHRlbmQocS5leHQudHlwZS5zZWFyY2gse2h0bWw6ZnVuY3Rpb24oYSl7cmV0dXJuIFAoYSk/YToic3RyaW5nIj09PXR5cGVvZiBhP2EucmVwbGFjZShSYiwiICIpLnJlcGxhY2UoRWEsIiIpOiIifSxzdHJpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuIFAoYSk/YToic3RyaW5nIj09PXR5cGVvZiBhP2EucmVwbGFjZShSYiwiICIpOmF9fSk7dmFyIERhPWZ1bmN0aW9uKGEsYixjLGQpe2lmKDAhPT1hJiYoIWF8fCItIj09PWEpKXJldHVybi1JbmZpbml0eTtiJiYoYT1UYihhLGIpKTthLnJlcGxhY2UmJihjJiYoYT1hLnJlcGxhY2UoYywiIikpLGQmJihhPWEucmVwbGFjZShkLCIiKSkpO3JldHVybiAxKmF9O2YuZXh0ZW5kKEMudHlwZS5vcmRlcix7ImRhdGUtcHJlIjpmdW5jdGlvbihhKXthPURhdGUucGFyc2UoYSk7cmV0dXJuIGlzTmFOKGEpPy1JbmZpbml0eTphfSwiaHRtbC1wcmUiOmZ1bmN0aW9uKGEpe3JldHVybiBQKGEpPwoiIjphLnJlcGxhY2U/YS5yZXBsYWNlKC88Lio/Pi9nLCIiKS50b0xvd2VyQ2FzZSgpOmErIiJ9LCJzdHJpbmctcHJlIjpmdW5jdGlvbihhKXtyZXR1cm4gUChhKT8iIjoic3RyaW5nIj09PXR5cGVvZiBhP2EudG9Mb3dlckNhc2UoKTphLnRvU3RyaW5nP2EudG9TdHJpbmcoKToiIn0sInN0cmluZy1hc2MiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE8Yj8tMTphPmI/MTowfSwic3RyaW5nLWRlc2MiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE8Yj8xOmE+Yj8tMTowfX0pO0hhKCIiKTtmLmV4dGVuZCghMCxxLmV4dC5yZW5kZXJlcix7aGVhZGVyOntfOmZ1bmN0aW9uKGEsYixjLGQpe2YoYS5uVGFibGUpLm9uKCJvcmRlci5kdC5EVCIsZnVuY3Rpb24oZSxmLGcsayl7YT09PWYmJihlPWMuaWR4LGIucmVtb3ZlQ2xhc3MoYy5zU29ydGluZ0NsYXNzKyIgIitkLnNTb3J0QXNjKyIgIitkLnNTb3J0RGVzYykuYWRkQ2xhc3MoImFzYyI9PWtbZV0/ZC5zU29ydEFzYzoiZGVzYyI9PWtbZV0/ZC5zU29ydERlc2M6CmMuc1NvcnRpbmdDbGFzcykpfSl9LGpxdWVyeXVpOmZ1bmN0aW9uKGEsYixjLGQpe2YoIjxkaXYvPiIpLmFkZENsYXNzKGQuc1NvcnRKVUlXcmFwcGVyKS5hcHBlbmQoYi5jb250ZW50cygpKS5hcHBlbmQoZigiPHNwYW4vPiIpLmFkZENsYXNzKGQuc1NvcnRJY29uKyIgIitjLnNTb3J0aW5nQ2xhc3NKVUkpKS5hcHBlbmRUbyhiKTtmKGEublRhYmxlKS5vbigib3JkZXIuZHQuRFQiLGZ1bmN0aW9uKGUsZixnLGspe2E9PT1mJiYoZT1jLmlkeCxiLnJlbW92ZUNsYXNzKGQuc1NvcnRBc2MrIiAiK2Quc1NvcnREZXNjKS5hZGRDbGFzcygiYXNjIj09a1tlXT9kLnNTb3J0QXNjOiJkZXNjIj09a1tlXT9kLnNTb3J0RGVzYzpjLnNTb3J0aW5nQ2xhc3MpLGIuZmluZCgic3Bhbi4iK2Quc1NvcnRJY29uKS5yZW1vdmVDbGFzcyhkLnNTb3J0SlVJQXNjKyIgIitkLnNTb3J0SlVJRGVzYysiICIrZC5zU29ydEpVSSsiICIrZC5zU29ydEpVSUFzY0FsbG93ZWQrIiAiK2Quc1NvcnRKVUlEZXNjQWxsb3dlZCkuYWRkQ2xhc3MoImFzYyI9PQprW2VdP2Quc1NvcnRKVUlBc2M6ImRlc2MiPT1rW2VdP2Quc1NvcnRKVUlEZXNjOmMuc1NvcnRpbmdDbGFzc0pVSSkpfSl9fX0pO3ZhciBpYj1mdW5jdGlvbihhKXtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiBhP2EucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKTphfTtxLnJlbmRlcj17bnVtYmVyOmZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJue2Rpc3BsYXk6ZnVuY3Rpb24oZil7aWYoIm51bWJlciIhPT10eXBlb2YgZiYmInN0cmluZyIhPT10eXBlb2YgZilyZXR1cm4gZjt2YXIgZz0wPmY/Ii0iOiIiLGg9cGFyc2VGbG9hdChmKTtpZihpc05hTihoKSlyZXR1cm4gaWIoZik7aD1oLnRvRml4ZWQoYyk7Zj1NYXRoLmFicyhoKTtoPXBhcnNlSW50KGYsMTApO2Y9Yz9iKyhmLWgpLnRvRml4ZWQoYykuc3Vic3RyaW5nKDIpOiIiO3JldHVybiBnKyhkfHwiIikraC50b1N0cmluZygpLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csCmEpK2YrKGV8fCIiKX19fSx0ZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2Rpc3BsYXk6aWIsZmlsdGVyOmlifX19O2YuZXh0ZW5kKHEuZXh0LmludGVybmFsLHtfZm5FeHRlcm5BcGlGdW5jOlFiLF9mbkJ1aWxkQWpheDp2YSxfZm5BamF4VXBkYXRlOnFiLF9mbkFqYXhQYXJhbWV0ZXJzOnpiLF9mbkFqYXhVcGRhdGVEcmF3OkFiLF9mbkFqYXhEYXRhU3JjOndhLF9mbkFkZENvbHVtbjpJYSxfZm5Db2x1bW5PcHRpb25zOm1hLF9mbkFkanVzdENvbHVtblNpemluZzphYSxfZm5WaXNpYmxlVG9Db2x1bW5JbmRleDpiYSxfZm5Db2x1bW5JbmRleFRvVmlzaWJsZTpjYSxfZm5WaXNibGVDb2x1bW5zOlcsX2ZuR2V0Q29sdW1uczpvYSxfZm5Db2x1bW5UeXBlczpLYSxfZm5BcHBseUNvbHVtbkRlZnM6bmIsX2ZuSHVuZ2FyaWFuTWFwOkgsX2ZuQ2FtZWxUb0h1bmdhcmlhbjpMLF9mbkxhbmd1YWdlQ29tcGF0OkdhLF9mbkJyb3dzZXJEZXRlY3Q6bGIsX2ZuQWRkRGF0YTpSLF9mbkFkZFRyOnBhLF9mbk5vZGVUb0RhdGFJbmRleDpmdW5jdGlvbihhLApiKXtyZXR1cm4gYi5fRFRfUm93SW5kZXghPT1wP2IuX0RUX1Jvd0luZGV4Om51bGx9LF9mbk5vZGVUb0NvbHVtbkluZGV4OmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZi5pbkFycmF5KGMsYS5hb0RhdGFbYl0uYW5DZWxscyl9LF9mbkdldENlbGxEYXRhOkksX2ZuU2V0Q2VsbERhdGE6b2IsX2ZuU3BsaXRPYmpOb3RhdGlvbjpOYSxfZm5HZXRPYmplY3REYXRhRm46VSxfZm5TZXRPYmplY3REYXRhRm46USxfZm5HZXREYXRhTWFzdGVyOk9hLF9mbkNsZWFyVGFibGU6cWEsX2ZuRGVsZXRlSW5kZXg6cmEsX2ZuSW52YWxpZGF0ZTplYSxfZm5HZXRSb3dFbGVtZW50czpNYSxfZm5DcmVhdGVUcjpMYSxfZm5CdWlsZEhlYWQ6cGIsX2ZuRHJhd0hlYWQ6aGEsX2ZuRHJhdzpTLF9mblJlRHJhdzpWLF9mbkFkZE9wdGlvbnNIdG1sOnNiLF9mbkRldGVjdEhlYWRlcjpmYSxfZm5HZXRVbmlxdWVUaHM6dWEsX2ZuRmVhdHVyZUh0bWxGaWx0ZXI6dWIsX2ZuRmlsdGVyQ29tcGxldGU6aWEsX2ZuRmlsdGVyQ3VzdG9tOkRiLApfZm5GaWx0ZXJDb2x1bW46Q2IsX2ZuRmlsdGVyOkJiLF9mbkZpbHRlckNyZWF0ZVNlYXJjaDpUYSxfZm5Fc2NhcGVSZWdleDpVYSxfZm5GaWx0ZXJEYXRhOkViLF9mbkZlYXR1cmVIdG1sSW5mbzp4YixfZm5VcGRhdGVJbmZvOkhiLF9mbkluZm9NYWNyb3M6SWIsX2ZuSW5pdGlhbGlzZTpqYSxfZm5Jbml0Q29tcGxldGU6eGEsX2ZuTGVuZ3RoQ2hhbmdlOlZhLF9mbkZlYXR1cmVIdG1sTGVuZ3RoOnRiLF9mbkZlYXR1cmVIdG1sUGFnaW5hdGU6eWIsX2ZuUGFnZUNoYW5nZTpYYSxfZm5GZWF0dXJlSHRtbFByb2Nlc3Npbmc6dmIsX2ZuUHJvY2Vzc2luZ0Rpc3BsYXk6SyxfZm5GZWF0dXJlSHRtbFRhYmxlOndiLF9mblNjcm9sbERyYXc6bmEsX2ZuQXBwbHlUb0NoaWxkcmVuOk4sX2ZuQ2FsY3VsYXRlQ29sdW1uV2lkdGhzOkphLF9mblRocm90dGxlOlNhLF9mbkNvbnZlcnRUb1dpZHRoOkpiLF9mbkdldFdpZGVzdE5vZGU6S2IsX2ZuR2V0TWF4TGVuU3RyaW5nOkxiLF9mblN0cmluZ1RvQ3NzOkIsCl9mblNvcnRGbGF0dGVuOlksX2ZuU29ydDpyYixfZm5Tb3J0QXJpYTpOYixfZm5Tb3J0TGlzdGVuZXI6WmEsX2ZuU29ydEF0dGFjaExpc3RlbmVyOlFhLF9mblNvcnRpbmdDbGFzc2VzOkFhLF9mblNvcnREYXRhOk1iLF9mblNhdmVTdGF0ZTpCYSxfZm5Mb2FkU3RhdGU6T2IsX2ZuU2V0dGluZ3NGcm9tTm9kZTpDYSxfZm5Mb2c6TyxfZm5NYXA6TSxfZm5CaW5kQWN0aW9uOiRhLF9mbkNhbGxiYWNrUmVnOkUsX2ZuQ2FsbGJhY2tGaXJlOkEsX2ZuTGVuZ3RoT3ZlcmZsb3c6V2EsX2ZuUmVuZGVyZXI6UmEsX2ZuRGF0YVNvdXJjZTpELF9mblJvd0F0dHJpYnV0ZXM6UGEsX2ZuRXh0ZW5kOmFiLF9mbkNhbGN1bGF0ZUVuZDpmdW5jdGlvbigpe319KTtmLmZuLmRhdGFUYWJsZT1xO3EuJD1mO2YuZm4uZGF0YVRhYmxlU2V0dGluZ3M9cS5zZXR0aW5ncztmLmZuLmRhdGFUYWJsZUV4dD1xLmV4dDtmLmZuLkRhdGFUYWJsZT1mdW5jdGlvbihhKXtyZXR1cm4gZih0aGlzKS5kYXRhVGFibGUoYSkuYXBpKCl9OwpmLmVhY2gocSxmdW5jdGlvbihhLGIpe2YuZm4uRGF0YVRhYmxlW2FdPWJ9KTtyZXR1cm4gZi5mbi5kYXRhVGFibGV9KTsK"></script>
<script src="data:application/x-javascript;base64,LyohCgpKU1ppcCAtIEEgSmF2YXNjcmlwdCBjbGFzcyBmb3IgZ2VuZXJhdGluZyBhbmQgcmVhZGluZyB6aXAgZmlsZXMKPGh0dHA6Ly9zdHVhcnRrLmNvbS9qc3ppcD4KCihjKSAyMDA5LTIwMTQgU3R1YXJ0IEtuaWdodGxleSA8c3R1YXJ0IFthdF0gc3R1YXJ0ay5jb20+CkR1YWwgbGljZW5jZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIG9yIEdQTHYzLiBTZWUgaHR0cHM6Ly9yYXcuZ2l0aHViLmNvbS9TdHVrL2pzemlwL21hc3Rlci9MSUNFTlNFLm1hcmtkb3duLgoKSlNaaXAgdXNlcyB0aGUgbGlicmFyeSBwYWtvIHJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSA6Cmh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlY2EvcGFrby9ibG9iL21hc3Rlci9MSUNFTlNFCiovCiFmdW5jdGlvbihhKXtpZigib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlKW1vZHVsZS5leHBvcnRzPWEoKTtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQpZGVmaW5lKFtdLGEpO2Vsc2V7dmFyIGI7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/Yj13aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Yj1nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYoYj1zZWxmKSxiLkpTWmlwPWEoKX19KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGEoYixjLGQpe2Z1bmN0aW9uIGUoZyxoKXtpZighY1tnXSl7aWYoIWJbZ10pe3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFoJiZpKXJldHVybiBpKGcsITApO2lmKGYpcmV0dXJuIGYoZywhMCk7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrZysiJyIpfXZhciBqPWNbZ109e2V4cG9ydHM6e319O2JbZ11bMF0uY2FsbChqLmV4cG9ydHMsZnVuY3Rpb24oYSl7dmFyIGM9YltnXVsxXVthXTtyZXR1cm4gZShjP2M6YSl9LGosai5leHBvcnRzLGEsYixjLGQpfXJldHVybiBjW2ddLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGc9MDtnPGQubGVuZ3RoO2crKyllKGRbZ10pO3JldHVybiBlfSh7MTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iO2MuZW5jb2RlPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjLGUsZixnLGgsaSxqPSIiLGs9MDtrPGEubGVuZ3RoOyliPWEuY2hhckNvZGVBdChrKyspLGM9YS5jaGFyQ29kZUF0KGsrKyksZT1hLmNoYXJDb2RlQXQoaysrKSxmPWI+PjIsZz0oMyZiKTw8NHxjPj40LGg9KDE1JmMpPDwyfGU+PjYsaT02MyZlLGlzTmFOKGMpP2g9aT02NDppc05hTihlKSYmKGk9NjQpLGo9aitkLmNoYXJBdChmKStkLmNoYXJBdChnKStkLmNoYXJBdChoKStkLmNoYXJBdChpKTtyZXR1cm4gan0sYy5kZWNvZGU9ZnVuY3Rpb24oYSl7dmFyIGIsYyxlLGYsZyxoLGksaj0iIixrPTA7Zm9yKGE9YS5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywiIik7azxhLmxlbmd0aDspZj1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksZz1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksaD1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksaT1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksYj1mPDwyfGc+PjQsYz0oMTUmZyk8PDR8aD4+MixlPSgzJmgpPDw2fGksais9U3RyaW5nLmZyb21DaGFyQ29kZShiKSw2NCE9aCYmKGorPVN0cmluZy5mcm9tQ2hhckNvZGUoYykpLDY0IT1pJiYoais9U3RyaW5nLmZyb21DaGFyQ29kZShlKSk7cmV0dXJuIGp9fSx7fV0sMjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYygpe3RoaXMuY29tcHJlc3NlZFNpemU9MCx0aGlzLnVuY29tcHJlc3NlZFNpemU9MCx0aGlzLmNyYzMyPTAsdGhpcy5jb21wcmVzc2lvbk1ldGhvZD1udWxsLHRoaXMuY29tcHJlc3NlZENvbnRlbnQ9bnVsbH1jLnByb3RvdHlwZT17Z2V0Q29udGVudDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxnZXRDb21wcmVzc2VkQ29udGVudDpmdW5jdGlvbigpe3JldHVybiBudWxsfX0sYi5leHBvcnRzPWN9LHt9XSwzOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2MuU1RPUkU9e21hZ2ljOiJceDAwXHgwMCIsY29tcHJlc3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LHVuY29tcHJlc3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LGNvbXByZXNzSW5wdXRUeXBlOm51bGwsdW5jb21wcmVzc0lucHV0VHlwZTpudWxsfSxjLkRFRkxBVEU9YSgiLi9mbGF0ZSIpfSx7Ii4vZmxhdGUiOjh9XSw0OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYz1hKCIuL3V0aWxzIiksZD1bMCwxOTk2OTU5ODk0LDM5OTM5MTk3ODgsMjU2NzUyNDc5NCwxMjQ2MzQxMzcsMTg4NjA1NzYxNSwzOTE1NjIxNjg1LDI2NTczOTIwMzUsMjQ5MjY4Mjc0LDIwNDQ1MDgzMjQsMzc3MjExNTIzMCwyNTQ3MTc3ODY0LDE2Mjk0MTk5NSwyMTI1NTYxMDIxLDM4ODc2MDcwNDcsMjQyODQ0NDA0OSw0OTg1MzY1NDgsMTc4OTkyNzY2Niw0MDg5MDE2NjQ4LDIyMjcwNjEyMTQsNDUwNTQ4ODYxLDE4NDMyNTg2MDMsNDEwNzU4MDc1MywyMjExNjc3NjM5LDMyNTg4Mzk5MCwxNjg0Nzc3MTUyLDQyNTExMjIwNDIsMjMyMTkyNjYzNiwzMzU2MzM0ODcsMTY2MTM2NTQ2NSw0MTk1MzAyNzU1LDIzNjYxMTUzMTcsOTk3MDczMDk2LDEyODE5NTM4ODYsMzU3OTg1NTMzMiwyNzI0Njg4MjQyLDEwMDY4ODgxNDUsMTI1ODYwNzY4NywzNTI0MTAxNjI5LDI3Njg5NDI0NDMsOTAxMDk3NzIyLDExMTkwMDA2ODQsMzY4NjUxNzIwNiwyODk4MDY1NzI4LDg1MzA0NDQ1MSwxMTcyMjY2MTAxLDM3MDUwMTU3NTksMjg4MjYxNjY2NSw2NTE3Njc5ODAsMTM3MzUwMzU0NiwzMzY5NTU0MzA0LDMyMTgxMDQ1OTgsNTY1NTA3MjUzLDE0NTQ2MjE3MzEsMzQ4NTExMTcwNSwzMDk5NDM2MzAzLDY3MTI2Njk3NCwxNTk0MTk4MDI0LDMzMjI3MzA5MzAsMjk3MDM0NzgxMiw3OTU4MzU1MjcsMTQ4MzIzMDIyNSwzMjQ0MzY3Mjc1LDMwNjAxNDk1NjUsMTk5NDE0NjE5MiwzMTE1ODUzNCwyNTYzOTA3NzcyLDQwMjM3MTc5MzAsMTkwNzQ1OTQ2NSwxMTI2MzcyMTUsMjY4MDE1MzI1MywzOTA0NDI3MDU5LDIwMTM3NzYyOTAsMjUxNzIyMDM2LDI1MTcyMTUzNzQsMzc3NTgzMDA0MCwyMTM3NjU2NzYzLDE0MTM3NjgxMywyNDM5Mjc3NzE5LDM4NjUyNzEyOTcsMTgwMjE5NTQ0NCw0NzY4NjQ4NjYsMjIzODAwMTM2OCw0MDY2NTA4ODc4LDE4MTIzNzA5MjUsNDUzMDkyNzMxLDIxODE2MjUwMjUsNDExMTQ1MTIyMywxNzA2MDg4OTAyLDMxNDA0MjcwNCwyMzQ0NTMyMjAyLDQyNDAwMTc1MzIsMTY1ODY1ODI3MSwzNjY2MTk5NzcsMjM2MjY3MDMyMyw0MjI0OTk0NDA1LDEzMDM1MzU5NjAsOTg0OTYxNDg2LDI3NDcwMDcwOTIsMzU2OTAzNzUzOCwxMjU2MTcwODE3LDEwMzc2MDQzMTEsMjc2NTIxMDczMywzNTU0MDc5OTk1LDExMzEwMTQ1MDYsODc5Njc5OTk2LDI5MDkyNDM0NjIsMzY2Mzc3MTg1NiwxMTQxMTI0NDY3LDg1NTg0MjI3NywyODUyODAxNjMxLDM3MDg2NDg2NDksMTM0MjUzMzk0OCw2NTQ0NTkzMDYsMzE4ODM5NjA0OCwzMzczMDE1MTc0LDE0NjY0Nzk5MDksNTQ0MTc5NjM1LDMxMTA1MjM5MTMsMzQ2MjUyMjAxNSwxNTkxNjcxMDU0LDcwMjEzODc3NiwyOTY2NDYwNDUwLDMzNTI3OTk0MTIsMTUwNDkxODgwNyw3ODM1NTE4NzMsMzA4MjY0MDQ0MywzMjMzNDQyOTg5LDM5ODgyOTIzODQsMjU5NjI1NDY0Niw2MjMxNzA2OCwxOTU3ODEwODQyLDM5Mzk4NDU5NDUsMjY0NzgxNjExMSw4MTQ3MDk5NywxOTQzODAzNTIzLDM4MTQ5MTg5MzAsMjQ4OTU5NjgwNCwyMjUyNzQ0MzAsMjA1Mzc5MDM3NiwzODI2MTc1NzU1LDI0NjY5MDYwMTMsMTY3ODE2NzQzLDIwOTc2NTEzNzcsNDAyNzU1MjU4MCwyMjY1NDkwMzg2LDUwMzQ0NDA3MiwxNzYyMDUwODE0LDQxNTA0MTcyNDUsMjE1NDEyOTM1NSw0MjY1MjIyMjUsMTg1MjUwNzg3OSw0Mjc1MzEzNTI2LDIzMTIzMTc5MjAsMjgyNzUzNjI2LDE3NDI1NTU4NTIsNDE4OTcwODE0MywyMzk0ODc3OTQ1LDM5NzkxNzc2MywxNjIyMTgzNjM3LDM2MDQzOTA4ODgsMjcxNDg2NjU1OCw5NTM3Mjk3MzIsMTM0MDA3NjYyNiwzNTE4NzE5OTg1LDI3OTczNjA5OTksMTA2ODgyODM4MSwxMjE5NjM4ODU5LDM2MjQ3NDE4NTAsMjkzNjY3NTE0OCw5MDYxODU0NjIsMTA5MDgxMjUxMiwzNzQ3NjcyMDAzLDI4MjUzNzk2NjksODI5MzI5MTM1LDExODEzMzUxNjEsMzQxMjE3NzgwNCwzMTYwODM0ODQyLDYyODA4NTQwOCwxMzgyNjA1MzY2LDM0MjMzNjkxMDksMzEzODA3ODQ2Nyw1NzA1NjIyMzMsMTQyNjQwMDgxNSwzMzE3MzE2NTQyLDI5OTg3MzM2MDgsNzMzMjM5OTU0LDE1NTUyNjE5NTYsMzI2ODkzNTU5MSwzMDUwMzYwNjI1LDc1MjQ1OTQwMywxNTQxMzIwMjIxLDI2MDcwNzE5MjAsMzk2NTk3MzAzMCwxOTY5OTIyOTcyLDQwNzM1NDk4LDI2MTc4MzcyMjUsMzk0MzU3NzE1MSwxOTEzMDg3ODc3LDgzOTA4MzcxLDI1MTIzNDE2MzQsMzgwMzc0MDY5MiwyMDc1MjA4NjIyLDIxMzI2MTExMiwyNDYzMjcyNjAzLDM4NTU5OTAyODUsMjA5NDg1NDA3MSwxOTg5NTg4ODEsMjI2MjAyOTAxMiw0MDU3MjYwNjEwLDE3NTkzNTk5OTIsNTM0NDE0MTkwLDIxNzY3MTg1NDEsNDEzOTMyOTExNSwxODczODM2MDAxLDQxNDY2NDU2NywyMjgyMjQ4OTM0LDQyNzkyMDAzNjgsMTcxMTY4NDU1NCwyODUyODExMTYsMjQwNTgwMTcyNyw0MTY3MjE2NzQ1LDE2MzQ0Njc3OTUsMzc2MjI5NzAxLDI2ODUwNjc4OTYsMzYwODAwNzQwNiwxMzA4OTE4NjEyLDk1NjU0MzkzOCwyODA4NTU1MTA1LDM0OTU5NTgyNjMsMTIzMTYzNjMwMSwxMDQ3NDI3MDM1LDI5MzI5NTk4MTgsMzY1NDcwMzgzNiwxMDg4MzU5MjcwLDkzNjkxOGUzLDI4NDc3MTQ4OTksMzczNjgzNzgyOSwxMjAyOTAwODYzLDgxNzIzMzg5NywzMTgzMzQyMTA4LDM0MDEyMzcxMzAsMTQwNDI3NzU1Miw2MTU4MTgxNTAsMzEzNDIwNzQ5MywzNDUzNDIxMjAzLDE0MjM4NTc0NDksNjAxNDUwNDMxLDMwMDk4Mzc2MTQsMzI5NDcxMDQ1NiwxNTY3MTAzNzQ2LDcxMTkyODcyNCwzMDIwNjY4NDcxLDMyNzIzODAwNjUsMTUxMDMzNDIzNSw3NTUxNjcxMTddO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8IWEubGVuZ3RoKXJldHVybiAwO3ZhciBlPSJzdHJpbmciIT09Yy5nZXRUeXBlT2YoYSk7InVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj0wKTt2YXIgZj0wLGc9MCxoPTA7Yj0tMV5iO2Zvcih2YXIgaT0wLGo9YS5sZW5ndGg7aj5pO2krKyloPWU/YVtpXTphLmNoYXJDb2RlQXQoaSksZz0yNTUmKGJeaCksZj1kW2ddLGI9Yj4+PjheZjtyZXR1cm4tMV5ifX0seyIuL3V0aWxzIjoyMX1dLDU6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoKXt0aGlzLmRhdGE9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMuaW5kZXg9MH12YXIgZD1hKCIuL3V0aWxzIik7Yy5wcm90b3R5cGU9e2NoZWNrT2Zmc2V0OmZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tJbmRleCh0aGlzLmluZGV4K2EpfSxjaGVja0luZGV4OmZ1bmN0aW9uKGEpe2lmKHRoaXMubGVuZ3RoPGF8fDA+YSl0aHJvdyBuZXcgRXJyb3IoIkVuZCBvZiBkYXRhIHJlYWNoZWQgKGRhdGEgbGVuZ3RoID0gIit0aGlzLmxlbmd0aCsiLCBhc2tlZCBpbmRleCA9ICIrYSsiKS4gQ29ycnVwdGVkIHppcCA/Iil9LHNldEluZGV4OmZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tJbmRleChhKSx0aGlzLmluZGV4PWF9LHNraXA6ZnVuY3Rpb24oYSl7dGhpcy5zZXRJbmRleCh0aGlzLmluZGV4K2EpfSxieXRlQXQ6ZnVuY3Rpb24oKXt9LHJlYWRJbnQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz0wO2Zvcih0aGlzLmNoZWNrT2Zmc2V0KGEpLGI9dGhpcy5pbmRleCthLTE7Yj49dGhpcy5pbmRleDtiLS0pYz0oYzw8OCkrdGhpcy5ieXRlQXQoYik7cmV0dXJuIHRoaXMuaW5kZXgrPWEsY30scmVhZFN0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gZC50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLnJlYWREYXRhKGEpKX0scmVhZERhdGE6ZnVuY3Rpb24oKXt9LGxhc3RJbmRleE9mU2lnbmF0dXJlOmZ1bmN0aW9uKCl7fSxyZWFkRGF0ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucmVhZEludCg0KTtyZXR1cm4gbmV3IERhdGUoKGE+PjI1JjEyNykrMTk4MCwoYT4+MjEmMTUpLTEsYT4+MTYmMzEsYT4+MTEmMzEsYT4+NSY2MywoMzEmYSk8PDEpfX0sYi5leHBvcnRzPWN9LHsiLi91dGlscyI6MjF9XSw2OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2MuYmFzZTY0PSExLGMuYmluYXJ5PSExLGMuZGlyPSExLGMuY3JlYXRlRm9sZGVycz0hMSxjLmRhdGU9bnVsbCxjLmNvbXByZXNzaW9uPW51bGwsYy5jb21wcmVzc2lvbk9wdGlvbnM9bnVsbCxjLmNvbW1lbnQ9bnVsbCxjLnVuaXhQZXJtaXNzaW9ucz1udWxsLGMuZG9zUGVybWlzc2lvbnM9bnVsbH0se31dLDc6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7dmFyIGQ9YSgiLi91dGlscyIpO2Muc3RyaW5nMmJpbmFyeT1mdW5jdGlvbihhKXtyZXR1cm4gZC5zdHJpbmcyYmluYXJ5KGEpfSxjLnN0cmluZzJVaW50OEFycmF5PWZ1bmN0aW9uKGEpe3JldHVybiBkLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixhKX0sYy51aW50OEFycmF5MlN0cmluZz1mdW5jdGlvbihhKXtyZXR1cm4gZC50cmFuc2Zvcm1Ubygic3RyaW5nIixhKX0sYy5zdHJpbmcyQmxvYj1mdW5jdGlvbihhKXt2YXIgYj1kLnRyYW5zZm9ybVRvKCJhcnJheWJ1ZmZlciIsYSk7cmV0dXJuIGQuYXJyYXlCdWZmZXIyQmxvYihiKX0sYy5hcnJheUJ1ZmZlcjJCbG9iPWZ1bmN0aW9uKGEpe3JldHVybiBkLmFycmF5QnVmZmVyMkJsb2IoYSl9LGMudHJhbnNmb3JtVG89ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZC50cmFuc2Zvcm1UbyhhLGIpfSxjLmdldFR5cGVPZj1mdW5jdGlvbihhKXtyZXR1cm4gZC5nZXRUeXBlT2YoYSl9LGMuY2hlY2tTdXBwb3J0PWZ1bmN0aW9uKGEpe3JldHVybiBkLmNoZWNrU3VwcG9ydChhKX0sYy5NQVhfVkFMVUVfMTZCSVRTPWQuTUFYX1ZBTFVFXzE2QklUUyxjLk1BWF9WQUxVRV8zMkJJVFM9ZC5NQVhfVkFMVUVfMzJCSVRTLGMucHJldHR5PWZ1bmN0aW9uKGEpe3JldHVybiBkLnByZXR0eShhKX0sYy5maW5kQ29tcHJlc3Npb249ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZmluZENvbXByZXNzaW9uKGEpfSxjLmlzUmVnRXhwPWZ1bmN0aW9uKGEpe3JldHVybiBkLmlzUmVnRXhwKGEpfX0seyIuL3V0aWxzIjoyMX1dLDg6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7dmFyIGQ9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQxNkFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQzMkFycmF5LGU9YSgicGFrbyIpO2MudW5jb21wcmVzc0lucHV0VHlwZT1kPyJ1aW50OGFycmF5IjoiYXJyYXkiLGMuY29tcHJlc3NJbnB1dFR5cGU9ZD8idWludDhhcnJheSI6ImFycmF5IixjLm1hZ2ljPSJcYlx4MDAiLGMuY29tcHJlc3M9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZS5kZWZsYXRlUmF3KGEse2xldmVsOmIubGV2ZWx8fC0xfSl9LGMudW5jb21wcmVzcz1mdW5jdGlvbihhKXtyZXR1cm4gZS5pbmZsYXRlUmF3KGEpfX0se3Bha286MjR9XSw5OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEsYil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBjPyh0aGlzLmZpbGVzPXt9LHRoaXMuY29tbWVudD1udWxsLHRoaXMucm9vdD0iIixhJiZ0aGlzLmxvYWQoYSxiKSx2b2lkKHRoaXMuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgYztmb3IodmFyIGIgaW4gdGhpcykiZnVuY3Rpb24iIT10eXBlb2YgdGhpc1tiXSYmKGFbYl09dGhpc1tiXSk7cmV0dXJuIGF9KSk6bmV3IGMoYSxiKX12YXIgZD1hKCIuL2Jhc2U2NCIpO2MucHJvdG90eXBlPWEoIi4vb2JqZWN0IiksYy5wcm90b3R5cGUubG9hZD1hKCIuL2xvYWQiKSxjLnN1cHBvcnQ9YSgiLi9zdXBwb3J0IiksYy5kZWZhdWx0cz1hKCIuL2RlZmF1bHRzIiksYy51dGlscz1hKCIuL2RlcHJlY2F0ZWRQdWJsaWNVdGlscyIpLGMuYmFzZTY0PXtlbmNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZW5jb2RlKGEpfSxkZWNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZGVjb2RlKGEpfX0sYy5jb21wcmVzc2lvbnM9YSgiLi9jb21wcmVzc2lvbnMiKSxiLmV4cG9ydHM9Y30seyIuL2Jhc2U2NCI6MSwiLi9jb21wcmVzc2lvbnMiOjMsIi4vZGVmYXVsdHMiOjYsIi4vZGVwcmVjYXRlZFB1YmxpY1V0aWxzIjo3LCIuL2xvYWQiOjEwLCIuL29iamVjdCI6MTMsIi4vc3VwcG9ydCI6MTd9XSwxMDpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi9iYXNlNjQiKSxkPWEoIi4vemlwRW50cmllcyIpO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe3ZhciBlLGYsZyxoO2ZvcihiPWJ8fHt9LGIuYmFzZTY0JiYoYT1jLmRlY29kZShhKSksZj1uZXcgZChhLGIpLGU9Zi5maWxlcyxnPTA7ZzxlLmxlbmd0aDtnKyspaD1lW2ddLHRoaXMuZmlsZShoLmZpbGVOYW1lLGguZGVjb21wcmVzc2VkLHtiaW5hcnk6ITAsb3B0aW1pemVkQmluYXJ5U3RyaW5nOiEwLGRhdGU6aC5kYXRlLGRpcjpoLmRpcixjb21tZW50OmguZmlsZUNvbW1lbnQubGVuZ3RoP2guZmlsZUNvbW1lbnQ6bnVsbCx1bml4UGVybWlzc2lvbnM6aC51bml4UGVybWlzc2lvbnMsZG9zUGVybWlzc2lvbnM6aC5kb3NQZXJtaXNzaW9ucyxjcmVhdGVGb2xkZXJzOmIuY3JlYXRlRm9sZGVyc30pO3JldHVybiBmLnppcENvbW1lbnQubGVuZ3RoJiYodGhpcy5jb21tZW50PWYuemlwQ29tbWVudCksdGhpc319LHsiLi9iYXNlNjQiOjEsIi4vemlwRW50cmllcyI6MjJ9XSwxMTpbZnVuY3Rpb24oYSxiKXsoZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2IuZXhwb3J0cz1mdW5jdGlvbihiLGMpe3JldHVybiBuZXcgYShiLGMpfSxiLmV4cG9ydHMudGVzdD1mdW5jdGlvbihiKXtyZXR1cm4gYS5pc0J1ZmZlcihiKX19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXI/QnVmZmVyOnZvaWQgMCl9LHt9XSwxMjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhKXt0aGlzLmRhdGE9YSx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoLHRoaXMuaW5kZXg9MH12YXIgZD1hKCIuL3VpbnQ4QXJyYXlSZWFkZXIiKTtjLnByb3RvdHlwZT1uZXcgZCxjLnByb3RvdHlwZS5yZWFkRGF0YT1mdW5jdGlvbihhKXt0aGlzLmNoZWNrT2Zmc2V0KGEpO3ZhciBiPXRoaXMuZGF0YS5zbGljZSh0aGlzLmluZGV4LHRoaXMuaW5kZXgrYSk7cmV0dXJuIHRoaXMuaW5kZXgrPWEsYn0sYi5leHBvcnRzPWN9LHsiLi91aW50OEFycmF5UmVhZGVyIjoxOH1dLDEzOltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYz1hKCIuL3N1cHBvcnQiKSxkPWEoIi4vdXRpbHMiKSxlPWEoIi4vY3JjMzIiKSxmPWEoIi4vc2lnbmF0dXJlIiksZz1hKCIuL2RlZmF1bHRzIiksaD1hKCIuL2Jhc2U2NCIpLGk9YSgiLi9jb21wcmVzc2lvbnMiKSxqPWEoIi4vY29tcHJlc3NlZE9iamVjdCIpLGs9YSgiLi9ub2RlQnVmZmVyIiksbD1hKCIuL3V0ZjgiKSxtPWEoIi4vc3RyaW5nV3JpdGVyIiksbj1hKCIuL3VpbnQ4QXJyYXlXcml0ZXIiKSxvPWZ1bmN0aW9uKGEpe2lmKGEuX2RhdGEgaW5zdGFuY2VvZiBqJiYoYS5fZGF0YT1hLl9kYXRhLmdldENvbnRlbnQoKSxhLm9wdGlvbnMuYmluYXJ5PSEwLGEub3B0aW9ucy5iYXNlNjQ9ITEsInVpbnQ4YXJyYXkiPT09ZC5nZXRUeXBlT2YoYS5fZGF0YSkpKXt2YXIgYj1hLl9kYXRhO2EuX2RhdGE9bmV3IFVpbnQ4QXJyYXkoYi5sZW5ndGgpLDAhPT1iLmxlbmd0aCYmYS5fZGF0YS5zZXQoYiwwKX1yZXR1cm4gYS5fZGF0YX0scD1mdW5jdGlvbihhKXt2YXIgYj1vKGEpLGU9ZC5nZXRUeXBlT2YoYik7cmV0dXJuInN0cmluZyI9PT1lPyFhLm9wdGlvbnMuYmluYXJ5JiZjLm5vZGVidWZmZXI/ayhiLCJ1dGYtOCIpOmEuYXNCaW5hcnkoKTpifSxxPWZ1bmN0aW9uKGEpe3ZhciBiPW8odGhpcyk7cmV0dXJuIG51bGw9PT1ifHwidW5kZWZpbmVkIj09dHlwZW9mIGI/IiI6KHRoaXMub3B0aW9ucy5iYXNlNjQmJihiPWguZGVjb2RlKGIpKSxiPWEmJnRoaXMub3B0aW9ucy5iaW5hcnk/RC51dGY4ZGVjb2RlKGIpOmQudHJhbnNmb3JtVG8oInN0cmluZyIsYiksYXx8dGhpcy5vcHRpb25zLmJpbmFyeXx8KGI9ZC50cmFuc2Zvcm1Ubygic3RyaW5nIixELnV0ZjhlbmNvZGUoYikpKSxiKX0scj1mdW5jdGlvbihhLGIsYyl7dGhpcy5uYW1lPWEsdGhpcy5kaXI9Yy5kaXIsdGhpcy5kYXRlPWMuZGF0ZSx0aGlzLmNvbW1lbnQ9Yy5jb21tZW50LHRoaXMudW5peFBlcm1pc3Npb25zPWMudW5peFBlcm1pc3Npb25zLHRoaXMuZG9zUGVybWlzc2lvbnM9Yy5kb3NQZXJtaXNzaW9ucyx0aGlzLl9kYXRhPWIsdGhpcy5vcHRpb25zPWMsdGhpcy5faW5pdGlhbE1ldGFkYXRhPXtkaXI6Yy5kaXIsZGF0ZTpjLmRhdGV9fTtyLnByb3RvdHlwZT17YXNUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHEuY2FsbCh0aGlzLCEwKX0sYXNCaW5hcnk6ZnVuY3Rpb24oKXtyZXR1cm4gcS5jYWxsKHRoaXMsITEpfSxhc05vZGVCdWZmZXI6ZnVuY3Rpb24oKXt2YXIgYT1wKHRoaXMpO3JldHVybiBkLnRyYW5zZm9ybVRvKCJub2RlYnVmZmVyIixhKX0sYXNVaW50OEFycmF5OmZ1bmN0aW9uKCl7dmFyIGE9cCh0aGlzKTtyZXR1cm4gZC50cmFuc2Zvcm1UbygidWludDhhcnJheSIsYSl9LGFzQXJyYXlCdWZmZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hc1VpbnQ4QXJyYXkoKS5idWZmZXJ9fTt2YXIgcz1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9IiI7Zm9yKGM9MDtiPmM7YysrKWQrPVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JmEpLGE+Pj49ODtyZXR1cm4gZH0sdD1mdW5jdGlvbigpe3ZhciBhLGIsYz17fTtmb3IoYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKyspZm9yKGIgaW4gYXJndW1lbnRzW2FdKWFyZ3VtZW50c1thXS5oYXNPd25Qcm9wZXJ0eShiKSYmInVuZGVmaW5lZCI9PXR5cGVvZiBjW2JdJiYoY1tiXT1hcmd1bWVudHNbYV1bYl0pO3JldHVybiBjfSx1PWZ1bmN0aW9uKGEpe3JldHVybiBhPWF8fHt9LGEuYmFzZTY0IT09ITB8fG51bGwhPT1hLmJpbmFyeSYmdm9pZCAwIT09YS5iaW5hcnl8fChhLmJpbmFyeT0hMCksYT10KGEsZyksYS5kYXRlPWEuZGF0ZXx8bmV3IERhdGUsbnVsbCE9PWEuY29tcHJlc3Npb24mJihhLmNvbXByZXNzaW9uPWEuY29tcHJlc3Npb24udG9VcHBlckNhc2UoKSksYX0sdj1mdW5jdGlvbihhLGIsYyl7dmFyIGUsZj1kLmdldFR5cGVPZihiKTtpZihjPXUoYyksInN0cmluZyI9PXR5cGVvZiBjLnVuaXhQZXJtaXNzaW9ucyYmKGMudW5peFBlcm1pc3Npb25zPXBhcnNlSW50KGMudW5peFBlcm1pc3Npb25zLDgpKSxjLnVuaXhQZXJtaXNzaW9ucyYmMTYzODQmYy51bml4UGVybWlzc2lvbnMmJihjLmRpcj0hMCksYy5kb3NQZXJtaXNzaW9ucyYmMTYmYy5kb3NQZXJtaXNzaW9ucyYmKGMuZGlyPSEwKSxjLmRpciYmKGE9eChhKSksYy5jcmVhdGVGb2xkZXJzJiYoZT13KGEpKSYmeS5jYWxsKHRoaXMsZSwhMCksYy5kaXJ8fG51bGw9PT1ifHwidW5kZWZpbmVkIj09dHlwZW9mIGIpYy5iYXNlNjQ9ITEsYy5iaW5hcnk9ITEsYj1udWxsLGY9bnVsbDtlbHNlIGlmKCJzdHJpbmciPT09ZiljLmJpbmFyeSYmIWMuYmFzZTY0JiZjLm9wdGltaXplZEJpbmFyeVN0cmluZyE9PSEwJiYoYj1kLnN0cmluZzJiaW5hcnkoYikpO2Vsc2V7aWYoYy5iYXNlNjQ9ITEsYy5iaW5hcnk9ITAsIShmfHxiIGluc3RhbmNlb2YgaikpdGhyb3cgbmV3IEVycm9yKCJUaGUgZGF0YSBvZiAnIithKyInIGlzIGluIGFuIHVuc3VwcG9ydGVkIGZvcm1hdCAhIik7ImFycmF5YnVmZmVyIj09PWYmJihiPWQudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLGIpKX12YXIgZz1uZXcgcihhLGIsYyk7cmV0dXJuIHRoaXMuZmlsZXNbYV09ZyxnfSx3PWZ1bmN0aW9uKGEpeyIvIj09YS5zbGljZSgtMSkmJihhPWEuc3Vic3RyaW5nKDAsYS5sZW5ndGgtMSkpO3ZhciBiPWEubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4gYj4wP2Euc3Vic3RyaW5nKDAsYik6IiJ9LHg9ZnVuY3Rpb24oYSl7cmV0dXJuIi8iIT1hLnNsaWNlKC0xKSYmKGErPSIvIiksYX0seT1mdW5jdGlvbihhLGIpe3JldHVybiBiPSJ1bmRlZmluZWQiIT10eXBlb2YgYj9iOiExLGE9eChhKSx0aGlzLmZpbGVzW2FdfHx2LmNhbGwodGhpcyxhLG51bGwse2RpcjohMCxjcmVhdGVGb2xkZXJzOmJ9KSx0aGlzLmZpbGVzW2FdfSx6PWZ1bmN0aW9uKGEsYixjKXt2YXIgZixnPW5ldyBqO3JldHVybiBhLl9kYXRhIGluc3RhbmNlb2Ygaj8oZy51bmNvbXByZXNzZWRTaXplPWEuX2RhdGEudW5jb21wcmVzc2VkU2l6ZSxnLmNyYzMyPWEuX2RhdGEuY3JjMzIsMD09PWcudW5jb21wcmVzc2VkU2l6ZXx8YS5kaXI/KGI9aS5TVE9SRSxnLmNvbXByZXNzZWRDb250ZW50PSIiLGcuY3JjMzI9MCk6YS5fZGF0YS5jb21wcmVzc2lvbk1ldGhvZD09PWIubWFnaWM/Zy5jb21wcmVzc2VkQ29udGVudD1hLl9kYXRhLmdldENvbXByZXNzZWRDb250ZW50KCk6KGY9YS5fZGF0YS5nZXRDb250ZW50KCksZy5jb21wcmVzc2VkQ29udGVudD1iLmNvbXByZXNzKGQudHJhbnNmb3JtVG8oYi5jb21wcmVzc0lucHV0VHlwZSxmKSxjKSkpOihmPXAoYSksKCFmfHwwPT09Zi5sZW5ndGh8fGEuZGlyKSYmKGI9aS5TVE9SRSxmPSIiKSxnLnVuY29tcHJlc3NlZFNpemU9Zi5sZW5ndGgsZy5jcmMzMj1lKGYpLGcuY29tcHJlc3NlZENvbnRlbnQ9Yi5jb21wcmVzcyhkLnRyYW5zZm9ybVRvKGIuY29tcHJlc3NJbnB1dFR5cGUsZiksYykpLGcuY29tcHJlc3NlZFNpemU9Zy5jb21wcmVzc2VkQ29udGVudC5sZW5ndGgsZy5jb21wcmVzc2lvbk1ldGhvZD1iLm1hZ2ljLGd9LEE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hO3JldHVybiBhfHwoYz1iPzE2ODkzOjMzMjA0KSwoNjU1MzUmYyk8PDE2fSxCPWZ1bmN0aW9uKGEpe3JldHVybiA2MyYoYXx8MCl9LEM9ZnVuY3Rpb24oYSxiLGMsZyxoKXt2YXIgaSxqLGssbSxuPShjLmNvbXByZXNzZWRDb250ZW50LGQudHJhbnNmb3JtVG8oInN0cmluZyIsbC51dGY4ZW5jb2RlKGIubmFtZSkpKSxvPWIuY29tbWVudHx8IiIscD1kLnRyYW5zZm9ybVRvKCJzdHJpbmciLGwudXRmOGVuY29kZShvKSkscT1uLmxlbmd0aCE9PWIubmFtZS5sZW5ndGgscj1wLmxlbmd0aCE9PW8ubGVuZ3RoLHQ9Yi5vcHRpb25zLHU9IiIsdj0iIix3PSIiO2s9Yi5faW5pdGlhbE1ldGFkYXRhLmRpciE9PWIuZGlyP2IuZGlyOnQuZGlyLG09Yi5faW5pdGlhbE1ldGFkYXRhLmRhdGUhPT1iLmRhdGU/Yi5kYXRlOnQuZGF0ZTt2YXIgeD0wLHk9MDtrJiYoeHw9MTYpLCJVTklYIj09PWg/KHk9Nzk4LHh8PUEoYi51bml4UGVybWlzc2lvbnMsaykpOih5PTIwLHh8PUIoYi5kb3NQZXJtaXNzaW9ucyxrKSksaT1tLmdldEhvdXJzKCksaTw8PTYsaXw9bS5nZXRNaW51dGVzKCksaTw8PTUsaXw9bS5nZXRTZWNvbmRzKCkvMixqPW0uZ2V0RnVsbFllYXIoKS0xOTgwLGo8PD00LGp8PW0uZ2V0TW9udGgoKSsxLGo8PD01LGp8PW0uZ2V0RGF0ZSgpLHEmJih2PXMoMSwxKStzKGUobiksNCkrbix1Kz0idXAiK3Modi5sZW5ndGgsMikrdiksciYmKHc9cygxLDEpK3ModGhpcy5jcmMzMihwKSw0KStwLHUrPSJ1YyIrcyh3Lmxlbmd0aCwyKSt3KTt2YXIgej0iIjt6Kz0iXG5ceDAwIix6Kz1xfHxyPyJceDAwXGIiOiJceDAwXHgwMCIseis9Yy5jb21wcmVzc2lvbk1ldGhvZCx6Kz1zKGksMikseis9cyhqLDIpLHorPXMoYy5jcmMzMiw0KSx6Kz1zKGMuY29tcHJlc3NlZFNpemUsNCkseis9cyhjLnVuY29tcHJlc3NlZFNpemUsNCkseis9cyhuLmxlbmd0aCwyKSx6Kz1zKHUubGVuZ3RoLDIpO3ZhciBDPWYuTE9DQUxfRklMRV9IRUFERVIreituK3UsRD1mLkNFTlRSQUxfRklMRV9IRUFERVIrcyh5LDIpK3orcyhwLmxlbmd0aCwyKSsiXHgwMFx4MDBceDAwXHgwMCIrcyh4LDQpK3MoZyw0KStuK3UrcDtyZXR1cm57ZmlsZVJlY29yZDpDLGRpclJlY29yZDpELGNvbXByZXNzZWRPYmplY3Q6Y319LEQ9e2xvYWQ6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIkxvYWQgbWV0aG9kIGlzIG5vdCBkZWZpbmVkLiBJcyB0aGUgZmlsZSBqc3ppcC1sb2FkLmpzIGluY2x1ZGVkID8iKX0sZmlsdGVyOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGY9W107Zm9yKGIgaW4gdGhpcy5maWxlcyl0aGlzLmZpbGVzLmhhc093blByb3BlcnR5KGIpJiYoZD10aGlzLmZpbGVzW2JdLGU9bmV3IHIoZC5uYW1lLGQuX2RhdGEsdChkLm9wdGlvbnMpKSxjPWIuc2xpY2UodGhpcy5yb290Lmxlbmd0aCxiLmxlbmd0aCksYi5zbGljZSgwLHRoaXMucm9vdC5sZW5ndGgpPT09dGhpcy5yb290JiZhKGMsZSkmJmYucHVzaChlKSk7cmV0dXJuIGZ9LGZpbGU6ZnVuY3Rpb24oYSxiLGMpe2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtpZihkLmlzUmVnRXhwKGEpKXt2YXIgZT1hO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihhLGIpe3JldHVybiFiLmRpciYmZS50ZXN0KGEpfSl9cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKGIsYyl7cmV0dXJuIWMuZGlyJiZiPT09YX0pWzBdfHxudWxsfXJldHVybiBhPXRoaXMucm9vdCthLHYuY2FsbCh0aGlzLGEsYixjKSx0aGlzfSxmb2xkZXI6ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIHRoaXM7aWYoZC5pc1JlZ0V4cChhKSlyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oYixjKXtyZXR1cm4gYy5kaXImJmEudGVzdChiKX0pO3ZhciBiPXRoaXMucm9vdCthLGM9eS5jYWxsKHRoaXMsYiksZT10aGlzLmNsb25lKCk7cmV0dXJuIGUucm9vdD1jLm5hbWUsZX0scmVtb3ZlOmZ1bmN0aW9uKGEpe2E9dGhpcy5yb290K2E7dmFyIGI9dGhpcy5maWxlc1thXTtpZihifHwoIi8iIT1hLnNsaWNlKC0xKSYmKGErPSIvIiksYj10aGlzLmZpbGVzW2FdKSxiJiYhYi5kaXIpZGVsZXRlIHRoaXMuZmlsZXNbYV07ZWxzZSBmb3IodmFyIGM9dGhpcy5maWx0ZXIoZnVuY3Rpb24oYixjKXtyZXR1cm4gYy5uYW1lLnNsaWNlKDAsYS5sZW5ndGgpPT09YX0pLGQ9MDtkPGMubGVuZ3RoO2QrKylkZWxldGUgdGhpcy5maWxlc1tjW2RdLm5hbWVdO3JldHVybiB0aGlzfSxnZW5lcmF0ZTpmdW5jdGlvbihhKXthPXQoYXx8e30se2Jhc2U2NDohMCxjb21wcmVzc2lvbjoiU1RPUkUiLGNvbXByZXNzaW9uT3B0aW9uczpudWxsLHR5cGU6ImJhc2U2NCIscGxhdGZvcm06IkRPUyIsY29tbWVudDpudWxsLG1pbWVUeXBlOiJhcHBsaWNhdGlvbi96aXAifSksZC5jaGVja1N1cHBvcnQoYS50eXBlKSwoImRhcndpbiI9PT1hLnBsYXRmb3JtfHwiZnJlZWJzZCI9PT1hLnBsYXRmb3JtfHwibGludXgiPT09YS5wbGF0Zm9ybXx8InN1bm9zIj09PWEucGxhdGZvcm0pJiYoYS5wbGF0Zm9ybT0iVU5JWCIpLCJ3aW4zMiI9PT1hLnBsYXRmb3JtJiYoYS5wbGF0Zm9ybT0iRE9TIik7dmFyIGIsYyxlPVtdLGc9MCxqPTAsaz1kLnRyYW5zZm9ybVRvKCJzdHJpbmciLHRoaXMudXRmOGVuY29kZShhLmNvbW1lbnR8fHRoaXMuY29tbWVudHx8IiIpKTtmb3IodmFyIGwgaW4gdGhpcy5maWxlcylpZih0aGlzLmZpbGVzLmhhc093blByb3BlcnR5KGwpKXt2YXIgbz10aGlzLmZpbGVzW2xdLHA9by5vcHRpb25zLmNvbXByZXNzaW9ufHxhLmNvbXByZXNzaW9uLnRvVXBwZXJDYXNlKCkscT1pW3BdO2lmKCFxKXRocm93IG5ldyBFcnJvcihwKyIgaXMgbm90IGEgdmFsaWQgY29tcHJlc3Npb24gbWV0aG9kICEiKTt2YXIgcj1vLm9wdGlvbnMuY29tcHJlc3Npb25PcHRpb25zfHxhLmNvbXByZXNzaW9uT3B0aW9uc3x8e30sdT16LmNhbGwodGhpcyxvLHEsciksdj1DLmNhbGwodGhpcyxsLG8sdSxnLGEucGxhdGZvcm0pO2crPXYuZmlsZVJlY29yZC5sZW5ndGgrdS5jb21wcmVzc2VkU2l6ZSxqKz12LmRpclJlY29yZC5sZW5ndGgsZS5wdXNoKHYpfXZhciB3PSIiO3c9Zi5DRU5UUkFMX0RJUkVDVE9SWV9FTkQrIlx4MDBceDAwXHgwMFx4MDAiK3MoZS5sZW5ndGgsMikrcyhlLmxlbmd0aCwyKStzKGosNCkrcyhnLDQpK3Moay5sZW5ndGgsMikrazt2YXIgeD1hLnR5cGUudG9Mb3dlckNhc2UoKTtmb3IoYj0idWludDhhcnJheSI9PT14fHwiYXJyYXlidWZmZXIiPT09eHx8ImJsb2IiPT09eHx8Im5vZGVidWZmZXIiPT09eD9uZXcgbihnK2ordy5sZW5ndGgpOm5ldyBtKGcrait3Lmxlbmd0aCksYz0wO2M8ZS5sZW5ndGg7YysrKWIuYXBwZW5kKGVbY10uZmlsZVJlY29yZCksYi5hcHBlbmQoZVtjXS5jb21wcmVzc2VkT2JqZWN0LmNvbXByZXNzZWRDb250ZW50KTtmb3IoYz0wO2M8ZS5sZW5ndGg7YysrKWIuYXBwZW5kKGVbY10uZGlyUmVjb3JkKTtiLmFwcGVuZCh3KTt2YXIgeT1iLmZpbmFsaXplKCk7c3dpdGNoKGEudHlwZS50b0xvd2VyQ2FzZSgpKXtjYXNlInVpbnQ4YXJyYXkiOmNhc2UiYXJyYXlidWZmZXIiOmNhc2Uibm9kZWJ1ZmZlciI6cmV0dXJuIGQudHJhbnNmb3JtVG8oYS50eXBlLnRvTG93ZXJDYXNlKCkseSk7Y2FzZSJibG9iIjpyZXR1cm4gZC5hcnJheUJ1ZmZlcjJCbG9iKGQudHJhbnNmb3JtVG8oImFycmF5YnVmZmVyIix5KSxhLm1pbWVUeXBlKTtjYXNlImJhc2U2NCI6cmV0dXJuIGEuYmFzZTY0P2guZW5jb2RlKHkpOnk7ZGVmYXVsdDpyZXR1cm4geX19LGNyYzMyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGUoYSxiKX0sdXRmOGVuY29kZTpmdW5jdGlvbihhKXtyZXR1cm4gZC50cmFuc2Zvcm1Ubygic3RyaW5nIixsLnV0ZjhlbmNvZGUoYSkpfSx1dGY4ZGVjb2RlOmZ1bmN0aW9uKGEpe3JldHVybiBsLnV0ZjhkZWNvZGUoYSl9fTtiLmV4cG9ydHM9RH0seyIuL2Jhc2U2NCI6MSwiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL2NvbXByZXNzaW9ucyI6MywiLi9jcmMzMiI6NCwiLi9kZWZhdWx0cyI6NiwiLi9ub2RlQnVmZmVyIjoxMSwiLi9zaWduYXR1cmUiOjE0LCIuL3N0cmluZ1dyaXRlciI6MTYsIi4vc3VwcG9ydCI6MTcsIi4vdWludDhBcnJheVdyaXRlciI6MTksIi4vdXRmOCI6MjAsIi4vdXRpbHMiOjIxfV0sMTQ6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7Yy5MT0NBTF9GSUxFX0hFQURFUj0iUEsDBCIsYy5DRU5UUkFMX0ZJTEVfSEVBREVSPSJQSwECIixjLkNFTlRSQUxfRElSRUNUT1JZX0VORD0iUEsFBiIsYy5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SPSJQSwYHIixjLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0VORD0iUEsGBiIsYy5EQVRBX0RFU0NSSVBUT1I9IlBLB1xiIn0se31dLDE1OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEsYil7dGhpcy5kYXRhPWEsYnx8KHRoaXMuZGF0YT1lLnN0cmluZzJiaW5hcnkodGhpcy5kYXRhKSksdGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aCx0aGlzLmluZGV4PTB9dmFyIGQ9YSgiLi9kYXRhUmVhZGVyIiksZT1hKCIuL3V0aWxzIik7Yy5wcm90b3R5cGU9bmV3IGQsYy5wcm90b3R5cGUuYnl0ZUF0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmRhdGEuY2hhckNvZGVBdChhKX0sYy5wcm90b3R5cGUubGFzdEluZGV4T2ZTaWduYXR1cmU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZGF0YS5sYXN0SW5kZXhPZihhKX0sYy5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oYSl7dGhpcy5jaGVja09mZnNldChhKTt2YXIgYj10aGlzLmRhdGEuc2xpY2UodGhpcy5pbmRleCx0aGlzLmluZGV4K2EpO3JldHVybiB0aGlzLmluZGV4Kz1hLGJ9LGIuZXhwb3J0cz1jfSx7Ii4vZGF0YVJlYWRlciI6NSwiLi91dGlscyI6MjF9XSwxNjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi91dGlscyIpLGQ9ZnVuY3Rpb24oKXt0aGlzLmRhdGE9W119O2QucHJvdG90eXBlPXthcHBlbmQ6ZnVuY3Rpb24oYSl7YT1jLnRyYW5zZm9ybVRvKCJzdHJpbmciLGEpLHRoaXMuZGF0YS5wdXNoKGEpfSxmaW5hbGl6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEuam9pbigiIil9fSxiLmV4cG9ydHM9ZH0seyIuL3V0aWxzIjoyMX1dLDE3OltmdW5jdGlvbihhLGIsYyl7KGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtpZihjLmJhc2U2ND0hMCxjLmFycmF5PSEwLGMuc3RyaW5nPSEwLGMuYXJyYXlidWZmZXI9InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5LGMubm9kZWJ1ZmZlcj0idW5kZWZpbmVkIiE9dHlwZW9mIGEsYy51aW50OGFycmF5PSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSwidW5kZWZpbmVkIj09dHlwZW9mIEFycmF5QnVmZmVyKWMuYmxvYj0hMTtlbHNle3ZhciBiPW5ldyBBcnJheUJ1ZmZlcigwKTt0cnl7Yy5ibG9iPTA9PT1uZXcgQmxvYihbYl0se3R5cGU6ImFwcGxpY2F0aW9uL3ppcCJ9KS5zaXplfWNhdGNoKGQpe3RyeXt2YXIgZT13aW5kb3cuQmxvYkJ1aWxkZXJ8fHdpbmRvdy5XZWJLaXRCbG9iQnVpbGRlcnx8d2luZG93Lk1vekJsb2JCdWlsZGVyfHx3aW5kb3cuTVNCbG9iQnVpbGRlcixmPW5ldyBlO2YuYXBwZW5kKGIpLGMuYmxvYj0wPT09Zi5nZXRCbG9iKCJhcHBsaWNhdGlvbi96aXAiKS5zaXplfWNhdGNoKGQpe2MuYmxvYj0hMX19fX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIEJ1ZmZlcj9CdWZmZXI6dm9pZCAwKX0se31dLDE4OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEpe2EmJih0aGlzLmRhdGE9YSx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoLHRoaXMuaW5kZXg9MCl9dmFyIGQ9YSgiLi9kYXRhUmVhZGVyIik7Yy5wcm90b3R5cGU9bmV3IGQsYy5wcm90b3R5cGUuYnl0ZUF0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmRhdGFbYV19LGMucHJvdG90eXBlLmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1hLmNoYXJDb2RlQXQoMCksYz1hLmNoYXJDb2RlQXQoMSksZD1hLmNoYXJDb2RlQXQoMiksZT1hLmNoYXJDb2RlQXQoMyksZj10aGlzLmxlbmd0aC00O2Y+PTA7LS1mKWlmKHRoaXMuZGF0YVtmXT09PWImJnRoaXMuZGF0YVtmKzFdPT09YyYmdGhpcy5kYXRhW2YrMl09PT1kJiZ0aGlzLmRhdGFbZiszXT09PWUpcmV0dXJuIGY7cmV0dXJuLTF9LGMucHJvdG90eXBlLnJlYWREYXRhPWZ1bmN0aW9uKGEpe2lmKHRoaXMuY2hlY2tPZmZzZXQoYSksMD09PWEpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO3ZhciBiPXRoaXMuZGF0YS5zdWJhcnJheSh0aGlzLmluZGV4LHRoaXMuaW5kZXgrYSk7cmV0dXJuIHRoaXMuaW5kZXgrPWEsYn0sYi5leHBvcnRzPWN9LHsiLi9kYXRhUmVhZGVyIjo1fV0sMTk6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO3ZhciBjPWEoIi4vdXRpbHMiKSxkPWZ1bmN0aW9uKGEpe3RoaXMuZGF0YT1uZXcgVWludDhBcnJheShhKSx0aGlzLmluZGV4PTB9O2QucHJvdG90eXBlPXthcHBlbmQ6ZnVuY3Rpb24oYSl7MCE9PWEubGVuZ3RoJiYoYT1jLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixhKSx0aGlzLmRhdGEuc2V0KGEsdGhpcy5pbmRleCksdGhpcy5pbmRleCs9YS5sZW5ndGgpfSxmaW5hbGl6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGF9fSxiLmV4cG9ydHM9ZH0seyIuL3V0aWxzIjoyMX1dLDIwOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Zvcih2YXIgZD1hKCIuL3V0aWxzIiksZT1hKCIuL3N1cHBvcnQiKSxmPWEoIi4vbm9kZUJ1ZmZlciIpLGc9bmV3IEFycmF5KDI1NiksaD0wOzI1Nj5oO2grKylnW2hdPWg+PTI1Mj82Omg+PTI0OD81Omg+PTI0MD80Omg+PTIyND8zOmg+PTE5Mj8yOjE7Z1syNTRdPWdbMjU0XT0xO3ZhciBpPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxmLGcsaD1hLmxlbmd0aCxpPTA7Zm9yKGY9MDtoPmY7ZisrKWM9YS5jaGFyQ29kZUF0KGYpLDU1Mjk2PT09KDY0NTEyJmMpJiZoPmYrMSYmKGQ9YS5jaGFyQ29kZUF0KGYrMSksNTYzMjA9PT0oNjQ1MTImZCkmJihjPTY1NTM2KyhjLTU1Mjk2PDwxMCkrKGQtNTYzMjApLGYrKykpLGkrPTEyOD5jPzE6MjA0OD5jPzI6NjU1MzY+Yz8zOjQ7Zm9yKGI9ZS51aW50OGFycmF5P25ldyBVaW50OEFycmF5KGkpOm5ldyBBcnJheShpKSxnPTAsZj0wO2k+ZztmKyspYz1hLmNoYXJDb2RlQXQoZiksNTUyOTY9PT0oNjQ1MTImYykmJmg+ZisxJiYoZD1hLmNoYXJDb2RlQXQoZisxKSw1NjMyMD09PSg2NDUxMiZkKSYmKGM9NjU1MzYrKGMtNTUyOTY8PDEwKSsoZC01NjMyMCksZisrKSksMTI4PmM/YltnKytdPWM6MjA0OD5jPyhiW2crK109MTkyfGM+Pj42LGJbZysrXT0xMjh8NjMmYyk6NjU1MzY+Yz8oYltnKytdPTIyNHxjPj4+MTIsYltnKytdPTEyOHxjPj4+NiY2MyxiW2crK109MTI4fDYzJmMpOihiW2crK109MjQwfGM+Pj4xOCxiW2crK109MTI4fGM+Pj4xMiY2MyxiW2crK109MTI4fGM+Pj42JjYzLGJbZysrXT0xMjh8NjMmYyk7cmV0dXJuIGJ9LGo9ZnVuY3Rpb24oYSxiKXt2YXIgYztmb3IoYj1ifHxhLmxlbmd0aCxiPmEubGVuZ3RoJiYoYj1hLmxlbmd0aCksYz1iLTE7Yz49MCYmMTI4PT09KDE5MiZhW2NdKTspYy0tO3JldHVybiAwPmM/YjowPT09Yz9iOmMrZ1thW2NdXT5iP2M6Yn0saz1mdW5jdGlvbihhKXt2YXIgYixjLGUsZixoPWEubGVuZ3RoLGk9bmV3IEFycmF5KDIqaCk7Zm9yKGM9MCxiPTA7aD5iOylpZihlPWFbYisrXSwxMjg+ZSlpW2MrK109ZTtlbHNlIGlmKGY9Z1tlXSxmPjQpaVtjKytdPTY1NTMzLGIrPWYtMTtlbHNle2ZvcihlJj0yPT09Zj8zMTozPT09Zj8xNTo3O2Y+MSYmaD5iOyllPWU8PDZ8NjMmYVtiKytdLGYtLTtmPjE/aVtjKytdPTY1NTMzOjY1NTM2PmU/aVtjKytdPWU6KGUtPTY1NTM2LGlbYysrXT01NTI5NnxlPj4xMCYxMDIzLGlbYysrXT01NjMyMHwxMDIzJmUpfXJldHVybiBpLmxlbmd0aCE9PWMmJihpLnN1YmFycmF5P2k9aS5zdWJhcnJheSgwLGMpOmkubGVuZ3RoPWMpLGQuYXBwbHlGcm9tQ2hhckNvZGUoaSl9O2MudXRmOGVuY29kZT1mdW5jdGlvbihhKXtyZXR1cm4gZS5ub2RlYnVmZmVyP2YoYSwidXRmLTgiKTppKGEpfSxjLnV0ZjhkZWNvZGU9ZnVuY3Rpb24oYSl7aWYoZS5ub2RlYnVmZmVyKXJldHVybiBkLnRyYW5zZm9ybVRvKCJub2RlYnVmZmVyIixhKS50b1N0cmluZygidXRmLTgiKTthPWQudHJhbnNmb3JtVG8oZS51aW50OGFycmF5PyJ1aW50OGFycmF5IjoiYXJyYXkiLGEpO2Zvcih2YXIgYj1bXSxjPTAsZj1hLmxlbmd0aCxnPTY1NTM2O2Y+Yzspe3ZhciBoPWooYSxNYXRoLm1pbihjK2csZikpO2IucHVzaChlLnVpbnQ4YXJyYXk/ayhhLnN1YmFycmF5KGMsaCkpOmsoYS5zbGljZShjLGgpKSksYz1ofXJldHVybiBiLmpvaW4oIiIpfX0seyIuL25vZGVCdWZmZXIiOjExLCIuL3N1cHBvcnQiOjE3LCIuL3V0aWxzIjoyMX1dLDIxOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7cmV0dXJuIGF9ZnVuY3Rpb24gZShhLGIpe2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7KytjKWJbY109MjU1JmEuY2hhckNvZGVBdChjKTtyZXR1cm4gYn1mdW5jdGlvbiBmKGEpe3ZhciBiPTY1NTM2LGQ9W10sZT1hLmxlbmd0aCxmPWMuZ2V0VHlwZU9mKGEpLGc9MCxoPSEwO3RyeXtzd2l0Y2goZil7Y2FzZSJ1aW50OGFycmF5IjpTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoMCkpO2JyZWFrO2Nhc2Uibm9kZWJ1ZmZlciI6U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGooMCkpfX1jYXRjaChpKXtoPSExfWlmKCFoKXtmb3IodmFyIGs9IiIsbD0wO2w8YS5sZW5ndGg7bCsrKWsrPVN0cmluZy5mcm9tQ2hhckNvZGUoYVtsXSk7cmV0dXJuIGt9Zm9yKDtlPmcmJmI+MTspdHJ5e2QucHVzaCgiYXJyYXkiPT09Znx8Im5vZGVidWZmZXIiPT09Zj9TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYS5zbGljZShnLE1hdGgubWluKGcrYixlKSkpOlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhLnN1YmFycmF5KGcsTWF0aC5taW4oZytiLGUpKSkpLGcrPWJ9Y2F0Y2goaSl7Yj1NYXRoLmZsb29yKGIvMil9cmV0dXJuIGQuam9pbigiIil9ZnVuY3Rpb24gZyhhLGIpe2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWJbY109YVtjXTtyZXR1cm4gYn12YXIgaD1hKCIuL3N1cHBvcnQiKSxpPWEoIi4vY29tcHJlc3Npb25zIiksaj1hKCIuL25vZGVCdWZmZXIiKTtjLnN0cmluZzJiaW5hcnk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPSIiLGM9MDtjPGEubGVuZ3RoO2MrKyliKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSZhLmNoYXJDb2RlQXQoYykpO3JldHVybiBifSxjLmFycmF5QnVmZmVyMkJsb2I9ZnVuY3Rpb24oYSxiKXtjLmNoZWNrU3VwcG9ydCgiYmxvYiIpLGI9Ynx8ImFwcGxpY2F0aW9uL3ppcCI7dHJ5e3JldHVybiBuZXcgQmxvYihbYV0se3R5cGU6Yn0pfWNhdGNoKGQpe3RyeXt2YXIgZT13aW5kb3cuQmxvYkJ1aWxkZXJ8fHdpbmRvdy5XZWJLaXRCbG9iQnVpbGRlcnx8d2luZG93Lk1vekJsb2JCdWlsZGVyfHx3aW5kb3cuTVNCbG9iQnVpbGRlcixmPW5ldyBlO3JldHVybiBmLmFwcGVuZChhKSxmLmdldEJsb2IoYil9Y2F0Y2goZCl7dGhyb3cgbmV3IEVycm9yKCJCdWcgOiBjYW4ndCBjb25zdHJ1Y3QgdGhlIEJsb2IuIil9fX0sYy5hcHBseUZyb21DaGFyQ29kZT1mO3ZhciBrPXt9O2suc3RyaW5nPXtzdHJpbmc6ZCxhcnJheTpmdW5jdGlvbihhKXtyZXR1cm4gZShhLG5ldyBBcnJheShhLmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gay5zdHJpbmcudWludDhhcnJheShhKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSxuZXcgVWludDhBcnJheShhLmxlbmd0aCkpfSxub2RlYnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBlKGEsaihhLmxlbmd0aCkpfX0say5hcnJheT17c3RyaW5nOmYsYXJyYXk6ZCxhcnJheWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhBcnJheShhKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gaihhKX19LGsuYXJyYXlidWZmZXI9e3N0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gZihuZXcgVWludDhBcnJheShhKSl9LGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBnKG5ldyBVaW50OEFycmF5KGEpLG5ldyBBcnJheShhLmJ5dGVMZW5ndGgpKX0sYXJyYXlidWZmZXI6ZCx1aW50OGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhBcnJheShhKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gaihuZXcgVWludDhBcnJheShhKSl9fSxrLnVpbnQ4YXJyYXk9e3N0cmluZzpmLGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBnKGEsbmV3IEFycmF5KGEubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBhLmJ1ZmZlcn0sdWludDhhcnJheTpkLG5vZGVidWZmZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGooYSl9fSxrLm5vZGVidWZmZXI9e3N0cmluZzpmLGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBnKGEsbmV3IEFycmF5KGEubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBrLm5vZGVidWZmZXIudWludDhhcnJheShhKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGcoYSxuZXcgVWludDhBcnJheShhLmxlbmd0aCkpfSxub2RlYnVmZmVyOmR9LGMudHJhbnNmb3JtVG89ZnVuY3Rpb24oYSxiKXtpZihifHwoYj0iIiksIWEpcmV0dXJuIGI7Yy5jaGVja1N1cHBvcnQoYSk7dmFyIGQ9Yy5nZXRUeXBlT2YoYiksZT1rW2RdW2FdKGIpO3JldHVybiBlfSxjLmdldFR5cGVPZj1mdW5jdGlvbihhKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGE/InN0cmluZyI6IltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT8iYXJyYXkiOmgubm9kZWJ1ZmZlciYmai50ZXN0KGEpPyJub2RlYnVmZmVyIjpoLnVpbnQ4YXJyYXkmJmEgaW5zdGFuY2VvZiBVaW50OEFycmF5PyJ1aW50OGFycmF5IjpoLmFycmF5YnVmZmVyJiZhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/ImFycmF5YnVmZmVyIjp2b2lkIDB9LGMuY2hlY2tTdXBwb3J0PWZ1bmN0aW9uKGEpe3ZhciBiPWhbYS50b0xvd2VyQ2FzZSgpXTtpZighYil0aHJvdyBuZXcgRXJyb3IoYSsiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyIil9LGMuTUFYX1ZBTFVFXzE2QklUUz02NTUzNSxjLk1BWF9WQUxVRV8zMkJJVFM9LTEsYy5wcmV0dHk9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPSIiO2ZvcihjPTA7YzwoYXx8IiIpLmxlbmd0aDtjKyspYj1hLmNoYXJDb2RlQXQoYyksZCs9IlxceCIrKDE2PmI/IjAiOiIiKStiLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiBkfSxjLmZpbmRDb21wcmVzc2lvbj1mdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gaSlpZihpLmhhc093blByb3BlcnR5KGIpJiZpW2JdLm1hZ2ljPT09YSlyZXR1cm4gaVtiXTtyZXR1cm4gbnVsbH0sYy5pc1JlZ0V4cD1mdW5jdGlvbihhKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKX19LHsiLi9jb21wcmVzc2lvbnMiOjMsIi4vbm9kZUJ1ZmZlciI6MTEsIi4vc3VwcG9ydCI6MTd9XSwyMjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhLGIpe3RoaXMuZmlsZXM9W10sdGhpcy5sb2FkT3B0aW9ucz1iLGEmJnRoaXMubG9hZChhKX12YXIgZD1hKCIuL3N0cmluZ1JlYWRlciIpLGU9YSgiLi9ub2RlQnVmZmVyUmVhZGVyIiksZj1hKCIuL3VpbnQ4QXJyYXlSZWFkZXIiKSxnPWEoIi4vdXRpbHMiKSxoPWEoIi4vc2lnbmF0dXJlIiksaT1hKCIuL3ppcEVudHJ5Iiksaj1hKCIuL3N1cHBvcnQiKSxrPWEoIi4vb2JqZWN0Iik7Yy5wcm90b3R5cGU9e2NoZWNrU2lnbmF0dXJlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucmVhZGVyLnJlYWRTdHJpbmcoNCk7aWYoYiE9PWEpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIG9yIGJ1ZyA6IHVuZXhwZWN0ZWQgc2lnbmF0dXJlICgiK2cucHJldHR5KGIpKyIsIGV4cGVjdGVkICIrZy5wcmV0dHkoYSkrIikiKX0scmVhZEJsb2NrRW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dGhpcy5kaXNrTnVtYmVyPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNrPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyUmVjb3Jkcz10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclNpemU9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLnppcENvbW1lbnRMZW5ndGg9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLnppcENvbW1lbnQ9dGhpcy5yZWFkZXIucmVhZFN0cmluZyh0aGlzLnppcENvbW1lbnRMZW5ndGgpLHRoaXMuemlwQ29tbWVudD1rLnV0ZjhkZWNvZGUodGhpcy56aXBDb21tZW50KX0scmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt0aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMudmVyc2lvbk1hZGVCeT10aGlzLnJlYWRlci5yZWFkU3RyaW5nKDIpLHRoaXMudmVyc2lvbk5lZWRlZD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuZGlza051bWJlcj10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpclJlY29yZHM9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5jZW50cmFsRGlyT2Zmc2V0PXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy56aXA2NEV4dGVuc2libGVEYXRhPXt9O2Zvcih2YXIgYSxiLGMsZD10aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZS00NCxlPTA7ZD5lOylhPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksYj10aGlzLnJlYWRlci5yZWFkSW50KDQpLGM9dGhpcy5yZWFkZXIucmVhZFN0cmluZyhiKSx0aGlzLnppcDY0RXh0ZW5zaWJsZURhdGFbYV09e2lkOmEsbGVuZ3RoOmIsdmFsdWU6Y319LHJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcjpmdW5jdGlvbigpe2lmKHRoaXMuZGlza1dpdGhaaXA2NENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpcj10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuZGlza3NDb3VudD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza3NDb3VudD4xKXRocm93IG5ldyBFcnJvcigiTXVsdGktdm9sdW1lcyB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKX0scmVhZExvY2FsRmlsZXM6ZnVuY3Rpb24oKXt2YXIgYSxiO2ZvcihhPTA7YTx0aGlzLmZpbGVzLmxlbmd0aDthKyspYj10aGlzLmZpbGVzW2FdLHRoaXMucmVhZGVyLnNldEluZGV4KGIubG9jYWxIZWFkZXJPZmZzZXQpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5MT0NBTF9GSUxFX0hFQURFUiksYi5yZWFkTG9jYWxQYXJ0KHRoaXMucmVhZGVyKSxiLmhhbmRsZVVURjgoKSxiLnByb2Nlc3NBdHRyaWJ1dGVzKCl9LHJlYWRDZW50cmFsRGlyOmZ1bmN0aW9uKCl7dmFyIGE7Zm9yKHRoaXMucmVhZGVyLnNldEluZGV4KHRoaXMuY2VudHJhbERpck9mZnNldCk7dGhpcy5yZWFkZXIucmVhZFN0cmluZyg0KT09PWguQ0VOVFJBTF9GSUxFX0hFQURFUjspYT1uZXcgaSh7emlwNjQ6dGhpcy56aXA2NH0sdGhpcy5sb2FkT3B0aW9ucyksYS5yZWFkQ2VudHJhbFBhcnQodGhpcy5yZWFkZXIpLHRoaXMuZmlsZXMucHVzaChhKX0scmVhZEVuZE9mQ2VudHJhbDpmdW5jdGlvbigpe3ZhciBhPXRoaXMucmVhZGVyLmxhc3RJbmRleE9mU2lnbmF0dXJlKGguQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKTtpZigtMT09PWEpe3ZhciBiPSEwO3RyeXt0aGlzLnJlYWRlci5zZXRJbmRleCgwKSx0aGlzLmNoZWNrU2lnbmF0dXJlKGguTE9DQUxfRklMRV9IRUFERVIpLGI9ITF9Y2F0Y2goYyl7fXRocm93IG5ldyBFcnJvcihiPyJDYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSA6IGlzIHRoaXMgYSB6aXAgZmlsZSA/IElmIGl0IGlzLCBzZWUgaHR0cDovL3N0dWsuZ2l0aHViLmlvL2pzemlwL2RvY3VtZW50YXRpb24vaG93dG8vcmVhZF96aXAuaHRtbCI6IkNvcnJ1cHRlZCB6aXAgOiBjYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSIpfWlmKHRoaXMucmVhZGVyLnNldEluZGV4KGEpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrRW5kT2ZDZW50cmFsKCksdGhpcy5kaXNrTnVtYmVyPT09Zy5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PT09Zy5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz09PWcuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyUmVjb3Jkcz09PWcuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyU2l6ZT09PWcuTUFYX1ZBTFVFXzMyQklUU3x8dGhpcy5jZW50cmFsRGlyT2Zmc2V0PT09Zy5NQVhfVkFMVUVfMzJCSVRTKXtpZih0aGlzLnppcDY0PSEwLGE9dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1cmUoaC5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SKSwtMT09PWEpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogY2FuJ3QgZmluZCB0aGUgWklQNjQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5IGxvY2F0b3IiKTt0aGlzLnJlYWRlci5zZXRJbmRleChhKSx0aGlzLmNoZWNrU2lnbmF0dXJlKGguWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUiksdGhpcy5yZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbExvY2F0b3IoKSx0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXIpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWwoKX19LHByZXBhcmVSZWFkZXI6ZnVuY3Rpb24oYSl7dmFyIGI9Zy5nZXRUeXBlT2YoYSk7dGhpcy5yZWFkZXI9InN0cmluZyIhPT1ifHxqLnVpbnQ4YXJyYXk/Im5vZGVidWZmZXIiPT09Yj9uZXcgZShhKTpuZXcgZihnLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixhKSk6bmV3IGQoYSx0aGlzLmxvYWRPcHRpb25zLm9wdGltaXplZEJpbmFyeVN0cmluZyl9LGxvYWQ6ZnVuY3Rpb24oYSl7dGhpcy5wcmVwYXJlUmVhZGVyKGEpLHRoaXMucmVhZEVuZE9mQ2VudHJhbCgpLHRoaXMucmVhZENlbnRyYWxEaXIoKSx0aGlzLnJlYWRMb2NhbEZpbGVzKCl9fSxiLmV4cG9ydHM9Y30seyIuL25vZGVCdWZmZXJSZWFkZXIiOjEyLCIuL29iamVjdCI6MTMsIi4vc2lnbmF0dXJlIjoxNCwiLi9zdHJpbmdSZWFkZXIiOjE1LCIuL3N1cHBvcnQiOjE3LCIuL3VpbnQ4QXJyYXlSZWFkZXIiOjE4LCIuL3V0aWxzIjoyMSwiLi96aXBFbnRyeSI6MjN9XSwyMzpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhLGIpe3RoaXMub3B0aW9ucz1hLHRoaXMubG9hZE9wdGlvbnM9Yn12YXIgZD1hKCIuL3N0cmluZ1JlYWRlciIpLGU9YSgiLi91dGlscyIpLGY9YSgiLi9jb21wcmVzc2VkT2JqZWN0IiksZz1hKCIuL29iamVjdCIpLGg9MCxpPTM7Yy5wcm90b3R5cGU9e2lzRW5jcnlwdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT0oMSZ0aGlzLmJpdEZsYWcpfSx1c2VVVEY4OmZ1bmN0aW9uKCl7cmV0dXJuIDIwNDg9PT0oMjA0OCZ0aGlzLmJpdEZsYWcpfSxwcmVwYXJlQ29tcHJlc3NlZENvbnRlbnQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbigpe3ZhciBkPWEuaW5kZXg7YS5zZXRJbmRleChiKTt2YXIgZT1hLnJlYWREYXRhKGMpO3JldHVybiBhLnNldEluZGV4KGQpLGV9fSxwcmVwYXJlQ29udGVudDpmdW5jdGlvbihhLGIsYyxkLGYpe3JldHVybiBmdW5jdGlvbigpe3ZhciBhPWUudHJhbnNmb3JtVG8oZC51bmNvbXByZXNzSW5wdXRUeXBlLHRoaXMuZ2V0Q29tcHJlc3NlZENvbnRlbnQoKSksYj1kLnVuY29tcHJlc3MoYSk7aWYoYi5sZW5ndGghPT1mKXRocm93IG5ldyBFcnJvcigiQnVnIDogdW5jb21wcmVzc2VkIGRhdGEgc2l6ZSBtaXNtYXRjaCIpO3JldHVybiBifX0scmVhZExvY2FsUGFydDpmdW5jdGlvbihhKXt2YXIgYixjO2lmKGEuc2tpcCgyMiksdGhpcy5maWxlTmFtZUxlbmd0aD1hLnJlYWRJbnQoMiksYz1hLnJlYWRJbnQoMiksdGhpcy5maWxlTmFtZT1hLnJlYWRTdHJpbmcodGhpcy5maWxlTmFtZUxlbmd0aCksYS5za2lwKGMpLC0xPT10aGlzLmNvbXByZXNzZWRTaXplfHwtMT09dGhpcy51bmNvbXByZXNzZWRTaXplKXRocm93IG5ldyBFcnJvcigiQnVnIG9yIGNvcnJ1cHRlZCB6aXAgOiBkaWRuJ3QgZ2V0IGVub3VnaCBpbmZvcm1hdGlvbnMgZnJvbSB0aGUgY2VudHJhbCBkaXJlY3RvcnkgKGNvbXByZXNzZWRTaXplID09IC0xIHx8IHVuY29tcHJlc3NlZFNpemUgPT0gLTEpIik7aWYoYj1lLmZpbmRDb21wcmVzc2lvbih0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSxudWxsPT09Yil0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgOiBjb21wcmVzc2lvbiAiK2UucHJldHR5KHRoaXMuY29tcHJlc3Npb25NZXRob2QpKyIgdW5rbm93biAoaW5uZXIgZmlsZSA6ICIrdGhpcy5maWxlTmFtZSsiKSIpO2lmKHRoaXMuZGVjb21wcmVzc2VkPW5ldyBmLHRoaXMuZGVjb21wcmVzc2VkLmNvbXByZXNzZWRTaXplPXRoaXMuY29tcHJlc3NlZFNpemUsdGhpcy5kZWNvbXByZXNzZWQudW5jb21wcmVzc2VkU2l6ZT10aGlzLnVuY29tcHJlc3NlZFNpemUsdGhpcy5kZWNvbXByZXNzZWQuY3JjMzI9dGhpcy5jcmMzMix0aGlzLmRlY29tcHJlc3NlZC5jb21wcmVzc2lvbk1ldGhvZD10aGlzLmNvbXByZXNzaW9uTWV0aG9kLHRoaXMuZGVjb21wcmVzc2VkLmdldENvbXByZXNzZWRDb250ZW50PXRoaXMucHJlcGFyZUNvbXByZXNzZWRDb250ZW50KGEsYS5pbmRleCx0aGlzLmNvbXByZXNzZWRTaXplLGIpLHRoaXMuZGVjb21wcmVzc2VkLmdldENvbnRlbnQ9dGhpcy5wcmVwYXJlQ29udGVudChhLGEuaW5kZXgsdGhpcy5jb21wcmVzc2VkU2l6ZSxiLHRoaXMudW5jb21wcmVzc2VkU2l6ZSksdGhpcy5sb2FkT3B0aW9ucy5jaGVja0NSQzMyJiYodGhpcy5kZWNvbXByZXNzZWQ9ZS50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLmRlY29tcHJlc3NlZC5nZXRDb250ZW50KCkpLGcuY3JjMzIodGhpcy5kZWNvbXByZXNzZWQpIT09dGhpcy5jcmMzMikpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogQ1JDMzIgbWlzbWF0Y2giKX0scmVhZENlbnRyYWxQYXJ0OmZ1bmN0aW9uKGEpe2lmKHRoaXMudmVyc2lvbk1hZGVCeT1hLnJlYWRJbnQoMiksdGhpcy52ZXJzaW9uTmVlZGVkPWEucmVhZEludCgyKSx0aGlzLmJpdEZsYWc9YS5yZWFkSW50KDIpLHRoaXMuY29tcHJlc3Npb25NZXRob2Q9YS5yZWFkU3RyaW5nKDIpLHRoaXMuZGF0ZT1hLnJlYWREYXRlKCksdGhpcy5jcmMzMj1hLnJlYWRJbnQoNCksdGhpcy5jb21wcmVzc2VkU2l6ZT1hLnJlYWRJbnQoNCksdGhpcy51bmNvbXByZXNzZWRTaXplPWEucmVhZEludCg0KSx0aGlzLmZpbGVOYW1lTGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmV4dHJhRmllbGRzTGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmZpbGVDb21tZW50TGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmRpc2tOdW1iZXJTdGFydD1hLnJlYWRJbnQoMiksdGhpcy5pbnRlcm5hbEZpbGVBdHRyaWJ1dGVzPWEucmVhZEludCgyKSx0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM9YS5yZWFkSW50KDQpLHRoaXMubG9jYWxIZWFkZXJPZmZzZXQ9YS5yZWFkSW50KDQpLHRoaXMuaXNFbmNyeXB0ZWQoKSl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRlZCB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKTt0aGlzLmZpbGVOYW1lPWEucmVhZFN0cmluZyh0aGlzLmZpbGVOYW1lTGVuZ3RoKSx0aGlzLnJlYWRFeHRyYUZpZWxkcyhhKSx0aGlzLnBhcnNlWklQNjRFeHRyYUZpZWxkKGEpLHRoaXMuZmlsZUNvbW1lbnQ9YS5yZWFkU3RyaW5nKHRoaXMuZmlsZUNvbW1lbnRMZW5ndGgpfSxwcm9jZXNzQXR0cmlidXRlczpmdW5jdGlvbigpe3RoaXMudW5peFBlcm1pc3Npb25zPW51bGwsdGhpcy5kb3NQZXJtaXNzaW9ucz1udWxsO3ZhciBhPXRoaXMudmVyc2lvbk1hZGVCeT4+ODt0aGlzLmRpcj0xNiZ0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM/ITA6ITEsYT09PWgmJih0aGlzLmRvc1Blcm1pc3Npb25zPTYzJnRoaXMuZXh0ZXJuYWxGaWxlQXR0cmlidXRlcyksYT09PWkmJih0aGlzLnVuaXhQZXJtaXNzaW9ucz10aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM+PjE2JjY1NTM1KSx0aGlzLmRpcnx8Ii8iIT09dGhpcy5maWxlTmFtZS5zbGljZSgtMSl8fCh0aGlzLmRpcj0hMCl9LHBhcnNlWklQNjRFeHRyYUZpZWxkOmZ1bmN0aW9uKCl7aWYodGhpcy5leHRyYUZpZWxkc1sxXSl7dmFyIGE9bmV3IGQodGhpcy5leHRyYUZpZWxkc1sxXS52YWx1ZSk7dGhpcy51bmNvbXByZXNzZWRTaXplPT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy51bmNvbXByZXNzZWRTaXplPWEucmVhZEludCg4KSksdGhpcy5jb21wcmVzc2VkU2l6ZT09PWUuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMuY29tcHJlc3NlZFNpemU9YS5yZWFkSW50KDgpKSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5sb2NhbEhlYWRlck9mZnNldD1hLnJlYWRJbnQoOCkpLHRoaXMuZGlza051bWJlclN0YXJ0PT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5kaXNrTnVtYmVyU3RhcnQ9YS5yZWFkSW50KDQpKX19LHJlYWRFeHRyYUZpZWxkczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT1hLmluZGV4O2Zvcih0aGlzLmV4dHJhRmllbGRzPXRoaXMuZXh0cmFGaWVsZHN8fHt9O2EuaW5kZXg8ZSt0aGlzLmV4dHJhRmllbGRzTGVuZ3RoOyliPWEucmVhZEludCgyKSxjPWEucmVhZEludCgyKSxkPWEucmVhZFN0cmluZyhjKSx0aGlzLmV4dHJhRmllbGRzW2JdPXtpZDpiLGxlbmd0aDpjLHZhbHVlOmR9fSxoYW5kbGVVVEY4OmZ1bmN0aW9uKCl7aWYodGhpcy51c2VVVEY4KCkpdGhpcy5maWxlTmFtZT1nLnV0ZjhkZWNvZGUodGhpcy5maWxlTmFtZSksdGhpcy5maWxlQ29tbWVudD1nLnV0ZjhkZWNvZGUodGhpcy5maWxlQ29tbWVudCk7ZWxzZXt2YXIgYT10aGlzLmZpbmRFeHRyYUZpZWxkVW5pY29kZVBhdGgoKTtudWxsIT09YSYmKHRoaXMuZmlsZU5hbWU9YSk7dmFyIGI9dGhpcy5maW5kRXh0cmFGaWVsZFVuaWNvZGVDb21tZW50KCk7bnVsbCE9PWImJih0aGlzLmZpbGVDb21tZW50PWIpfX0sZmluZEV4dHJhRmllbGRVbmljb2RlUGF0aDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZXh0cmFGaWVsZHNbMjg3ODldO2lmKGEpe3ZhciBiPW5ldyBkKGEudmFsdWUpO3JldHVybiAxIT09Yi5yZWFkSW50KDEpP251bGw6Zy5jcmMzMih0aGlzLmZpbGVOYW1lKSE9PWIucmVhZEludCg0KT9udWxsOmcudXRmOGRlY29kZShiLnJlYWRTdHJpbmcoYS5sZW5ndGgtNSkpCn1yZXR1cm4gbnVsbH0sZmluZEV4dHJhRmllbGRVbmljb2RlQ29tbWVudDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZXh0cmFGaWVsZHNbMjU0NjFdO2lmKGEpe3ZhciBiPW5ldyBkKGEudmFsdWUpO3JldHVybiAxIT09Yi5yZWFkSW50KDEpP251bGw6Zy5jcmMzMih0aGlzLmZpbGVDb21tZW50KSE9PWIucmVhZEludCg0KT9udWxsOmcudXRmOGRlY29kZShiLnJlYWRTdHJpbmcoYS5sZW5ndGgtNSkpfXJldHVybiBudWxsfX0sYi5leHBvcnRzPWN9LHsiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL29iamVjdCI6MTMsIi4vc3RyaW5nUmVhZGVyIjoxNSwiLi91dGlscyI6MjF9XSwyNDpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi9saWIvdXRpbHMvY29tbW9uIikuYXNzaWduLGQ9YSgiLi9saWIvZGVmbGF0ZSIpLGU9YSgiLi9saWIvaW5mbGF0ZSIpLGY9YSgiLi9saWIvemxpYi9jb25zdGFudHMiKSxnPXt9O2MoZyxkLGUsZiksYi5leHBvcnRzPWd9LHsiLi9saWIvZGVmbGF0ZSI6MjUsIi4vbGliL2luZmxhdGUiOjI2LCIuL2xpYi91dGlscy9jb21tb24iOjI3LCIuL2xpYi96bGliL2NvbnN0YW50cyI6MzB9XSwyNTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEsYil7dmFyIGM9bmV3IHMoYik7aWYoYy5wdXNoKGEsITApLGMuZXJyKXRocm93IGMubXNnO3JldHVybiBjLnJlc3VsdH1mdW5jdGlvbiBlKGEsYil7cmV0dXJuIGI9Ynx8e30sYi5yYXc9ITAsZChhLGIpfWZ1bmN0aW9uIGYoYSxiKXtyZXR1cm4gYj1ifHx7fSxiLmd6aXA9ITAsZChhLGIpfXZhciBnPWEoIi4vemxpYi9kZWZsYXRlLmpzIiksaD1hKCIuL3V0aWxzL2NvbW1vbiIpLGk9YSgiLi91dGlscy9zdHJpbmdzIiksaj1hKCIuL3psaWIvbWVzc2FnZXMiKSxrPWEoIi4vemxpYi96c3RyZWFtIiksbD0wLG09NCxuPTAsbz0xLHA9LTEscT0wLHI9OCxzPWZ1bmN0aW9uKGEpe3RoaXMub3B0aW9ucz1oLmFzc2lnbih7bGV2ZWw6cCxtZXRob2Q6cixjaHVua1NpemU6MTYzODQsd2luZG93Qml0czoxNSxtZW1MZXZlbDo4LHN0cmF0ZWd5OnEsdG86IiJ9LGF8fHt9KTt2YXIgYj10aGlzLm9wdGlvbnM7Yi5yYXcmJmIud2luZG93Qml0cz4wP2Iud2luZG93Qml0cz0tYi53aW5kb3dCaXRzOmIuZ3ppcCYmYi53aW5kb3dCaXRzPjAmJmIud2luZG93Qml0czwxNiYmKGIud2luZG93Qml0cys9MTYpLHRoaXMuZXJyPTAsdGhpcy5tc2c9IiIsdGhpcy5lbmRlZD0hMSx0aGlzLmNodW5rcz1bXSx0aGlzLnN0cm09bmV3IGssdGhpcy5zdHJtLmF2YWlsX291dD0wO3ZhciBjPWcuZGVmbGF0ZUluaXQyKHRoaXMuc3RybSxiLmxldmVsLGIubWV0aG9kLGIud2luZG93Qml0cyxiLm1lbUxldmVsLGIuc3RyYXRlZ3kpO2lmKGMhPT1uKXRocm93IG5ldyBFcnJvcihqW2NdKTtiLmhlYWRlciYmZy5kZWZsYXRlU2V0SGVhZGVyKHRoaXMuc3RybSxiLmhlYWRlcil9O3MucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9dGhpcy5zdHJtLGY9dGhpcy5vcHRpb25zLmNodW5rU2l6ZTtpZih0aGlzLmVuZGVkKXJldHVybiExO2Q9Yj09PX5+Yj9iOmI9PT0hMD9tOmwsZS5pbnB1dD0ic3RyaW5nIj09dHlwZW9mIGE/aS5zdHJpbmcyYnVmKGEpOmEsZS5uZXh0X2luPTAsZS5hdmFpbF9pbj1lLmlucHV0Lmxlbmd0aDtkb3tpZigwPT09ZS5hdmFpbF9vdXQmJihlLm91dHB1dD1uZXcgaC5CdWY4KGYpLGUubmV4dF9vdXQ9MCxlLmF2YWlsX291dD1mKSxjPWcuZGVmbGF0ZShlLGQpLGMhPT1vJiZjIT09bilyZXR1cm4gdGhpcy5vbkVuZChjKSx0aGlzLmVuZGVkPSEwLCExOygwPT09ZS5hdmFpbF9vdXR8fDA9PT1lLmF2YWlsX2luJiZkPT09bSkmJnRoaXMub25EYXRhKCJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvP2kuYnVmMmJpbnN0cmluZyhoLnNocmlua0J1ZihlLm91dHB1dCxlLm5leHRfb3V0KSk6aC5zaHJpbmtCdWYoZS5vdXRwdXQsZS5uZXh0X291dCkpfXdoaWxlKChlLmF2YWlsX2luPjB8fDA9PT1lLmF2YWlsX291dCkmJmMhPT1vKTtyZXR1cm4gZD09PW0/KGM9Zy5kZWZsYXRlRW5kKHRoaXMuc3RybSksdGhpcy5vbkVuZChjKSx0aGlzLmVuZGVkPSEwLGM9PT1uKTohMH0scy5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGEpe3RoaXMuY2h1bmtzLnB1c2goYSl9LHMucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKGEpe2E9PT1uJiYodGhpcy5yZXN1bHQ9InN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/dGhpcy5jaHVua3Muam9pbigiIik6aC5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9YSx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfSxjLkRlZmxhdGU9cyxjLmRlZmxhdGU9ZCxjLmRlZmxhdGVSYXc9ZSxjLmd6aXA9Zn0seyIuL3V0aWxzL2NvbW1vbiI6MjcsIi4vdXRpbHMvc3RyaW5ncyI6MjgsIi4vemxpYi9kZWZsYXRlLmpzIjozMiwiLi96bGliL21lc3NhZ2VzIjozNywiLi96bGliL3pzdHJlYW0iOjM5fV0sMjY6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe3ZhciBjPW5ldyBtKGIpO2lmKGMucHVzaChhLCEwKSxjLmVycil0aHJvdyBjLm1zZztyZXR1cm4gYy5yZXN1bHR9ZnVuY3Rpb24gZShhLGIpe3JldHVybiBiPWJ8fHt9LGIucmF3PSEwLGQoYSxiKX12YXIgZj1hKCIuL3psaWIvaW5mbGF0ZS5qcyIpLGc9YSgiLi91dGlscy9jb21tb24iKSxoPWEoIi4vdXRpbHMvc3RyaW5ncyIpLGk9YSgiLi96bGliL2NvbnN0YW50cyIpLGo9YSgiLi96bGliL21lc3NhZ2VzIiksaz1hKCIuL3psaWIvenN0cmVhbSIpLGw9YSgiLi96bGliL2d6aGVhZGVyIiksbT1mdW5jdGlvbihhKXt0aGlzLm9wdGlvbnM9Zy5hc3NpZ24oe2NodW5rU2l6ZToxNjM4NCx3aW5kb3dCaXRzOjAsdG86IiJ9LGF8fHt9KTt2YXIgYj10aGlzLm9wdGlvbnM7Yi5yYXcmJmIud2luZG93Qml0cz49MCYmYi53aW5kb3dCaXRzPDE2JiYoYi53aW5kb3dCaXRzPS1iLndpbmRvd0JpdHMsMD09PWIud2luZG93Qml0cyYmKGIud2luZG93Qml0cz0tMTUpKSwhKGIud2luZG93Qml0cz49MCYmYi53aW5kb3dCaXRzPDE2KXx8YSYmYS53aW5kb3dCaXRzfHwoYi53aW5kb3dCaXRzKz0zMiksYi53aW5kb3dCaXRzPjE1JiZiLndpbmRvd0JpdHM8NDgmJjA9PT0oMTUmYi53aW5kb3dCaXRzKSYmKGIud2luZG93Qml0c3w9MTUpLHRoaXMuZXJyPTAsdGhpcy5tc2c9IiIsdGhpcy5lbmRlZD0hMSx0aGlzLmNodW5rcz1bXSx0aGlzLnN0cm09bmV3IGssdGhpcy5zdHJtLmF2YWlsX291dD0wO3ZhciBjPWYuaW5mbGF0ZUluaXQyKHRoaXMuc3RybSxiLndpbmRvd0JpdHMpO2lmKGMhPT1pLlpfT0spdGhyb3cgbmV3IEVycm9yKGpbY10pO3RoaXMuaGVhZGVyPW5ldyBsLGYuaW5mbGF0ZUdldEhlYWRlcih0aGlzLnN0cm0sdGhpcy5oZWFkZXIpfTttLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGosayxsPXRoaXMuc3RybSxtPXRoaXMub3B0aW9ucy5jaHVua1NpemU7aWYodGhpcy5lbmRlZClyZXR1cm4hMTtkPWI9PT1+fmI/YjpiPT09ITA/aS5aX0ZJTklTSDppLlpfTk9fRkxVU0gsbC5pbnB1dD0ic3RyaW5nIj09dHlwZW9mIGE/aC5iaW5zdHJpbmcyYnVmKGEpOmEsbC5uZXh0X2luPTAsbC5hdmFpbF9pbj1sLmlucHV0Lmxlbmd0aDtkb3tpZigwPT09bC5hdmFpbF9vdXQmJihsLm91dHB1dD1uZXcgZy5CdWY4KG0pLGwubmV4dF9vdXQ9MCxsLmF2YWlsX291dD1tKSxjPWYuaW5mbGF0ZShsLGkuWl9OT19GTFVTSCksYyE9PWkuWl9TVFJFQU1fRU5EJiZjIT09aS5aX09LKXJldHVybiB0aGlzLm9uRW5kKGMpLHRoaXMuZW5kZWQ9ITAsITE7bC5uZXh0X291dCYmKDA9PT1sLmF2YWlsX291dHx8Yz09PWkuWl9TVFJFQU1fRU5EfHwwPT09bC5hdmFpbF9pbiYmZD09PWkuWl9GSU5JU0gpJiYoInN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/KGU9aC51dGY4Ym9yZGVyKGwub3V0cHV0LGwubmV4dF9vdXQpLGo9bC5uZXh0X291dC1lLGs9aC5idWYyc3RyaW5nKGwub3V0cHV0LGUpLGwubmV4dF9vdXQ9aixsLmF2YWlsX291dD1tLWosaiYmZy5hcnJheVNldChsLm91dHB1dCxsLm91dHB1dCxlLGosMCksdGhpcy5vbkRhdGEoaykpOnRoaXMub25EYXRhKGcuc2hyaW5rQnVmKGwub3V0cHV0LGwubmV4dF9vdXQpKSl9d2hpbGUobC5hdmFpbF9pbj4wJiZjIT09aS5aX1NUUkVBTV9FTkQpO3JldHVybiBjPT09aS5aX1NUUkVBTV9FTkQmJihkPWkuWl9GSU5JU0gpLGQ9PT1pLlpfRklOSVNIPyhjPWYuaW5mbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQoYyksdGhpcy5lbmRlZD0hMCxjPT09aS5aX09LKTohMH0sbS5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGEpe3RoaXMuY2h1bmtzLnB1c2goYSl9LG0ucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKGEpe2E9PT1pLlpfT0smJih0aGlzLnJlc3VsdD0ic3RyaW5nIj09PXRoaXMub3B0aW9ucy50bz90aGlzLmNodW5rcy5qb2luKCIiKTpnLmZsYXR0ZW5DaHVua3ModGhpcy5jaHVua3MpKSx0aGlzLmNodW5rcz1bXSx0aGlzLmVycj1hLHRoaXMubXNnPXRoaXMuc3RybS5tc2d9LGMuSW5mbGF0ZT1tLGMuaW5mbGF0ZT1kLGMuaW5mbGF0ZVJhdz1lLGMudW5nemlwPWR9LHsiLi91dGlscy9jb21tb24iOjI3LCIuL3V0aWxzL3N0cmluZ3MiOjI4LCIuL3psaWIvY29uc3RhbnRzIjozMCwiLi96bGliL2d6aGVhZGVyIjozMywiLi96bGliL2luZmxhdGUuanMiOjM1LCIuL3psaWIvbWVzc2FnZXMiOjM3LCIuL3psaWIvenN0cmVhbSI6Mzl9XSwyNzpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDE2QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgSW50MzJBcnJheTtjLmFzc2lnbj1mdW5jdGlvbihhKXtmb3IodmFyIGI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2IubGVuZ3RoOyl7dmFyIGM9Yi5zaGlmdCgpO2lmKGMpe2lmKCJvYmplY3QiIT10eXBlb2YgYyl0aHJvdyBuZXcgVHlwZUVycm9yKGMrIm11c3QgYmUgbm9uLW9iamVjdCIpO2Zvcih2YXIgZCBpbiBjKWMuaGFzT3duUHJvcGVydHkoZCkmJihhW2RdPWNbZF0pfX1yZXR1cm4gYX0sYy5zaHJpbmtCdWY9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5sZW5ndGg9PT1iP2E6YS5zdWJhcnJheT9hLnN1YmFycmF5KDAsYik6KGEubGVuZ3RoPWIsYSl9O3ZhciBlPXthcnJheVNldDpmdW5jdGlvbihhLGIsYyxkLGUpe2lmKGIuc3ViYXJyYXkmJmEuc3ViYXJyYXkpcmV0dXJuIHZvaWQgYS5zZXQoYi5zdWJhcnJheShjLGMrZCksZSk7Zm9yKHZhciBmPTA7ZD5mO2YrKylhW2UrZl09YltjK2ZdfSxmbGF0dGVuQ2h1bmtzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZztmb3IoZD0wLGI9MCxjPWEubGVuZ3RoO2M+YjtiKyspZCs9YVtiXS5sZW5ndGg7Zm9yKGc9bmV3IFVpbnQ4QXJyYXkoZCksZT0wLGI9MCxjPWEubGVuZ3RoO2M+YjtiKyspZj1hW2JdLGcuc2V0KGYsZSksZSs9Zi5sZW5ndGg7cmV0dXJuIGd9fSxmPXthcnJheVNldDpmdW5jdGlvbihhLGIsYyxkLGUpe2Zvcih2YXIgZj0wO2Q+ZjtmKyspYVtlK2ZdPWJbYytmXX0sZmxhdHRlbkNodW5rczpmdW5jdGlvbihhKXtyZXR1cm5bXS5jb25jYXQuYXBwbHkoW10sYSl9fTtjLnNldFR5cGVkPWZ1bmN0aW9uKGEpe2E/KGMuQnVmOD1VaW50OEFycmF5LGMuQnVmMTY9VWludDE2QXJyYXksYy5CdWYzMj1JbnQzMkFycmF5LGMuYXNzaWduKGMsZSkpOihjLkJ1Zjg9QXJyYXksYy5CdWYxNj1BcnJheSxjLkJ1ZjMyPUFycmF5LGMuYXNzaWduKGMsZikpfSxjLnNldFR5cGVkKGQpfSx7fV0sMjg6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe2lmKDY1NTM3PmImJihhLnN1YmFycmF5JiZnfHwhYS5zdWJhcnJheSYmZikpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxlLnNocmlua0J1ZihhLGIpKTtmb3IodmFyIGM9IiIsZD0wO2I+ZDtkKyspYys9U3RyaW5nLmZyb21DaGFyQ29kZShhW2RdKTtyZXR1cm4gY312YXIgZT1hKCIuL2NvbW1vbiIpLGY9ITAsZz0hMDt0cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLFswXSl9Y2F0Y2goaCl7Zj0hMX10cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDEpKX1jYXRjaChoKXtnPSExfWZvcih2YXIgaT1uZXcgZS5CdWY4KDI1Niksaj0wOzI1Nj5qO2orKylpW2pdPWo+PTI1Mj82Omo+PTI0OD81Omo+PTI0MD80Omo+PTIyND8zOmo+PTE5Mj8yOjE7aVsyNTRdPWlbMjU0XT0xLGMuc3RyaW5nMmJ1Zj1mdW5jdGlvbihhKXt2YXIgYixjLGQsZixnLGg9YS5sZW5ndGgsaT0wO2ZvcihmPTA7aD5mO2YrKyljPWEuY2hhckNvZGVBdChmKSw1NTI5Nj09PSg2NDUxMiZjKSYmaD5mKzEmJihkPWEuY2hhckNvZGVBdChmKzEpLDU2MzIwPT09KDY0NTEyJmQpJiYoYz02NTUzNisoYy01NTI5Njw8MTApKyhkLTU2MzIwKSxmKyspKSxpKz0xMjg+Yz8xOjIwNDg+Yz8yOjY1NTM2PmM/Mzo0O2ZvcihiPW5ldyBlLkJ1ZjgoaSksZz0wLGY9MDtpPmc7ZisrKWM9YS5jaGFyQ29kZUF0KGYpLDU1Mjk2PT09KDY0NTEyJmMpJiZoPmYrMSYmKGQ9YS5jaGFyQ29kZUF0KGYrMSksNTYzMjA9PT0oNjQ1MTImZCkmJihjPTY1NTM2KyhjLTU1Mjk2PDwxMCkrKGQtNTYzMjApLGYrKykpLDEyOD5jP2JbZysrXT1jOjIwNDg+Yz8oYltnKytdPTE5MnxjPj4+NixiW2crK109MTI4fDYzJmMpOjY1NTM2PmM/KGJbZysrXT0yMjR8Yz4+PjEyLGJbZysrXT0xMjh8Yz4+PjYmNjMsYltnKytdPTEyOHw2MyZjKTooYltnKytdPTI0MHxjPj4+MTgsYltnKytdPTEyOHxjPj4+MTImNjMsYltnKytdPTEyOHxjPj4+NiY2MyxiW2crK109MTI4fDYzJmMpO3JldHVybiBifSxjLmJ1ZjJiaW5zdHJpbmc9ZnVuY3Rpb24oYSl7cmV0dXJuIGQoYSxhLmxlbmd0aCl9LGMuYmluc3RyaW5nMmJ1Zj1mdW5jdGlvbihhKXtmb3IodmFyIGI9bmV3IGUuQnVmOChhLmxlbmd0aCksYz0wLGQ9Yi5sZW5ndGg7ZD5jO2MrKyliW2NdPWEuY2hhckNvZGVBdChjKTtyZXR1cm4gYn0sYy5idWYyc3RyaW5nPWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGcsaD1ifHxhLmxlbmd0aCxqPW5ldyBBcnJheSgyKmgpO2ZvcihlPTAsYz0wO2g+YzspaWYoZj1hW2MrK10sMTI4PmYpaltlKytdPWY7ZWxzZSBpZihnPWlbZl0sZz40KWpbZSsrXT02NTUzMyxjKz1nLTE7ZWxzZXtmb3IoZiY9Mj09PWc/MzE6Mz09PWc/MTU6NztnPjEmJmg+YzspZj1mPDw2fDYzJmFbYysrXSxnLS07Zz4xP2pbZSsrXT02NTUzMzo2NTUzNj5mP2pbZSsrXT1mOihmLT02NTUzNixqW2UrK109NTUyOTZ8Zj4+MTAmMTAyMyxqW2UrK109NTYzMjB8MTAyMyZmKX1yZXR1cm4gZChqLGUpfSxjLnV0Zjhib3JkZXI9ZnVuY3Rpb24oYSxiKXt2YXIgYztmb3IoYj1ifHxhLmxlbmd0aCxiPmEubGVuZ3RoJiYoYj1hLmxlbmd0aCksYz1iLTE7Yz49MCYmMTI4PT09KDE5MiZhW2NdKTspYy0tO3JldHVybiAwPmM/YjowPT09Yz9iOmMraVthW2NdXT5iP2M6Yn19LHsiLi9jb21tb24iOjI3fV0sMjk6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoYSxiLGMsZCl7Zm9yKHZhciBlPTY1NTM1JmF8MCxmPWE+Pj4xNiY2NTUzNXwwLGc9MDswIT09Yzspe2c9Yz4yZTM/MmUzOmMsYy09ZztkbyBlPWUrYltkKytdfDAsZj1mK2V8MDt3aGlsZSgtLWcpO2UlPTY1NTIxLGYlPTY1NTIxfXJldHVybiBlfGY8PDE2fDB9Yi5leHBvcnRzPWN9LHt9XSwzMDpbZnVuY3Rpb24oYSxiKXtiLmV4cG9ydHM9e1pfTk9fRkxVU0g6MCxaX1BBUlRJQUxfRkxVU0g6MSxaX1NZTkNfRkxVU0g6MixaX0ZVTExfRkxVU0g6MyxaX0ZJTklTSDo0LFpfQkxPQ0s6NSxaX1RSRUVTOjYsWl9PSzowLFpfU1RSRUFNX0VORDoxLFpfTkVFRF9ESUNUOjIsWl9FUlJOTzotMSxaX1NUUkVBTV9FUlJPUjotMixaX0RBVEFfRVJST1I6LTMsWl9CVUZfRVJST1I6LTUsWl9OT19DT01QUkVTU0lPTjowLFpfQkVTVF9TUEVFRDoxLFpfQkVTVF9DT01QUkVTU0lPTjo5LFpfREVGQVVMVF9DT01QUkVTU0lPTjotMSxaX0ZJTFRFUkVEOjEsWl9IVUZGTUFOX09OTFk6MixaX1JMRTozLFpfRklYRUQ6NCxaX0RFRkFVTFRfU1RSQVRFR1k6MCxaX0JJTkFSWTowLFpfVEVYVDoxLFpfVU5LTk9XTjoyLFpfREVGTEFURUQ6OH19LHt9XSwzMTpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYygpe2Zvcih2YXIgYSxiPVtdLGM9MDsyNTY+YztjKyspe2E9Yztmb3IodmFyIGQ9MDs4PmQ7ZCsrKWE9MSZhPzM5ODgyOTIzODReYT4+PjE6YT4+PjE7YltjXT1hfXJldHVybiBifWZ1bmN0aW9uIGQoYSxiLGMsZCl7dmFyIGY9ZSxnPWQrYzthPS0xXmE7Zm9yKHZhciBoPWQ7Zz5oO2grKylhPWE+Pj44XmZbMjU1JihhXmJbaF0pXTtyZXR1cm4tMV5hfXZhciBlPWMoKTtiLmV4cG9ydHM9ZH0se31dLDMyOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiKXtyZXR1cm4gYS5tc2c9R1tiXSxifWZ1bmN0aW9uIGUoYSl7cmV0dXJuKGE8PDEpLShhPjQ/OTowKX1mdW5jdGlvbiBmKGEpe2Zvcih2YXIgYj1hLmxlbmd0aDstLWI+PTA7KWFbYl09MH1mdW5jdGlvbiBnKGEpe3ZhciBiPWEuc3RhdGUsYz1iLnBlbmRpbmc7Yz5hLmF2YWlsX291dCYmKGM9YS5hdmFpbF9vdXQpLDAhPT1jJiYoQy5hcnJheVNldChhLm91dHB1dCxiLnBlbmRpbmdfYnVmLGIucGVuZGluZ19vdXQsYyxhLm5leHRfb3V0KSxhLm5leHRfb3V0Kz1jLGIucGVuZGluZ19vdXQrPWMsYS50b3RhbF9vdXQrPWMsYS5hdmFpbF9vdXQtPWMsYi5wZW5kaW5nLT1jLDA9PT1iLnBlbmRpbmcmJihiLnBlbmRpbmdfb3V0PTApKX1mdW5jdGlvbiBoKGEsYil7RC5fdHJfZmx1c2hfYmxvY2soYSxhLmJsb2NrX3N0YXJ0Pj0wP2EuYmxvY2tfc3RhcnQ6LTEsYS5zdHJzdGFydC1hLmJsb2NrX3N0YXJ0LGIpLGEuYmxvY2tfc3RhcnQ9YS5zdHJzdGFydCxnKGEuc3RybSl9ZnVuY3Rpb24gaShhLGIpe2EucGVuZGluZ19idWZbYS5wZW5kaW5nKytdPWJ9ZnVuY3Rpb24gaihhLGIpe2EucGVuZGluZ19idWZbYS5wZW5kaW5nKytdPWI+Pj44JjI1NSxhLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT0yNTUmYn1mdW5jdGlvbiBrKGEsYixjLGQpe3ZhciBlPWEuYXZhaWxfaW47cmV0dXJuIGU+ZCYmKGU9ZCksMD09PWU/MDooYS5hdmFpbF9pbi09ZSxDLmFycmF5U2V0KGIsYS5pbnB1dCxhLm5leHRfaW4sZSxjKSwxPT09YS5zdGF0ZS53cmFwP2EuYWRsZXI9RShhLmFkbGVyLGIsZSxjKToyPT09YS5zdGF0ZS53cmFwJiYoYS5hZGxlcj1GKGEuYWRsZXIsYixlLGMpKSxhLm5leHRfaW4rPWUsYS50b3RhbF9pbis9ZSxlKX1mdW5jdGlvbiBsKGEsYil7dmFyIGMsZCxlPWEubWF4X2NoYWluX2xlbmd0aCxmPWEuc3Ryc3RhcnQsZz1hLnByZXZfbGVuZ3RoLGg9YS5uaWNlX21hdGNoLGk9YS5zdHJzdGFydD5hLndfc2l6ZS1qYj9hLnN0cnN0YXJ0LShhLndfc2l6ZS1qYik6MCxqPWEud2luZG93LGs9YS53X21hc2ssbD1hLnByZXYsbT1hLnN0cnN0YXJ0K2liLG49altmK2ctMV0sbz1qW2YrZ107YS5wcmV2X2xlbmd0aD49YS5nb29kX21hdGNoJiYoZT4+PTIpLGg+YS5sb29rYWhlYWQmJihoPWEubG9va2FoZWFkKTtkbyBpZihjPWIsaltjK2ddPT09byYmaltjK2ctMV09PT1uJiZqW2NdPT09altmXSYmalsrK2NdPT09altmKzFdKXtmKz0yLGMrKztkbzt3aGlsZShqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmbT5mKTtpZihkPWliLShtLWYpLGY9bS1pYixkPmcpe2lmKGEubWF0Y2hfc3RhcnQ9YixnPWQsZD49aClicmVhaztuPWpbZitnLTFdLG89altmK2ddfX13aGlsZSgoYj1sW2Ima10pPmkmJjAhPT0tLWUpO3JldHVybiBnPD1hLmxvb2thaGVhZD9nOmEubG9va2FoZWFkfWZ1bmN0aW9uIG0oYSl7dmFyIGIsYyxkLGUsZixnPWEud19zaXplO2Rve2lmKGU9YS53aW5kb3dfc2l6ZS1hLmxvb2thaGVhZC1hLnN0cnN0YXJ0LGEuc3Ryc3RhcnQ+PWcrKGctamIpKXtDLmFycmF5U2V0KGEud2luZG93LGEud2luZG93LGcsZywwKSxhLm1hdGNoX3N0YXJ0LT1nLGEuc3Ryc3RhcnQtPWcsYS5ibG9ja19zdGFydC09ZyxjPWEuaGFzaF9zaXplLGI9YztkbyBkPWEuaGVhZFstLWJdLGEuaGVhZFtiXT1kPj1nP2QtZzowO3doaWxlKC0tYyk7Yz1nLGI9YztkbyBkPWEucHJldlstLWJdLGEucHJldltiXT1kPj1nP2QtZzowO3doaWxlKC0tYyk7ZSs9Z31pZigwPT09YS5zdHJtLmF2YWlsX2luKWJyZWFrO2lmKGM9ayhhLnN0cm0sYS53aW5kb3csYS5zdHJzdGFydCthLmxvb2thaGVhZCxlKSxhLmxvb2thaGVhZCs9YyxhLmxvb2thaGVhZCthLmluc2VydD49aGIpZm9yKGY9YS5zdHJzdGFydC1hLmluc2VydCxhLmluc19oPWEud2luZG93W2ZdLGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1tmKzFdKSZhLmhhc2hfbWFzazthLmluc2VydCYmKGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1tmK2hiLTFdKSZhLmhhc2hfbWFzayxhLnByZXZbZiZhLndfbWFza109YS5oZWFkW2EuaW5zX2hdLGEuaGVhZFthLmluc19oXT1mLGYrKyxhLmluc2VydC0tLCEoYS5sb29rYWhlYWQrYS5pbnNlcnQ8aGIpKTspO313aGlsZShhLmxvb2thaGVhZDxqYiYmMCE9PWEuc3RybS5hdmFpbF9pbil9ZnVuY3Rpb24gbihhLGIpe3ZhciBjPTY1NTM1O2ZvcihjPmEucGVuZGluZ19idWZfc2l6ZS01JiYoYz1hLnBlbmRpbmdfYnVmX3NpemUtNSk7Oyl7aWYoYS5sb29rYWhlYWQ8PTEpe2lmKG0oYSksMD09PWEubG9va2FoZWFkJiZiPT09SClyZXR1cm4gc2I7aWYoMD09PWEubG9va2FoZWFkKWJyZWFrfWEuc3Ryc3RhcnQrPWEubG9va2FoZWFkLGEubG9va2FoZWFkPTA7dmFyIGQ9YS5ibG9ja19zdGFydCtjO2lmKCgwPT09YS5zdHJzdGFydHx8YS5zdHJzdGFydD49ZCkmJihhLmxvb2thaGVhZD1hLnN0cnN0YXJ0LWQsYS5zdHJzdGFydD1kLGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiBzYjtpZihhLnN0cnN0YXJ0LWEuYmxvY2tfc3RhcnQ+PWEud19zaXplLWpiJiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHNifXJldHVybiBhLmluc2VydD0wLGI9PT1LPyhoKGEsITApLDA9PT1hLnN0cm0uYXZhaWxfb3V0P3ViOnZiKTphLnN0cnN0YXJ0PmEuYmxvY2tfc3RhcnQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KT9zYjpzYn1mdW5jdGlvbiBvKGEsYil7Zm9yKHZhciBjLGQ7Oyl7aWYoYS5sb29rYWhlYWQ8amIpe2lmKG0oYSksYS5sb29rYWhlYWQ8amImJmI9PT1IKXJldHVybiBzYjtpZigwPT09YS5sb29rYWhlYWQpYnJlYWt9aWYoYz0wLGEubG9va2FoZWFkPj1oYiYmKGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1thLnN0cnN0YXJ0K2hiLTFdKSZhLmhhc2hfbWFzayxjPWEucHJldlthLnN0cnN0YXJ0JmEud19tYXNrXT1hLmhlYWRbYS5pbnNfaF0sYS5oZWFkW2EuaW5zX2hdPWEuc3Ryc3RhcnQpLDAhPT1jJiZhLnN0cnN0YXJ0LWM8PWEud19zaXplLWpiJiYoYS5tYXRjaF9sZW5ndGg9bChhLGMpKSxhLm1hdGNoX2xlbmd0aD49aGIpaWYoZD1ELl90cl90YWxseShhLGEuc3Ryc3RhcnQtYS5tYXRjaF9zdGFydCxhLm1hdGNoX2xlbmd0aC1oYiksYS5sb29rYWhlYWQtPWEubWF0Y2hfbGVuZ3RoLGEubWF0Y2hfbGVuZ3RoPD1hLm1heF9sYXp5X21hdGNoJiZhLmxvb2thaGVhZD49aGIpe2EubWF0Y2hfbGVuZ3RoLS07ZG8gYS5zdHJzdGFydCsrLGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1thLnN0cnN0YXJ0K2hiLTFdKSZhLmhhc2hfbWFzayxjPWEucHJldlthLnN0cnN0YXJ0JmEud19tYXNrXT1hLmhlYWRbYS5pbnNfaF0sYS5oZWFkW2EuaW5zX2hdPWEuc3Ryc3RhcnQ7d2hpbGUoMCE9PS0tYS5tYXRjaF9sZW5ndGgpO2Euc3Ryc3RhcnQrK31lbHNlIGEuc3Ryc3RhcnQrPWEubWF0Y2hfbGVuZ3RoLGEubWF0Y2hfbGVuZ3RoPTAsYS5pbnNfaD1hLndpbmRvd1thLnN0cnN0YXJ0XSxhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbYS5zdHJzdGFydCsxXSkmYS5oYXNoX21hc2s7ZWxzZSBkPUQuX3RyX3RhbGx5KGEsMCxhLndpbmRvd1thLnN0cnN0YXJ0XSksYS5sb29rYWhlYWQtLSxhLnN0cnN0YXJ0Kys7aWYoZCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiBzYn1yZXR1cm4gYS5pbnNlcnQ9YS5zdHJzdGFydDxoYi0xP2Euc3Ryc3RhcnQ6aGItMSxiPT09Sz8oaChhLCEwKSwwPT09YS5zdHJtLmF2YWlsX291dD91Yjp2Yik6YS5sYXN0X2xpdCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpP3NiOnRifWZ1bmN0aW9uIHAoYSxiKXtmb3IodmFyIGMsZCxlOzspe2lmKGEubG9va2FoZWFkPGpiKXtpZihtKGEpLGEubG9va2FoZWFkPGpiJiZiPT09SClyZXR1cm4gc2I7aWYoMD09PWEubG9va2FoZWFkKWJyZWFrfWlmKGM9MCxhLmxvb2thaGVhZD49aGImJihhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbYS5zdHJzdGFydCtoYi0xXSkmYS5oYXNoX21hc2ssYz1hLnByZXZbYS5zdHJzdGFydCZhLndfbWFza109YS5oZWFkW2EuaW5zX2hdLGEuaGVhZFthLmluc19oXT1hLnN0cnN0YXJ0KSxhLnByZXZfbGVuZ3RoPWEubWF0Y2hfbGVuZ3RoLGEucHJldl9tYXRjaD1hLm1hdGNoX3N0YXJ0LGEubWF0Y2hfbGVuZ3RoPWhiLTEsMCE9PWMmJmEucHJldl9sZW5ndGg8YS5tYXhfbGF6eV9tYXRjaCYmYS5zdHJzdGFydC1jPD1hLndfc2l6ZS1qYiYmKGEubWF0Y2hfbGVuZ3RoPWwoYSxjKSxhLm1hdGNoX2xlbmd0aDw9NSYmKGEuc3RyYXRlZ3k9PT1TfHxhLm1hdGNoX2xlbmd0aD09PWhiJiZhLnN0cnN0YXJ0LWEubWF0Y2hfc3RhcnQ+NDA5NikmJihhLm1hdGNoX2xlbmd0aD1oYi0xKSksYS5wcmV2X2xlbmd0aD49aGImJmEubWF0Y2hfbGVuZ3RoPD1hLnByZXZfbGVuZ3RoKXtlPWEuc3Ryc3RhcnQrYS5sb29rYWhlYWQtaGIsZD1ELl90cl90YWxseShhLGEuc3Ryc3RhcnQtMS1hLnByZXZfbWF0Y2gsYS5wcmV2X2xlbmd0aC1oYiksYS5sb29rYWhlYWQtPWEucHJldl9sZW5ndGgtMSxhLnByZXZfbGVuZ3RoLT0yO2RvKythLnN0cnN0YXJ0PD1lJiYoYS5pbnNfaD0oYS5pbnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2Euc3Ryc3RhcnQraGItMV0pJmEuaGFzaF9tYXNrLGM9YS5wcmV2W2Euc3Ryc3RhcnQmYS53X21hc2tdPWEuaGVhZFthLmluc19oXSxhLmhlYWRbYS5pbnNfaF09YS5zdHJzdGFydCk7d2hpbGUoMCE9PS0tYS5wcmV2X2xlbmd0aCk7aWYoYS5tYXRjaF9hdmFpbGFibGU9MCxhLm1hdGNoX2xlbmd0aD1oYi0xLGEuc3Ryc3RhcnQrKyxkJiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHNifWVsc2UgaWYoYS5tYXRjaF9hdmFpbGFibGUpe2lmKGQ9RC5fdHJfdGFsbHkoYSwwLGEud2luZG93W2Euc3Ryc3RhcnQtMV0pLGQmJmgoYSwhMSksYS5zdHJzdGFydCsrLGEubG9va2FoZWFkLS0sMD09PWEuc3RybS5hdmFpbF9vdXQpcmV0dXJuIHNifWVsc2UgYS5tYXRjaF9hdmFpbGFibGU9MSxhLnN0cnN0YXJ0KyssYS5sb29rYWhlYWQtLX1yZXR1cm4gYS5tYXRjaF9hdmFpbGFibGUmJihkPUQuX3RyX3RhbGx5KGEsMCxhLndpbmRvd1thLnN0cnN0YXJ0LTFdKSxhLm1hdGNoX2F2YWlsYWJsZT0wKSxhLmluc2VydD1hLnN0cnN0YXJ0PGhiLTE/YS5zdHJzdGFydDpoYi0xLGI9PT1LPyhoKGEsITApLDA9PT1hLnN0cm0uYXZhaWxfb3V0P3ViOnZiKTphLmxhc3RfbGl0JiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCk/c2I6dGJ9ZnVuY3Rpb24gcShhLGIpe2Zvcih2YXIgYyxkLGUsZixnPWEud2luZG93Ozspe2lmKGEubG9va2FoZWFkPD1pYil7aWYobShhKSxhLmxvb2thaGVhZDw9aWImJmI9PT1IKXJldHVybiBzYjtpZigwPT09YS5sb29rYWhlYWQpYnJlYWt9aWYoYS5tYXRjaF9sZW5ndGg9MCxhLmxvb2thaGVhZD49aGImJmEuc3Ryc3RhcnQ+MCYmKGU9YS5zdHJzdGFydC0xLGQ9Z1tlXSxkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZkPT09Z1srK2VdKSl7Zj1hLnN0cnN0YXJ0K2liO2RvO3doaWxlKGQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmY+ZSk7YS5tYXRjaF9sZW5ndGg9aWItKGYtZSksYS5tYXRjaF9sZW5ndGg+YS5sb29rYWhlYWQmJihhLm1hdGNoX2xlbmd0aD1hLmxvb2thaGVhZCl9aWYoYS5tYXRjaF9sZW5ndGg+PWhiPyhjPUQuX3RyX3RhbGx5KGEsMSxhLm1hdGNoX2xlbmd0aC1oYiksYS5sb29rYWhlYWQtPWEubWF0Y2hfbGVuZ3RoLGEuc3Ryc3RhcnQrPWEubWF0Y2hfbGVuZ3RoLGEubWF0Y2hfbGVuZ3RoPTApOihjPUQuX3RyX3RhbGx5KGEsMCxhLndpbmRvd1thLnN0cnN0YXJ0XSksYS5sb29rYWhlYWQtLSxhLnN0cnN0YXJ0KyspLGMmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gc2J9cmV0dXJuIGEuaW5zZXJ0PTAsYj09PUs/KGgoYSwhMCksMD09PWEuc3RybS5hdmFpbF9vdXQ/dWI6dmIpOmEubGFzdF9saXQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KT9zYjp0Yn1mdW5jdGlvbiByKGEsYil7Zm9yKHZhciBjOzspe2lmKDA9PT1hLmxvb2thaGVhZCYmKG0oYSksMD09PWEubG9va2FoZWFkKSl7aWYoYj09PUgpcmV0dXJuIHNiO2JyZWFrfWlmKGEubWF0Y2hfbGVuZ3RoPTAsYz1ELl90cl90YWxseShhLDAsYS53aW5kb3dbYS5zdHJzdGFydF0pLGEubG9va2FoZWFkLS0sYS5zdHJzdGFydCsrLGMmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gc2J9cmV0dXJuIGEuaW5zZXJ0PTAsYj09PUs/KGgoYSwhMCksMD09PWEuc3RybS5hdmFpbF9vdXQ/dWI6dmIpOmEubGFzdF9saXQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KT9zYjp0Yn1mdW5jdGlvbiBzKGEpe2Eud2luZG93X3NpemU9MiphLndfc2l6ZSxmKGEuaGVhZCksYS5tYXhfbGF6eV9tYXRjaD1CW2EubGV2ZWxdLm1heF9sYXp5LGEuZ29vZF9tYXRjaD1CW2EubGV2ZWxdLmdvb2RfbGVuZ3RoLGEubmljZV9tYXRjaD1CW2EubGV2ZWxdLm5pY2VfbGVuZ3RoLGEubWF4X2NoYWluX2xlbmd0aD1CW2EubGV2ZWxdLm1heF9jaGFpbixhLnN0cnN0YXJ0PTAsYS5ibG9ja19zdGFydD0wLGEubG9va2FoZWFkPTAsYS5pbnNlcnQ9MCxhLm1hdGNoX2xlbmd0aD1hLnByZXZfbGVuZ3RoPWhiLTEsYS5tYXRjaF9hdmFpbGFibGU9MCxhLmluc19oPTB9ZnVuY3Rpb24gdCgpe3RoaXMuc3RybT1udWxsLHRoaXMuc3RhdHVzPTAsdGhpcy5wZW5kaW5nX2J1Zj1udWxsLHRoaXMucGVuZGluZ19idWZfc2l6ZT0wLHRoaXMucGVuZGluZ19vdXQ9MCx0aGlzLnBlbmRpbmc9MCx0aGlzLndyYXA9MCx0aGlzLmd6aGVhZD1udWxsLHRoaXMuZ3ppbmRleD0wLHRoaXMubWV0aG9kPVksdGhpcy5sYXN0X2ZsdXNoPS0xLHRoaXMud19zaXplPTAsdGhpcy53X2JpdHM9MCx0aGlzLndfbWFzaz0wLHRoaXMud2luZG93PW51bGwsdGhpcy53aW5kb3dfc2l6ZT0wLHRoaXMucHJldj1udWxsLHRoaXMuaGVhZD1udWxsLHRoaXMuaW5zX2g9MCx0aGlzLmhhc2hfc2l6ZT0wLHRoaXMuaGFzaF9iaXRzPTAsdGhpcy5oYXNoX21hc2s9MCx0aGlzLmhhc2hfc2hpZnQ9MCx0aGlzLmJsb2NrX3N0YXJ0PTAsdGhpcy5tYXRjaF9sZW5ndGg9MCx0aGlzLnByZXZfbWF0Y2g9MCx0aGlzLm1hdGNoX2F2YWlsYWJsZT0wLHRoaXMuc3Ryc3RhcnQ9MCx0aGlzLm1hdGNoX3N0YXJ0PTAsdGhpcy5sb29rYWhlYWQ9MCx0aGlzLnByZXZfbGVuZ3RoPTAsdGhpcy5tYXhfY2hhaW5fbGVuZ3RoPTAsdGhpcy5tYXhfbGF6eV9tYXRjaD0wLHRoaXMubGV2ZWw9MCx0aGlzLnN0cmF0ZWd5PTAsdGhpcy5nb29kX21hdGNoPTAsdGhpcy5uaWNlX21hdGNoPTAsdGhpcy5keW5fbHRyZWU9bmV3IEMuQnVmMTYoMipmYiksdGhpcy5keW5fZHRyZWU9bmV3IEMuQnVmMTYoMiooMipkYisxKSksdGhpcy5ibF90cmVlPW5ldyBDLkJ1ZjE2KDIqKDIqZWIrMSkpLGYodGhpcy5keW5fbHRyZWUpLGYodGhpcy5keW5fZHRyZWUpLGYodGhpcy5ibF90cmVlKSx0aGlzLmxfZGVzYz1udWxsLHRoaXMuZF9kZXNjPW51bGwsdGhpcy5ibF9kZXNjPW51bGwsdGhpcy5ibF9jb3VudD1uZXcgQy5CdWYxNihnYisxKSx0aGlzLmhlYXA9bmV3IEMuQnVmMTYoMipjYisxKSxmKHRoaXMuaGVhcCksdGhpcy5oZWFwX2xlbj0wLHRoaXMuaGVhcF9tYXg9MCx0aGlzLmRlcHRoPW5ldyBDLkJ1ZjE2KDIqY2IrMSksZih0aGlzLmRlcHRoKSx0aGlzLmxfYnVmPTAsdGhpcy5saXRfYnVmc2l6ZT0wLHRoaXMubGFzdF9saXQ9MCx0aGlzLmRfYnVmPTAsdGhpcy5vcHRfbGVuPTAsdGhpcy5zdGF0aWNfbGVuPTAsdGhpcy5tYXRjaGVzPTAsdGhpcy5pbnNlcnQ9MCx0aGlzLmJpX2J1Zj0wLHRoaXMuYmlfdmFsaWQ9MH1mdW5jdGlvbiB1KGEpe3ZhciBiO3JldHVybiBhJiZhLnN0YXRlPyhhLnRvdGFsX2luPWEudG90YWxfb3V0PTAsYS5kYXRhX3R5cGU9WCxiPWEuc3RhdGUsYi5wZW5kaW5nPTAsYi5wZW5kaW5nX291dD0wLGIud3JhcDwwJiYoYi53cmFwPS1iLndyYXApLGIuc3RhdHVzPWIud3JhcD9sYjpxYixhLmFkbGVyPTI9PT1iLndyYXA/MDoxLGIubGFzdF9mbHVzaD1ILEQuX3RyX2luaXQoYiksTSk6ZChhLE8pfWZ1bmN0aW9uIHYoYSl7dmFyIGI9dShhKTtyZXR1cm4gYj09PU0mJnMoYS5zdGF0ZSksYn1mdW5jdGlvbiB3KGEsYil7cmV0dXJuIGEmJmEuc3RhdGU/MiE9PWEuc3RhdGUud3JhcD9POihhLnN0YXRlLmd6aGVhZD1iLE0pOk99ZnVuY3Rpb24geChhLGIsYyxlLGYsZyl7aWYoIWEpcmV0dXJuIE87dmFyIGg9MTtpZihiPT09UiYmKGI9NiksMD5lPyhoPTAsZT0tZSk6ZT4xNSYmKGg9MixlLT0xNiksMT5mfHxmPlp8fGMhPT1ZfHw4PmV8fGU+MTV8fDA+Ynx8Yj45fHwwPmd8fGc+VilyZXR1cm4gZChhLE8pOzg9PT1lJiYoZT05KTt2YXIgaT1uZXcgdDtyZXR1cm4gYS5zdGF0ZT1pLGkuc3RybT1hLGkud3JhcD1oLGkuZ3poZWFkPW51bGwsaS53X2JpdHM9ZSxpLndfc2l6ZT0xPDxpLndfYml0cyxpLndfbWFzaz1pLndfc2l6ZS0xLGkuaGFzaF9iaXRzPWYrNyxpLmhhc2hfc2l6ZT0xPDxpLmhhc2hfYml0cyxpLmhhc2hfbWFzaz1pLmhhc2hfc2l6ZS0xLGkuaGFzaF9zaGlmdD1+figoaS5oYXNoX2JpdHMraGItMSkvaGIpLGkud2luZG93PW5ldyBDLkJ1ZjgoMippLndfc2l6ZSksaS5oZWFkPW5ldyBDLkJ1ZjE2KGkuaGFzaF9zaXplKSxpLnByZXY9bmV3IEMuQnVmMTYoaS53X3NpemUpLGkubGl0X2J1ZnNpemU9MTw8Zis2LGkucGVuZGluZ19idWZfc2l6ZT00KmkubGl0X2J1ZnNpemUsaS5wZW5kaW5nX2J1Zj1uZXcgQy5CdWY4KGkucGVuZGluZ19idWZfc2l6ZSksaS5kX2J1Zj1pLmxpdF9idWZzaXplPj4xLGkubF9idWY9MyppLmxpdF9idWZzaXplLGkubGV2ZWw9YixpLnN0cmF0ZWd5PWcsaS5tZXRob2Q9Yyx2KGEpfWZ1bmN0aW9uIHkoYSxiKXtyZXR1cm4geChhLGIsWSwkLF8sVyl9ZnVuY3Rpb24geihhLGIpe3ZhciBjLGgsayxsO2lmKCFhfHwhYS5zdGF0ZXx8Yj5MfHwwPmIpcmV0dXJuIGE/ZChhLE8pOk87aWYoaD1hLnN0YXRlLCFhLm91dHB1dHx8IWEuaW5wdXQmJjAhPT1hLmF2YWlsX2lufHxoLnN0YXR1cz09PXJiJiZiIT09SylyZXR1cm4gZChhLDA9PT1hLmF2YWlsX291dD9ROk8pO2lmKGguc3RybT1hLGM9aC5sYXN0X2ZsdXNoLGgubGFzdF9mbHVzaD1iLGguc3RhdHVzPT09bGIpaWYoMj09PWgud3JhcClhLmFkbGVyPTAsaShoLDMxKSxpKGgsMTM5KSxpKGgsOCksaC5nemhlYWQ/KGkoaCwoaC5nemhlYWQudGV4dD8xOjApKyhoLmd6aGVhZC5oY3JjPzI6MCkrKGguZ3poZWFkLmV4dHJhPzQ6MCkrKGguZ3poZWFkLm5hbWU/ODowKSsoaC5nemhlYWQuY29tbWVudD8xNjowKSksaShoLDI1NSZoLmd6aGVhZC50aW1lKSxpKGgsaC5nemhlYWQudGltZT4+OCYyNTUpLGkoaCxoLmd6aGVhZC50aW1lPj4xNiYyNTUpLGkoaCxoLmd6aGVhZC50aW1lPj4yNCYyNTUpLGkoaCw5PT09aC5sZXZlbD8yOmguc3RyYXRlZ3k+PVR8fGgubGV2ZWw8Mj80OjApLGkoaCwyNTUmaC5nemhlYWQub3MpLGguZ3poZWFkLmV4dHJhJiZoLmd6aGVhZC5leHRyYS5sZW5ndGgmJihpKGgsMjU1JmguZ3poZWFkLmV4dHJhLmxlbmd0aCksaShoLGguZ3poZWFkLmV4dHJhLmxlbmd0aD4+OCYyNTUpKSxoLmd6aGVhZC5oY3JjJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmcsMCkpLGguZ3ppbmRleD0wLGguc3RhdHVzPW1iKTooaShoLDApLGkoaCwwKSxpKGgsMCksaShoLDApLGkoaCwwKSxpKGgsOT09PWgubGV2ZWw/MjpoLnN0cmF0ZWd5Pj1UfHxoLmxldmVsPDI/NDowKSxpKGgsd2IpLGguc3RhdHVzPXFiKTtlbHNle3ZhciBtPVkrKGgud19iaXRzLTg8PDQpPDw4LG49LTE7bj1oLnN0cmF0ZWd5Pj1UfHxoLmxldmVsPDI/MDpoLmxldmVsPDY/MTo2PT09aC5sZXZlbD8yOjMsbXw9bjw8NiwwIT09aC5zdHJzdGFydCYmKG18PWtiKSxtKz0zMS1tJTMxLGguc3RhdHVzPXFiLGooaCxtKSwwIT09aC5zdHJzdGFydCYmKGooaCxhLmFkbGVyPj4+MTYpLGooaCw2NTUzNSZhLmFkbGVyKSksYS5hZGxlcj0xfWlmKGguc3RhdHVzPT09bWIpaWYoaC5nemhlYWQuZXh0cmEpe2ZvcihrPWgucGVuZGluZztoLmd6aW5kZXg8KDY1NTM1JmguZ3poZWFkLmV4dHJhLmxlbmd0aCkmJihoLnBlbmRpbmchPT1oLnBlbmRpbmdfYnVmX3NpemV8fChoLmd6aGVhZC5oY3JjJiZoLnBlbmRpbmc+ayYmKGEuYWRsZXI9RihhLmFkbGVyLGgucGVuZGluZ19idWYsaC5wZW5kaW5nLWssaykpLGcoYSksaz1oLnBlbmRpbmcsaC5wZW5kaW5nIT09aC5wZW5kaW5nX2J1Zl9zaXplKSk7KWkoaCwyNTUmaC5nemhlYWQuZXh0cmFbaC5nemluZGV4XSksaC5nemluZGV4Kys7aC5nemhlYWQuaGNyYyYmaC5wZW5kaW5nPmsmJihhLmFkbGVyPUYoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSxoLmd6aW5kZXg9PT1oLmd6aGVhZC5leHRyYS5sZW5ndGgmJihoLmd6aW5kZXg9MCxoLnN0YXR1cz1uYil9ZWxzZSBoLnN0YXR1cz1uYjtpZihoLnN0YXR1cz09PW5iKWlmKGguZ3poZWFkLm5hbWUpe2s9aC5wZW5kaW5nO2Rve2lmKGgucGVuZGluZz09PWgucGVuZGluZ19idWZfc2l6ZSYmKGguZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksZyhhKSxrPWgucGVuZGluZyxoLnBlbmRpbmc9PT1oLnBlbmRpbmdfYnVmX3NpemUpKXtsPTE7YnJlYWt9bD1oLmd6aW5kZXg8aC5nemhlYWQubmFtZS5sZW5ndGg/MjU1JmguZ3poZWFkLm5hbWUuY2hhckNvZGVBdChoLmd6aW5kZXgrKyk6MCxpKGgsbCl9d2hpbGUoMCE9PWwpO2guZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksMD09PWwmJihoLmd6aW5kZXg9MCxoLnN0YXR1cz1vYil9ZWxzZSBoLnN0YXR1cz1vYjtpZihoLnN0YXR1cz09PW9iKWlmKGguZ3poZWFkLmNvbW1lbnQpe2s9aC5wZW5kaW5nO2Rve2lmKGgucGVuZGluZz09PWgucGVuZGluZ19idWZfc2l6ZSYmKGguZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksZyhhKSxrPWgucGVuZGluZyxoLnBlbmRpbmc9PT1oLnBlbmRpbmdfYnVmX3NpemUpKXtsPTE7YnJlYWt9bD1oLmd6aW5kZXg8aC5nemhlYWQuY29tbWVudC5sZW5ndGg/MjU1JmguZ3poZWFkLmNvbW1lbnQuY2hhckNvZGVBdChoLmd6aW5kZXgrKyk6MCxpKGgsbCl9d2hpbGUoMCE9PWwpO2guZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksMD09PWwmJihoLnN0YXR1cz1wYil9ZWxzZSBoLnN0YXR1cz1wYjtpZihoLnN0YXR1cz09PXBiJiYoaC5nemhlYWQuaGNyYz8oaC5wZW5kaW5nKzI+aC5wZW5kaW5nX2J1Zl9zaXplJiZnKGEpLGgucGVuZGluZysyPD1oLnBlbmRpbmdfYnVmX3NpemUmJihpKGgsMjU1JmEuYWRsZXIpLGkoaCxhLmFkbGVyPj44JjI1NSksYS5hZGxlcj0wLGguc3RhdHVzPXFiKSk6aC5zdGF0dXM9cWIpLDAhPT1oLnBlbmRpbmcpe2lmKGcoYSksMD09PWEuYXZhaWxfb3V0KXJldHVybiBoLmxhc3RfZmx1c2g9LTEsTX1lbHNlIGlmKDA9PT1hLmF2YWlsX2luJiZlKGIpPD1lKGMpJiZiIT09SylyZXR1cm4gZChhLFEpO2lmKGguc3RhdHVzPT09cmImJjAhPT1hLmF2YWlsX2luKXJldHVybiBkKGEsUSk7aWYoMCE9PWEuYXZhaWxfaW58fDAhPT1oLmxvb2thaGVhZHx8YiE9PUgmJmguc3RhdHVzIT09cmIpe3ZhciBvPWguc3RyYXRlZ3k9PT1UP3IoaCxiKTpoLnN0cmF0ZWd5PT09VT9xKGgsYik6QltoLmxldmVsXS5mdW5jKGgsYik7aWYoKG89PT11Ynx8bz09PXZiKSYmKGguc3RhdHVzPXJiKSxvPT09c2J8fG89PT11YilyZXR1cm4gMD09PWEuYXZhaWxfb3V0JiYoaC5sYXN0X2ZsdXNoPS0xKSxNO2lmKG89PT10YiYmKGI9PT1JP0QuX3RyX2FsaWduKGgpOmIhPT1MJiYoRC5fdHJfc3RvcmVkX2Jsb2NrKGgsMCwwLCExKSxiPT09SiYmKGYoaC5oZWFkKSwwPT09aC5sb29rYWhlYWQmJihoLnN0cnN0YXJ0PTAsaC5ibG9ja19zdGFydD0wLGguaW5zZXJ0PTApKSksZyhhKSwwPT09YS5hdmFpbF9vdXQpKXJldHVybiBoLmxhc3RfZmx1c2g9LTEsTX1yZXR1cm4gYiE9PUs/TTpoLndyYXA8PTA/TjooMj09PWgud3JhcD8oaShoLDI1NSZhLmFkbGVyKSxpKGgsYS5hZGxlcj4+OCYyNTUpLGkoaCxhLmFkbGVyPj4xNiYyNTUpLGkoaCxhLmFkbGVyPj4yNCYyNTUpLGkoaCwyNTUmYS50b3RhbF9pbiksaShoLGEudG90YWxfaW4+PjgmMjU1KSxpKGgsYS50b3RhbF9pbj4+MTYmMjU1KSxpKGgsYS50b3RhbF9pbj4+MjQmMjU1KSk6KGooaCxhLmFkbGVyPj4+MTYpLGooaCw2NTUzNSZhLmFkbGVyKSksZyhhKSxoLndyYXA+MCYmKGgud3JhcD0taC53cmFwKSwwIT09aC5wZW5kaW5nP006Til9ZnVuY3Rpb24gQShhKXt2YXIgYjtyZXR1cm4gYSYmYS5zdGF0ZT8oYj1hLnN0YXRlLnN0YXR1cyxiIT09bGImJmIhPT1tYiYmYiE9PW5iJiZiIT09b2ImJmIhPT1wYiYmYiE9PXFiJiZiIT09cmI/ZChhLE8pOihhLnN0YXRlPW51bGwsYj09PXFiP2QoYSxQKTpNKSk6T312YXIgQixDPWEoIi4uL3V0aWxzL2NvbW1vbiIpLEQ9YSgiLi90cmVlcyIpLEU9YSgiLi9hZGxlcjMyIiksRj1hKCIuL2NyYzMyIiksRz1hKCIuL21lc3NhZ2VzIiksSD0wLEk9MSxKPTMsSz00LEw9NSxNPTAsTj0xLE89LTIsUD0tMyxRPS01LFI9LTEsUz0xLFQ9MixVPTMsVj00LFc9MCxYPTIsWT04LFo9OSwkPTE1LF89OCxhYj0yOSxiYj0yNTYsY2I9YmIrMSthYixkYj0zMCxlYj0xOSxmYj0yKmNiKzEsZ2I9MTUsaGI9MyxpYj0yNTgsamI9aWIraGIrMSxrYj0zMixsYj00MixtYj02OSxuYj03MyxvYj05MSxwYj0xMDMscWI9MTEzLHJiPTY2NixzYj0xLHRiPTIsdWI9Myx2Yj00LHdiPTMseGI9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLmdvb2RfbGVuZ3RoPWEsdGhpcy5tYXhfbGF6eT1iLHRoaXMubmljZV9sZW5ndGg9Yyx0aGlzLm1heF9jaGFpbj1kLHRoaXMuZnVuYz1lfTtCPVtuZXcgeGIoMCwwLDAsMCxuKSxuZXcgeGIoNCw0LDgsNCxvKSxuZXcgeGIoNCw1LDE2LDgsbyksbmV3IHhiKDQsNiwzMiwzMixvKSxuZXcgeGIoNCw0LDE2LDE2LHApLG5ldyB4Yig4LDE2LDMyLDMyLHApLG5ldyB4Yig4LDE2LDEyOCwxMjgscCksbmV3IHhiKDgsMzIsMTI4LDI1NixwKSxuZXcgeGIoMzIsMTI4LDI1OCwxMDI0LHApLG5ldyB4YigzMiwyNTgsMjU4LDQwOTYscCldLGMuZGVmbGF0ZUluaXQ9eSxjLmRlZmxhdGVJbml0Mj14LGMuZGVmbGF0ZVJlc2V0PXYsYy5kZWZsYXRlUmVzZXRLZWVwPXUsYy5kZWZsYXRlU2V0SGVhZGVyPXcsYy5kZWZsYXRlPXosYy5kZWZsYXRlRW5kPUEsYy5kZWZsYXRlSW5mbz0icGFrbyBkZWZsYXRlIChmcm9tIE5vZGVjYSBwcm9qZWN0KSJ9LHsiLi4vdXRpbHMvY29tbW9uIjoyNywiLi9hZGxlcjMyIjoyOSwiLi9jcmMzMiI6MzEsIi4vbWVzc2FnZXMiOjM3LCIuL3RyZWVzIjozOH1dLDMzOltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKCl7dGhpcy50ZXh0PTAsdGhpcy50aW1lPTAsdGhpcy54ZmxhZ3M9MCx0aGlzLm9zPTAsdGhpcy5leHRyYT1udWxsLHRoaXMuZXh0cmFfbGVuPTAsdGhpcy5uYW1lPSIiLHRoaXMuY29tbWVudD0iIix0aGlzLmhjcmM9MCx0aGlzLmRvbmU9ITF9Yi5leHBvcnRzPWN9LHt9XSwzNDpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9MzAsZD0xMjtiLmV4cG9ydHM9ZnVuY3Rpb24oYSxiKXt2YXIgZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyx4LHkseixBLEIsQztlPWEuc3RhdGUsZj1hLm5leHRfaW4sQj1hLmlucHV0LGc9ZisoYS5hdmFpbF9pbi01KSxoPWEubmV4dF9vdXQsQz1hLm91dHB1dCxpPWgtKGItYS5hdmFpbF9vdXQpLGo9aCsoYS5hdmFpbF9vdXQtMjU3KSxrPWUuZG1heCxsPWUud3NpemUsbT1lLndoYXZlLG49ZS53bmV4dCxvPWUud2luZG93LHA9ZS5ob2xkLHE9ZS5iaXRzLHI9ZS5sZW5jb2RlLHM9ZS5kaXN0Y29kZSx0PSgxPDxlLmxlbmJpdHMpLTEsdT0oMTw8ZS5kaXN0Yml0cyktMTthOmRvezE1PnEmJihwKz1CW2YrK108PHEscSs9OCxwKz1CW2YrK108PHEscSs9OCksdj1yW3AmdF07Yjpmb3IoOzspe2lmKHc9dj4+PjI0LHA+Pj49dyxxLT13LHc9dj4+PjE2JjI1NSwwPT09dylDW2grK109NjU1MzUmdjtlbHNle2lmKCEoMTYmdykpe2lmKDA9PT0oNjQmdykpe3Y9clsoNjU1MzUmdikrKHAmKDE8PHcpLTEpXTtjb250aW51ZSBifWlmKDMyJncpe2UubW9kZT1kO2JyZWFrIGF9YS5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZSIsZS5tb2RlPWM7YnJlYWsgYX14PTY1NTM1JnYsdyY9MTUsdyYmKHc+cSYmKHArPUJbZisrXTw8cSxxKz04KSx4Kz1wJigxPDx3KS0xLHA+Pj49dyxxLT13KSwxNT5xJiYocCs9QltmKytdPDxxLHErPTgscCs9QltmKytdPDxxLHErPTgpLHY9c1twJnVdO2M6Zm9yKDs7KXtpZih3PXY+Pj4yNCxwPj4+PXcscS09dyx3PXY+Pj4xNiYyNTUsISgxNiZ3KSl7aWYoMD09PSg2NCZ3KSl7dj1zWyg2NTUzNSZ2KSsocCYoMTw8dyktMSldO2NvbnRpbnVlIGN9YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgY29kZSIsZS5tb2RlPWM7YnJlYWsgYX1pZih5PTY1NTM1JnYsdyY9MTUsdz5xJiYocCs9QltmKytdPDxxLHErPTgsdz5xJiYocCs9QltmKytdPDxxLHErPTgpKSx5Kz1wJigxPDx3KS0xLHk+ayl7YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixlLm1vZGU9YzticmVhayBhfWlmKHA+Pj49dyxxLT13LHc9aC1pLHk+dyl7aWYodz15LXcsdz5tJiZlLnNhbmUpe2EubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsZS5tb2RlPWM7YnJlYWsgYX1pZih6PTAsQT1vLDA9PT1uKXtpZih6Kz1sLXcseD53KXt4LT13O2RvIENbaCsrXT1vW3orK107d2hpbGUoLS13KTt6PWgteSxBPUN9fWVsc2UgaWYodz5uKXtpZih6Kz1sK24tdyx3LT1uLHg+dyl7eC09dztkbyBDW2grK109b1t6KytdO3doaWxlKC0tdyk7aWYoej0wLHg+bil7dz1uLHgtPXc7ZG8gQ1toKytdPW9beisrXTt3aGlsZSgtLXcpO3o9aC15LEE9Q319fWVsc2UgaWYoeis9bi13LHg+dyl7eC09dztkbyBDW2grK109b1t6KytdO3doaWxlKC0tdyk7ej1oLXksQT1DfWZvcig7eD4yOylDW2grK109QVt6KytdLENbaCsrXT1BW3orK10sQ1toKytdPUFbeisrXSx4LT0zO3gmJihDW2grK109QVt6KytdLHg+MSYmKENbaCsrXT1BW3orK10pKX1lbHNle3o9aC15O2RvIENbaCsrXT1DW3orK10sQ1toKytdPUNbeisrXSxDW2grK109Q1t6KytdLHgtPTM7d2hpbGUoeD4yKTt4JiYoQ1toKytdPUNbeisrXSx4PjEmJihDW2grK109Q1t6KytdKSl9YnJlYWt9fWJyZWFrfX13aGlsZShnPmYmJmo+aCk7eD1xPj4zLGYtPXgscS09eDw8MyxwJj0oMTw8cSktMSxhLm5leHRfaW49ZixhLm5leHRfb3V0PWgsYS5hdmFpbF9pbj1nPmY/NSsoZy1mKTo1LShmLWcpLGEuYXZhaWxfb3V0PWo+aD8yNTcrKGotaCk6MjU3LShoLWopLGUuaG9sZD1wLGUuYml0cz1xfX0se31dLDM1OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7cmV0dXJuKGE+Pj4yNCYyNTUpKyhhPj4+OCY2NTI4MCkrKCg2NTI4MCZhKTw8OCkrKCgyNTUmYSk8PDI0KX1mdW5jdGlvbiBlKCl7dGhpcy5tb2RlPTAsdGhpcy5sYXN0PSExLHRoaXMud3JhcD0wLHRoaXMuaGF2ZWRpY3Q9ITEsdGhpcy5mbGFncz0wLHRoaXMuZG1heD0wLHRoaXMuY2hlY2s9MCx0aGlzLnRvdGFsPTAsdGhpcy5oZWFkPW51bGwsdGhpcy53Yml0cz0wLHRoaXMud3NpemU9MCx0aGlzLndoYXZlPTAsdGhpcy53bmV4dD0wLHRoaXMud2luZG93PW51bGwsdGhpcy5ob2xkPTAsdGhpcy5iaXRzPTAsdGhpcy5sZW5ndGg9MCx0aGlzLm9mZnNldD0wLHRoaXMuZXh0cmE9MCx0aGlzLmxlbmNvZGU9bnVsbCx0aGlzLmRpc3Rjb2RlPW51bGwsdGhpcy5sZW5iaXRzPTAsdGhpcy5kaXN0Yml0cz0wLHRoaXMubmNvZGU9MCx0aGlzLm5sZW49MCx0aGlzLm5kaXN0PTAsdGhpcy5oYXZlPTAsdGhpcy5uZXh0PW51bGwsdGhpcy5sZW5zPW5ldyByLkJ1ZjE2KDMyMCksdGhpcy53b3JrPW5ldyByLkJ1ZjE2KDI4OCksdGhpcy5sZW5keW49bnVsbCx0aGlzLmRpc3RkeW49bnVsbCx0aGlzLnNhbmU9MCx0aGlzLmJhY2s9MCx0aGlzLndhcz0wfWZ1bmN0aW9uIGYoYSl7dmFyIGI7cmV0dXJuIGEmJmEuc3RhdGU/KGI9YS5zdGF0ZSxhLnRvdGFsX2luPWEudG90YWxfb3V0PWIudG90YWw9MCxhLm1zZz0iIixiLndyYXAmJihhLmFkbGVyPTEmYi53cmFwKSxiLm1vZGU9SyxiLmxhc3Q9MCxiLmhhdmVkaWN0PTAsYi5kbWF4PTMyNzY4LGIuaGVhZD1udWxsLGIuaG9sZD0wLGIuYml0cz0wLGIubGVuY29kZT1iLmxlbmR5bj1uZXcgci5CdWYzMihvYiksYi5kaXN0Y29kZT1iLmRpc3RkeW49bmV3IHIuQnVmMzIocGIpLGIuc2FuZT0xLGIuYmFjaz0tMSxDKTpGfWZ1bmN0aW9uIGcoYSl7dmFyIGI7cmV0dXJuIGEmJmEuc3RhdGU/KGI9YS5zdGF0ZSxiLndzaXplPTAsYi53aGF2ZT0wLGIud25leHQ9MCxmKGEpKTpGfWZ1bmN0aW9uIGgoYSxiKXt2YXIgYyxkO3JldHVybiBhJiZhLnN0YXRlPyhkPWEuc3RhdGUsMD5iPyhjPTAsYj0tYik6KGM9KGI+PjQpKzEsNDg+YiYmKGImPTE1KSksYiYmKDg+Ynx8Yj4xNSk/RjoobnVsbCE9PWQud2luZG93JiZkLndiaXRzIT09YiYmKGQud2luZG93PW51bGwpLGQud3JhcD1jLGQud2JpdHM9YixnKGEpKSk6Rn1mdW5jdGlvbiBpKGEsYil7dmFyIGMsZDtyZXR1cm4gYT8oZD1uZXcgZSxhLnN0YXRlPWQsZC53aW5kb3c9bnVsbCxjPWgoYSxiKSxjIT09QyYmKGEuc3RhdGU9bnVsbCksYyk6Rn1mdW5jdGlvbiBqKGEpe3JldHVybiBpKGEscmIpfWZ1bmN0aW9uIGsoYSl7aWYoc2Ipe3ZhciBiO2ZvcihwPW5ldyByLkJ1ZjMyKDUxMikscT1uZXcgci5CdWYzMigzMiksYj0wOzE0ND5iOylhLmxlbnNbYisrXT04O2Zvcig7MjU2PmI7KWEubGVuc1tiKytdPTk7Zm9yKDsyODA+YjspYS5sZW5zW2IrK109Nztmb3IoOzI4OD5iOylhLmxlbnNbYisrXT04O2Zvcih2KHgsYS5sZW5zLDAsMjg4LHAsMCxhLndvcmsse2JpdHM6OX0pLGI9MDszMj5iOylhLmxlbnNbYisrXT01O3YoeSxhLmxlbnMsMCwzMixxLDAsYS53b3JrLHtiaXRzOjV9KSxzYj0hMX1hLmxlbmNvZGU9cCxhLmxlbmJpdHM9OSxhLmRpc3Rjb2RlPXEsYS5kaXN0Yml0cz01fWZ1bmN0aW9uIGwoYSxiLGMsZCl7dmFyIGUsZj1hLnN0YXRlO3JldHVybiBudWxsPT09Zi53aW5kb3cmJihmLndzaXplPTE8PGYud2JpdHMsZi53bmV4dD0wLGYud2hhdmU9MCxmLndpbmRvdz1uZXcgci5CdWY4KGYud3NpemUpKSxkPj1mLndzaXplPyhyLmFycmF5U2V0KGYud2luZG93LGIsYy1mLndzaXplLGYud3NpemUsMCksZi53bmV4dD0wLGYud2hhdmU9Zi53c2l6ZSk6KGU9Zi53c2l6ZS1mLnduZXh0LGU+ZCYmKGU9ZCksci5hcnJheVNldChmLndpbmRvdyxiLGMtZCxlLGYud25leHQpLGQtPWUsZD8oci5hcnJheVNldChmLndpbmRvdyxiLGMtZCxkLDApLGYud25leHQ9ZCxmLndoYXZlPWYud3NpemUpOihmLnduZXh0Kz1lLGYud25leHQ9PT1mLndzaXplJiYoZi53bmV4dD0wKSxmLndoYXZlPGYud3NpemUmJihmLndoYXZlKz1lKSkpLDB9ZnVuY3Rpb24gbShhLGIpe3ZhciBjLGUsZixnLGgsaSxqLG0sbixvLHAscSxvYixwYixxYixyYixzYix0Yix1Yix2Yix3Yix4Yix5Yix6YixBYj0wLEJiPW5ldyByLkJ1ZjgoNCksQ2I9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdO2lmKCFhfHwhYS5zdGF0ZXx8IWEub3V0cHV0fHwhYS5pbnB1dCYmMCE9PWEuYXZhaWxfaW4pcmV0dXJuIEY7Yz1hLnN0YXRlLGMubW9kZT09PVYmJihjLm1vZGU9VyksaD1hLm5leHRfb3V0LGY9YS5vdXRwdXQsaj1hLmF2YWlsX291dCxnPWEubmV4dF9pbixlPWEuaW5wdXQsaT1hLmF2YWlsX2luLG09Yy5ob2xkLG49Yy5iaXRzLG89aSxwPWoseGI9QzthOmZvcig7Oylzd2l0Y2goYy5tb2RlKXtjYXNlIEs6aWYoMD09PWMud3JhcCl7Yy5tb2RlPVc7YnJlYWt9Zm9yKDsxNj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoMiZjLndyYXAmJjM1NjE1PT09bSl7Yy5jaGVjaz0wLEJiWzBdPTI1NSZtLEJiWzFdPW0+Pj44JjI1NSxjLmNoZWNrPXQoYy5jaGVjayxCYiwyLDApLG09MCxuPTAsYy5tb2RlPUw7YnJlYWt9aWYoYy5mbGFncz0wLGMuaGVhZCYmKGMuaGVhZC5kb25lPSExKSwhKDEmYy53cmFwKXx8KCgoMjU1Jm0pPDw4KSsobT4+OCkpJTMxKXthLm1zZz0iaW5jb3JyZWN0IGhlYWRlciBjaGVjayIsYy5tb2RlPWxiO2JyZWFrfWlmKCgxNSZtKSE9PUope2EubXNnPSJ1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCIsYy5tb2RlPWxiO2JyZWFrfWlmKG0+Pj49NCxuLT00LHdiPSgxNSZtKSs4LDA9PT1jLndiaXRzKWMud2JpdHM9d2I7ZWxzZSBpZih3Yj5jLndiaXRzKXthLm1zZz0iaW52YWxpZCB3aW5kb3cgc2l6ZSIsYy5tb2RlPWxiO2JyZWFrfWMuZG1heD0xPDx3YixhLmFkbGVyPWMuY2hlY2s9MSxjLm1vZGU9NTEyJm0/VDpWLG09MCxuPTA7YnJlYWs7Y2FzZSBMOmZvcig7MTY+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKGMuZmxhZ3M9bSwoMjU1JmMuZmxhZ3MpIT09Sil7YS5tc2c9InVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIixjLm1vZGU9bGI7YnJlYWt9aWYoNTczNDQmYy5mbGFncyl7YS5tc2c9InVua25vd24gaGVhZGVyIGZsYWdzIHNldCIsYy5tb2RlPWxiO2JyZWFrfWMuaGVhZCYmKGMuaGVhZC50ZXh0PW0+PjgmMSksNTEyJmMuZmxhZ3MmJihCYlswXT0yNTUmbSxCYlsxXT1tPj4+OCYyNTUsYy5jaGVjaz10KGMuY2hlY2ssQmIsMiwwKSksbT0wLG49MCxjLm1vZGU9TTtjYXNlIE06Zm9yKDszMj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5oZWFkJiYoYy5oZWFkLnRpbWU9bSksNTEyJmMuZmxhZ3MmJihCYlswXT0yNTUmbSxCYlsxXT1tPj4+OCYyNTUsQmJbMl09bT4+PjE2JjI1NSxCYlszXT1tPj4+MjQmMjU1LGMuY2hlY2s9dChjLmNoZWNrLEJiLDQsMCkpLG09MCxuPTAsYy5tb2RlPU47Y2FzZSBOOmZvcig7MTY+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWMuaGVhZCYmKGMuaGVhZC54ZmxhZ3M9MjU1Jm0sYy5oZWFkLm9zPW0+PjgpLDUxMiZjLmZsYWdzJiYoQmJbMF09MjU1Jm0sQmJbMV09bT4+PjgmMjU1LGMuY2hlY2s9dChjLmNoZWNrLEJiLDIsMCkpLG09MCxuPTAsYy5tb2RlPU87Y2FzZSBPOmlmKDEwMjQmYy5mbGFncyl7Zm9yKDsxNj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5sZW5ndGg9bSxjLmhlYWQmJihjLmhlYWQuZXh0cmFfbGVuPW0pLDUxMiZjLmZsYWdzJiYoQmJbMF09MjU1Jm0sQmJbMV09bT4+PjgmMjU1LGMuY2hlY2s9dChjLmNoZWNrLEJiLDIsMCkpLG09MCxuPTB9ZWxzZSBjLmhlYWQmJihjLmhlYWQuZXh0cmE9bnVsbCk7Yy5tb2RlPVA7Y2FzZSBQOmlmKDEwMjQmYy5mbGFncyYmKHE9Yy5sZW5ndGgscT5pJiYocT1pKSxxJiYoYy5oZWFkJiYod2I9Yy5oZWFkLmV4dHJhX2xlbi1jLmxlbmd0aCxjLmhlYWQuZXh0cmF8fChjLmhlYWQuZXh0cmE9bmV3IEFycmF5KGMuaGVhZC5leHRyYV9sZW4pKSxyLmFycmF5U2V0KGMuaGVhZC5leHRyYSxlLGcscSx3YikpLDUxMiZjLmZsYWdzJiYoYy5jaGVjaz10KGMuY2hlY2ssZSxxLGcpKSxpLT1xLGcrPXEsYy5sZW5ndGgtPXEpLGMubGVuZ3RoKSlicmVhayBhO2MubGVuZ3RoPTAsYy5tb2RlPVE7Y2FzZSBROmlmKDIwNDgmYy5mbGFncyl7aWYoMD09PWkpYnJlYWsgYTtxPTA7ZG8gd2I9ZVtnK3ErK10sYy5oZWFkJiZ3YiYmYy5sZW5ndGg8NjU1MzYmJihjLmhlYWQubmFtZSs9U3RyaW5nLmZyb21DaGFyQ29kZSh3YikpO3doaWxlKHdiJiZpPnEpO2lmKDUxMiZjLmZsYWdzJiYoYy5jaGVjaz10KGMuY2hlY2ssZSxxLGcpKSxpLT1xLGcrPXEsd2IpYnJlYWsgYX1lbHNlIGMuaGVhZCYmKGMuaGVhZC5uYW1lPW51bGwpO2MubGVuZ3RoPTAsYy5tb2RlPVI7Y2FzZSBSOmlmKDQwOTYmYy5mbGFncyl7aWYoMD09PWkpYnJlYWsgYTtxPTA7ZG8gd2I9ZVtnK3ErK10sYy5oZWFkJiZ3YiYmYy5sZW5ndGg8NjU1MzYmJihjLmhlYWQuY29tbWVudCs9U3RyaW5nLmZyb21DaGFyQ29kZSh3YikpO3doaWxlKHdiJiZpPnEpO2lmKDUxMiZjLmZsYWdzJiYoYy5jaGVjaz10KGMuY2hlY2ssZSxxLGcpKSxpLT1xLGcrPXEsd2IpYnJlYWsgYX1lbHNlIGMuaGVhZCYmKGMuaGVhZC5jb21tZW50PW51bGwpO2MubW9kZT1TO2Nhc2UgUzppZig1MTImYy5mbGFncyl7Zm9yKDsxNj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYobSE9PSg2NTUzNSZjLmNoZWNrKSl7YS5tc2c9ImhlYWRlciBjcmMgbWlzbWF0Y2giLGMubW9kZT1sYjticmVha31tPTAsbj0wfWMuaGVhZCYmKGMuaGVhZC5oY3JjPWMuZmxhZ3M+PjkmMSxjLmhlYWQuZG9uZT0hMCksYS5hZGxlcj1jLmNoZWNrPTAsYy5tb2RlPVY7YnJlYWs7Y2FzZSBUOmZvcig7MzI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWEuYWRsZXI9Yy5jaGVjaz1kKG0pLG09MCxuPTAsYy5tb2RlPVU7Y2FzZSBVOmlmKDA9PT1jLmhhdmVkaWN0KXJldHVybiBhLm5leHRfb3V0PWgsYS5hdmFpbF9vdXQ9aixhLm5leHRfaW49ZyxhLmF2YWlsX2luPWksYy5ob2xkPW0sYy5iaXRzPW4sRTthLmFkbGVyPWMuY2hlY2s9MSxjLm1vZGU9VjtjYXNlIFY6aWYoYj09PUF8fGI9PT1CKWJyZWFrIGE7Y2FzZSBXOmlmKGMubGFzdCl7bT4+Pj03Jm4sbi09NyZuLGMubW9kZT1pYjticmVha31mb3IoOzM+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fXN3aXRjaChjLmxhc3Q9MSZtLG0+Pj49MSxuLT0xLDMmbSl7Y2FzZSAwOmMubW9kZT1YO2JyZWFrO2Nhc2UgMTppZihrKGMpLGMubW9kZT1iYixiPT09Qil7bT4+Pj0yLG4tPTI7YnJlYWsgYX1icmVhaztjYXNlIDI6Yy5tb2RlPSQ7YnJlYWs7Y2FzZSAzOmEubXNnPSJpbnZhbGlkIGJsb2NrIHR5cGUiLGMubW9kZT1sYn1tPj4+PTIsbi09MjticmVhaztjYXNlIFg6Zm9yKG0+Pj49NyZuLG4tPTcmbjszMj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoKDY1NTM1Jm0pIT09KG0+Pj4xNl42NTUzNSkpe2EubXNnPSJpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzIixjLm1vZGU9bGI7YnJlYWt9aWYoYy5sZW5ndGg9NjU1MzUmbSxtPTAsbj0wLGMubW9kZT1ZLGI9PT1CKWJyZWFrIGE7Y2FzZSBZOmMubW9kZT1aO2Nhc2UgWjppZihxPWMubGVuZ3RoKXtpZihxPmkmJihxPWkpLHE+aiYmKHE9aiksMD09PXEpYnJlYWsgYTtyLmFycmF5U2V0KGYsZSxnLHEsaCksaS09cSxnKz1xLGotPXEsaCs9cSxjLmxlbmd0aC09cTticmVha31jLm1vZGU9VjticmVhaztjYXNlICQ6Zm9yKDsxND5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoYy5ubGVuPSgzMSZtKSsyNTcsbT4+Pj01LG4tPTUsYy5uZGlzdD0oMzEmbSkrMSxtPj4+PTUsbi09NSxjLm5jb2RlPSgxNSZtKSs0LG0+Pj49NCxuLT00LGMubmxlbj4yODZ8fGMubmRpc3Q+MzApe2EubXNnPSJ0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scyIsYy5tb2RlPWxiO2JyZWFrfWMuaGF2ZT0wLGMubW9kZT1fO2Nhc2UgXzpmb3IoO2MuaGF2ZTxjLm5jb2RlOyl7Zm9yKDszPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmxlbnNbQ2JbYy5oYXZlKytdXT03Jm0sbT4+Pj0zLG4tPTN9Zm9yKDtjLmhhdmU8MTk7KWMubGVuc1tDYltjLmhhdmUrK11dPTA7aWYoYy5sZW5jb2RlPWMubGVuZHluLGMubGVuYml0cz03LHliPXtiaXRzOmMubGVuYml0c30seGI9dih3LGMubGVucywwLDE5LGMubGVuY29kZSwwLGMud29yayx5YiksYy5sZW5iaXRzPXliLmJpdHMseGIpe2EubXNnPSJpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQiLGMubW9kZT1sYjticmVha31jLmhhdmU9MCxjLm1vZGU9YWI7Y2FzZSBhYjpmb3IoO2MuaGF2ZTxjLm5sZW4rYy5uZGlzdDspe2Zvcig7QWI9Yy5sZW5jb2RlW20mKDE8PGMubGVuYml0cyktMV0scWI9QWI+Pj4yNCxyYj1BYj4+PjE2JjI1NSxzYj02NTUzNSZBYiwhKG4+PXFiKTspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKDE2PnNiKW0+Pj49cWIsbi09cWIsYy5sZW5zW2MuaGF2ZSsrXT1zYjtlbHNle2lmKDE2PT09c2Ipe2Zvcih6Yj1xYisyO3piPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihtPj4+PXFiLG4tPXFiLDA9PT1jLmhhdmUpe2EubXNnPSJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0IixjLm1vZGU9bGI7YnJlYWt9d2I9Yy5sZW5zW2MuaGF2ZS0xXSxxPTMrKDMmbSksbT4+Pj0yLG4tPTJ9ZWxzZSBpZigxNz09PXNiKXtmb3IoemI9cWIrMzt6Yj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9bT4+Pj1xYixuLT1xYix3Yj0wLHE9MysoNyZtKSxtPj4+PTMsbi09M31lbHNle2Zvcih6Yj1xYis3O3piPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXFiLG4tPXFiLHdiPTAscT0xMSsoMTI3Jm0pLG0+Pj49NyxuLT03fWlmKGMuaGF2ZStxPmMubmxlbitjLm5kaXN0KXthLm1zZz0iaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCIsYy5tb2RlPWxiO2JyZWFrfWZvcig7cS0tOyljLmxlbnNbYy5oYXZlKytdPXdifX1pZihjLm1vZGU9PT1sYilicmVhaztpZigwPT09Yy5sZW5zWzI1Nl0pe2EubXNnPSJpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2siLGMubW9kZT1sYjticmVha31pZihjLmxlbmJpdHM9OSx5Yj17Yml0czpjLmxlbmJpdHN9LHhiPXYoeCxjLmxlbnMsMCxjLm5sZW4sYy5sZW5jb2RlLDAsYy53b3JrLHliKSxjLmxlbmJpdHM9eWIuYml0cyx4Yil7YS5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldCIsYy5tb2RlPWxiO2JyZWFrfWlmKGMuZGlzdGJpdHM9NixjLmRpc3Rjb2RlPWMuZGlzdGR5bix5Yj17Yml0czpjLmRpc3RiaXRzfSx4Yj12KHksYy5sZW5zLGMubmxlbixjLm5kaXN0LGMuZGlzdGNvZGUsMCxjLndvcmsseWIpLGMuZGlzdGJpdHM9eWIuYml0cyx4Yil7YS5tc2c9ImludmFsaWQgZGlzdGFuY2VzIHNldCIsYy5tb2RlPWxiO2JyZWFrfWlmKGMubW9kZT1iYixiPT09QilicmVhayBhO2Nhc2UgYmI6Yy5tb2RlPWNiO2Nhc2UgY2I6aWYoaT49NiYmaj49MjU4KXthLm5leHRfb3V0PWgsYS5hdmFpbF9vdXQ9aixhLm5leHRfaW49ZyxhLmF2YWlsX2luPWksYy5ob2xkPW0sYy5iaXRzPW4sdShhLHApLGg9YS5uZXh0X291dCxmPWEub3V0cHV0LGo9YS5hdmFpbF9vdXQsZz1hLm5leHRfaW4sZT1hLmlucHV0LGk9YS5hdmFpbF9pbixtPWMuaG9sZCxuPWMuYml0cyxjLm1vZGU9PT1WJiYoYy5iYWNrPS0xKTsKYnJlYWt9Zm9yKGMuYmFjaz0wO0FiPWMubGVuY29kZVttJigxPDxjLmxlbmJpdHMpLTFdLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj1xYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihyYiYmMD09PSgyNDAmcmIpKXtmb3IodGI9cWIsdWI9cmIsdmI9c2I7QWI9Yy5sZW5jb2RlW3ZiKygobSYoMTw8dGIrdWIpLTEpPj50YildLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj10YitxYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXRiLG4tPXRiLGMuYmFjays9dGJ9aWYobT4+Pj1xYixuLT1xYixjLmJhY2srPXFiLGMubGVuZ3RoPXNiLDA9PT1yYil7Yy5tb2RlPWhiO2JyZWFrfWlmKDMyJnJiKXtjLmJhY2s9LTEsYy5tb2RlPVY7YnJlYWt9aWYoNjQmcmIpe2EubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLGMubW9kZT1sYjticmVha31jLmV4dHJhPTE1JnJiLGMubW9kZT1kYjtjYXNlIGRiOmlmKGMuZXh0cmEpe2Zvcih6Yj1jLmV4dHJhO3piPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmxlbmd0aCs9bSYoMTw8Yy5leHRyYSktMSxtPj4+PWMuZXh0cmEsbi09Yy5leHRyYSxjLmJhY2srPWMuZXh0cmF9Yy53YXM9Yy5sZW5ndGgsYy5tb2RlPWViO2Nhc2UgZWI6Zm9yKDtBYj1jLmRpc3Rjb2RlW20mKDE8PGMuZGlzdGJpdHMpLTFdLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj1xYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZigwPT09KDI0MCZyYikpe2Zvcih0Yj1xYix1Yj1yYix2Yj1zYjtBYj1jLmRpc3Rjb2RlW3ZiKygobSYoMTw8dGIrdWIpLTEpPj50YildLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj10YitxYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXRiLG4tPXRiLGMuYmFjays9dGJ9aWYobT4+Pj1xYixuLT1xYixjLmJhY2srPXFiLDY0JnJiKXthLm1zZz0iaW52YWxpZCBkaXN0YW5jZSBjb2RlIixjLm1vZGU9bGI7YnJlYWt9Yy5vZmZzZXQ9c2IsYy5leHRyYT0xNSZyYixjLm1vZGU9ZmI7Y2FzZSBmYjppZihjLmV4dHJhKXtmb3IoemI9Yy5leHRyYTt6Yj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5vZmZzZXQrPW0mKDE8PGMuZXh0cmEpLTEsbT4+Pj1jLmV4dHJhLG4tPWMuZXh0cmEsYy5iYWNrKz1jLmV4dHJhfWlmKGMub2Zmc2V0PmMuZG1heCl7YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixjLm1vZGU9bGI7YnJlYWt9Yy5tb2RlPWdiO2Nhc2UgZ2I6aWYoMD09PWopYnJlYWsgYTtpZihxPXAtaixjLm9mZnNldD5xKXtpZihxPWMub2Zmc2V0LXEscT5jLndoYXZlJiZjLnNhbmUpe2EubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsYy5tb2RlPWxiO2JyZWFrfXE+Yy53bmV4dD8ocS09Yy53bmV4dCxvYj1jLndzaXplLXEpOm9iPWMud25leHQtcSxxPmMubGVuZ3RoJiYocT1jLmxlbmd0aCkscGI9Yy53aW5kb3d9ZWxzZSBwYj1mLG9iPWgtYy5vZmZzZXQscT1jLmxlbmd0aDtxPmomJihxPWopLGotPXEsYy5sZW5ndGgtPXE7ZG8gZltoKytdPXBiW29iKytdO3doaWxlKC0tcSk7MD09PWMubGVuZ3RoJiYoYy5tb2RlPWNiKTticmVhaztjYXNlIGhiOmlmKDA9PT1qKWJyZWFrIGE7ZltoKytdPWMubGVuZ3RoLGotLSxjLm1vZGU9Y2I7YnJlYWs7Y2FzZSBpYjppZihjLndyYXApe2Zvcig7MzI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG18PWVbZysrXTw8bixuKz04fWlmKHAtPWosYS50b3RhbF9vdXQrPXAsYy50b3RhbCs9cCxwJiYoYS5hZGxlcj1jLmNoZWNrPWMuZmxhZ3M/dChjLmNoZWNrLGYscCxoLXApOnMoYy5jaGVjayxmLHAsaC1wKSkscD1qLChjLmZsYWdzP206ZChtKSkhPT1jLmNoZWNrKXthLm1zZz0iaW5jb3JyZWN0IGRhdGEgY2hlY2siLGMubW9kZT1sYjticmVha31tPTAsbj0wfWMubW9kZT1qYjtjYXNlIGpiOmlmKGMud3JhcCYmYy5mbGFncyl7Zm9yKDszMj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYobSE9PSg0Mjk0OTY3Mjk1JmMudG90YWwpKXthLm1zZz0iaW5jb3JyZWN0IGxlbmd0aCBjaGVjayIsYy5tb2RlPWxiO2JyZWFrfW09MCxuPTB9Yy5tb2RlPWtiO2Nhc2Uga2I6eGI9RDticmVhayBhO2Nhc2UgbGI6eGI9RzticmVhayBhO2Nhc2UgbWI6cmV0dXJuIEg7Y2FzZSBuYjpkZWZhdWx0OnJldHVybiBGfXJldHVybiBhLm5leHRfb3V0PWgsYS5hdmFpbF9vdXQ9aixhLm5leHRfaW49ZyxhLmF2YWlsX2luPWksYy5ob2xkPW0sYy5iaXRzPW4sKGMud3NpemV8fHAhPT1hLmF2YWlsX291dCYmYy5tb2RlPGxiJiYoYy5tb2RlPGlifHxiIT09eikpJiZsKGEsYS5vdXRwdXQsYS5uZXh0X291dCxwLWEuYXZhaWxfb3V0KT8oYy5tb2RlPW1iLEgpOihvLT1hLmF2YWlsX2luLHAtPWEuYXZhaWxfb3V0LGEudG90YWxfaW4rPW8sYS50b3RhbF9vdXQrPXAsYy50b3RhbCs9cCxjLndyYXAmJnAmJihhLmFkbGVyPWMuY2hlY2s9Yy5mbGFncz90KGMuY2hlY2ssZixwLGEubmV4dF9vdXQtcCk6cyhjLmNoZWNrLGYscCxhLm5leHRfb3V0LXApKSxhLmRhdGFfdHlwZT1jLmJpdHMrKGMubGFzdD82NDowKSsoYy5tb2RlPT09Vj8xMjg6MCkrKGMubW9kZT09PWJifHxjLm1vZGU9PT1ZPzI1NjowKSwoMD09PW8mJjA9PT1wfHxiPT09eikmJnhiPT09QyYmKHhiPUkpLHhiKX1mdW5jdGlvbiBuKGEpe2lmKCFhfHwhYS5zdGF0ZSlyZXR1cm4gRjt2YXIgYj1hLnN0YXRlO3JldHVybiBiLndpbmRvdyYmKGIud2luZG93PW51bGwpLGEuc3RhdGU9bnVsbCxDfWZ1bmN0aW9uIG8oYSxiKXt2YXIgYztyZXR1cm4gYSYmYS5zdGF0ZT8oYz1hLnN0YXRlLDA9PT0oMiZjLndyYXApP0Y6KGMuaGVhZD1iLGIuZG9uZT0hMSxDKSk6Rn12YXIgcCxxLHI9YSgiLi4vdXRpbHMvY29tbW9uIikscz1hKCIuL2FkbGVyMzIiKSx0PWEoIi4vY3JjMzIiKSx1PWEoIi4vaW5mZmFzdCIpLHY9YSgiLi9pbmZ0cmVlcyIpLHc9MCx4PTEseT0yLHo9NCxBPTUsQj02LEM9MCxEPTEsRT0yLEY9LTIsRz0tMyxIPS00LEk9LTUsSj04LEs9MSxMPTIsTT0zLE49NCxPPTUsUD02LFE9NyxSPTgsUz05LFQ9MTAsVT0xMSxWPTEyLFc9MTMsWD0xNCxZPTE1LFo9MTYsJD0xNyxfPTE4LGFiPTE5LGJiPTIwLGNiPTIxLGRiPTIyLGViPTIzLGZiPTI0LGdiPTI1LGhiPTI2LGliPTI3LGpiPTI4LGtiPTI5LGxiPTMwLG1iPTMxLG5iPTMyLG9iPTg1MixwYj01OTIscWI9MTUscmI9cWIsc2I9ITA7Yy5pbmZsYXRlUmVzZXQ9ZyxjLmluZmxhdGVSZXNldDI9aCxjLmluZmxhdGVSZXNldEtlZXA9ZixjLmluZmxhdGVJbml0PWosYy5pbmZsYXRlSW5pdDI9aSxjLmluZmxhdGU9bSxjLmluZmxhdGVFbmQ9bixjLmluZmxhdGVHZXRIZWFkZXI9byxjLmluZmxhdGVJbmZvPSJwYWtvIGluZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0seyIuLi91dGlscy9jb21tb24iOjI3LCIuL2FkbGVyMzIiOjI5LCIuL2NyYzMyIjozMSwiLi9pbmZmYXN0IjozNCwiLi9pbmZ0cmVlcyI6MzZ9XSwzNjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi4vdXRpbHMvY29tbW9uIiksZD0xNSxlPTg1MixmPTU5MixnPTAsaD0xLGk9MixqPVszLDQsNSw2LDcsOCw5LDEwLDExLDEzLDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4LDAsMF0saz1bMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTcsMTcsMTcsMTcsMTgsMTgsMTgsMTgsMTksMTksMTksMTksMjAsMjAsMjAsMjAsMjEsMjEsMjEsMjEsMTYsNzIsNzhdLGw9WzEsMiwzLDQsNSw3LDksMTMsMTcsMjUsMzMsNDksNjUsOTcsMTI5LDE5MywyNTcsMzg1LDUxMyw3NjksMTAyNSwxNTM3LDIwNDksMzA3Myw0MDk3LDYxNDUsODE5MywxMjI4OSwxNjM4NSwyNDU3NywwLDBdLG09WzE2LDE2LDE2LDE2LDE3LDE3LDE4LDE4LDE5LDE5LDIwLDIwLDIxLDIxLDIyLDIyLDIzLDIzLDI0LDI0LDI1LDI1LDI2LDI2LDI3LDI3LDI4LDI4LDI5LDI5LDY0LDY0XTtiLmV4cG9ydHM9ZnVuY3Rpb24oYSxiLG4sbyxwLHEscixzKXt2YXIgdCx1LHYsdyx4LHkseixBLEIsQz1zLmJpdHMsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49bnVsbCxPPTAsUD1uZXcgYy5CdWYxNihkKzEpLFE9bmV3IGMuQnVmMTYoZCsxKSxSPW51bGwsUz0wO2ZvcihEPTA7ZD49RDtEKyspUFtEXT0wO2ZvcihFPTA7bz5FO0UrKylQW2JbbitFXV0rKztmb3IoSD1DLEc9ZDtHPj0xJiYwPT09UFtHXTtHLS0pO2lmKEg+RyYmKEg9RyksMD09PUcpcmV0dXJuIHBbcSsrXT0yMDk3MTUyMCxwW3ErK109MjA5NzE1MjAscy5iaXRzPTEsMDtmb3IoRj0xO0c+RiYmMD09PVBbRl07RisrKTtmb3IoRj5IJiYoSD1GKSxLPTEsRD0xO2Q+PUQ7RCsrKWlmKEs8PD0xLEstPVBbRF0sMD5LKXJldHVybi0xO2lmKEs+MCYmKGE9PT1nfHwxIT09RykpcmV0dXJuLTE7Zm9yKFFbMV09MCxEPTE7ZD5EO0QrKylRW0QrMV09UVtEXStQW0RdO2ZvcihFPTA7bz5FO0UrKykwIT09YltuK0VdJiYocltRW2JbbitFXV0rK109RSk7aWYoYT09PWc/KE49Uj1yLHk9MTkpOmE9PT1oPyhOPWosTy09MjU3LFI9ayxTLT0yNTcseT0yNTYpOihOPWwsUj1tLHk9LTEpLE09MCxFPTAsRD1GLHg9cSxJPUgsSj0wLHY9LTEsTD0xPDxILHc9TC0xLGE9PT1oJiZMPmV8fGE9PT1pJiZMPmYpcmV0dXJuIDE7Zm9yKHZhciBUPTA7Oyl7VCsrLHo9RC1KLHJbRV08eT8oQT0wLEI9cltFXSk6cltFXT55PyhBPVJbUytyW0VdXSxCPU5bTytyW0VdXSk6KEE9OTYsQj0wKSx0PTE8PEQtSix1PTE8PEksRj11O2RvIHUtPXQscFt4KyhNPj5KKSt1XT16PDwyNHxBPDwxNnxCfDA7d2hpbGUoMCE9PXUpO2Zvcih0PTE8PEQtMTtNJnQ7KXQ+Pj0xO2lmKDAhPT10PyhNJj10LTEsTSs9dCk6TT0wLEUrKywwPT09LS1QW0RdKXtpZihEPT09RylicmVhaztEPWJbbityW0VdXX1pZihEPkgmJihNJncpIT09dil7Zm9yKDA9PT1KJiYoSj1IKSx4Kz1GLEk9RC1KLEs9MTw8STtHPkkrSiYmKEstPVBbSStKXSwhKDA+PUspKTspSSsrLEs8PD0xO2lmKEwrPTE8PEksYT09PWgmJkw+ZXx8YT09PWkmJkw+ZilyZXR1cm4gMTt2PU0mdyxwW3ZdPUg8PDI0fEk8PDE2fHgtcXwwfX1yZXR1cm4gMCE9PU0mJihwW3grTV09RC1KPDwyNHw2NDw8MTZ8MCkscy5iaXRzPUgsMH19LHsiLi4vdXRpbHMvY29tbW9uIjoyN31dLDM3OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtiLmV4cG9ydHM9ezI6Im5lZWQgZGljdGlvbmFyeSIsMToic3RyZWFtIGVuZCIsMDoiIiwiLTEiOiJmaWxlIGVycm9yIiwiLTIiOiJzdHJlYW0gZXJyb3IiLCItMyI6ImRhdGEgZXJyb3IiLCItNCI6Imluc3VmZmljaWVudCBtZW1vcnkiLCItNSI6ImJ1ZmZlciBlcnJvciIsIi02IjoiaW5jb21wYXRpYmxlIHZlcnNpb24ifX0se31dLDM4OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7Zm9yKHZhciBiPWEubGVuZ3RoOy0tYj49MDspYVtiXT0wfWZ1bmN0aW9uIGUoYSl7cmV0dXJuIDI1Nj5hP2diW2FdOmdiWzI1NisoYT4+PjcpXX1mdW5jdGlvbiBmKGEsYil7YS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109MjU1JmIsYS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109Yj4+PjgmMjU1fWZ1bmN0aW9uIGcoYSxiLGMpe2EuYmlfdmFsaWQ+Vi1jPyhhLmJpX2J1Znw9Yjw8YS5iaV92YWxpZCY2NTUzNSxmKGEsYS5iaV9idWYpLGEuYmlfYnVmPWI+PlYtYS5iaV92YWxpZCxhLmJpX3ZhbGlkKz1jLVYpOihhLmJpX2J1Znw9Yjw8YS5iaV92YWxpZCY2NTUzNSxhLmJpX3ZhbGlkKz1jKX1mdW5jdGlvbiBoKGEsYixjKXtnKGEsY1syKmJdLGNbMipiKzFdKX1mdW5jdGlvbiBpKGEsYil7dmFyIGM9MDtkbyBjfD0xJmEsYT4+Pj0xLGM8PD0xO3doaWxlKC0tYj4wKTtyZXR1cm4gYz4+PjF9ZnVuY3Rpb24gaihhKXsxNj09PWEuYmlfdmFsaWQ/KGYoYSxhLmJpX2J1ZiksYS5iaV9idWY9MCxhLmJpX3ZhbGlkPTApOmEuYmlfdmFsaWQ+PTgmJihhLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT0yNTUmYS5iaV9idWYsYS5iaV9idWY+Pj04LGEuYmlfdmFsaWQtPTgpfWZ1bmN0aW9uIGsoYSxiKXt2YXIgYyxkLGUsZixnLGgsaT1iLmR5bl90cmVlLGo9Yi5tYXhfY29kZSxrPWIuc3RhdF9kZXNjLnN0YXRpY190cmVlLGw9Yi5zdGF0X2Rlc2MuaGFzX3N0cmVlLG09Yi5zdGF0X2Rlc2MuZXh0cmFfYml0cyxuPWIuc3RhdF9kZXNjLmV4dHJhX2Jhc2Usbz1iLnN0YXRfZGVzYy5tYXhfbGVuZ3RoLHA9MDtmb3IoZj0wO1U+PWY7ZisrKWEuYmxfY291bnRbZl09MDtmb3IoaVsyKmEuaGVhcFthLmhlYXBfbWF4XSsxXT0wLGM9YS5oZWFwX21heCsxO1Q+YztjKyspZD1hLmhlYXBbY10sZj1pWzIqaVsyKmQrMV0rMV0rMSxmPm8mJihmPW8scCsrKSxpWzIqZCsxXT1mLGQ+anx8KGEuYmxfY291bnRbZl0rKyxnPTAsZD49biYmKGc9bVtkLW5dKSxoPWlbMipkXSxhLm9wdF9sZW4rPWgqKGYrZyksbCYmKGEuc3RhdGljX2xlbis9aCooa1syKmQrMV0rZykpKTtpZigwIT09cCl7ZG97Zm9yKGY9by0xOzA9PT1hLmJsX2NvdW50W2ZdOylmLS07YS5ibF9jb3VudFtmXS0tLGEuYmxfY291bnRbZisxXSs9MixhLmJsX2NvdW50W29dLS0scC09Mn13aGlsZShwPjApO2ZvcihmPW87MCE9PWY7Zi0tKWZvcihkPWEuYmxfY291bnRbZl07MCE9PWQ7KWU9YS5oZWFwWy0tY10sZT5qfHwoaVsyKmUrMV0hPT1mJiYoYS5vcHRfbGVuKz0oZi1pWzIqZSsxXSkqaVsyKmVdLGlbMiplKzFdPWYpLGQtLSl9fWZ1bmN0aW9uIGwoYSxiLGMpe3ZhciBkLGUsZj1uZXcgQXJyYXkoVSsxKSxnPTA7Zm9yKGQ9MTtVPj1kO2QrKylmW2RdPWc9ZytjW2QtMV08PDE7Zm9yKGU9MDtiPj1lO2UrKyl7dmFyIGg9YVsyKmUrMV07MCE9PWgmJihhWzIqZV09aShmW2hdKyssaCkpfX1mdW5jdGlvbiBtKCl7dmFyIGEsYixjLGQsZSxmPW5ldyBBcnJheShVKzEpO2ZvcihjPTAsZD0wO08tMT5kO2QrKylmb3IoaWJbZF09YyxhPTA7YTwxPDxfW2RdO2ErKyloYltjKytdPWQ7Zm9yKGhiW2MtMV09ZCxlPTAsZD0wOzE2PmQ7ZCsrKWZvcihqYltkXT1lLGE9MDthPDE8PGFiW2RdO2ErKylnYltlKytdPWQ7Zm9yKGU+Pj03O1I+ZDtkKyspZm9yKGpiW2RdPWU8PDcsYT0wO2E8MTw8YWJbZF0tNzthKyspZ2JbMjU2K2UrK109ZDtmb3IoYj0wO1U+PWI7YisrKWZbYl09MDtmb3IoYT0wOzE0Mz49YTspZWJbMiphKzFdPTgsYSsrLGZbOF0rKztmb3IoOzI1NT49YTspZWJbMiphKzFdPTksYSsrLGZbOV0rKztmb3IoOzI3OT49YTspZWJbMiphKzFdPTcsYSsrLGZbN10rKztmb3IoOzI4Nz49YTspZWJbMiphKzFdPTgsYSsrLGZbOF0rKztmb3IobChlYixRKzEsZiksYT0wO1I+YTthKyspZmJbMiphKzFdPTUsZmJbMiphXT1pKGEsNSk7a2I9bmV3IG5iKGViLF8sUCsxLFEsVSksbGI9bmV3IG5iKGZiLGFiLDAsUixVKSxtYj1uZXcgbmIobmV3IEFycmF5KDApLGJiLDAsUyxXKX1mdW5jdGlvbiBuKGEpe3ZhciBiO2ZvcihiPTA7UT5iO2IrKylhLmR5bl9sdHJlZVsyKmJdPTA7Zm9yKGI9MDtSPmI7YisrKWEuZHluX2R0cmVlWzIqYl09MDtmb3IoYj0wO1M+YjtiKyspYS5ibF90cmVlWzIqYl09MDthLmR5bl9sdHJlZVsyKlhdPTEsYS5vcHRfbGVuPWEuc3RhdGljX2xlbj0wLGEubGFzdF9saXQ9YS5tYXRjaGVzPTB9ZnVuY3Rpb24gbyhhKXthLmJpX3ZhbGlkPjg/ZihhLGEuYmlfYnVmKTphLmJpX3ZhbGlkPjAmJihhLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT1hLmJpX2J1ZiksYS5iaV9idWY9MCxhLmJpX3ZhbGlkPTB9ZnVuY3Rpb24gcChhLGIsYyxkKXtvKGEpLGQmJihmKGEsYyksZihhLH5jKSksRS5hcnJheVNldChhLnBlbmRpbmdfYnVmLGEud2luZG93LGIsYyxhLnBlbmRpbmcpLGEucGVuZGluZys9Y31mdW5jdGlvbiBxKGEsYixjLGQpe3ZhciBlPTIqYixmPTIqYztyZXR1cm4gYVtlXTxhW2ZdfHxhW2VdPT09YVtmXSYmZFtiXTw9ZFtjXX1mdW5jdGlvbiByKGEsYixjKXtmb3IodmFyIGQ9YS5oZWFwW2NdLGU9Yzw8MTtlPD1hLmhlYXBfbGVuJiYoZTxhLmhlYXBfbGVuJiZxKGIsYS5oZWFwW2UrMV0sYS5oZWFwW2VdLGEuZGVwdGgpJiZlKyssIXEoYixkLGEuaGVhcFtlXSxhLmRlcHRoKSk7KWEuaGVhcFtjXT1hLmhlYXBbZV0sYz1lLGU8PD0xO2EuaGVhcFtjXT1kfWZ1bmN0aW9uIHMoYSxiLGMpe3ZhciBkLGYsaSxqLGs9MDtpZigwIT09YS5sYXN0X2xpdClkbyBkPWEucGVuZGluZ19idWZbYS5kX2J1ZisyKmtdPDw4fGEucGVuZGluZ19idWZbYS5kX2J1ZisyKmsrMV0sZj1hLnBlbmRpbmdfYnVmW2EubF9idWYra10saysrLDA9PT1kP2goYSxmLGIpOihpPWhiW2ZdLGgoYSxpK1ArMSxiKSxqPV9baV0sMCE9PWomJihmLT1pYltpXSxnKGEsZixqKSksZC0tLGk9ZShkKSxoKGEsaSxjKSxqPWFiW2ldLDAhPT1qJiYoZC09amJbaV0sZyhhLGQsaikpKTt3aGlsZShrPGEubGFzdF9saXQpO2goYSxYLGIpfWZ1bmN0aW9uIHQoYSxiKXt2YXIgYyxkLGUsZj1iLmR5bl90cmVlLGc9Yi5zdGF0X2Rlc2Muc3RhdGljX3RyZWUsaD1iLnN0YXRfZGVzYy5oYXNfc3RyZWUsaT1iLnN0YXRfZGVzYy5lbGVtcyxqPS0xO2ZvcihhLmhlYXBfbGVuPTAsYS5oZWFwX21heD1ULGM9MDtpPmM7YysrKTAhPT1mWzIqY10/KGEuaGVhcFsrK2EuaGVhcF9sZW5dPWo9YyxhLmRlcHRoW2NdPTApOmZbMipjKzFdPTA7Zm9yKDthLmhlYXBfbGVuPDI7KWU9YS5oZWFwWysrYS5oZWFwX2xlbl09Mj5qPysrajowLGZbMiplXT0xLGEuZGVwdGhbZV09MCxhLm9wdF9sZW4tLSxoJiYoYS5zdGF0aWNfbGVuLT1nWzIqZSsxXSk7Zm9yKGIubWF4X2NvZGU9aixjPWEuaGVhcF9sZW4+PjE7Yz49MTtjLS0pcihhLGYsYyk7ZT1pO2RvIGM9YS5oZWFwWzFdLGEuaGVhcFsxXT1hLmhlYXBbYS5oZWFwX2xlbi0tXSxyKGEsZiwxKSxkPWEuaGVhcFsxXSxhLmhlYXBbLS1hLmhlYXBfbWF4XT1jLGEuaGVhcFstLWEuaGVhcF9tYXhdPWQsZlsyKmVdPWZbMipjXStmWzIqZF0sYS5kZXB0aFtlXT0oYS5kZXB0aFtjXT49YS5kZXB0aFtkXT9hLmRlcHRoW2NdOmEuZGVwdGhbZF0pKzEsZlsyKmMrMV09ZlsyKmQrMV09ZSxhLmhlYXBbMV09ZSsrLHIoYSxmLDEpO3doaWxlKGEuaGVhcF9sZW4+PTIpO2EuaGVhcFstLWEuaGVhcF9tYXhdPWEuaGVhcFsxXSxrKGEsYiksbChmLGosYS5ibF9jb3VudCl9ZnVuY3Rpb24gdShhLGIsYyl7dmFyIGQsZSxmPS0xLGc9YlsxXSxoPTAsaT03LGo9NDtmb3IoMD09PWcmJihpPTEzOCxqPTMpLGJbMiooYysxKSsxXT02NTUzNSxkPTA7Yz49ZDtkKyspZT1nLGc9YlsyKihkKzEpKzFdLCsraDxpJiZlPT09Z3x8KGo+aD9hLmJsX3RyZWVbMiplXSs9aDowIT09ZT8oZSE9PWYmJmEuYmxfdHJlZVsyKmVdKyssYS5ibF90cmVlWzIqWV0rKyk6MTA+PWg/YS5ibF90cmVlWzIqWl0rKzphLmJsX3RyZWVbMiokXSsrLGg9MCxmPWUsMD09PWc/KGk9MTM4LGo9Myk6ZT09PWc/KGk9NixqPTMpOihpPTcsaj00KSl9ZnVuY3Rpb24gdihhLGIsYyl7dmFyIGQsZSxmPS0xLGk9YlsxXSxqPTAsaz03LGw9NDtmb3IoMD09PWkmJihrPTEzOCxsPTMpLGQ9MDtjPj1kO2QrKylpZihlPWksaT1iWzIqKGQrMSkrMV0sISgrK2o8ayYmZT09PWkpKXtpZihsPmope2RvIGgoYSxlLGEuYmxfdHJlZSk7d2hpbGUoMCE9PS0tail9ZWxzZSAwIT09ZT8oZSE9PWYmJihoKGEsZSxhLmJsX3RyZWUpLGotLSksaChhLFksYS5ibF90cmVlKSxnKGEsai0zLDIpKToxMD49aj8oaChhLFosYS5ibF90cmVlKSxnKGEsai0zLDMpKTooaChhLCQsYS5ibF90cmVlKSxnKGEsai0xMSw3KSk7aj0wLGY9ZSwwPT09aT8oaz0xMzgsbD0zKTplPT09aT8oaz02LGw9Myk6KGs9NyxsPTQpfX1mdW5jdGlvbiB3KGEpe3ZhciBiO2Zvcih1KGEsYS5keW5fbHRyZWUsYS5sX2Rlc2MubWF4X2NvZGUpLHUoYSxhLmR5bl9kdHJlZSxhLmRfZGVzYy5tYXhfY29kZSksdChhLGEuYmxfZGVzYyksYj1TLTE7Yj49MyYmMD09PWEuYmxfdHJlZVsyKmNiW2JdKzFdO2ItLSk7cmV0dXJuIGEub3B0X2xlbis9MyooYisxKSs1KzUrNCxifWZ1bmN0aW9uIHgoYSxiLGMsZCl7dmFyIGU7Zm9yKGcoYSxiLTI1Nyw1KSxnKGEsYy0xLDUpLGcoYSxkLTQsNCksZT0wO2Q+ZTtlKyspZyhhLGEuYmxfdHJlZVsyKmNiW2VdKzFdLDMpO3YoYSxhLmR5bl9sdHJlZSxiLTEpLHYoYSxhLmR5bl9kdHJlZSxjLTEpfWZ1bmN0aW9uIHkoYSl7dmFyIGIsYz00MDkzNjI0NDQ3O2ZvcihiPTA7MzE+PWI7YisrLGM+Pj49MSlpZigxJmMmJjAhPT1hLmR5bl9sdHJlZVsyKmJdKXJldHVybiBHO2lmKDAhPT1hLmR5bl9sdHJlZVsxOF18fDAhPT1hLmR5bl9sdHJlZVsyMF18fDAhPT1hLmR5bl9sdHJlZVsyNl0pcmV0dXJuIEg7Zm9yKGI9MzI7UD5iO2IrKylpZigwIT09YS5keW5fbHRyZWVbMipiXSlyZXR1cm4gSDtyZXR1cm4gR31mdW5jdGlvbiB6KGEpe3BifHwobSgpLHBiPSEwKSxhLmxfZGVzYz1uZXcgb2IoYS5keW5fbHRyZWUsa2IpLGEuZF9kZXNjPW5ldyBvYihhLmR5bl9kdHJlZSxsYiksYS5ibF9kZXNjPW5ldyBvYihhLmJsX3RyZWUsbWIpLGEuYmlfYnVmPTAsYS5iaV92YWxpZD0wLG4oYSl9ZnVuY3Rpb24gQShhLGIsYyxkKXtnKGEsKEo8PDEpKyhkPzE6MCksMykscChhLGIsYywhMCl9ZnVuY3Rpb24gQihhKXtnKGEsSzw8MSwzKSxoKGEsWCxlYiksaihhKX1mdW5jdGlvbiBDKGEsYixjLGQpe3ZhciBlLGYsaD0wO2EubGV2ZWw+MD8oYS5zdHJtLmRhdGFfdHlwZT09PUkmJihhLnN0cm0uZGF0YV90eXBlPXkoYSkpLHQoYSxhLmxfZGVzYyksdChhLGEuZF9kZXNjKSxoPXcoYSksZT1hLm9wdF9sZW4rMys3Pj4+MyxmPWEuc3RhdGljX2xlbiszKzc+Pj4zLGU+PWYmJihlPWYpKTplPWY9Yys1LGU+PWMrNCYmLTEhPT1iP0EoYSxiLGMsZCk6YS5zdHJhdGVneT09PUZ8fGY9PT1lPyhnKGEsKEs8PDEpKyhkPzE6MCksMykscyhhLGViLGZiKSk6KGcoYSwoTDw8MSkrKGQ/MTowKSwzKSx4KGEsYS5sX2Rlc2MubWF4X2NvZGUrMSxhLmRfZGVzYy5tYXhfY29kZSsxLGgrMSkscyhhLGEuZHluX2x0cmVlLGEuZHluX2R0cmVlKSksbihhKSxkJiZvKGEpfWZ1bmN0aW9uIEQoYSxiLGMpe3JldHVybiBhLnBlbmRpbmdfYnVmW2EuZF9idWYrMiphLmxhc3RfbGl0XT1iPj4+OCYyNTUsYS5wZW5kaW5nX2J1ZlthLmRfYnVmKzIqYS5sYXN0X2xpdCsxXT0yNTUmYixhLnBlbmRpbmdfYnVmW2EubF9idWYrYS5sYXN0X2xpdF09MjU1JmMsYS5sYXN0X2xpdCsrLDA9PT1iP2EuZHluX2x0cmVlWzIqY10rKzooYS5tYXRjaGVzKyssYi0tLGEuZHluX2x0cmVlWzIqKGhiW2NdK1ArMSldKyssYS5keW5fZHRyZWVbMiplKGIpXSsrKSxhLmxhc3RfbGl0PT09YS5saXRfYnVmc2l6ZS0xfXZhciBFPWEoIi4uL3V0aWxzL2NvbW1vbiIpLEY9NCxHPTAsSD0xLEk9MixKPTAsSz0xLEw9MixNPTMsTj0yNTgsTz0yOSxQPTI1NixRPVArMStPLFI9MzAsUz0xOSxUPTIqUSsxLFU9MTUsVj0xNixXPTcsWD0yNTYsWT0xNixaPTE3LCQ9MTgsXz1bMCwwLDAsMCwwLDAsMCwwLDEsMSwxLDEsMiwyLDIsMiwzLDMsMywzLDQsNCw0LDQsNSw1LDUsNSwwXSxhYj1bMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxM10sYmI9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwzLDddLGNiPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSxkYj01MTIsZWI9bmV3IEFycmF5KDIqKFErMikpO2QoZWIpO3ZhciBmYj1uZXcgQXJyYXkoMipSKTtkKGZiKTt2YXIgZ2I9bmV3IEFycmF5KGRiKTtkKGdiKTt2YXIgaGI9bmV3IEFycmF5KE4tTSsxKTtkKGhiKTt2YXIgaWI9bmV3IEFycmF5KE8pO2QoaWIpO3ZhciBqYj1uZXcgQXJyYXkoUik7ZChqYik7dmFyIGtiLGxiLG1iLG5iPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5zdGF0aWNfdHJlZT1hLHRoaXMuZXh0cmFfYml0cz1iLHRoaXMuZXh0cmFfYmFzZT1jLHRoaXMuZWxlbXM9ZCx0aGlzLm1heF9sZW5ndGg9ZSx0aGlzLmhhc19zdHJlZT1hJiZhLmxlbmd0aH0sb2I9ZnVuY3Rpb24oYSxiKXt0aGlzLmR5bl90cmVlPWEsdGhpcy5tYXhfY29kZT0wLHRoaXMuc3RhdF9kZXNjPWJ9LHBiPSExO2MuX3RyX2luaXQ9eixjLl90cl9zdG9yZWRfYmxvY2s9QSxjLl90cl9mbHVzaF9ibG9jaz1DLGMuX3RyX3RhbGx5PUQsYy5fdHJfYWxpZ249Qn0seyIuLi91dGlscy9jb21tb24iOjI3fV0sMzk6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoKXt0aGlzLmlucHV0PW51bGwsdGhpcy5uZXh0X2luPTAsdGhpcy5hdmFpbF9pbj0wLHRoaXMudG90YWxfaW49MCx0aGlzLm91dHB1dD1udWxsLHRoaXMubmV4dF9vdXQ9MCx0aGlzLmF2YWlsX291dD0wLHRoaXMudG90YWxfb3V0PTAsdGhpcy5tc2c9IiIsdGhpcy5zdGF0ZT1udWxsLHRoaXMuZGF0YV90eXBlPTIsdGhpcy5hZGxlcj0wfWIuZXhwb3J0cz1jfSx7fV19LHt9LFs5XSkoOSl9KTs="></script>
<link href="data:text/css;charset=utf-8,%40keyframes%20dtb%2Dspinner%7B100%25%7Btransform%3Arotate%28360deg%29%7D%7D%40%2Do%2Dkeyframes%20dtb%2Dspinner%7B100%25%7B%2Do%2Dtransform%3Arotate%28360deg%29%3Btransform%3Arotate%28360deg%29%7D%7D%40%2Dms%2Dkeyframes%20dtb%2Dspinner%7B100%25%7B%2Dms%2Dtransform%3Arotate%28360deg%29%3Btransform%3Arotate%28360deg%29%7D%7D%40%2Dwebkit%2Dkeyframes%20dtb%2Dspinner%7B100%25%7B%2Dwebkit%2Dtransform%3Arotate%28360deg%29%3Btransform%3Arotate%28360deg%29%7D%7D%40%2Dmoz%2Dkeyframes%20dtb%2Dspinner%7B100%25%7B%2Dmoz%2Dtransform%3Arotate%28360deg%29%3Btransform%3Arotate%28360deg%29%7D%7Ddiv%2Edt%2Dbutton%2Dinfo%7Bposition%3Afixed%3Btop%3A50%25%3Bleft%3A50%25%3Bwidth%3A400px%3Bmargin%2Dtop%3A%2D100px%3Bmargin%2Dleft%3A%2D200px%3Bbackground%2Dcolor%3Awhite%3Bborder%3A2px%20solid%20%23111%3Bbox%2Dshadow%3A3px%203px%208px%20rgba%280%2C0%2C0%2C0%2E3%29%3Bborder%2Dradius%3A3px%3Btext%2Dalign%3Acenter%3Bz%2Dindex%3A21%7Ddiv%2Edt%2Dbutton%2Dinfo%20h2%7Bpadding%3A0%2E5em%3Bmargin%3A0%3Bfont%2Dweight%3Anormal%3Bborder%2Dbottom%3A1px%20solid%20%23ddd%3Bbackground%2Dcolor%3A%23f3f3f3%7Ddiv%2Edt%2Dbutton%2Dinfo%3Ediv%7Bpadding%3A1em%7Ddiv%2Edt%2Dbutton%2Dcollection%2Dtitle%7Btext%2Dalign%3Acenter%3Bpadding%3A0%2E3em%200%200%2E5em%3Bfont%2Dsize%3A0%2E9em%7Ddiv%2Edt%2Dbutton%2Dcollection%2Dtitle%3Aempty%7Bdisplay%3Anone%7Dbutton%2Edt%2Dbutton%2Cdiv%2Edt%2Dbutton%2Ca%2Edt%2Dbutton%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bbox%2Dsizing%3Aborder%2Dbox%3Bmargin%2Dright%3A0%2E333em%3Bmargin%2Dbottom%3A0%2E333em%3Bpadding%3A0%2E5em%201em%3Bborder%3A1px%20solid%20%23999%3Bborder%2Dradius%3A2px%3Bcursor%3Apointer%3Bfont%2Dsize%3A0%2E88em%3Bline%2Dheight%3A1%2E6em%3Bcolor%3Ablack%3Bwhite%2Dspace%3Anowrap%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e9e9e9%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27white%27%2C%20EndColorStr%3D%27%23e9e9e9%27%29%3B%2Dwebkit%2Duser%2Dselect%3Anone%3B%2Dmoz%2Duser%2Dselect%3Anone%3B%2Dms%2Duser%2Dselect%3Anone%3Buser%2Dselect%3Anone%3Btext%2Ddecoration%3Anone%3Boutline%3Anone%3Btext%2Doverflow%3Aellipsis%7Dbutton%2Edt%2Dbutton%2Edisabled%2Cdiv%2Edt%2Dbutton%2Edisabled%2Ca%2Edt%2Dbutton%2Edisabled%7Bcolor%3A%23999%3Bborder%3A1px%20solid%20%23d0d0d0%3Bcursor%3Adefault%3Bbackground%2Dcolor%3A%23f9f9f9%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23ffffff%27%2C%20EndColorStr%3D%27%23f9f9f9%27%29%7Dbutton%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cbutton%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%7Bbackground%2Dcolor%3A%23e2e2e2%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23f3f3f3%27%2C%20EndColorStr%3D%27%23e2e2e2%27%29%3Bbox%2Dshadow%3Ainset%201px%201px%203px%20%23999999%7Dbutton%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Cbutton%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%7Bbox%2Dshadow%3Ainset%201px%201px%203px%20%23999999%3Bbackground%2Dcolor%3A%23cccccc%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23eaeaea%27%2C%20EndColorStr%3D%27%23cccccc%27%29%7Dbutton%2Edt%2Dbutton%3Ahover%2Cdiv%2Edt%2Dbutton%3Ahover%2Ca%2Edt%2Dbutton%3Ahover%7Btext%2Ddecoration%3Anone%7Dbutton%2Edt%2Dbutton%3Ahover%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%3Ahover%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%3Ahover%3Anot%28%2Edisabled%29%7Bborder%3A1px%20solid%20%23666%3Bbackground%2Dcolor%3A%23e0e0e0%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23f9f9f9%27%2C%20EndColorStr%3D%27%23e0e0e0%27%29%7Dbutton%2Edt%2Dbutton%3Afocus%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%3Afocus%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%3Afocus%3Anot%28%2Edisabled%29%7Bborder%3A1px%20solid%20%23426c9e%3Btext%2Dshadow%3A0%201px%200%20%23c4def1%3Boutline%3Anone%3Bbackground%2Dcolor%3A%2379ace9%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23bddef4%27%2C%20EndColorStr%3D%27%2379ace9%27%29%7D%2Edt%2Dbutton%20embed%7Boutline%3Anone%7Ddiv%2Edt%2Dbuttons%7Bposition%3Arelative%3Bfloat%3Aleft%7Ddiv%2Edt%2Dbuttons%2Ebuttons%2Dright%7Bfloat%3Aright%7Ddiv%2Edt%2Dbutton%2Dcollection%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bwidth%3A150px%3Bmargin%2Dtop%3A3px%3Bpadding%3A8px%208px%204px%208px%3Bborder%3A1px%20solid%20%23ccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E4%29%3Bbackground%2Dcolor%3Awhite%3Boverflow%3Ahidden%3Bz%2Dindex%3A2002%3Bborder%2Dradius%3A5px%3Bbox%2Dshadow%3A3px%203px%205px%20rgba%280%2C0%2C0%2C0%2E3%29%3Bbox%2Dsizing%3Aborder%2Dbox%7Ddiv%2Edt%2Dbutton%2Dcollection%20button%2Edt%2Dbutton%2Cdiv%2Edt%2Dbutton%2Dcollection%20div%2Edt%2Dbutton%2Cdiv%2Edt%2Dbutton%2Dcollection%20a%2Edt%2Dbutton%7Bposition%3Arelative%3Bleft%3A0%3Bright%3A0%3Bwidth%3A100%25%3Bdisplay%3Ablock%3Bfloat%3Anone%3Bmargin%2Dbottom%3A4px%3Bmargin%2Dright%3A0%7Ddiv%2Edt%2Dbutton%2Dcollection%20button%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20button%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20div%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20div%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20a%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20a%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%7Bbackground%2Dcolor%3A%23dadada%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23f0f0f0%27%2C%20EndColorStr%3D%27%23dadada%27%29%3Bbox%2Dshadow%3Ainset%201px%201px%203px%20%23666%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efixed%7Bposition%3Afixed%3Btop%3A50%25%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D75px%3Bborder%2Dradius%3A0%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efixed%2Etwo%2Dcolumn%7Bmargin%2Dleft%3A%2D200px%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efixed%2Ethree%2Dcolumn%7Bmargin%2Dleft%3A%2D225px%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efixed%2Efour%2Dcolumn%7Bmargin%2Dleft%3A%2D300px%7Ddiv%2Edt%2Dbutton%2Dcollection%3E%3Alast%2Dchild%7Bdisplay%3Ablock%20%21important%3B%2Dwebkit%2Dcolumn%2Dgap%3A8px%3B%2Dmoz%2Dcolumn%2Dgap%3A8px%3B%2Dms%2Dcolumn%2Dgap%3A8px%3B%2Do%2Dcolumn%2Dgap%3A8px%3Bcolumn%2Dgap%3A8px%7Ddiv%2Edt%2Dbutton%2Dcollection%3E%3Alast%2Dchild%3E%2A%7B%2Dwebkit%2Dcolumn%2Dbreak%2Dinside%3Aavoid%3Bbreak%2Dinside%3Aavoid%7Ddiv%2Edt%2Dbutton%2Dcollection%2Etwo%2Dcolumn%7Bwidth%3A400px%7Ddiv%2Edt%2Dbutton%2Dcollection%2Etwo%2Dcolumn%3E%3Alast%2Dchild%7Bpadding%2Dbottom%3A1px%3B%2Dwebkit%2Dcolumn%2Dcount%3A2%3B%2Dmoz%2Dcolumn%2Dcount%3A2%3B%2Dms%2Dcolumn%2Dcount%3A2%3B%2Do%2Dcolumn%2Dcount%3A2%3Bcolumn%2Dcount%3A2%7Ddiv%2Edt%2Dbutton%2Dcollection%2Ethree%2Dcolumn%7Bwidth%3A450px%7Ddiv%2Edt%2Dbutton%2Dcollection%2Ethree%2Dcolumn%3E%3Alast%2Dchild%7Bpadding%2Dbottom%3A1px%3B%2Dwebkit%2Dcolumn%2Dcount%3A3%3B%2Dmoz%2Dcolumn%2Dcount%3A3%3B%2Dms%2Dcolumn%2Dcount%3A3%3B%2Do%2Dcolumn%2Dcount%3A3%3Bcolumn%2Dcount%3A3%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efour%2Dcolumn%7Bwidth%3A600px%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efour%2Dcolumn%3E%3Alast%2Dchild%7Bpadding%2Dbottom%3A1px%3B%2Dwebkit%2Dcolumn%2Dcount%3A4%3B%2Dmoz%2Dcolumn%2Dcount%3A4%3B%2Dms%2Dcolumn%2Dcount%3A4%3B%2Do%2Dcolumn%2Dcount%3A4%3Bcolumn%2Dcount%3A4%7Ddiv%2Edt%2Dbutton%2Dcollection%20%2Edt%2Dbutton%7Bborder%2Dradius%3A0%7Ddiv%2Edt%2Dbutton%2Dbackground%7Bposition%3Afixed%3Btop%3A0%3Bleft%3A0%3Bwidth%3A100%25%3Bheight%3A100%25%3Bbackground%3Argba%280%2C0%2C0%2C0%2E7%29%3Bbackground%3A%2Dms%2Dradial%2Dgradient%28center%2C%20ellipse%20farthest%2Dcorner%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bbackground%3A%2Dmoz%2Dradial%2Dgradient%28center%2C%20ellipse%20farthest%2Dcorner%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bbackground%3A%2Do%2Dradial%2Dgradient%28center%2C%20ellipse%20farthest%2Dcorner%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bbackground%3A%2Dwebkit%2Dgradient%28radial%2C%20center%20center%2C%200%2C%20center%20center%2C%20497%2C%20color%2Dstop%280%2C%20rgba%280%2C0%2C0%2C0%2E3%29%29%2C%20color%2Dstop%281%2C%20rgba%280%2C0%2C0%2C0%2E7%29%29%29%3Bbackground%3A%2Dwebkit%2Dradial%2Dgradient%28center%2C%20ellipse%20farthest%2Dcorner%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bbackground%3Aradial%2Dgradient%28ellipse%20farthest%2Dcorner%20at%20center%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bz%2Dindex%3A2001%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20640px%29%7Bdiv%2Edt%2Dbuttons%7Bfloat%3Anone%20%21important%3Btext%2Dalign%3Acenter%7D%7Dbutton%2Edt%2Dbutton%2Eprocessing%2Cdiv%2Edt%2Dbutton%2Eprocessing%2Ca%2Edt%2Dbutton%2Eprocessing%7Bcolor%3Argba%280%2C0%2C0%2C0%2E2%29%7Dbutton%2Edt%2Dbutton%2Eprocessing%3Aafter%2Cdiv%2Edt%2Dbutton%2Eprocessing%3Aafter%2Ca%2Edt%2Dbutton%2Eprocessing%3Aafter%7Bposition%3Aabsolute%3Btop%3A50%25%3Bleft%3A50%25%3Bwidth%3A16px%3Bheight%3A16px%3Bmargin%3A%2D8px%200%200%20%2D8px%3Bbox%2Dsizing%3Aborder%2Dbox%3Bdisplay%3Ablock%3Bcontent%3A%27%20%27%3Bborder%3A2px%20solid%20%23282828%3Bborder%2Dradius%3A50%25%3Bborder%2Dleft%2Dcolor%3Atransparent%3Bborder%2Dright%2Dcolor%3Atransparent%3Banimation%3Adtb%2Dspinner%201500ms%20infinite%20linear%3B%2Do%2Danimation%3Adtb%2Dspinner%201500ms%20infinite%20linear%3B%2Dms%2Danimation%3Adtb%2Dspinner%201500ms%20infinite%20linear%3B%2Dwebkit%2Danimation%3Adtb%2Dspinner%201500ms%20infinite%20linear%3B%2Dmoz%2Danimation%3Adtb%2Dspinner%201500ms%20infinite%20linear%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,LyohCiBCdXR0b25zIGZvciBEYXRhVGFibGVzIDEuNi4xCiDCqTIwMTYtMjAxOSBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQoqLwooZnVuY3Rpb24oZCl7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5IiwiZGF0YXRhYmxlcy5uZXQiXSxmdW5jdGlvbih1KXtyZXR1cm4gZCh1LHdpbmRvdyxkb2N1bWVudCl9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKHUsdCl7dXx8KHU9d2luZG93KTt0JiZ0LmZuLmRhdGFUYWJsZXx8KHQ9cmVxdWlyZSgiZGF0YXRhYmxlcy5uZXQiKSh1LHQpLiQpO3JldHVybiBkKHQsdSx1LmRvY3VtZW50KX06ZChqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGQsdSx0LHApe2Z1bmN0aW9uIHkoYSl7YT1uZXcgbS5BcGkoYSk7dmFyIGI9YS5pbml0KCkuYnV0dG9uc3x8bS5kZWZhdWx0cy5idXR0b25zO3JldHVybihuZXcgbihhLGIpKS5jb250YWluZXIoKX12YXIgbT1kLmZuLmRhdGFUYWJsZSxCPTAsQz0wLHE9bS5leHQuYnV0dG9ucyxuPWZ1bmN0aW9uKGEsYil7aWYoISh0aGlzIGluc3RhbmNlb2YKbikpcmV0dXJuIGZ1bmN0aW9uKGIpe3JldHVybihuZXcgbihiLGEpKS5jb250YWluZXIoKX07InVuZGVmaW5lZCI9PT10eXBlb2YgYiYmKGI9e30pOyEwPT09YiYmKGI9e30pO2QuaXNBcnJheShiKSYmKGI9e2J1dHRvbnM6Yn0pO3RoaXMuYz1kLmV4dGVuZCghMCx7fSxuLmRlZmF1bHRzLGIpO2IuYnV0dG9ucyYmKHRoaXMuYy5idXR0b25zPWIuYnV0dG9ucyk7dGhpcy5zPXtkdDpuZXcgbS5BcGkoYSksYnV0dG9uczpbXSxsaXN0ZW5LZXlzOiIiLG5hbWVzcGFjZToiZHRiIitCKyt9O3RoaXMuZG9tPXtjb250YWluZXI6ZCgiPCIrdGhpcy5jLmRvbS5jb250YWluZXIudGFnKyIvPiIpLmFkZENsYXNzKHRoaXMuYy5kb20uY29udGFpbmVyLmNsYXNzTmFtZSl9O3RoaXMuX2NvbnN0cnVjdG9yKCl9O2QuZXh0ZW5kKG4ucHJvdG90eXBlLHthY3Rpb246ZnVuY3Rpb24oYSxiKXthPXRoaXMuX25vZGVUb0J1dHRvbihhKTtpZihiPT09cClyZXR1cm4gYS5jb25mLmFjdGlvbjthLmNvbmYuYWN0aW9uPQpiO3JldHVybiB0aGlzfSxhY3RpdmU6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl9ub2RlVG9CdXR0b24oYSk7YT10aGlzLmMuZG9tLmJ1dHRvbi5hY3RpdmU7Yz1kKGMubm9kZSk7aWYoYj09PXApcmV0dXJuIGMuaGFzQ2xhc3MoYSk7Yy50b2dnbGVDbGFzcyhhLGI9PT1wPyEwOmIpO3JldHVybiB0aGlzfSxhZGQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLnMuYnV0dG9ucztpZigic3RyaW5nIj09PXR5cGVvZiBiKXtiPWIuc3BsaXQoIi0iKTt2YXIgZT10aGlzLnM7Yz0wO2Zvcih2YXIgZD1iLmxlbmd0aC0xO2M8ZDtjKyspZT1lLmJ1dHRvbnNbMSpiW2NdXTtjPWUuYnV0dG9ucztiPTEqYltiLmxlbmd0aC0xXX10aGlzLl9leHBhbmRCdXR0b24oYyxhLGUhPT1wLGIpO3RoaXMuX2RyYXcoKTtyZXR1cm4gdGhpc30sY29udGFpbmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tLmNvbnRhaW5lcn0sZGlzYWJsZTpmdW5jdGlvbihhKXthPXRoaXMuX25vZGVUb0J1dHRvbihhKTtkKGEubm9kZSkuYWRkQ2xhc3ModGhpcy5jLmRvbS5idXR0b24uZGlzYWJsZWQpOwpyZXR1cm4gdGhpc30sZGVzdHJveTpmdW5jdGlvbigpe2QoImJvZHkiKS5vZmYoImtleXVwLiIrdGhpcy5zLm5hbWVzcGFjZSk7dmFyIGE9dGhpcy5zLmJ1dHRvbnMuc2xpY2UoKSxiO3ZhciBjPTA7Zm9yKGI9YS5sZW5ndGg7YzxiO2MrKyl0aGlzLnJlbW92ZShhW2NdLm5vZGUpO3RoaXMuZG9tLmNvbnRhaW5lci5yZW1vdmUoKTthPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdO2M9MDtmb3IoYj1hLmxlbmd0aDtjPGI7YysrKWlmKGEuaW5zdD09PXRoaXMpe2Euc3BsaWNlKGMsMSk7YnJlYWt9cmV0dXJuIHRoaXN9LGVuYWJsZTpmdW5jdGlvbihhLGIpe2lmKCExPT09YilyZXR1cm4gdGhpcy5kaXNhYmxlKGEpO2E9dGhpcy5fbm9kZVRvQnV0dG9uKGEpO2QoYS5ub2RlKS5yZW1vdmVDbGFzcyh0aGlzLmMuZG9tLmJ1dHRvbi5kaXNhYmxlZCk7cmV0dXJuIHRoaXN9LG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jLm5hbWV9LG5vZGU6ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIHRoaXMuZG9tLmNvbnRhaW5lcjsKYT10aGlzLl9ub2RlVG9CdXR0b24oYSk7cmV0dXJuIGQoYS5ub2RlKX0scHJvY2Vzc2luZzpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMucy5kdCxlPXRoaXMuX25vZGVUb0J1dHRvbihhKTtpZihiPT09cClyZXR1cm4gZChlLm5vZGUpLmhhc0NsYXNzKCJwcm9jZXNzaW5nIik7ZChlLm5vZGUpLnRvZ2dsZUNsYXNzKCJwcm9jZXNzaW5nIixiKTtkKGMudGFibGUoKS5ub2RlKCkpLnRyaWdnZXJIYW5kbGVyKCJidXR0b25zLXByb2Nlc3NpbmcuZHQiLFtiLGMuYnV0dG9uKGEpLGMsZChhKSxlLmNvbmZdKTtyZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuX25vZGVUb0J1dHRvbihhKSxjPXRoaXMuX25vZGVUb0hvc3QoYSksZT10aGlzLnMuZHQ7aWYoYi5idXR0b25zLmxlbmd0aClmb3IodmFyIGc9Yi5idXR0b25zLmxlbmd0aC0xOzA8PWc7Zy0tKXRoaXMucmVtb3ZlKGIuYnV0dG9uc1tnXS5ub2RlKTtiLmNvbmYuZGVzdHJveSYmYi5jb25mLmRlc3Ryb3kuY2FsbChlLmJ1dHRvbihhKSwKZSxkKGEpLGIuY29uZik7dGhpcy5fcmVtb3ZlS2V5KGIuY29uZik7ZChiLm5vZGUpLnJlbW92ZSgpO2E9ZC5pbkFycmF5KGIsYyk7Yy5zcGxpY2UoYSwxKTtyZXR1cm4gdGhpc30sdGV4dDpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuX25vZGVUb0J1dHRvbihhKTthPXRoaXMuYy5kb20uY29sbGVjdGlvbi5idXR0b25MaW5lcjthPWMuaW5Db2xsZWN0aW9uJiZhJiZhLnRhZz9hLnRhZzp0aGlzLmMuZG9tLmJ1dHRvbkxpbmVyLnRhZzt2YXIgZT10aGlzLnMuZHQsZz1kKGMubm9kZSksZj1mdW5jdGlvbihhKXtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIGE/YShlLGcsYy5jb25mKTphfTtpZihiPT09cClyZXR1cm4gZihjLmNvbmYudGV4dCk7Yy5jb25mLnRleHQ9YjthP2cuY2hpbGRyZW4oYSkuaHRtbChmKGIpKTpnLmh0bWwoZihiKSk7cmV0dXJuIHRoaXN9LF9jb25zdHJ1Y3RvcjpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj10aGlzLnMuZHQsYz1iLnNldHRpbmdzKClbMF0sZT10aGlzLmMuYnV0dG9uczsKYy5fYnV0dG9uc3x8KGMuX2J1dHRvbnM9W10pO2MuX2J1dHRvbnMucHVzaCh7aW5zdDp0aGlzLG5hbWU6dGhpcy5jLm5hbWV9KTtmb3IodmFyIGc9MCxmPWUubGVuZ3RoO2c8ZjtnKyspdGhpcy5hZGQoZVtnXSk7Yi5vbigiZGVzdHJveSIsZnVuY3Rpb24oYixlKXtlPT09YyYmYS5kZXN0cm95KCl9KTtkKCJib2R5Iikub24oImtleXVwLiIrdGhpcy5zLm5hbWVzcGFjZSxmdW5jdGlvbihiKXtpZighdC5hY3RpdmVFbGVtZW50fHx0LmFjdGl2ZUVsZW1lbnQ9PT10LmJvZHkpe3ZhciBjPVN0cmluZy5mcm9tQ2hhckNvZGUoYi5rZXlDb2RlKS50b0xvd2VyQ2FzZSgpOy0xIT09YS5zLmxpc3RlbktleXMudG9Mb3dlckNhc2UoKS5pbmRleE9mKGMpJiZhLl9rZXlwcmVzcyhjLGIpfX0pfSxfYWRkS2V5OmZ1bmN0aW9uKGEpe2Eua2V5JiYodGhpcy5zLmxpc3RlbktleXMrPWQuaXNQbGFpbk9iamVjdChhLmtleSk/YS5rZXkua2V5OmEua2V5KX0sX2RyYXc6ZnVuY3Rpb24oYSxiKXthfHwoYT10aGlzLmRvbS5jb250YWluZXIsCmI9dGhpcy5zLmJ1dHRvbnMpO2EuY2hpbGRyZW4oKS5kZXRhY2goKTtmb3IodmFyIGM9MCxlPWIubGVuZ3RoO2M8ZTtjKyspYS5hcHBlbmQoYltjXS5pbnNlcnRlciksYS5hcHBlbmQoIiAiKSxiW2NdLmJ1dHRvbnMmJmJbY10uYnV0dG9ucy5sZW5ndGgmJnRoaXMuX2RyYXcoYltjXS5jb2xsZWN0aW9uLGJbY10uYnV0dG9ucyl9LF9leHBhbmRCdXR0b246ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGc9dGhpcy5zLmR0LGY9MDtiPWQuaXNBcnJheShiKT9iOltiXTtmb3IodmFyIGg9MCxrPWIubGVuZ3RoO2g8aztoKyspe3ZhciByPXRoaXMuX3Jlc29sdmVFeHRlbmRzKGJbaF0pO2lmKHIpaWYoZC5pc0FycmF5KHIpKXRoaXMuX2V4cGFuZEJ1dHRvbihhLHIsYyxlKTtlbHNle3ZhciBsPXRoaXMuX2J1aWxkQnV0dG9uKHIsYyk7bCYmKGUhPT1wPyhhLnNwbGljZShlLDAsbCksZSsrKTphLnB1c2gobCksbC5jb25mLmJ1dHRvbnMmJihsLmNvbGxlY3Rpb249ZCgiPCIrdGhpcy5jLmRvbS5jb2xsZWN0aW9uLnRhZysKIi8+IiksbC5jb25mLl9jb2xsZWN0aW9uPWwuY29sbGVjdGlvbix0aGlzLl9leHBhbmRCdXR0b24obC5idXR0b25zLGwuY29uZi5idXR0b25zLCEwLGUpKSxyLmluaXQmJnIuaW5pdC5jYWxsKGcuYnV0dG9uKGwubm9kZSksZyxkKGwubm9kZSksciksZisrKX19fSxfYnVpbGRCdXR0b246ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmMuZG9tLmJ1dHRvbixlPXRoaXMuYy5kb20uYnV0dG9uTGluZXIsZz10aGlzLmMuZG9tLmNvbGxlY3Rpb24sZj10aGlzLnMuZHQsaD1mdW5jdGlvbihiKXtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIGI/YihmLGwsYSk6Yn07YiYmZy5idXR0b24mJihjPWcuYnV0dG9uKTtiJiZnLmJ1dHRvbkxpbmVyJiYoZT1nLmJ1dHRvbkxpbmVyKTtpZihhLmF2YWlsYWJsZSYmIWEuYXZhaWxhYmxlKGYsYSkpcmV0dXJuITE7dmFyIGs9ZnVuY3Rpb24oYSxiLGMsZSl7ZS5hY3Rpb24uY2FsbChiLmJ1dHRvbihjKSxhLGIsYyxlKTtkKGIudGFibGUoKS5ub2RlKCkpLnRyaWdnZXJIYW5kbGVyKCJidXR0b25zLWFjdGlvbi5kdCIsCltiLmJ1dHRvbihjKSxiLGMsZV0pfTtnPWEudGFnfHxjLnRhZzt2YXIgcj1hLmNsaWNrQmx1cnM9PT1wPyEwOmEuY2xpY2tCbHVycyxsPWQoIjwiK2crIi8+IikuYWRkQ2xhc3MoYy5jbGFzc05hbWUpLmF0dHIoInRhYmluZGV4Iix0aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5pVGFiSW5kZXgpLmF0dHIoImFyaWEtY29udHJvbHMiLHRoaXMucy5kdC50YWJsZSgpLm5vZGUoKS5pZCkub24oImNsaWNrLmR0YiIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpOyFsLmhhc0NsYXNzKGMuZGlzYWJsZWQpJiZhLmFjdGlvbiYmayhiLGYsbCxhKTtyJiZsLmJsdXIoKX0pLm9uKCJrZXl1cC5kdGIiLGZ1bmN0aW9uKGIpezEzPT09Yi5rZXlDb2RlJiYhbC5oYXNDbGFzcyhjLmRpc2FibGVkKSYmYS5hY3Rpb24mJmsoYixmLGwsYSl9KTsiYSI9PT1nLnRvTG93ZXJDYXNlKCkmJmwuYXR0cigiaHJlZiIsIiMiKTsiYnV0dG9uIj09PWcudG9Mb3dlckNhc2UoKSYmbC5hdHRyKCJ0eXBlIiwiYnV0dG9uIik7CmUudGFnPyhnPWQoIjwiK2UudGFnKyIvPiIpLmh0bWwoaChhLnRleHQpKS5hZGRDbGFzcyhlLmNsYXNzTmFtZSksImEiPT09ZS50YWcudG9Mb3dlckNhc2UoKSYmZy5hdHRyKCJocmVmIiwiIyIpLGwuYXBwZW5kKGcpKTpsLmh0bWwoaChhLnRleHQpKTshMT09PWEuZW5hYmxlZCYmbC5hZGRDbGFzcyhjLmRpc2FibGVkKTthLmNsYXNzTmFtZSYmbC5hZGRDbGFzcyhhLmNsYXNzTmFtZSk7YS50aXRsZUF0dHImJmwuYXR0cigidGl0bGUiLGgoYS50aXRsZUF0dHIpKTthLmF0dHImJmwuYXR0cihhLmF0dHIpO2EubmFtZXNwYWNlfHwoYS5uYW1lc3BhY2U9Ii5kdC1idXR0b24tIitDKyspO2U9KGU9dGhpcy5jLmRvbS5idXR0b25Db250YWluZXIpJiZlLnRhZz9kKCI8IitlLnRhZysiLz4iKS5hZGRDbGFzcyhlLmNsYXNzTmFtZSkuYXBwZW5kKGwpOmw7dGhpcy5fYWRkS2V5KGEpO3RoaXMuYy5idXR0b25DcmVhdGVkJiYoZT10aGlzLmMuYnV0dG9uQ3JlYXRlZChhLGUpKTtyZXR1cm57Y29uZjphLApub2RlOmwuZ2V0KDApLGluc2VydGVyOmUsYnV0dG9uczpbXSxpbkNvbGxlY3Rpb246Yixjb2xsZWN0aW9uOm51bGx9fSxfbm9kZVRvQnV0dG9uOmZ1bmN0aW9uKGEsYil7Ynx8KGI9dGhpcy5zLmJ1dHRvbnMpO2Zvcih2YXIgYz0wLGU9Yi5sZW5ndGg7YzxlO2MrKyl7aWYoYltjXS5ub2RlPT09YSlyZXR1cm4gYltjXTtpZihiW2NdLmJ1dHRvbnMubGVuZ3RoKXt2YXIgZD10aGlzLl9ub2RlVG9CdXR0b24oYSxiW2NdLmJ1dHRvbnMpO2lmKGQpcmV0dXJuIGR9fX0sX25vZGVUb0hvc3Q6ZnVuY3Rpb24oYSxiKXtifHwoYj10aGlzLnMuYnV0dG9ucyk7Zm9yKHZhciBjPTAsZT1iLmxlbmd0aDtjPGU7YysrKXtpZihiW2NdLm5vZGU9PT1hKXJldHVybiBiO2lmKGJbY10uYnV0dG9ucy5sZW5ndGgpe3ZhciBkPXRoaXMuX25vZGVUb0hvc3QoYSxiW2NdLmJ1dHRvbnMpO2lmKGQpcmV0dXJuIGR9fX0sX2tleXByZXNzOmZ1bmN0aW9uKGEsYil7aWYoIWIuX2J1dHRvbnNIYW5kbGVkKXt2YXIgYz0KZnVuY3Rpb24oZSl7Zm9yKHZhciBnPTAsZj1lLmxlbmd0aDtnPGY7ZysrKXt2YXIgaD1lW2ddLmNvbmYsaz1lW2ddLm5vZGU7aC5rZXkmJihoLmtleT09PWE/KGIuX2J1dHRvbnNIYW5kbGVkPSEwLGQoaykuY2xpY2soKSk6IWQuaXNQbGFpbk9iamVjdChoLmtleSl8fGgua2V5LmtleSE9PWF8fGgua2V5LnNoaWZ0S2V5JiYhYi5zaGlmdEtleXx8aC5rZXkuYWx0S2V5JiYhYi5hbHRLZXl8fGgua2V5LmN0cmxLZXkmJiFiLmN0cmxLZXl8fGgua2V5Lm1ldGFLZXkmJiFiLm1ldGFLZXl8fChiLl9idXR0b25zSGFuZGxlZD0hMCxkKGspLmNsaWNrKCkpKTtlW2ddLmJ1dHRvbnMubGVuZ3RoJiZjKGVbZ10uYnV0dG9ucyl9fTtjKHRoaXMucy5idXR0b25zKX19LF9yZW1vdmVLZXk6ZnVuY3Rpb24oYSl7aWYoYS5rZXkpe3ZhciBiPWQuaXNQbGFpbk9iamVjdChhLmtleSk/YS5rZXkua2V5OmEua2V5O2E9dGhpcy5zLmxpc3RlbktleXMuc3BsaXQoIiIpO2I9ZC5pbkFycmF5KGIsYSk7YS5zcGxpY2UoYiwKMSk7dGhpcy5zLmxpc3RlbktleXM9YS5qb2luKCIiKX19LF9yZXNvbHZlRXh0ZW5kczpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnMuZHQsYyxlPWZ1bmN0aW9uKGMpe2Zvcih2YXIgZT0wOyFkLmlzUGxhaW5PYmplY3QoYykmJiFkLmlzQXJyYXkoYyk7KXtpZihjPT09cClyZXR1cm47aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBjKXtpZihjPWMoYixhKSwhYylyZXR1cm4hMX1lbHNlIGlmKCJzdHJpbmciPT09dHlwZW9mIGMpe2lmKCFxW2NdKXRocm93IlVua25vd24gYnV0dG9uIHR5cGU6ICIrYztjPXFbY119ZSsrO2lmKDMwPGUpdGhyb3ciQnV0dG9uczogVG9vIG1hbnkgaXRlcmF0aW9ucyI7fXJldHVybiBkLmlzQXJyYXkoYyk/YzpkLmV4dGVuZCh7fSxjKX07Zm9yKGE9ZShhKTthJiZhLmV4dGVuZDspe2lmKCFxW2EuZXh0ZW5kXSl0aHJvdyJDYW5ub3QgZXh0ZW5kIHVua25vd24gYnV0dG9uIHR5cGU6ICIrYS5leHRlbmQ7dmFyIGc9ZShxW2EuZXh0ZW5kXSk7aWYoZC5pc0FycmF5KGcpKXJldHVybiBnOwppZighZylyZXR1cm4hMTt2YXIgZj1nLmNsYXNzTmFtZTthPWQuZXh0ZW5kKHt9LGcsYSk7ZiYmYS5jbGFzc05hbWUhPT1mJiYoYS5jbGFzc05hbWU9ZisiICIrYS5jbGFzc05hbWUpO3ZhciBoPWEucG9zdGZpeEJ1dHRvbnM7aWYoaCl7YS5idXR0b25zfHwoYS5idXR0b25zPVtdKTtmPTA7Zm9yKGM9aC5sZW5ndGg7ZjxjO2YrKylhLmJ1dHRvbnMucHVzaChoW2ZdKTthLnBvc3RmaXhCdXR0b25zPW51bGx9aWYoaD1hLnByZWZpeEJ1dHRvbnMpe2EuYnV0dG9uc3x8KGEuYnV0dG9ucz1bXSk7Zj0wO2ZvcihjPWgubGVuZ3RoO2Y8YztmKyspYS5idXR0b25zLnNwbGljZShmLDAsaFtmXSk7YS5wcmVmaXhCdXR0b25zPW51bGx9YS5leHRlbmQ9Zy5leHRlbmR9cmV0dXJuIGF9LF9wb3BvdmVyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZT10aGlzLmMsZz1kLmV4dGVuZCh7YWxpZ246ImJ1dHRvbi1sZWZ0IixhdXRvQ2xvc2U6ITEsYmFja2dyb3VuZDohMCxiYWNrZ3JvdW5kQ2xhc3NOYW1lOiJkdC1idXR0b24tYmFja2dyb3VuZCIsCmNvbnRlbnRDbGFzc05hbWU6ZS5kb20uY29sbGVjdGlvbi5jbGFzc05hbWUsY29sbGVjdGlvbkxheW91dDoiIixjb2xsZWN0aW9uVGl0bGU6IiIsZHJvcHVwOiExLGZhZGU6NDAwLHJpZ2h0QWxpZ25DbGFzc05hbWU6ImR0LWJ1dHRvbi1yaWdodCIsdGFnOmUuZG9tLmNvbGxlY3Rpb24udGFnfSxjKSxmPWIubm9kZSgpLGg9ZnVuY3Rpb24oKXtkKCIuZHQtYnV0dG9uLWNvbGxlY3Rpb24iKS5zdG9wKCkuZmFkZU91dChnLmZhZGUsZnVuY3Rpb24oKXtkKHRoaXMpLmRldGFjaCgpfSk7ZChiLmJ1dHRvbnMoJ1thcmlhLWhhc3BvcHVwPSJ0cnVlIl1bYXJpYS1leHBhbmRlZD0idHJ1ZSJdJykubm9kZXMoKSkuYXR0cigiYXJpYS1leHBhbmRlZCIsImZhbHNlIik7ZCgiZGl2LmR0LWJ1dHRvbi1iYWNrZ3JvdW5kIikub2ZmKCJjbGljay5kdGItY29sbGVjdGlvbiIpO24uYmFja2dyb3VuZCghMSxnLmJhY2tncm91bmRDbGFzc05hbWUsZy5mYWRlLGYpO2QoImJvZHkiKS5vZmYoIi5kdGItY29sbGVjdGlvbiIpOwpiLm9mZigiYnV0dG9ucy1hY3Rpb24uYi1pbnRlcm5hbCIpfTshMT09PWEmJmgoKTtjPWQoYi5idXR0b25zKCdbYXJpYS1oYXNwb3B1cD0idHJ1ZSJdW2FyaWEtZXhwYW5kZWQ9InRydWUiXScpLm5vZGVzKCkpO2MubGVuZ3RoJiYoZj1jLmVxKDApLGgoKSk7Yz1kKCI8ZGl2Lz4iKS5hZGRDbGFzcygiZHQtYnV0dG9uLWNvbGxlY3Rpb24iKS5hZGRDbGFzcyhnLmNvbGxlY3Rpb25MYXlvdXQpLmNzcygiZGlzcGxheSIsIm5vbmUiKTthPWQoYSkuYWRkQ2xhc3MoZy5jb250ZW50Q2xhc3NOYW1lKS5hdHRyKCJyb2xlIiwibWVudSIpLmFwcGVuZFRvKGMpO2YuYXR0cigiYXJpYS1leHBhbmRlZCIsInRydWUiKTtmLnBhcmVudHMoImJvZHkiKVswXSE9PXQuYm9keSYmKGY9dC5ib2R5Lmxhc3RDaGlsZCk7Zy5jb2xsZWN0aW9uVGl0bGUmJmMucHJlcGVuZCgnPGRpdiBjbGFzcz0iZHQtYnV0dG9uLWNvbGxlY3Rpb24tdGl0bGUiPicrZy5jb2xsZWN0aW9uVGl0bGUrIjwvZGl2PiIpO2MuaW5zZXJ0QWZ0ZXIoZikuZmFkZUluKGcuZmFkZSk7CnZhciBrPWQoYi50YWJsZSgpLmNvbnRhaW5lcigpKTtlPWMuY3NzKCJwb3NpdGlvbiIpOyJkdC1jb250YWluZXIiPT09Zy5hbGlnbiYmKGY9Zi5wYXJlbnQoKSxjLmNzcygid2lkdGgiLGsud2lkdGgoKSkpO2lmKCJhYnNvbHV0ZSI9PT1lKXtlPWYucG9zaXRpb24oKTtjLmNzcyh7dG9wOmUudG9wK2Yub3V0ZXJIZWlnaHQoKSxsZWZ0OmUubGVmdH0pO3ZhciByPWMub3V0ZXJIZWlnaHQoKSxsPWMub3V0ZXJXaWR0aCgpLHc9ay5vZmZzZXQoKS50b3Aray5oZWlnaHQoKTt3PWUudG9wK2Yub3V0ZXJIZWlnaHQoKStyLXc7dmFyIEQ9ZS50b3AtcixtPWsub2Zmc2V0KCkudG9wO3I9ZS50b3Atci01Oyh3Pm0tRHx8Zy5kcm9wdXApJiYtcjxtJiZjLmNzcygidG9wIixyKTsoYy5oYXNDbGFzcyhnLnJpZ2h0QWxpZ25DbGFzc05hbWUpfHwiYnV0dG9uLXJpZ2h0Ij09PWcuYWxpZ24pJiZjLmNzcygibGVmdCIsZS5sZWZ0K2Yub3V0ZXJXaWR0aCgpLWwpO3I9ZS5sZWZ0K2w7az1rLm9mZnNldCgpLmxlZnQrCmsud2lkdGgoKTtyPmsmJmMuY3NzKCJsZWZ0IixlLmxlZnQtKHItaykpO2s9Zi5vZmZzZXQoKS5sZWZ0K2w7az5kKHUpLndpZHRoKCkmJmMuY3NzKCJsZWZ0IixlLmxlZnQtKGstZCh1KS53aWR0aCgpKSl9ZWxzZSBlPWMuaGVpZ2h0KCkvMixlPmQodSkuaGVpZ2h0KCkvMiYmKGU9ZCh1KS5oZWlnaHQoKS8yKSxjLmNzcygibWFyZ2luVG9wIiwtMSplKTtnLmJhY2tncm91bmQmJm4uYmFja2dyb3VuZCghMCxnLmJhY2tncm91bmRDbGFzc05hbWUsZy5mYWRlLGYpO2QoImRpdi5kdC1idXR0b24tYmFja2dyb3VuZCIpLm9uKCJjbGljay5kdGItY29sbGVjdGlvbiIsZnVuY3Rpb24oKXt9KTtkKCJib2R5Iikub24oImNsaWNrLmR0Yi1jb2xsZWN0aW9uIixmdW5jdGlvbihiKXt2YXIgYz1kLmZuLmFkZEJhY2s/ImFkZEJhY2siOiJhbmRTZWxmIjtkKGIudGFyZ2V0KS5wYXJlbnRzKClbY10oKS5maWx0ZXIoYSkubGVuZ3RofHxoKCl9KS5vbigia2V5dXAuZHRiLWNvbGxlY3Rpb24iLGZ1bmN0aW9uKGEpezI3PT09CmEua2V5Q29kZSYmaCgpfSk7Zy5hdXRvQ2xvc2UmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLm9uKCJidXR0b25zLWFjdGlvbi5iLWludGVybmFsIixmdW5jdGlvbihhLGIsYyxlKXtlWzBdIT09ZlswXSYmaCgpfSl9LDApfX0pO24uYmFja2dyb3VuZD1mdW5jdGlvbihhLGIsYyxlKXtjPT09cCYmKGM9NDAwKTtlfHwoZT10LmJvZHkpO2E/ZCgiPGRpdi8+IikuYWRkQ2xhc3MoYikuY3NzKCJkaXNwbGF5Iiwibm9uZSIpLmluc2VydEFmdGVyKGUpLnN0b3AoKS5mYWRlSW4oYyk6ZCgiZGl2LiIrYikuc3RvcCgpLmZhZGVPdXQoYyxmdW5jdGlvbigpe2QodGhpcykucmVtb3ZlQ2xhc3MoYikucmVtb3ZlKCl9KX07bi5pbnN0YW5jZVNlbGVjdG9yPWZ1bmN0aW9uKGEsYil7aWYoYT09PXB8fG51bGw9PT1hKXJldHVybiBkLm1hcChiLGZ1bmN0aW9uKGEpe3JldHVybiBhLmluc3R9KTt2YXIgYz1bXSxlPWQubWFwKGIsZnVuY3Rpb24oYSl7cmV0dXJuIGEubmFtZX0pLGc9ZnVuY3Rpb24oYSl7aWYoZC5pc0FycmF5KGEpKWZvcih2YXIgZj0KMCxrPWEubGVuZ3RoO2Y8aztmKyspZyhhW2ZdKTtlbHNlInN0cmluZyI9PT10eXBlb2YgYT8tMSE9PWEuaW5kZXhPZigiLCIpP2coYS5zcGxpdCgiLCIpKTooYT1kLmluQXJyYXkoZC50cmltKGEpLGUpLC0xIT09YSYmYy5wdXNoKGJbYV0uaW5zdCkpOiJudW1iZXIiPT09dHlwZW9mIGEmJmMucHVzaChiW2FdLmluc3QpfTtnKGEpO3JldHVybiBjfTtuLmJ1dHRvblNlbGVjdG9yPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGU9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCxnLGY9MCxrPWIubGVuZ3RoO2Y8aztmKyspaWYoZD1iW2ZdKWc9YyE9PXA/YytmOmYrIiIsYS5wdXNoKHtub2RlOmQubm9kZSxuYW1lOmQuY29uZi5uYW1lLGlkeDpnfSksZC5idXR0b25zJiZlKGEsZC5idXR0b25zLGcrIi0iKX0sZz1mdW5jdGlvbihhLGIpe3ZhciBmLGg9W107ZShoLGIucy5idXR0b25zKTt2YXIgaz1kLm1hcChoLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGV9KTtpZihkLmlzQXJyYXkoYSl8fAphIGluc3RhbmNlb2YgZClmb3Ioaz0wLGY9YS5sZW5ndGg7azxmO2srKylnKGFba10sYik7ZWxzZSBpZihudWxsPT09YXx8YT09PXB8fCIqIj09PWEpZm9yKGs9MCxmPWgubGVuZ3RoO2s8ZjtrKyspYy5wdXNoKHtpbnN0OmIsbm9kZTpoW2tdLm5vZGV9KTtlbHNlIGlmKCJudW1iZXIiPT09dHlwZW9mIGEpYy5wdXNoKHtpbnN0OmIsbm9kZTpiLnMuYnV0dG9uc1thXS5ub2RlfSk7ZWxzZSBpZigic3RyaW5nIj09PXR5cGVvZiBhKWlmKC0xIT09YS5pbmRleE9mKCIsIikpZm9yKGg9YS5zcGxpdCgiLCIpLGs9MCxmPWgubGVuZ3RoO2s8ZjtrKyspZyhkLnRyaW0oaFtrXSksYik7ZWxzZSBpZihhLm1hdGNoKC9eXGQrKFwtXGQrKSokLykpaz1kLm1hcChoLGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkeH0pLGMucHVzaCh7aW5zdDpiLG5vZGU6aFtkLmluQXJyYXkoYSxrKV0ubm9kZX0pO2Vsc2UgaWYoLTEhPT1hLmluZGV4T2YoIjpuYW1lIikpZm9yKGE9YS5yZXBsYWNlKCI6bmFtZSIsIiIpLGs9CjAsZj1oLmxlbmd0aDtrPGY7aysrKWhba10ubmFtZT09PWEmJmMucHVzaCh7aW5zdDpiLG5vZGU6aFtrXS5ub2RlfSk7ZWxzZSBkKGspLmZpbHRlcihhKS5lYWNoKGZ1bmN0aW9uKCl7Yy5wdXNoKHtpbnN0OmIsbm9kZTp0aGlzfSl9KTtlbHNlIm9iamVjdCI9PT10eXBlb2YgYSYmYS5ub2RlTmFtZSYmKGg9ZC5pbkFycmF5KGEsayksLTEhPT1oJiZjLnB1c2goe2luc3Q6Yixub2RlOmtbaF19KSl9LGY9MCxoPWEubGVuZ3RoO2Y8aDtmKyspZyhiLGFbZl0pO3JldHVybiBjfTtuLmRlZmF1bHRzPXtidXR0b25zOlsiY29weSIsImV4Y2VsIiwiY3N2IiwicGRmIiwicHJpbnQiXSxuYW1lOiJtYWluIix0YWJJbmRleDowLGRvbTp7Y29udGFpbmVyOnt0YWc6ImRpdiIsY2xhc3NOYW1lOiJkdC1idXR0b25zIn0sY29sbGVjdGlvbjp7dGFnOiJkaXYiLGNsYXNzTmFtZToiIn0sYnV0dG9uOnt0YWc6IkFjdGl2ZVhPYmplY3QiaW4gdT8iYSI6ImJ1dHRvbiIsY2xhc3NOYW1lOiJkdC1idXR0b24iLAphY3RpdmU6ImFjdGl2ZSIsZGlzYWJsZWQ6ImRpc2FibGVkIn0sYnV0dG9uTGluZXI6e3RhZzoic3BhbiIsY2xhc3NOYW1lOiIifX19O24udmVyc2lvbj0iMS42LjEiO2QuZXh0ZW5kKHEse2NvbGxlY3Rpb246e3RleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5jb2xsZWN0aW9uIiwiQ29sbGVjdGlvbiIpfSxjbGFzc05hbWU6ImJ1dHRvbnMtY29sbGVjdGlvbiIsaW5pdDpmdW5jdGlvbihhLGIsYyl7Yi5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMSl9LGFjdGlvbjpmdW5jdGlvbihhLGIsYyxlKXthLnN0b3BQcm9wYWdhdGlvbigpO2UuX2NvbGxlY3Rpb24ucGFyZW50cygiYm9keSIpLmxlbmd0aD90aGlzLnBvcG92ZXIoITEsZSk6dGhpcy5wb3BvdmVyKGUuX2NvbGxlY3Rpb24sZSl9LGF0dHI6eyJhcmlhLWhhc3BvcHVwIjohMH19LGNvcHk6ZnVuY3Rpb24oYSxiKXtpZihxLmNvcHlIdG1sNSlyZXR1cm4iY29weUh0bWw1IjtpZihxLmNvcHlGbGFzaCYmcS5jb3B5Rmxhc2guYXZhaWxhYmxlKGEsCmIpKXJldHVybiJjb3B5Rmxhc2gifSxjc3Y6ZnVuY3Rpb24oYSxiKXtpZihxLmNzdkh0bWw1JiZxLmNzdkh0bWw1LmF2YWlsYWJsZShhLGIpKXJldHVybiJjc3ZIdG1sNSI7aWYocS5jc3ZGbGFzaCYmcS5jc3ZGbGFzaC5hdmFpbGFibGUoYSxiKSlyZXR1cm4iY3N2Rmxhc2gifSxleGNlbDpmdW5jdGlvbihhLGIpe2lmKHEuZXhjZWxIdG1sNSYmcS5leGNlbEh0bWw1LmF2YWlsYWJsZShhLGIpKXJldHVybiJleGNlbEh0bWw1IjtpZihxLmV4Y2VsRmxhc2gmJnEuZXhjZWxGbGFzaC5hdmFpbGFibGUoYSxiKSlyZXR1cm4iZXhjZWxGbGFzaCJ9LHBkZjpmdW5jdGlvbihhLGIpe2lmKHEucGRmSHRtbDUmJnEucGRmSHRtbDUuYXZhaWxhYmxlKGEsYikpcmV0dXJuInBkZkh0bWw1IjtpZihxLnBkZkZsYXNoJiZxLnBkZkZsYXNoLmF2YWlsYWJsZShhLGIpKXJldHVybiJwZGZGbGFzaCJ9LHBhZ2VMZW5ndGg6ZnVuY3Rpb24oYSl7YT1hLnNldHRpbmdzKClbMF0uYUxlbmd0aE1lbnU7dmFyIGI9ZC5pc0FycmF5KGFbMF0pPwphWzBdOmEsYz1kLmlzQXJyYXkoYVswXSk/YVsxXTphO3JldHVybntleHRlbmQ6ImNvbGxlY3Rpb24iLHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5wYWdlTGVuZ3RoIix7Ii0xIjoiU2hvdyBhbGwgcm93cyIsXzoiU2hvdyAlZCByb3dzIn0sYS5wYWdlLmxlbigpKX0sY2xhc3NOYW1lOiJidXR0b25zLXBhZ2UtbGVuZ3RoIixhdXRvQ2xvc2U6ITAsYnV0dG9uczpkLm1hcChiLGZ1bmN0aW9uKGEsYil7cmV0dXJue3RleHQ6Y1tiXSxjbGFzc05hbWU6ImJ1dHRvbi1wYWdlLWxlbmd0aCIsYWN0aW9uOmZ1bmN0aW9uKGIsYyl7Yy5wYWdlLmxlbihhKS5kcmF3KCl9LGluaXQ6ZnVuY3Rpb24oYixjLGQpe3ZhciBlPXRoaXM7Yz1mdW5jdGlvbigpe2UuYWN0aXZlKGIucGFnZS5sZW4oKT09PWEpfTtiLm9uKCJsZW5ndGguZHQiK2QubmFtZXNwYWNlLGMpO2MoKX0sZGVzdHJveTpmdW5jdGlvbihhLGIsYyl7YS5vZmYoImxlbmd0aC5kdCIrYy5uYW1lc3BhY2UpfX19KSwKaW5pdDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpczthLm9uKCJsZW5ndGguZHQiK2MubmFtZXNwYWNlLGZ1bmN0aW9uKCl7ZC50ZXh0KGMudGV4dCl9KX0sZGVzdHJveTpmdW5jdGlvbihhLGIsYyl7YS5vZmYoImxlbmd0aC5kdCIrYy5uYW1lc3BhY2UpfX19fSk7bS5BcGkucmVnaXN0ZXIoImJ1dHRvbnMoKSIsZnVuY3Rpb24oYSxiKXtiPT09cCYmKGI9YSxhPXApO3RoaXMuc2VsZWN0b3IuYnV0dG9uR3JvdXA9YTt2YXIgYz10aGlzLml0ZXJhdG9yKCEwLCJ0YWJsZSIsZnVuY3Rpb24oYyl7aWYoYy5fYnV0dG9ucylyZXR1cm4gbi5idXR0b25TZWxlY3RvcihuLmluc3RhbmNlU2VsZWN0b3IoYSxjLl9idXR0b25zKSxiKX0sITApO2MuX2dyb3VwU2VsZWN0b3I9YTtyZXR1cm4gY30pO20uQXBpLnJlZ2lzdGVyKCJidXR0b24oKSIsZnVuY3Rpb24oYSxiKXthPXRoaXMuYnV0dG9ucyhhLGIpOzE8YS5sZW5ndGgmJmEuc3BsaWNlKDEsYS5sZW5ndGgpO3JldHVybiBhfSk7bS5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5hY3RpdmUoKSIsCiJidXR0b24oKS5hY3RpdmUoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1wP3RoaXMubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLmluc3QuYWN0aXZlKGEubm9kZSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oYil7Yi5pbnN0LmFjdGl2ZShiLm5vZGUsYSl9KX0pO20uQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkuYWN0aW9uKCkiLCJidXR0b24oKS5hY3Rpb24oKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1wP3RoaXMubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLmluc3QuYWN0aW9uKGEubm9kZSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oYil7Yi5pbnN0LmFjdGlvbihiLm5vZGUsYSl9KX0pO20uQXBpLnJlZ2lzdGVyKFsiYnV0dG9ucygpLmVuYWJsZSgpIiwiYnV0dG9uKCkuZW5hYmxlKCkiXSxmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2IuaW5zdC5lbmFibGUoYi5ub2RlLGEpfSl9KTttLkFwaS5yZWdpc3RlcihbImJ1dHRvbnMoKS5kaXNhYmxlKCkiLAoiYnV0dG9uKCkuZGlzYWJsZSgpIl0sZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGEpe2EuaW5zdC5kaXNhYmxlKGEubm9kZSl9KX0pO20uQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkubm9kZXMoKSIsImJ1dHRvbigpLm5vZGUoKSIsZnVuY3Rpb24oKXt2YXIgYT1kKCk7ZCh0aGlzLmVhY2goZnVuY3Rpb24oYil7YT1hLmFkZChiLmluc3Qubm9kZShiLm5vZGUpKX0pKTtyZXR1cm4gYX0pO20uQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkucHJvY2Vzc2luZygpIiwiYnV0dG9uKCkucHJvY2Vzc2luZygpIixmdW5jdGlvbihhKXtyZXR1cm4gYT09PXA/dGhpcy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5zdC5wcm9jZXNzaW5nKGEubm9kZSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oYil7Yi5pbnN0LnByb2Nlc3NpbmcoYi5ub2RlLGEpfSl9KTttLkFwaS5yZWdpc3RlclBsdXJhbCgiYnV0dG9ucygpLnRleHQoKSIsImJ1dHRvbigpLnRleHQoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0KcD90aGlzLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5pbnN0LnRleHQoYS5ub2RlKX0pOnRoaXMuZWFjaChmdW5jdGlvbihiKXtiLmluc3QudGV4dChiLm5vZGUsYSl9KX0pO20uQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkudHJpZ2dlcigpIiwiYnV0dG9uKCkudHJpZ2dlcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYSl7YS5pbnN0Lm5vZGUoYS5ub2RlKS50cmlnZ2VyKCJjbGljayIpfSl9KTttLkFwaS5yZWdpc3RlcigiYnV0dG9uKCkucG9wb3ZlcigpIixmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy5pbnN0Ll9wb3BvdmVyKGEsdGhpcy5idXR0b24odGhpc1swXS5ub2RlKSxiKX0pfSk7bS5BcGkucmVnaXN0ZXIoImJ1dHRvbnMoKS5jb250YWluZXJzKCkiLGZ1bmN0aW9uKCl7dmFyIGE9ZCgpLGI9dGhpcy5fZ3JvdXBTZWxlY3Rvcjt0aGlzLml0ZXJhdG9yKCEwLCJ0YWJsZSIsZnVuY3Rpb24oYyl7aWYoYy5fYnV0dG9ucyl7Yz0Kbi5pbnN0YW5jZVNlbGVjdG9yKGIsYy5fYnV0dG9ucyk7Zm9yKHZhciBkPTAsZz1jLmxlbmd0aDtkPGc7ZCsrKWE9YS5hZGQoY1tkXS5jb250YWluZXIoKSl9fSk7cmV0dXJuIGF9KTttLkFwaS5yZWdpc3RlcigiYnV0dG9ucygpLmNvbnRhaW5lcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRhaW5lcnMoKS5lcSgwKX0pO20uQXBpLnJlZ2lzdGVyKCJidXR0b24oKS5hZGQoKSIsZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNvbnRleHQ7Yy5sZW5ndGgmJihjPW4uaW5zdGFuY2VTZWxlY3Rvcih0aGlzLl9ncm91cFNlbGVjdG9yLGNbMF0uX2J1dHRvbnMpLGMubGVuZ3RoJiZjWzBdLmFkZChiLGEpKTtyZXR1cm4gdGhpcy5idXR0b24odGhpcy5fZ3JvdXBTZWxlY3RvcixhKX0pO20uQXBpLnJlZ2lzdGVyKCJidXR0b25zKCkuZGVzdHJveSgpIixmdW5jdGlvbigpe3RoaXMucGx1Y2soImluc3QiKS51bmlxdWUoKS5lYWNoKGZ1bmN0aW9uKGEpe2EuZGVzdHJveSgpfSk7cmV0dXJuIHRoaXN9KTsKbS5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5yZW1vdmUoKSIsImJ1dHRvbnMoKS5yZW1vdmUoKSIsZnVuY3Rpb24oKXt0aGlzLmVhY2goZnVuY3Rpb24oYSl7YS5pbnN0LnJlbW92ZShhLm5vZGUpfSk7cmV0dXJuIHRoaXN9KTt2YXIgdjttLkFwaS5yZWdpc3RlcigiYnV0dG9ucy5pbmZvKCkiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZT10aGlzO2lmKCExPT09YSlyZXR1cm4gdGhpcy5vZmYoImRlc3Ryb3kuYnRuLWluZm8iKSxkKCIjZGF0YXRhYmxlc19idXR0b25zX2luZm8iKS5mYWRlT3V0KGZ1bmN0aW9uKCl7ZCh0aGlzKS5yZW1vdmUoKX0pLGNsZWFyVGltZW91dCh2KSx2PW51bGwsdGhpczt2JiZjbGVhclRpbWVvdXQodik7ZCgiI2RhdGF0YWJsZXNfYnV0dG9uc19pbmZvIikubGVuZ3RoJiZkKCIjZGF0YXRhYmxlc19idXR0b25zX2luZm8iKS5yZW1vdmUoKTthPWE/IjxoMj4iK2ErIjwvaDI+IjoiIjtkKCc8ZGl2IGlkPSJkYXRhdGFibGVzX2J1dHRvbnNfaW5mbyIgY2xhc3M9ImR0LWJ1dHRvbi1pbmZvIi8+JykuaHRtbChhKS5hcHBlbmQoZCgiPGRpdi8+IilbInN0cmluZyI9PT0KdHlwZW9mIGI/Imh0bWwiOiJhcHBlbmQiXShiKSkuY3NzKCJkaXNwbGF5Iiwibm9uZSIpLmFwcGVuZFRvKCJib2R5IikuZmFkZUluKCk7YyE9PXAmJjAhPT1jJiYodj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5idXR0b25zLmluZm8oITEpfSxjKSk7dGhpcy5vbigiZGVzdHJveS5idG4taW5mbyIsZnVuY3Rpb24oKXtlLmJ1dHRvbnMuaW5mbyghMSl9KTtyZXR1cm4gdGhpc30pO20uQXBpLnJlZ2lzdGVyKCJidXR0b25zLmV4cG9ydERhdGEoKSIsZnVuY3Rpb24oYSl7aWYodGhpcy5jb250ZXh0Lmxlbmd0aClyZXR1cm4gRShuZXcgbS5BcGkodGhpcy5jb250ZXh0WzBdKSxhKX0pO20uQXBpLnJlZ2lzdGVyKCJidXR0b25zLmV4cG9ydEluZm8oKSIsZnVuY3Rpb24oYSl7YXx8KGE9e30pO3ZhciBiPWE7dmFyIGM9IioiPT09Yi5maWxlbmFtZSYmIioiIT09Yi50aXRsZSYmYi50aXRsZSE9PXAmJm51bGwhPT1iLnRpdGxlJiYiIiE9PWIudGl0bGU/Yi50aXRsZTpiLmZpbGVuYW1lOyJmdW5jdGlvbiI9PT0KdHlwZW9mIGMmJihjPWMoKSk7Yz09PXB8fG51bGw9PT1jP2M9bnVsbDooLTEhPT1jLmluZGV4T2YoIioiKSYmKGM9ZC50cmltKGMucmVwbGFjZSgiKiIsZCgiaGVhZCA+IHRpdGxlIikudGV4dCgpKSkpLGM9Yy5yZXBsYWNlKC9bXmEtekEtWjAtOV9cdTAwQTEtXHVGRkZGXC4sXC1fICFcKFwpXS9nLCIiKSwoYj14KGIuZXh0ZW5zaW9uKSl8fChiPSIiKSxjKz1iKTtiPXgoYS50aXRsZSk7Yj1udWxsPT09Yj9udWxsOi0xIT09Yi5pbmRleE9mKCIqIik/Yi5yZXBsYWNlKCIqIixkKCJoZWFkID4gdGl0bGUiKS50ZXh0KCl8fCJFeHBvcnRlZCBkYXRhIik6YjtyZXR1cm57ZmlsZW5hbWU6Yyx0aXRsZTpiLG1lc3NhZ2VUb3A6eih0aGlzLGEubWVzc2FnZXx8YS5tZXNzYWdlVG9wLCJ0b3AiKSxtZXNzYWdlQm90dG9tOnoodGhpcyxhLm1lc3NhZ2VCb3R0b20sImJvdHRvbSIpfX0pO3ZhciB4PWZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT09YXx8YT09PXA/bnVsbDoiZnVuY3Rpb24iPT09dHlwZW9mIGE/CmEoKTphfSx6PWZ1bmN0aW9uKGEsYixjKXtiPXgoYik7aWYobnVsbD09PWIpcmV0dXJuIG51bGw7YT1kKCJjYXB0aW9uIixhLnRhYmxlKCkuY29udGFpbmVyKCkpLmVxKDApO3JldHVybiIqIj09PWI/YS5jc3MoImNhcHRpb24tc2lkZSIpIT09Yz9udWxsOmEubGVuZ3RoP2EudGV4dCgpOiIiOmJ9LEE9ZCgiPHRleHRhcmVhLz4iKVswXSxFPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZC5leHRlbmQoITAse30se3Jvd3M6bnVsbCxjb2x1bW5zOiIiLG1vZGlmaWVyOntzZWFyY2g6ImFwcGxpZWQiLG9yZGVyOiJhcHBsaWVkIn0sb3J0aG9nb25hbDoiZGlzcGxheSIsc3RyaXBIdG1sOiEwLHN0cmlwTmV3bGluZXM6ITAsZGVjb2RlRW50aXRpZXM6ITAsdHJpbTohMCxmb3JtYXQ6e2hlYWRlcjpmdW5jdGlvbihhKXtyZXR1cm4gZShhKX0sZm9vdGVyOmZ1bmN0aW9uKGEpe3JldHVybiBlKGEpfSxib2R5OmZ1bmN0aW9uKGEpe3JldHVybiBlKGEpfX0sY3VzdG9taXplRGF0YTpudWxsfSxiKSxlPWZ1bmN0aW9uKGEpe2lmKCJzdHJpbmciIT09CnR5cGVvZiBhKXJldHVybiBhO2E9YS5yZXBsYWNlKC88c2NyaXB0XGJbXjxdKig/Oig/ITxcL3NjcmlwdD4pPFtePF0qKSo8XC9zY3JpcHQ+L2dpLCIiKTthPWEucmVwbGFjZSgvPCFcLVwtLio/XC1cLT4vZywiIik7Yy5zdHJpcEh0bWwmJihhPWEucmVwbGFjZSgvPFtePl0qPi9nLCIiKSk7Yy50cmltJiYoYT1hLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKSk7Yy5zdHJpcE5ld2xpbmVzJiYoYT1hLnJlcGxhY2UoL1xuL2csIiAiKSk7Yy5kZWNvZGVFbnRpdGllcyYmKEEuaW5uZXJIVE1MPWEsYT1BLnZhbHVlKTtyZXR1cm4gYX07Yj1hLmNvbHVtbnMoYy5jb2x1bW5zKS5pbmRleGVzKCkubWFwKGZ1bmN0aW9uKGIpe3ZhciBkPWEuY29sdW1uKGIpLmhlYWRlcigpO3JldHVybiBjLmZvcm1hdC5oZWFkZXIoZC5pbm5lckhUTUwsYixkKX0pLnRvQXJyYXkoKTt2YXIgZz1hLnRhYmxlKCkuZm9vdGVyKCk/YS5jb2x1bW5zKGMuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihiKXt2YXIgZD0KYS5jb2x1bW4oYikuZm9vdGVyKCk7cmV0dXJuIGMuZm9ybWF0LmZvb3RlcihkP2QuaW5uZXJIVE1MOiIiLGIsZCl9KS50b0FycmF5KCk6bnVsbCxmPWQuZXh0ZW5kKHt9LGMubW9kaWZpZXIpO2Euc2VsZWN0JiYiZnVuY3Rpb24iPT09dHlwZW9mIGEuc2VsZWN0LmluZm8mJmYuc2VsZWN0ZWQ9PT1wJiZhLnJvd3MoYy5yb3dzLGQuZXh0ZW5kKHtzZWxlY3RlZDohMH0sZikpLmFueSgpJiZkLmV4dGVuZChmLHtzZWxlY3RlZDohMH0pO2Y9YS5yb3dzKGMucm93cyxmKS5pbmRleGVzKCkudG9BcnJheSgpO3ZhciBoPWEuY2VsbHMoZixjLmNvbHVtbnMpO2Y9aC5yZW5kZXIoYy5vcnRob2dvbmFsKS50b0FycmF5KCk7aD1oLm5vZGVzKCkudG9BcnJheSgpO2Zvcih2YXIgaz1iLmxlbmd0aCxtPVtdLGw9MCxuPTAscT0wPGs/Zi5sZW5ndGgvazowO248cTtuKyspe2Zvcih2YXIgdT1ba10sdD0wO3Q8azt0KyspdVt0XT1jLmZvcm1hdC5ib2R5KGZbbF0sbix0LGhbbF0pLGwrKzttW25dPXV9Yj17aGVhZGVyOmIsCmZvb3RlcjpnLGJvZHk6bX07Yy5jdXN0b21pemVEYXRhJiZjLmN1c3RvbWl6ZURhdGEoYik7cmV0dXJuIGJ9O2QuZm4uZGF0YVRhYmxlLkJ1dHRvbnM9bjtkLmZuLkRhdGFUYWJsZS5CdXR0b25zPW47ZCh0KS5vbigiaW5pdC5kdCBwbHVnaW4taW5pdC5kdCIsZnVuY3Rpb24oYSxiKXsiZHQiPT09YS5uYW1lc3BhY2UmJihhPWIub0luaXQuYnV0dG9uc3x8bS5kZWZhdWx0cy5idXR0b25zKSYmIWIuX2J1dHRvbnMmJihuZXcgbihiLGEpKS5jb250YWluZXIoKX0pO20uZXh0LmZlYXR1cmUucHVzaCh7Zm5Jbml0OnksY0ZlYXR1cmU6IkIifSk7bS5leHQuZmVhdHVyZXMmJm0uZXh0LmZlYXR1cmVzLnJlZ2lzdGVyKCJidXR0b25zIix5KTtyZXR1cm4gbn0pOwo="></script>
<script src="data:application/x-javascript;base64,LyohCiBGbGFzaCBleHBvcnQgYnV0dG9ucyBmb3IgQnV0dG9ucyBhbmQgRGF0YVRhYmxlcy4KIDIwMTUtMjAxNyBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQoKIFplcm9DbGlwYmFvcmQgLSBNSVQgbGljZW5zZQogQ29weXJpZ2h0IChjKSAyMDEyIEpvc2VwaCBIdWNrYWJ5CiovCihmdW5jdGlvbihnKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiLCJkYXRhdGFibGVzLm5ldCIsImRhdGF0YWJsZXMubmV0LWJ1dHRvbnMiXSxmdW5jdGlvbihuKXtyZXR1cm4gZyhuLHdpbmRvdyxkb2N1bWVudCl9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKG4sbSl7bnx8KG49d2luZG93KTttJiZtLmZuLmRhdGFUYWJsZXx8KG09cmVxdWlyZSgiZGF0YXRhYmxlcy5uZXQiKShuLG0pLiQpO20uZm4uZGF0YVRhYmxlLkJ1dHRvbnN8fHJlcXVpcmUoImRhdGF0YWJsZXMubmV0LWJ1dHRvbnMiKShuLG0pO3JldHVybiBnKG0sbixuLmRvY3VtZW50KX06ZyhqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGcsbixtLHUpe2Z1bmN0aW9uIEEoYSl7Zm9yKHZhciBiPSIiOzA8PWE7KWI9U3RyaW5nLmZyb21DaGFyQ29kZShhJTI2KzY1KStiLGE9TWF0aC5mbG9vcihhLzI2KS0xOwpyZXR1cm4gYn1mdW5jdGlvbiByKGEsYixjKXt2YXIgZD1hLmNyZWF0ZUVsZW1lbnQoYik7YyYmKGMuYXR0ciYmZyhkKS5hdHRyKGMuYXR0ciksYy5jaGlsZHJlbiYmZy5lYWNoKGMuY2hpbGRyZW4sZnVuY3Rpb24oYSxiKXtkLmFwcGVuZENoaWxkKGIpfSksbnVsbCE9PWMudGV4dCYmYy50ZXh0IT09dSYmZC5hcHBlbmRDaGlsZChhLmNyZWF0ZVRleHROb2RlKGMudGV4dCkpKTtyZXR1cm4gZH1mdW5jdGlvbiBHKGEsYil7dmFyIGM9YS5oZWFkZXJbYl0ubGVuZ3RoO2EuZm9vdGVyJiZhLmZvb3RlcltiXS5sZW5ndGg+YyYmKGM9YS5mb290ZXJbYl0ubGVuZ3RoKTtmb3IodmFyIGQ9MCxmPWEuYm9keS5sZW5ndGg7ZDxmO2QrKyl7dmFyIGU9YS5ib2R5W2RdW2JdO2U9bnVsbCE9PWUmJmUhPT11P2UudG9TdHJpbmcoKToiIjstMSE9PWUuaW5kZXhPZigiXG4iKT8oZT1lLnNwbGl0KCJcbiIpLGUuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBiLmxlbmd0aC1hLmxlbmd0aH0pLGU9ZVswXS5sZW5ndGgpOgplPWUubGVuZ3RoO2U+YyYmKGM9ZSk7aWYoNDA8YylyZXR1cm4gNTJ9Yyo9MS4zO3JldHVybiA2PGM/Yzo2fWZ1bmN0aW9uIEIoYSl7dj09PXUmJih2PS0xPT09ei5zZXJpYWxpemVUb1N0cmluZyhnLnBhcnNlWE1MKHRbInhsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCJdKSkuaW5kZXhPZigieG1sbnM6ciIpKTtnLmVhY2goYSxmdW5jdGlvbihiLGMpe2lmKGcuaXNQbGFpbk9iamVjdChjKSlCKGMpO2Vsc2V7aWYodil7dmFyIGQ9Yy5jaGlsZE5vZGVzWzBdLGYsZT1bXTtmb3IoZj1kLmF0dHJpYnV0ZXMubGVuZ3RoLTE7MDw9ZjtmLS0pe3ZhciBoPWQuYXR0cmlidXRlc1tmXS5ub2RlTmFtZTt2YXIgaz1kLmF0dHJpYnV0ZXNbZl0ubm9kZVZhbHVlOy0xIT09aC5pbmRleE9mKCI6IikmJihlLnB1c2goe25hbWU6aCx2YWx1ZTprfSksZC5yZW1vdmVBdHRyaWJ1dGUoaCkpfWY9MDtmb3IoaD1lLmxlbmd0aDtmPGg7ZisrKWs9Yy5jcmVhdGVBdHRyaWJ1dGUoZVtmXS5uYW1lLnJlcGxhY2UoIjoiLAoiX2R0X2JfbmFtZXNwYWNlX3Rva2VuXyIpKSxrLnZhbHVlPWVbZl0udmFsdWUsZC5zZXRBdHRyaWJ1dGVOb2RlKGspfWM9ei5zZXJpYWxpemVUb1N0cmluZyhjKTt2JiYoLTE9PT1jLmluZGV4T2YoIjw/eG1sIikmJihjPSc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+JytjKSxjPWMucmVwbGFjZSgvX2R0X2JfbmFtZXNwYWNlX3Rva2VuXy9nLCI6IikpO2M9Yy5yZXBsYWNlKC88KFtePD5dKj8pIHhtbG5zPSIiKFtePD5dKj8pPi9nLCI8JDEgJDI+Iik7YVtiXT1jfX0pfXZhciBsPWcuZm4uZGF0YVRhYmxlLGg9e3ZlcnNpb246IjEuMC40LVRhYmxlVG9vbHMyIixjbGllbnRzOnt9LG1vdmllUGF0aDoiIixuZXh0SWQ6MSwkOmZ1bmN0aW9uKGEpeyJzdHJpbmciPT10eXBlb2YgYSYmKGE9bS5nZXRFbGVtZW50QnlJZChhKSk7YS5hZGRDbGFzc3x8KGEuaGlkZT1mdW5jdGlvbigpe3RoaXMuc3R5bGUuZGlzcGxheT0ibm9uZSJ9LGEuc2hvdz0KZnVuY3Rpb24oKXt0aGlzLnN0eWxlLmRpc3BsYXk9IiJ9LGEuYWRkQ2xhc3M9ZnVuY3Rpb24oYSl7dGhpcy5yZW1vdmVDbGFzcyhhKTt0aGlzLmNsYXNzTmFtZSs9IiAiK2F9LGEucmVtb3ZlQ2xhc3M9ZnVuY3Rpb24oYSl7dGhpcy5jbGFzc05hbWU9dGhpcy5jbGFzc05hbWUucmVwbGFjZShuZXcgUmVnRXhwKCJcXHMqIithKyJcXHMqIiksIiAiKS5yZXBsYWNlKC9eXHMrLywiIikucmVwbGFjZSgvXHMrJC8sIiIpfSxhLmhhc0NsYXNzPWZ1bmN0aW9uKGEpe3JldHVybiEhdGhpcy5jbGFzc05hbWUubWF0Y2gobmV3IFJlZ0V4cCgiXFxzKiIrYSsiXFxzKiIpKX0pO3JldHVybiBhfSxzZXRNb3ZpZVBhdGg6ZnVuY3Rpb24oYSl7dGhpcy5tb3ZpZVBhdGg9YX0sZGlzcGF0Y2g6ZnVuY3Rpb24oYSxiLGMpeyhhPXRoaXMuY2xpZW50c1thXSkmJmEucmVjZWl2ZUV2ZW50KGIsYyl9LGxvZzpmdW5jdGlvbihhKXtjb25zb2xlLmxvZygiRmxhc2g6ICIrYSl9LHJlZ2lzdGVyOmZ1bmN0aW9uKGEsCmIpe3RoaXMuY2xpZW50c1thXT1ifSxnZXRET01PYmplY3RQb3NpdGlvbjpmdW5jdGlvbihhKXt2YXIgYj17bGVmdDowLHRvcDowLHdpZHRoOmEud2lkdGg/YS53aWR0aDphLm9mZnNldFdpZHRoLGhlaWdodDphLmhlaWdodD9hLmhlaWdodDphLm9mZnNldEhlaWdodH07IiIhPT1hLnN0eWxlLndpZHRoJiYoYi53aWR0aD1hLnN0eWxlLndpZHRoLnJlcGxhY2UoInB4IiwiIikpOyIiIT09YS5zdHlsZS5oZWlnaHQmJihiLmhlaWdodD1hLnN0eWxlLmhlaWdodC5yZXBsYWNlKCJweCIsIiIpKTtmb3IoO2E7KWIubGVmdCs9YS5vZmZzZXRMZWZ0LGIudG9wKz1hLm9mZnNldFRvcCxhPWEub2Zmc2V0UGFyZW50O3JldHVybiBifSxDbGllbnQ6ZnVuY3Rpb24oYSl7dGhpcy5oYW5kbGVycz17fTt0aGlzLmlkPWgubmV4dElkKys7dGhpcy5tb3ZpZUlkPSJaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHNNb3ZpZV8iK3RoaXMuaWQ7aC5yZWdpc3Rlcih0aGlzLmlkLHRoaXMpO2EmJnRoaXMuZ2x1ZShhKX19OwpoLkNsaWVudC5wcm90b3R5cGU9e2lkOjAscmVhZHk6ITEsbW92aWU6bnVsbCxjbGlwVGV4dDoiIixmaWxlTmFtZToiIixhY3Rpb246ImNvcHkiLGhhbmRDdXJzb3JFbmFibGVkOiEwLGNzc0VmZmVjdHM6ITAsaGFuZGxlcnM6bnVsbCxzaXplZDohMSxzaGVldE5hbWU6IiIsZ2x1ZTpmdW5jdGlvbihhLGIpe3RoaXMuZG9tRWxlbWVudD1oLiQoYSk7YT05OTt0aGlzLmRvbUVsZW1lbnQuc3R5bGUuekluZGV4JiYoYT1wYXJzZUludCh0aGlzLmRvbUVsZW1lbnQuc3R5bGUuekluZGV4LDEwKSsxKTt2YXIgYz1oLmdldERPTU9iamVjdFBvc2l0aW9uKHRoaXMuZG9tRWxlbWVudCk7dGhpcy5kaXY9bS5jcmVhdGVFbGVtZW50KCJkaXYiKTt2YXIgZD10aGlzLmRpdi5zdHlsZTtkLnBvc2l0aW9uPSJhYnNvbHV0ZSI7ZC5sZWZ0PSIwcHgiO2QudG9wPSIwcHgiO2Qud2lkdGg9Yy53aWR0aCsicHgiO2QuaGVpZ2h0PWMuaGVpZ2h0KyJweCI7ZC56SW5kZXg9YTsidW5kZWZpbmVkIiE9dHlwZW9mIGImJgoiIiE9PWImJih0aGlzLmRpdi50aXRsZT1iKTswIT09Yy53aWR0aCYmMCE9PWMuaGVpZ2h0JiYodGhpcy5zaXplZD0hMCk7dGhpcy5kb21FbGVtZW50JiYodGhpcy5kb21FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZGl2KSx0aGlzLmRpdi5pbm5lckhUTUw9dGhpcy5nZXRIVE1MKGMud2lkdGgsYy5oZWlnaHQpLnJlcGxhY2UoLyYvZywiJmFtcDsiKSl9LHBvc2l0aW9uRWxlbWVudDpmdW5jdGlvbigpe3ZhciBhPWguZ2V0RE9NT2JqZWN0UG9zaXRpb24odGhpcy5kb21FbGVtZW50KSxiPXRoaXMuZGl2LnN0eWxlO2IucG9zaXRpb249ImFic29sdXRlIjtiLndpZHRoPWEud2lkdGgrInB4IjtiLmhlaWdodD1hLmhlaWdodCsicHgiOzAhPT1hLndpZHRoJiYwIT09YS5oZWlnaHQmJih0aGlzLnNpemVkPSEwLGI9dGhpcy5kaXYuY2hpbGROb2Rlc1swXSxiLndpZHRoPWEud2lkdGgsYi5oZWlnaHQ9YS5oZWlnaHQpfSxnZXRIVE1MOmZ1bmN0aW9uKGEsYil7dmFyIGM9IiIsZD0iaWQ9Iit0aGlzLmlkKwoiJndpZHRoPSIrYSsiJmhlaWdodD0iK2I7aWYobmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvTVNJRS8pKXt2YXIgZj1sb2NhdGlvbi5ocmVmLm1hdGNoKC9eaHR0cHMvaSk/Imh0dHBzOi8vIjoiaHR0cDovLyI7Yys9JzxvYmplY3QgY2xhc3NpZD0iY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIiBjb2RlYmFzZT0iJytmKydkb3dubG9hZC5tYWNyb21lZGlhLmNvbS9wdWIvc2hvY2t3YXZlL2NhYnMvZmxhc2gvc3dmbGFzaC5jYWIjdmVyc2lvbj0xMCwwLDAsMCIgd2lkdGg9IicrYSsnIiBoZWlnaHQ9IicrYisnIiBpZD0iJyt0aGlzLm1vdmllSWQrJyIgYWxpZ249Im1pZGRsZSI+PHBhcmFtIG5hbWU9ImFsbG93U2NyaXB0QWNjZXNzIiB2YWx1ZT0iYWx3YXlzIiAvPjxwYXJhbSBuYW1lPSJhbGxvd0Z1bGxTY3JlZW4iIHZhbHVlPSJmYWxzZSIgLz48cGFyYW0gbmFtZT0ibW92aWUiIHZhbHVlPSInK2gubW92aWVQYXRoKyciIC8+PHBhcmFtIG5hbWU9Imxvb3AiIHZhbHVlPSJmYWxzZSIgLz48cGFyYW0gbmFtZT0ibWVudSIgdmFsdWU9ImZhbHNlIiAvPjxwYXJhbSBuYW1lPSJxdWFsaXR5IiB2YWx1ZT0iYmVzdCIgLz48cGFyYW0gbmFtZT0iYmdjb2xvciIgdmFsdWU9IiNmZmZmZmYiIC8+PHBhcmFtIG5hbWU9ImZsYXNodmFycyIgdmFsdWU9IicrCmQrJyIvPjxwYXJhbSBuYW1lPSJ3bW9kZSIgdmFsdWU9InRyYW5zcGFyZW50Ii8+PC9vYmplY3Q+J31lbHNlIGMrPSc8ZW1iZWQgaWQ9IicrdGhpcy5tb3ZpZUlkKyciIHNyYz0iJytoLm1vdmllUGF0aCsnIiBsb29wPSJmYWxzZSIgbWVudT0iZmFsc2UiIHF1YWxpdHk9ImJlc3QiIGJnY29sb3I9IiNmZmZmZmYiIHdpZHRoPSInK2ErJyIgaGVpZ2h0PSInK2IrJyIgbmFtZT0iJyt0aGlzLm1vdmllSWQrJyIgYWxpZ249Im1pZGRsZSIgYWxsb3dTY3JpcHRBY2Nlc3M9ImFsd2F5cyIgYWxsb3dGdWxsU2NyZWVuPSJmYWxzZSIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIHBsdWdpbnNwYWdlPSJodHRwOi8vd3d3Lm1hY3JvbWVkaWEuY29tL2dvL2dldGZsYXNocGxheWVyIiBmbGFzaHZhcnM9IicrZCsnIiB3bW9kZT0idHJhbnNwYXJlbnQiIC8+JztyZXR1cm4gY30saGlkZTpmdW5jdGlvbigpe3RoaXMuZGl2JiYodGhpcy5kaXYuc3R5bGUubGVmdD0iLTIwMDBweCIpfSwKc2hvdzpmdW5jdGlvbigpe3RoaXMucmVwb3NpdGlvbigpfSxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmRvbUVsZW1lbnQmJnRoaXMuZGl2JiYoZyh0aGlzLmRpdikucmVtb3ZlKCksdGhpcy5kaXY9dGhpcy5kb21FbGVtZW50PW51bGwsZy5lYWNoKGguY2xpZW50cyxmdW5jdGlvbihiLGMpe2M9PT1hJiZkZWxldGUgaC5jbGllbnRzW2JdfSkpfSxyZXBvc2l0aW9uOmZ1bmN0aW9uKGEpe2EmJigodGhpcy5kb21FbGVtZW50PWguJChhKSl8fHRoaXMuaGlkZSgpKTtpZih0aGlzLmRvbUVsZW1lbnQmJnRoaXMuZGl2KXthPWguZ2V0RE9NT2JqZWN0UG9zaXRpb24odGhpcy5kb21FbGVtZW50KTt2YXIgYj10aGlzLmRpdi5zdHlsZTtiLmxlZnQ9IiIrYS5sZWZ0KyJweCI7Yi50b3A9IiIrYS50b3ArInB4In19LGNsZWFyVGV4dDpmdW5jdGlvbigpe3RoaXMuY2xpcFRleHQ9IiI7dGhpcy5yZWFkeSYmdGhpcy5tb3ZpZS5jbGVhclRleHQoKX0sYXBwZW5kVGV4dDpmdW5jdGlvbihhKXt0aGlzLmNsaXBUZXh0Kz0KYTt0aGlzLnJlYWR5JiZ0aGlzLm1vdmllLmFwcGVuZFRleHQoYSl9LHNldFRleHQ6ZnVuY3Rpb24oYSl7dGhpcy5jbGlwVGV4dD1hO3RoaXMucmVhZHkmJnRoaXMubW92aWUuc2V0VGV4dChhKX0sc2V0RmlsZU5hbWU6ZnVuY3Rpb24oYSl7dGhpcy5maWxlTmFtZT1hO3RoaXMucmVhZHkmJnRoaXMubW92aWUuc2V0RmlsZU5hbWUoYSl9LHNldFNoZWV0RGF0YTpmdW5jdGlvbihhKXt0aGlzLnJlYWR5JiZ0aGlzLm1vdmllLnNldFNoZWV0RGF0YShKU09OLnN0cmluZ2lmeShhKSl9LHNldEFjdGlvbjpmdW5jdGlvbihhKXt0aGlzLmFjdGlvbj1hO3RoaXMucmVhZHkmJnRoaXMubW92aWUuc2V0QWN0aW9uKGEpfSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKGEsYil7YT1hLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9eb24vLCIiKTt0aGlzLmhhbmRsZXJzW2FdfHwodGhpcy5oYW5kbGVyc1thXT1bXSk7dGhpcy5oYW5kbGVyc1thXS5wdXNoKGIpfSxzZXRIYW5kQ3Vyc29yOmZ1bmN0aW9uKGEpe3RoaXMuaGFuZEN1cnNvckVuYWJsZWQ9CmE7dGhpcy5yZWFkeSYmdGhpcy5tb3ZpZS5zZXRIYW5kQ3Vyc29yKGEpfSxzZXRDU1NFZmZlY3RzOmZ1bmN0aW9uKGEpe3RoaXMuY3NzRWZmZWN0cz0hIWF9LHJlY2VpdmVFdmVudDpmdW5jdGlvbihhLGIpe2E9YS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXm9uLywiIik7c3dpdGNoKGEpe2Nhc2UgImxvYWQiOnRoaXMubW92aWU9bS5nZXRFbGVtZW50QnlJZCh0aGlzLm1vdmllSWQpO2lmKCF0aGlzLm1vdmllKXt2YXIgYz10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjLnJlY2VpdmVFdmVudCgibG9hZCIsbnVsbCl9LDEpO3JldHVybn1pZighdGhpcy5yZWFkeSYmbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvRmlyZWZveC8pJiZuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XaW5kb3dzLykpe2M9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5yZWNlaXZlRXZlbnQoImxvYWQiLG51bGwpfSwxMDApO3RoaXMucmVhZHk9ITA7cmV0dXJufXRoaXMucmVhZHk9CiEwO3RoaXMubW92aWUuY2xlYXJUZXh0KCk7dGhpcy5tb3ZpZS5hcHBlbmRUZXh0KHRoaXMuY2xpcFRleHQpO3RoaXMubW92aWUuc2V0RmlsZU5hbWUodGhpcy5maWxlTmFtZSk7dGhpcy5tb3ZpZS5zZXRBY3Rpb24odGhpcy5hY3Rpb24pO3RoaXMubW92aWUuc2V0SGFuZEN1cnNvcih0aGlzLmhhbmRDdXJzb3JFbmFibGVkKTticmVhaztjYXNlICJtb3VzZW92ZXIiOnRoaXMuZG9tRWxlbWVudCYmdGhpcy5jc3NFZmZlY3RzJiZ0aGlzLnJlY292ZXJBY3RpdmUmJnRoaXMuZG9tRWxlbWVudC5hZGRDbGFzcygiYWN0aXZlIik7YnJlYWs7Y2FzZSAibW91c2VvdXQiOnRoaXMuZG9tRWxlbWVudCYmdGhpcy5jc3NFZmZlY3RzJiYodGhpcy5yZWNvdmVyQWN0aXZlPSExLHRoaXMuZG9tRWxlbWVudC5oYXNDbGFzcygiYWN0aXZlIikmJih0aGlzLmRvbUVsZW1lbnQucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLHRoaXMucmVjb3ZlckFjdGl2ZT0hMCkpO2JyZWFrO2Nhc2UgIm1vdXNlZG93biI6dGhpcy5kb21FbGVtZW50JiYKdGhpcy5jc3NFZmZlY3RzJiZ0aGlzLmRvbUVsZW1lbnQuYWRkQ2xhc3MoImFjdGl2ZSIpO2JyZWFrO2Nhc2UgIm1vdXNldXAiOnRoaXMuZG9tRWxlbWVudCYmdGhpcy5jc3NFZmZlY3RzJiYodGhpcy5kb21FbGVtZW50LnJlbW92ZUNsYXNzKCJhY3RpdmUiKSx0aGlzLnJlY292ZXJBY3RpdmU9ITEpfWlmKHRoaXMuaGFuZGxlcnNbYV0pZm9yKHZhciBkPTAsZj10aGlzLmhhbmRsZXJzW2FdLmxlbmd0aDtkPGY7ZCsrKXt2YXIgZT10aGlzLmhhbmRsZXJzW2FdW2RdO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlKWUodGhpcyxiKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgZSYmMj09ZS5sZW5ndGgpZVswXVtlWzFdXSh0aGlzLGIpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKW5bZV0odGhpcyxiKX19fTtoLmhhc0ZsYXNoPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKSwhMH1jYXRjaChhKXtpZihuYXZpZ2F0b3IubWltZVR5cGVzJiYKbmF2aWdhdG9yLm1pbWVUeXBlc1siYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giXSE9PXUmJm5hdmlnYXRvci5taW1lVHlwZXNbImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIl0uZW5hYmxlZFBsdWdpbilyZXR1cm4hMH1yZXR1cm4hMX07bi5aZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHM9aDt2YXIgQz1mdW5jdGlvbihhLGIpe2IuYXR0cigiaWQiKTtiLnBhcmVudHMoImh0bWwiKS5sZW5ndGg/YS5nbHVlKGJbMF0sIiIpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtDKGEsYil9LDUwMCl9LEg9ZnVuY3Rpb24oYSl7dmFyIGI9IlNoZWV0MSI7YS5zaGVldE5hbWUmJihiPWEuc2hlZXROYW1lLnJlcGxhY2UoL1tcW1xdXCpcL1xcXD86XS9nLCIiKSk7cmV0dXJuIGJ9LHg9ZnVuY3Rpb24oYSxiKXtiPWIubWF0Y2goL1tcc1xTXXsxLDgxOTJ9L2cpfHxbXTthLmNsZWFyVGV4dCgpO2Zvcih2YXIgYz0wLGQ9Yi5sZW5ndGg7YzxkO2MrKylhLmFwcGVuZFRleHQoYltjXSl9LEQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGEubmV3bGluZT8KYS5uZXdsaW5lOm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1dpbmRvd3MvKT8iXHJcbiI6IlxuIn0sRT1mdW5jdGlvbihhLGIpe3ZhciBjPUQoYik7YT1hLmJ1dHRvbnMuZXhwb3J0RGF0YShiLmV4cG9ydE9wdGlvbnMpO3ZhciBkPWIuZmllbGRCb3VuZGFyeSxmPWIuZmllbGRTZXBhcmF0b3IsZT1uZXcgUmVnRXhwKGQsImciKSxnPWIuZXNjYXBlQ2hhciE9PXU/Yi5lc2NhcGVDaGFyOiJcXCIsaD1mdW5jdGlvbihhKXtmb3IodmFyIGI9IiIsYz0wLGg9YS5sZW5ndGg7YzxoO2MrKykwPGMmJihiKz1mKSxiKz1kP2QrKCIiK2FbY10pLnJlcGxhY2UoZSxnK2QpK2Q6YVtjXTtyZXR1cm4gYn0sbj1iLmhlYWRlcj9oKGEuaGVhZGVyKStjOiIiO2I9Yi5mb290ZXImJmEuZm9vdGVyP2MraChhLmZvb3Rlcik6IiI7Zm9yKHZhciBtPVtdLHA9MCxyPWEuYm9keS5sZW5ndGg7cDxyO3ArKyltLnB1c2goaChhLmJvZHlbcF0pKTtyZXR1cm57c3RyOm4rbS5qb2luKGMpK2Iscm93czptLmxlbmd0aH19LAp5PXthdmFpbGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gaC5oYXNGbGFzaCgpfSxpbml0OmZ1bmN0aW9uKGEsYixjKXtoLm1vdmllUGF0aD1sLkJ1dHRvbnMuc3dmUGF0aDt2YXIgZD1uZXcgaC5DbGllbnQ7ZC5zZXRIYW5kQ3Vyc29yKCEwKTtkLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlRG93biIsZnVuY3Rpb24oZCl7Yy5fZnJvbUZsYXNoPSEwO2EuYnV0dG9uKGJbMF0pLnRyaWdnZXIoKTtjLl9mcm9tRmxhc2g9ITF9KTtDKGQsYik7Yy5fZmxhc2g9ZH0sZGVzdHJveTpmdW5jdGlvbihhLGIsYyl7Yy5fZmxhc2guZGVzdHJveSgpfSxmaWVsZFNlcGFyYXRvcjoiLCIsZmllbGRCb3VuZGFyeTonIicsZXhwb3J0T3B0aW9uczp7fSx0aXRsZToiKiIsbWVzc2FnZVRvcDoiKiIsbWVzc2FnZUJvdHRvbToiKiIsZmlsZW5hbWU6IioiLGV4dGVuc2lvbjoiLmNzdiIsaGVhZGVyOiEwLGZvb3RlcjohMX0sej0iIjt6PSJ1bmRlZmluZWQiPT09dHlwZW9mIG4uWE1MU2VyaWFsaXplcj9uZXcgZnVuY3Rpb24oKXt0aGlzLnNlcmlhbGl6ZVRvU3RyaW5nPQpmdW5jdGlvbihhKXtyZXR1cm4gYS54bWx9fTpuZXcgWE1MU2VyaWFsaXplcjt2YXIgdix0PXsiX3JlbHMvLnJlbHMiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PFJlbGF0aW9uc2hpcHMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI+PFJlbGF0aW9uc2hpcCBJZD0icklkMSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudCIgVGFyZ2V0PSJ4bC93b3JrYm9vay54bWwiLz48L1JlbGF0aW9uc2hpcHM+JywieGwvX3JlbHMvd29ya2Jvb2sueG1sLnJlbHMiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PFJlbGF0aW9uc2hpcHMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI+PFJlbGF0aW9uc2hpcCBJZD0icklkMSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy93b3Jrc2hlZXQiIFRhcmdldD0id29ya3NoZWV0cy9zaGVldDEueG1sIi8+PFJlbGF0aW9uc2hpcCBJZD0icklkMiIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zdHlsZXMiIFRhcmdldD0ic3R5bGVzLnhtbCIvPjwvUmVsYXRpb25zaGlwcz4nLAoiW0NvbnRlbnRfVHlwZXNdLnhtbCI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48VHlwZXMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvY29udGVudC10eXBlcyI+PERlZmF1bHQgRXh0ZW5zaW9uPSJ4bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94bWwiIC8+PERlZmF1bHQgRXh0ZW5zaW9uPSJyZWxzIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UucmVsYXRpb25zaGlwcyt4bWwiIC8+PERlZmF1bHQgRXh0ZW5zaW9uPSJqcGVnIiBDb250ZW50VHlwZT0iaW1hZ2UvanBlZyIgLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3JrYm9vay54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbCIgLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sIiAvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3N0eWxlcy54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sIiAvPjwvVHlwZXM+JywKInhsL3dvcmtib29rLnhtbCI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48d29ya2Jvb2sgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6cj0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcyI+PGZpbGVWZXJzaW9uIGFwcE5hbWU9InhsIiBsYXN0RWRpdGVkPSI1IiBsb3dlc3RFZGl0ZWQ9IjUiIHJ1cEJ1aWxkPSIyNDgxNiIvPjx3b3JrYm9va1ByIHNob3dJbmtBbm5vdGF0aW9uPSIwIiBhdXRvQ29tcHJlc3NQaWN0dXJlcz0iMCIvPjxib29rVmlld3M+PHdvcmtib29rVmlldyB4V2luZG93PSIwIiB5V2luZG93PSIwIiB3aW5kb3dXaWR0aD0iMjU2MDAiIHdpbmRvd0hlaWdodD0iMTkwMjAiIHRhYlJhdGlvPSI1MDAiLz48L2Jvb2tWaWV3cz48c2hlZXRzPjxzaGVldCBuYW1lPSIiIHNoZWV0SWQ9IjEiIHI6aWQ9InJJZDEiLz48L3NoZWV0cz48L3dvcmtib29rPicsCiJ4bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PHdvcmtzaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMiIHhtbG5zOngxNGFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyI+PHNoZWV0RGF0YS8+PG1lcmdlQ2VsbHMgY291bnQ9IjAiLz48L3dvcmtzaGVldD4nLCJ4bC9zdHlsZXMueG1sIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3R5bGVTaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMiIHhtbG5zOngxNGFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyI+PG51bUZtdHMgY291bnQ9IjYiPjxudW1GbXQgbnVtRm10SWQ9IjE2NCIgZm9ybWF0Q29kZT0iIywjIzAuMDBfLSBbJCQtNDVDXSIvPjxudW1GbXQgbnVtRm10SWQ9IjE2NSIgZm9ybWF0Q29kZT0iJnF1b3Q7wqMmcXVvdDsjLCMjMC4wMCIvPjxudW1GbXQgbnVtRm10SWQ9IjE2NiIgZm9ybWF0Q29kZT0iWyTigqwtMl0gIywjIzAuMDAiLz48bnVtRm10IG51bUZtdElkPSIxNjciIGZvcm1hdENvZGU9IjAuMCUiLz48bnVtRm10IG51bUZtdElkPSIxNjgiIGZvcm1hdENvZGU9IiMsIyMwOygjLCMjMCkiLz48bnVtRm10IG51bUZtdElkPSIxNjkiIGZvcm1hdENvZGU9IiMsIyMwLjAwOygjLCMjMC4wMCkiLz48L251bUZtdHM+PGZvbnRzIGNvdW50PSI1IiB4MTRhYzprbm93bkZvbnRzPSIxIj48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PC9mb250Pjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48Y29sb3IgcmdiPSJGRkZGRkZGRiIgLz48L2ZvbnQ+PGZvbnQ+PHN6IHZhbD0iMTEiIC8+PG5hbWUgdmFsPSJDYWxpYnJpIiAvPjxiIC8+PC9mb250Pjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48aSAvPjwvZm9udD48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PHUgLz48L2ZvbnQ+PC9mb250cz48ZmlsbHMgY291bnQ9IjYiPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ibm9uZSIgLz48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJub25lIiAvPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9InNvbGlkIj48ZmdDb2xvciByZ2I9IkZGRDlEOUQ5IiAvPjxiZ0NvbG9yIGluZGV4ZWQ9IjY0IiAvPjwvcGF0dGVybkZpbGw+PC9maWxsPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ic29saWQiPjxmZ0NvbG9yIHJnYj0iRkZEOTk3OTUiIC8+PGJnQ29sb3IgaW5kZXhlZD0iNjQiIC8+PC9wYXR0ZXJuRmlsbD48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJzb2xpZCI+PGZnQ29sb3IgcmdiPSJmZmM2ZWZjZSIgLz48YmdDb2xvciBpbmRleGVkPSI2NCIgLz48L3BhdHRlcm5GaWxsPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9InNvbGlkIj48ZmdDb2xvciByZ2I9ImZmYzZjZmVmIiAvPjxiZ0NvbG9yIGluZGV4ZWQ9IjY0IiAvPjwvcGF0dGVybkZpbGw+PC9maWxsPjwvZmlsbHM+PGJvcmRlcnMgY291bnQ9IjIiPjxib3JkZXI+PGxlZnQgLz48cmlnaHQgLz48dG9wIC8+PGJvdHRvbSAvPjxkaWFnb25hbCAvPjwvYm9yZGVyPjxib3JkZXIgZGlhZ29uYWxVcD0iZmFsc2UiIGRpYWdvbmFsRG93bj0iZmFsc2UiPjxsZWZ0IHN0eWxlPSJ0aGluIj48Y29sb3IgYXV0bz0iMSIgLz48L2xlZnQ+PHJpZ2h0IHN0eWxlPSJ0aGluIj48Y29sb3IgYXV0bz0iMSIgLz48L3JpZ2h0Pjx0b3Agc3R5bGU9InRoaW4iPjxjb2xvciBhdXRvPSIxIiAvPjwvdG9wPjxib3R0b20gc3R5bGU9InRoaW4iPjxjb2xvciBhdXRvPSIxIiAvPjwvYm90dG9tPjxkaWFnb25hbCAvPjwvYm9yZGVyPjwvYm9yZGVycz48Y2VsbFN0eWxlWGZzIGNvdW50PSIxIj48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgLz48L2NlbGxTdHlsZVhmcz48Y2VsbFhmcyBjb3VudD0iNjEiPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIzIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIzIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgaG9yaXpvbnRhbD0ibGVmdCIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgaG9yaXpvbnRhbD0iY2VudGVyIi8+PC94Zj48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseUFsaWdubWVudD0iMSI+PGFsaWdubWVudCBob3Jpem9udGFsPSJyaWdodCIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgaG9yaXpvbnRhbD0iZmlsbCIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgdGV4dFJvdGF0aW9uPSI5MCIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgd3JhcFRleHQ9IjEiLz48L3hmPjx4ZiBudW1GbXRJZD0iOSIgICBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjE2NCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNjUiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTY2IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjE2NyIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNjgiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTY5IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjMiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iNCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PC9jZWxsWGZzPjxjZWxsU3R5bGVzIGNvdW50PSIxIj48Y2VsbFN0eWxlIG5hbWU9Ik5vcm1hbCIgeGZJZD0iMCIgYnVpbHRpbklkPSIwIiAvPjwvY2VsbFN0eWxlcz48ZHhmcyBjb3VudD0iMCIgLz48dGFibGVTdHlsZXMgY291bnQ9IjAiIGRlZmF1bHRUYWJsZVN0eWxlPSJUYWJsZVN0eWxlTWVkaXVtOSIgZGVmYXVsdFBpdm90U3R5bGU9IlBpdm90U3R5bGVNZWRpdW00IiAvPjwvc3R5bGVTaGVldD4nfSwKRj1be21hdGNoOi9eXC0/XGQrXC5cZCUkLyxzdHlsZTo2MCxmbXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEvMTAwfX0se21hdGNoOi9eXC0/XGQrXC4/XGQqJSQvLHN0eWxlOjU2LGZtdDpmdW5jdGlvbihhKXtyZXR1cm4gYS8xMDB9fSx7bWF0Y2g6L15cLT9cJFtcZCxdKy4/XGQqJC8sc3R5bGU6NTd9LHttYXRjaDovXlwtP8KjW1xkLF0rLj9cZCokLyxzdHlsZTo1OH0se21hdGNoOi9eXC0/4oKsW1xkLF0rLj9cZCokLyxzdHlsZTo1OX0se21hdGNoOi9eXChbXGQsXStcKSQvLHN0eWxlOjYxLGZtdDpmdW5jdGlvbihhKXtyZXR1cm4tMSphLnJlcGxhY2UoL1tcKFwpXS9nLCIiKX19LHttYXRjaDovXlwoW1xkLF0rXC5cZHsyfVwpJC8sc3R5bGU6NjIsZm10OmZ1bmN0aW9uKGEpe3JldHVybi0xKmEucmVwbGFjZSgvW1woXCldL2csIiIpfX0se21hdGNoOi9eW1xkLF0rJC8sc3R5bGU6NjN9LHttYXRjaDovXltcZCxdK1wuXGR7Mn0kLyxzdHlsZTo2NH1dO2wuQnV0dG9ucy5zd2ZQYXRoPSIvL2Nkbi5kYXRhdGFibGVzLm5ldC9idXR0b25zLyIrCmwuQnV0dG9ucy52ZXJzaW9uKyIvc3dmL2ZsYXNoRXhwb3J0LnN3ZiI7bC5BcGkucmVnaXN0ZXIoImJ1dHRvbnMucmVzaXplKCkiLGZ1bmN0aW9uKCl7Zy5lYWNoKGguY2xpZW50cyxmdW5jdGlvbihhLGIpe2IuZG9tRWxlbWVudCE9PXUmJmIuZG9tRWxlbWVudC5wYXJlbnROb2RlJiZiLnBvc2l0aW9uRWxlbWVudCgpfSl9KTtsLmV4dC5idXR0b25zLmNvcHlGbGFzaD1nLmV4dGVuZCh7fSx5LHtjbGFzc05hbWU6ImJ1dHRvbnMtY29weSBidXR0b25zLWZsYXNoIix0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMuY29weSIsIkNvcHkiKX0sYWN0aW9uOmZ1bmN0aW9uKGEsYixjLGQpe2lmKGQuX2Zyb21GbGFzaCl7dGhpcy5wcm9jZXNzaW5nKCEwKTthPWQuX2ZsYXNoO3ZhciBmPUUoYixkKTtjPWIuYnV0dG9ucy5leHBvcnRJbmZvKGQpO3ZhciBlPUQoZCk7Zj1mLnN0cjtjLnRpdGxlJiYoZj1jLnRpdGxlK2UrZStmKTtjLm1lc3NhZ2VUb3AmJihmPWMubWVzc2FnZVRvcCsKZStlK2YpO2MubWVzc2FnZUJvdHRvbSYmKGY9ZitlK2UrYy5tZXNzYWdlQm90dG9tKTtkLmN1c3RvbWl6ZSYmKGY9ZC5jdXN0b21pemUoZixkLGIpKTthLnNldEFjdGlvbigiY29weSIpO3goYSxmKTt0aGlzLnByb2Nlc3NpbmcoITEpO2IuYnV0dG9ucy5pbmZvKGIuaTE4bigiYnV0dG9ucy5jb3B5VGl0bGUiLCJDb3B5IHRvIGNsaXBib2FyZCIpLGIuaTE4bigiYnV0dG9ucy5jb3B5U3VjY2VzcyIse186IkNvcGllZCAlZCByb3dzIHRvIGNsaXBib2FyZCIsMToiQ29waWVkIDEgcm93IHRvIGNsaXBib2FyZCJ9LGRhdGEucm93cyksM0UzKX19LGZpZWxkU2VwYXJhdG9yOiJcdCIsZmllbGRCb3VuZGFyeToiIn0pO2wuZXh0LmJ1dHRvbnMuY3N2Rmxhc2g9Zy5leHRlbmQoe30seSx7Y2xhc3NOYW1lOiJidXR0b25zLWNzdiBidXR0b25zLWZsYXNoIix0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMuY3N2IiwiQ1NWIil9LGFjdGlvbjpmdW5jdGlvbihhLGIsYyxkKXthPQpkLl9mbGFzaDt2YXIgZj1FKGIsZCk7Yz1iLmJ1dHRvbnMuZXhwb3J0SW5mbyhkKTtiPWQuY3VzdG9taXplP2QuY3VzdG9taXplKGYuc3RyLGQsYik6Zi5zdHI7YS5zZXRBY3Rpb24oImNzdiIpO2Euc2V0RmlsZU5hbWUoYy5maWxlbmFtZSk7eChhLGIpfSxlc2NhcGVDaGFyOiciJ30pO2wuZXh0LmJ1dHRvbnMuZXhjZWxGbGFzaD1nLmV4dGVuZCh7fSx5LHtjbGFzc05hbWU6ImJ1dHRvbnMtZXhjZWwgYnV0dG9ucy1mbGFzaCIsdGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gYS5pMThuKCJidXR0b25zLmV4Y2VsIiwiRXhjZWwiKX0sYWN0aW9uOmZ1bmN0aW9uKGEsYixjLGQpe3RoaXMucHJvY2Vzc2luZyghMCk7YT1kLl9mbGFzaDt2YXIgZj0wLGU9Zy5wYXJzZVhNTCh0WyJ4bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiXSksaD1lLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzaGVldERhdGEiKVswXTtjPXtfcmVsczp7Ii5yZWxzIjpnLnBhcnNlWE1MKHRbIl9yZWxzLy5yZWxzIl0pfSx4bDp7X3JlbHM6eyJ3b3JrYm9vay54bWwucmVscyI6Zy5wYXJzZVhNTCh0WyJ4bC9fcmVscy93b3JrYm9vay54bWwucmVscyJdKX0sCiJ3b3JrYm9vay54bWwiOmcucGFyc2VYTUwodFsieGwvd29ya2Jvb2sueG1sIl0pLCJzdHlsZXMueG1sIjpnLnBhcnNlWE1MKHRbInhsL3N0eWxlcy54bWwiXSksd29ya3NoZWV0czp7InNoZWV0MS54bWwiOmV9fSwiW0NvbnRlbnRfVHlwZXNdLnhtbCI6Zy5wYXJzZVhNTCh0WyJbQ29udGVudF9UeXBlc10ueG1sIl0pfTt2YXIgaz1iLmJ1dHRvbnMuZXhwb3J0RGF0YShkLmV4cG9ydE9wdGlvbnMpLG0sbixwPWZ1bmN0aW9uKGEpe209ZisxO249cihlLCJyb3ciLHthdHRyOntyOm19fSk7Zm9yKHZhciBiPTAsYz1hLmxlbmd0aDtiPGM7YisrKXt2YXIgbD1BKGIpKyIiK20saz1udWxsO2lmKG51bGw9PT1hW2JdfHxhW2JdPT09dXx8IiI9PT1hW2JdKWlmKCEwPT09ZC5jcmVhdGVFbXB0eUNlbGxzKWFbYl09IiI7ZWxzZSBjb250aW51ZTthW2JdPWcudHJpbShhW2JdKTtmb3IodmFyIHA9MCx0PUYubGVuZ3RoO3A8dDtwKyspe3ZhciBxPUZbcF07aWYoYVtiXS5tYXRjaCYmIWFbYl0ubWF0Y2goL14wXGQrLykmJgphW2JdLm1hdGNoKHEubWF0Y2gpKXtrPWFbYl0ucmVwbGFjZSgvW15cZFwuXC1dL2csIiIpO3EuZm10JiYoaz1xLmZtdChrKSk7az1yKGUsImMiLHthdHRyOntyOmwsczpxLnN0eWxlfSxjaGlsZHJlbjpbcihlLCJ2Iix7dGV4dDprfSldfSk7YnJlYWt9fWt8fCgibnVtYmVyIj09PXR5cGVvZiBhW2JdfHxhW2JdLm1hdGNoJiZhW2JdLm1hdGNoKC9eLT9cZCsoXC5cZCspPyQvKSYmIWFbYl0ubWF0Y2goL14wXGQrLyk/az1yKGUsImMiLHthdHRyOnt0OiJuIixyOmx9LGNoaWxkcmVuOltyKGUsInYiLHt0ZXh0OmFbYl19KV19KToocT1hW2JdLnJlcGxhY2U/YVtiXS5yZXBsYWNlKC9bXHgwMC1ceDA5XHgwQlx4MENceDBFLVx4MUZceDdGLVx4OUZdL2csIiIpOmFbYl0saz1yKGUsImMiLHthdHRyOnt0OiJpbmxpbmVTdHIiLHI6bH0sY2hpbGRyZW46e3JvdzpyKGUsImlzIix7Y2hpbGRyZW46e3JvdzpyKGUsInQiLHt0ZXh0OnF9KX19KX19KSkpO24uYXBwZW5kQ2hpbGQoayl9aC5hcHBlbmRDaGlsZChuKTsKZisrfTtnKCJzaGVldHMgc2hlZXQiLGMueGxbIndvcmtib29rLnhtbCJdKS5hdHRyKCJuYW1lIixIKGQpKTtkLmN1c3RvbWl6ZURhdGEmJmQuY3VzdG9taXplRGF0YShrKTt2YXIgbD1mdW5jdGlvbihhLGIpe3ZhciBjPWcoIm1lcmdlQ2VsbHMiLGUpO2NbMF0uYXBwZW5kQ2hpbGQocihlLCJtZXJnZUNlbGwiLHthdHRyOntyZWY6IkEiK2ErIjoiK0EoYikrYX19KSk7Yy5hdHRyKCJjb3VudCIsYy5hdHRyKCJjb3VudCIpKzEpO2coInJvdzplcSgiKyhhLTEpKyIpIGMiLGUpLmF0dHIoInMiLCI1MSIpfSxxPWIuYnV0dG9ucy5leHBvcnRJbmZvKGQpO3EudGl0bGUmJihwKFtxLnRpdGxlXSxmKSxsKGYsay5oZWFkZXIubGVuZ3RoLTEpKTtxLm1lc3NhZ2VUb3AmJihwKFtxLm1lc3NhZ2VUb3BdLGYpLGwoZixrLmhlYWRlci5sZW5ndGgtMSkpO2QuaGVhZGVyJiYocChrLmhlYWRlcixmKSxnKCJyb3c6bGFzdCBjIixlKS5hdHRyKCJzIiwiMiIpKTtmb3IodmFyIHc9MCx2PWsuYm9keS5sZW5ndGg7dzwKdjt3KyspcChrLmJvZHlbd10sZik7ZC5mb290ZXImJmsuZm9vdGVyJiYocChrLmZvb3RlcixmKSxnKCJyb3c6bGFzdCBjIixlKS5hdHRyKCJzIiwiMiIpKTtxLm1lc3NhZ2VCb3R0b20mJihwKFtxLm1lc3NhZ2VCb3R0b21dLGYpLGwoZixrLmhlYWRlci5sZW5ndGgtMSkpO3A9cihlLCJjb2xzIik7Zygid29ya3NoZWV0IixlKS5wcmVwZW5kKHApO2w9MDtmb3Iodz1rLmhlYWRlci5sZW5ndGg7bDx3O2wrKylwLmFwcGVuZENoaWxkKHIoZSwiY29sIix7YXR0cjp7bWluOmwrMSxtYXg6bCsxLHdpZHRoOkcoayxsKSxjdXN0b21XaWR0aDoxfX0pKTtkLmN1c3RvbWl6ZSYmZC5jdXN0b21pemUoYyxkLGIpO0IoYyk7YS5zZXRBY3Rpb24oImV4Y2VsIik7YS5zZXRGaWxlTmFtZShxLmZpbGVuYW1lKTthLnNldFNoZWV0RGF0YShjKTt4KGEsIiIpO3RoaXMucHJvY2Vzc2luZyghMSl9LGV4dGVuc2lvbjoiLnhsc3giLGNyZWF0ZUVtcHR5Q2VsbHM6ITF9KTtsLmV4dC5idXR0b25zLnBkZkZsYXNoPQpnLmV4dGVuZCh7fSx5LHtjbGFzc05hbWU6ImJ1dHRvbnMtcGRmIGJ1dHRvbnMtZmxhc2giLHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5wZGYiLCJQREYiKX0sYWN0aW9uOmZ1bmN0aW9uKGEsYixjLGQpe3RoaXMucHJvY2Vzc2luZyghMCk7YT1kLl9mbGFzaDtjPWIuYnV0dG9ucy5leHBvcnREYXRhKGQuZXhwb3J0T3B0aW9ucyk7dmFyIGY9Yi5idXR0b25zLmV4cG9ydEluZm8oZCksZT1iLnRhYmxlKCkubm9kZSgpLm9mZnNldFdpZHRoLGc9Yi5jb2x1bW5zKGQuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYi5jb2x1bW4oYSkuaGVhZGVyKCkub2Zmc2V0V2lkdGgvZX0pO2Euc2V0QWN0aW9uKCJwZGYiKTthLnNldEZpbGVOYW1lKGYuZmlsZW5hbWUpO3goYSxKU09OLnN0cmluZ2lmeSh7dGl0bGU6Zi50aXRsZXx8IiIsbWVzc2FnZVRvcDpmLm1lc3NhZ2VUb3B8fCIiLG1lc3NhZ2VCb3R0b206Zi5tZXNzYWdlQm90dG9tfHwiIiwKY29sV2lkdGg6Zy50b0FycmF5KCksb3JpZW50YXRpb246ZC5vcmllbnRhdGlvbixzaXplOmQucGFnZVNpemUsaGVhZGVyOmQuaGVhZGVyP2MuaGVhZGVyOm51bGwsZm9vdGVyOmQuZm9vdGVyP2MuZm9vdGVyOm51bGwsYm9keTpjLmJvZHl9KSk7dGhpcy5wcm9jZXNzaW5nKCExKX0sZXh0ZW5zaW9uOiIucGRmIixvcmllbnRhdGlvbjoicG9ydHJhaXQiLHBhZ2VTaXplOiJBNCIsbmV3bGluZToiXG4ifSk7cmV0dXJuIGwuQnV0dG9uc30pOwo="></script>
<script src="data:application/x-javascript;base64,LyohCiBIVE1MNSBleHBvcnQgYnV0dG9ucyBmb3IgQnV0dG9ucyBhbmQgRGF0YVRhYmxlcy4KIDIwMTYgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKCiBGaWxlU2F2ZXIuanMgKDEuMy4zKSAtIE1JVCBsaWNlbnNlCiBDb3B5cmlnaHQgwqkgMjAxNiBFbGkgR3JleSAtIGh0dHA6Ly9lbGlncmV5LmNvbQoqLwooZnVuY3Rpb24oZil7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5IiwiZGF0YXRhYmxlcy5uZXQiLCJkYXRhdGFibGVzLm5ldC1idXR0b25zIl0sZnVuY3Rpb24oZyl7cmV0dXJuIGYoZyx3aW5kb3csZG9jdW1lbnQpfSk6Im9iamVjdCI9PT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihnLHAseix0KXtnfHwoZz13aW5kb3cpO3AmJnAuZm4uZGF0YVRhYmxlfHwocD1yZXF1aXJlKCJkYXRhdGFibGVzLm5ldCIpKGcscCkuJCk7cC5mbi5kYXRhVGFibGUuQnV0dG9uc3x8cmVxdWlyZSgiZGF0YXRhYmxlcy5uZXQtYnV0dG9ucyIpKGcscCk7cmV0dXJuIGYocCxnLGcuZG9jdW1lbnQseix0KX06ZihqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGYsZyxwLHosdCx3KXtmdW5jdGlvbiBBKGEpe2Zvcih2YXIgYj0iIjswPD1hOyliPVN0cmluZy5mcm9tQ2hhckNvZGUoYSUyNis2NSkrYixhPU1hdGguZmxvb3IoYS8KMjYpLTE7cmV0dXJuIGJ9ZnVuY3Rpb24gRShhLGIpe3k9PT13JiYoeT0tMT09PUMuc2VyaWFsaXplVG9TdHJpbmcoZi5wYXJzZVhNTChGWyJ4bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiXSkpLmluZGV4T2YoInhtbG5zOnIiKSk7Zi5lYWNoKGIsZnVuY3Rpb24oYixjKXtpZihmLmlzUGxhaW5PYmplY3QoYykpYj1hLmZvbGRlcihiKSxFKGIsYyk7ZWxzZXtpZih5KXt2YXIgZD1jLmNoaWxkTm9kZXNbMF0sZSxoPVtdO2ZvcihlPWQuYXR0cmlidXRlcy5sZW5ndGgtMTswPD1lO2UtLSl7dmFyIG09ZC5hdHRyaWJ1dGVzW2VdLm5vZGVOYW1lO3ZhciBrPWQuYXR0cmlidXRlc1tlXS5ub2RlVmFsdWU7LTEhPT1tLmluZGV4T2YoIjoiKSYmKGgucHVzaCh7bmFtZTptLHZhbHVlOmt9KSxkLnJlbW92ZUF0dHJpYnV0ZShtKSl9ZT0wO2ZvcihtPWgubGVuZ3RoO2U8bTtlKyspaz1jLmNyZWF0ZUF0dHJpYnV0ZShoW2VdLm5hbWUucmVwbGFjZSgiOiIsIl9kdF9iX25hbWVzcGFjZV90b2tlbl8iKSksCmsudmFsdWU9aFtlXS52YWx1ZSxkLnNldEF0dHJpYnV0ZU5vZGUoayl9Yz1DLnNlcmlhbGl6ZVRvU3RyaW5nKGMpO3kmJigtMT09PWMuaW5kZXhPZigiPD94bWwiKSYmKGM9Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4nK2MpLGM9Yy5yZXBsYWNlKC9fZHRfYl9uYW1lc3BhY2VfdG9rZW5fL2csIjoiKSxjPWMucmVwbGFjZSgveG1sbnM6TlNbXGRdKz0iIiBOU1tcZF0rOi9nLCIiKSk7Yz1jLnJlcGxhY2UoLzwoW148Pl0qPykgeG1sbnM9IiIoW148Pl0qPyk+L2csIjwkMSAkMj4iKTthLmZpbGUoYixjKX19KX1mdW5jdGlvbiByKGEsYixkKXt2YXIgYz1hLmNyZWF0ZUVsZW1lbnQoYik7ZCYmKGQuYXR0ciYmZihjKS5hdHRyKGQuYXR0ciksZC5jaGlsZHJlbiYmZi5lYWNoKGQuY2hpbGRyZW4sZnVuY3Rpb24oYSxiKXtjLmFwcGVuZENoaWxkKGIpfSksbnVsbCE9PWQudGV4dCYmZC50ZXh0IT09dyYmYy5hcHBlbmRDaGlsZChhLmNyZWF0ZVRleHROb2RlKGQudGV4dCkpKTsKcmV0dXJuIGN9ZnVuY3Rpb24gTChhLGIpe3ZhciBkPWEuaGVhZGVyW2JdLmxlbmd0aDthLmZvb3RlciYmYS5mb290ZXJbYl0ubGVuZ3RoPmQmJihkPWEuZm9vdGVyW2JdLmxlbmd0aCk7Zm9yKHZhciBjPTAsZj1hLmJvZHkubGVuZ3RoO2M8ZjtjKyspe3ZhciBlPWEuYm9keVtjXVtiXTtlPW51bGwhPT1lJiZlIT09dz9lLnRvU3RyaW5nKCk6IiI7LTEhPT1lLmluZGV4T2YoIlxuIik/KGU9ZS5zcGxpdCgiXG4iKSxlLnNvcnQoZnVuY3Rpb24oYSxjKXtyZXR1cm4gYy5sZW5ndGgtYS5sZW5ndGh9KSxlPWVbMF0ubGVuZ3RoKTplPWUubGVuZ3RoO2U+ZCYmKGQ9ZSk7aWYoNDA8ZClyZXR1cm4gNTR9ZCo9MS4zNTtyZXR1cm4gNjxkP2Q6Nn12YXIgdj1mLmZuLmRhdGFUYWJsZTt2LkJ1dHRvbnMucGRmTWFrZT1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gdHx8Zy5wZGZNYWtlO3Q9bV9ha2V9O3YuQnV0dG9ucy5qc3ppcD1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4genx8Zy5KU1ppcDt6PWF9Owp2YXIgQj1mdW5jdGlvbihhKXtpZighKCJ1bmRlZmluZWQiPT09dHlwZW9mIGF8fCJ1bmRlZmluZWQiIT09dHlwZW9mIG5hdmlnYXRvciYmL01TSUUgWzEtOV1cLi8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkpe3ZhciBiPWEuZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiYSIpLGQ9ImRvd25sb2FkImluIGIsYz0vY29uc3RydWN0b3IvaS50ZXN0KGEuSFRNTEVsZW1lbnQpfHxhLnNhZmFyaSxmPS9DcmlPU1wvW1xkXSsvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksZT1mdW5jdGlvbihjKXsoYS5zZXRJbW1lZGlhdGV8fGEuc2V0VGltZW91dCkoZnVuY3Rpb24oKXt0aHJvdyBjO30sMCl9LGg9ZnVuY3Rpb24oYyl7c2V0VGltZW91dChmdW5jdGlvbigpeyJzdHJpbmciPT09dHlwZW9mIGM/KGEuVVJMfHxhLndlYmtpdFVSTHx8YSkucmV2b2tlT2JqZWN0VVJMKGMpOmMucmVtb3ZlKCl9LDRFNCl9LG09ZnVuY3Rpb24oYSl7cmV0dXJuL15ccyooPzp0ZXh0XC9cUyp8YXBwbGljYXRpb25cL3htbHxcUypcL1xTKlwreG1sKVxzKjsuKmNoYXJzZXRccyo9XHMqdXRmLTgvaS50ZXN0KGEudHlwZSk/Cm5ldyBCbG9iKFtTdHJpbmcuZnJvbUNoYXJDb2RlKDY1Mjc5KSxhXSx7dHlwZTphLnR5cGV9KTphfSxrPWZ1bmN0aW9uKGsscSxuKXtufHwoaz1tKGspKTt2YXIgbD10aGlzLGc9ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI9PT1rLnR5cGUsRD1mdW5jdGlvbigpe3ZhciBhPVsid3JpdGVzdGFydCIsInByb2dyZXNzIiwid3JpdGUiLCJ3cml0ZWVuZCJdO2E9W10uY29uY2F0KGEpO2Zvcih2YXIgYz1hLmxlbmd0aDtjLS07KXt2YXIgYj1sWyJvbiIrYVtjXV07aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBiKXRyeXtiLmNhbGwobCxsKX1jYXRjaChNKXtlKE0pfX19O2wucmVhZHlTdGF0ZT1sLklOSVQ7aWYoZCl7dmFyIHU9KGEuVVJMfHxhLndlYmtpdFVSTHx8YSkuY3JlYXRlT2JqZWN0VVJMKGspO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtiLmhyZWY9dTtiLmRvd25sb2FkPXE7dmFyIGE9bmV3IE1vdXNlRXZlbnQoImNsaWNrIik7Yi5kaXNwYXRjaEV2ZW50KGEpO0QoKTtoKHUpO2wucmVhZHlTdGF0ZT0KbC5ET05FfSl9ZWxzZShmdW5jdGlvbigpe2lmKChmfHxnJiZjKSYmYS5GaWxlUmVhZGVyKXt2YXIgYj1uZXcgRmlsZVJlYWRlcjtiLm9ubG9hZGVuZD1mdW5jdGlvbigpe3ZhciBjPWY/Yi5yZXN1bHQ6Yi5yZXN1bHQucmVwbGFjZSgvXmRhdGE6W147XSo7LywiZGF0YTphdHRhY2htZW50L2ZpbGU7Iik7YS5vcGVuKGMsIl9ibGFuayIpfHwoYS5sb2NhdGlvbi5ocmVmPWMpO2wucmVhZHlTdGF0ZT1sLkRPTkU7RCgpfTtiLnJlYWRBc0RhdGFVUkwoayk7bC5yZWFkeVN0YXRlPWwuSU5JVH1lbHNlIHV8fCh1PShhLlVSTHx8YS53ZWJraXRVUkx8fGEpLmNyZWF0ZU9iamVjdFVSTChrKSksZz9hLmxvY2F0aW9uLmhyZWY9dTphLm9wZW4odSwiX2JsYW5rIil8fChhLmxvY2F0aW9uLmhyZWY9dSksbC5yZWFkeVN0YXRlPWwuRE9ORSxEKCksaCh1KX0pKCl9LG49ay5wcm90b3R5cGU7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYilyZXR1cm4gZnVuY3Rpb24oYSwKYyxiKXtjPWN8fGEubmFtZXx8ImRvd25sb2FkIjtifHwoYT1tKGEpKTtyZXR1cm4gbmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IoYSxjKX07bi5hYm9ydD1mdW5jdGlvbigpe307bi5yZWFkeVN0YXRlPW4uSU5JVD0wO24uV1JJVElORz0xO24uRE9ORT0yO24uZXJyb3I9bi5vbndyaXRlc3RhcnQ9bi5vbnByb2dyZXNzPW4ub253cml0ZT1uLm9uYWJvcnQ9bi5vbmVycm9yPW4ub253cml0ZWVuZD1udWxsO3JldHVybiBmdW5jdGlvbihhLGMsYil7cmV0dXJuIG5ldyBrKGEsY3x8YS5uYW1lfHwiZG93bmxvYWQiLGIpfX19KCJ1bmRlZmluZWQiIT09dHlwZW9mIHNlbGYmJnNlbGZ8fCJ1bmRlZmluZWQiIT09dHlwZW9mIGcmJmd8fHRoaXMuY29udGVudCk7di5maWxlU2F2ZT1CO3ZhciBHPWZ1bmN0aW9uKGEpe3ZhciBiPSJTaGVldDEiO2Euc2hlZXROYW1lJiYoYj1hLnNoZWV0TmFtZS5yZXBsYWNlKC9bXFtcXVwqXC9cXFw/Ol0vZywiIikpO3JldHVybiBifSxIPWZ1bmN0aW9uKGEpe3JldHVybiBhLm5ld2xpbmU/CmEubmV3bGluZTpuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XaW5kb3dzLyk/IlxyXG4iOiJcbiJ9LEk9ZnVuY3Rpb24oYSxiKXt2YXIgZD1IKGIpO2E9YS5idXR0b25zLmV4cG9ydERhdGEoYi5leHBvcnRPcHRpb25zKTt2YXIgYz1iLmZpZWxkQm91bmRhcnksZj1iLmZpZWxkU2VwYXJhdG9yLGU9bmV3IFJlZ0V4cChjLCJnIiksaD1iLmVzY2FwZUNoYXIhPT13P2IuZXNjYXBlQ2hhcjoiXFwiLG09ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPSIiLGQ9MCxtPWEubGVuZ3RoO2Q8bTtkKyspMDxkJiYoYis9ZiksYis9Yz9jKygiIithW2RdKS5yZXBsYWNlKGUsaCtjKStjOmFbZF07cmV0dXJuIGJ9LGs9Yi5oZWFkZXI/bShhLmhlYWRlcikrZDoiIjtiPWIuZm9vdGVyJiZhLmZvb3Rlcj9kK20oYS5mb290ZXIpOiIiO2Zvcih2YXIgbj1bXSxnPTAscT1hLmJvZHkubGVuZ3RoO2c8cTtnKyspbi5wdXNoKG0oYS5ib2R5W2ddKSk7cmV0dXJue3N0cjprK24uam9pbihkKStiLHJvd3M6bi5sZW5ndGh9fSwKSj1mdW5jdGlvbigpe2lmKC0xPT09bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJTYWZhcmkiKXx8LTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkNocm9tZSIpfHwtMSE9PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiT3BlcmEiKSlyZXR1cm4hMTt2YXIgYT1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9BcHBsZVdlYktpdFwvKFxkK1wuXGQrKS8pO3JldHVybiBhJiYxPGEubGVuZ3RoJiY2MDMuMT4xKmFbMV0/ITA6ITF9O3RyeXt2YXIgQz1uZXcgWE1MU2VyaWFsaXplcix5fWNhdGNoKGEpe312YXIgRj17Il9yZWxzLy5yZWxzIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxSZWxhdGlvbnNoaXBzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDEiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvb2ZmaWNlRG9jdW1lbnQiIFRhcmdldD0ieGwvd29ya2Jvb2sueG1sIi8+PC9SZWxhdGlvbnNoaXBzPicsCiJ4bC9fcmVscy93b3JrYm9vay54bWwucmVscyI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48UmVsYXRpb25zaGlwcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzIj48UmVsYXRpb25zaGlwIElkPSJySWQxIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldCIgVGFyZ2V0PSJ3b3Jrc2hlZXRzL3NoZWV0MS54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQyIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3N0eWxlcyIgVGFyZ2V0PSJzdHlsZXMueG1sIi8+PC9SZWxhdGlvbnNoaXBzPicsIltDb250ZW50X1R5cGVzXS54bWwiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PFR5cGVzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L2NvbnRlbnQtdHlwZXMiPjxEZWZhdWx0IEV4dGVuc2lvbj0ieG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24veG1sIiAvPjxEZWZhdWx0IEV4dGVuc2lvbj0icmVscyIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0aW9uc2hpcHMreG1sIiAvPjxEZWZhdWx0IEV4dGVuc2lvbj0ianBlZyIgQ29udGVudFR5cGU9ImltYWdlL2pwZWciIC8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvd29ya2Jvb2sueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4bWwiIC8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvd29ya3NoZWV0cy9zaGVldDEueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwud29ya3NoZWV0K3htbCIgLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC9zdHlsZXMueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc3R5bGVzK3htbCIgLz48L1R5cGVzPicsCiJ4bC93b3JrYm9vay54bWwiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PHdvcmtib29rIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW4iIHhtbG5zOnI9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMiPjxmaWxlVmVyc2lvbiBhcHBOYW1lPSJ4bCIgbGFzdEVkaXRlZD0iNSIgbG93ZXN0RWRpdGVkPSI1IiBydXBCdWlsZD0iMjQ4MTYiLz48d29ya2Jvb2tQciBzaG93SW5rQW5ub3RhdGlvbj0iMCIgYXV0b0NvbXByZXNzUGljdHVyZXM9IjAiLz48Ym9va1ZpZXdzPjx3b3JrYm9va1ZpZXcgeFdpbmRvdz0iMCIgeVdpbmRvdz0iMCIgd2luZG93V2lkdGg9IjI1NjAwIiB3aW5kb3dIZWlnaHQ9IjE5MDIwIiB0YWJSYXRpbz0iNTAwIi8+PC9ib29rVmlld3M+PHNoZWV0cz48c2hlZXQgbmFtZT0iU2hlZXQxIiBzaGVldElkPSIxIiByOmlkPSJySWQxIi8+PC9zaGVldHM+PGRlZmluZWROYW1lcy8+PC93b3JrYm9vaz4nLAoieGwvd29ya3NoZWV0cy9zaGVldDEueG1sIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pjx3b3Jrc2hlZXQgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6cj0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcyIgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiBtYzpJZ25vcmFibGU9IngxNGFjIiB4bWxuczp4MTRhYz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiPjxzaGVldERhdGEvPjxtZXJnZUNlbGxzIGNvdW50PSIwIi8+PC93b3Jrc2hlZXQ+JywieGwvc3R5bGVzLnhtbCI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+PHN0eWxlU2hlZXQgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiBtYzpJZ25vcmFibGU9IngxNGFjIiB4bWxuczp4MTRhYz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiPjxudW1GbXRzIGNvdW50PSI2Ij48bnVtRm10IG51bUZtdElkPSIxNjQiIGZvcm1hdENvZGU9IiMsIyMwLjAwXy0gWyQkLTQ1Q10iLz48bnVtRm10IG51bUZtdElkPSIxNjUiIGZvcm1hdENvZGU9IiZxdW90O8KjJnF1b3Q7IywjIzAuMDAiLz48bnVtRm10IG51bUZtdElkPSIxNjYiIGZvcm1hdENvZGU9Ilsk4oKsLTJdICMsIyMwLjAwIi8+PG51bUZtdCBudW1GbXRJZD0iMTY3IiBmb3JtYXRDb2RlPSIwLjAlIi8+PG51bUZtdCBudW1GbXRJZD0iMTY4IiBmb3JtYXRDb2RlPSIjLCMjMDsoIywjIzApIi8+PG51bUZtdCBudW1GbXRJZD0iMTY5IiBmb3JtYXRDb2RlPSIjLCMjMC4wMDsoIywjIzAuMDApIi8+PC9udW1GbXRzPjxmb250cyBjb3VudD0iNSIgeDE0YWM6a25vd25Gb250cz0iMSI+PGZvbnQ+PHN6IHZhbD0iMTEiIC8+PG5hbWUgdmFsPSJDYWxpYnJpIiAvPjwvZm9udD48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PGNvbG9yIHJnYj0iRkZGRkZGRkYiIC8+PC9mb250Pjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48YiAvPjwvZm9udD48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PGkgLz48L2ZvbnQ+PGZvbnQ+PHN6IHZhbD0iMTEiIC8+PG5hbWUgdmFsPSJDYWxpYnJpIiAvPjx1IC8+PC9mb250PjwvZm9udHM+PGZpbGxzIGNvdW50PSI2Ij48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9Im5vbmUiIC8+PC9maWxsPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ibm9uZSIgLz48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJzb2xpZCI+PGZnQ29sb3IgcmdiPSJGRkQ5RDlEOSIgLz48YmdDb2xvciBpbmRleGVkPSI2NCIgLz48L3BhdHRlcm5GaWxsPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9InNvbGlkIj48ZmdDb2xvciByZ2I9IkZGRDk5Nzk1IiAvPjxiZ0NvbG9yIGluZGV4ZWQ9IjY0IiAvPjwvcGF0dGVybkZpbGw+PC9maWxsPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ic29saWQiPjxmZ0NvbG9yIHJnYj0iZmZjNmVmY2UiIC8+PGJnQ29sb3IgaW5kZXhlZD0iNjQiIC8+PC9wYXR0ZXJuRmlsbD48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJzb2xpZCI+PGZnQ29sb3IgcmdiPSJmZmM2Y2ZlZiIgLz48YmdDb2xvciBpbmRleGVkPSI2NCIgLz48L3BhdHRlcm5GaWxsPjwvZmlsbD48L2ZpbGxzPjxib3JkZXJzIGNvdW50PSIyIj48Ym9yZGVyPjxsZWZ0IC8+PHJpZ2h0IC8+PHRvcCAvPjxib3R0b20gLz48ZGlhZ29uYWwgLz48L2JvcmRlcj48Ym9yZGVyIGRpYWdvbmFsVXA9ImZhbHNlIiBkaWFnb25hbERvd249ImZhbHNlIj48bGVmdCBzdHlsZT0idGhpbiI+PGNvbG9yIGF1dG89IjEiIC8+PC9sZWZ0PjxyaWdodCBzdHlsZT0idGhpbiI+PGNvbG9yIGF1dG89IjEiIC8+PC9yaWdodD48dG9wIHN0eWxlPSJ0aGluIj48Y29sb3IgYXV0bz0iMSIgLz48L3RvcD48Ym90dG9tIHN0eWxlPSJ0aGluIj48Y29sb3IgYXV0bz0iMSIgLz48L2JvdHRvbT48ZGlhZ29uYWwgLz48L2JvcmRlcj48L2JvcmRlcnM+PGNlbGxTdHlsZVhmcyBjb3VudD0iMSI+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIC8+PC9jZWxsU3R5bGVYZnM+PGNlbGxYZnMgY291bnQ9IjY3Ij48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIzIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5QWxpZ25tZW50PSIxIj48YWxpZ25tZW50IGhvcml6b250YWw9ImxlZnQiLz48L3hmPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5QWxpZ25tZW50PSIxIj48YWxpZ25tZW50IGhvcml6b250YWw9ImNlbnRlciIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgaG9yaXpvbnRhbD0icmlnaHQiLz48L3hmPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5QWxpZ25tZW50PSIxIj48YWxpZ25tZW50IGhvcml6b250YWw9ImZpbGwiLz48L3hmPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5QWxpZ25tZW50PSIxIj48YWxpZ25tZW50IHRleHRSb3RhdGlvbj0iOTAiLz48L3hmPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5QWxpZ25tZW50PSIxIj48YWxpZ25tZW50IHdyYXBUZXh0PSIxIi8+PC94Zj48eGYgbnVtRm10SWQ9IjkiICAgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNjQiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTY1IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjE2NiIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNjciIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTY4IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjE2OSIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIzIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjQiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMSIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIyIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48L2NlbGxYZnM+PGNlbGxTdHlsZXMgY291bnQ9IjEiPjxjZWxsU3R5bGUgbmFtZT0iTm9ybWFsIiB4ZklkPSIwIiBidWlsdGluSWQ9IjAiIC8+PC9jZWxsU3R5bGVzPjxkeGZzIGNvdW50PSIwIiAvPjx0YWJsZVN0eWxlcyBjb3VudD0iMCIgZGVmYXVsdFRhYmxlU3R5bGU9IlRhYmxlU3R5bGVNZWRpdW05IiBkZWZhdWx0UGl2b3RTdHlsZT0iUGl2b3RTdHlsZU1lZGl1bTQiIC8+PC9zdHlsZVNoZWV0Pid9LApLPVt7bWF0Y2g6L15cLT9cZCtcLlxkJSQvLHN0eWxlOjYwLGZtdDpmdW5jdGlvbihhKXtyZXR1cm4gYS8xMDB9fSx7bWF0Y2g6L15cLT9cZCtcLj9cZColJC8sc3R5bGU6NTYsZm10OmZ1bmN0aW9uKGEpe3JldHVybiBhLzEwMH19LHttYXRjaDovXlwtP1wkW1xkLF0rLj9cZCokLyxzdHlsZTo1N30se21hdGNoOi9eXC0/wqNbXGQsXSsuP1xkKiQvLHN0eWxlOjU4fSx7bWF0Y2g6L15cLT/igqxbXGQsXSsuP1xkKiQvLHN0eWxlOjU5fSx7bWF0Y2g6L15cLT9cZCskLyxzdHlsZTo2NX0se21hdGNoOi9eXC0/XGQrXC5cZHsyfSQvLHN0eWxlOjY2fSx7bWF0Y2g6L15cKFtcZCxdK1wpJC8sc3R5bGU6NjEsZm10OmZ1bmN0aW9uKGEpe3JldHVybi0xKmEucmVwbGFjZSgvW1woXCldL2csIiIpfX0se21hdGNoOi9eXChbXGQsXStcLlxkezJ9XCkkLyxzdHlsZTo2MixmbXQ6ZnVuY3Rpb24oYSl7cmV0dXJuLTEqYS5yZXBsYWNlKC9bXChcKV0vZywiIil9fSx7bWF0Y2g6L15cLT9bXGQsXSskLyxzdHlsZTo2M30sCnttYXRjaDovXlwtP1tcZCxdK1wuXGR7Mn0kLyxzdHlsZTo2NH1dO3YuZXh0LmJ1dHRvbnMuY29weUh0bWw1PXtjbGFzc05hbWU6ImJ1dHRvbnMtY29weSBidXR0b25zLWh0bWw1Iix0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMuY29weSIsIkNvcHkiKX0sYWN0aW9uOmZ1bmN0aW9uKGEsYixkLGMpe3RoaXMucHJvY2Vzc2luZyghMCk7dmFyIGc9dGhpczthPUkoYixjKTt2YXIgZT1iLmJ1dHRvbnMuZXhwb3J0SW5mbyhjKSxoPUgoYyksbT1hLnN0cjtkPWYoIjxkaXYvPiIpLmNzcyh7aGVpZ2h0OjEsd2lkdGg6MSxvdmVyZmxvdzoiaGlkZGVuIixwb3NpdGlvbjoiZml4ZWQiLHRvcDowLGxlZnQ6MH0pO2UudGl0bGUmJihtPWUudGl0bGUraCtoK20pO2UubWVzc2FnZVRvcCYmKG09ZS5tZXNzYWdlVG9wK2graCttKTtlLm1lc3NhZ2VCb3R0b20mJihtPW0raCtoK2UubWVzc2FnZUJvdHRvbSk7Yy5jdXN0b21pemUmJihtPWMuY3VzdG9taXplKG0sYyxiKSk7Yz1mKCI8dGV4dGFyZWEgcmVhZG9ubHkvPiIpLnZhbChtKS5hcHBlbmRUbyhkKTsKaWYocC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoImNvcHkiKSl7ZC5hcHBlbmRUbyhiLnRhYmxlKCkuY29udGFpbmVyKCkpO2NbMF0uZm9jdXMoKTtjWzBdLnNlbGVjdCgpO3RyeXt2YXIgaz1wLmV4ZWNDb21tYW5kKCJjb3B5Iik7ZC5yZW1vdmUoKTtpZihrKXtiLmJ1dHRvbnMuaW5mbyhiLmkxOG4oImJ1dHRvbnMuY29weVRpdGxlIiwiQ29weSB0byBjbGlwYm9hcmQiKSxiLmkxOG4oImJ1dHRvbnMuY29weVN1Y2Nlc3MiLHsxOiJDb3BpZWQgb25lIHJvdyB0byBjbGlwYm9hcmQiLF86IkNvcGllZCAlZCByb3dzIHRvIGNsaXBib2FyZCJ9LGEucm93cyksMkUzKTt0aGlzLnByb2Nlc3NpbmcoITEpO3JldHVybn19Y2F0Y2gocSl7fX1rPWYoIjxzcGFuPiIrYi5pMThuKCJidXR0b25zLmNvcHlLZXlzIiwiUHJlc3MgPGk+Y3RybDwvaT4gb3IgPGk+4oyYPC9pPiArIDxpPkM8L2k+IHRvIGNvcHkgdGhlIHRhYmxlIGRhdGE8YnI+dG8geW91ciBzeXN0ZW0gY2xpcGJvYXJkLjxicj48YnI+VG8gY2FuY2VsLCBjbGljayB0aGlzIG1lc3NhZ2Ugb3IgcHJlc3MgZXNjYXBlLiIpKwoiPC9zcGFuPiIpLmFwcGVuZChkKTtiLmJ1dHRvbnMuaW5mbyhiLmkxOG4oImJ1dHRvbnMuY29weVRpdGxlIiwiQ29weSB0byBjbGlwYm9hcmQiKSxrLDApO2NbMF0uZm9jdXMoKTtjWzBdLnNlbGVjdCgpO3ZhciBuPWYoaykuY2xvc2VzdCgiLmR0LWJ1dHRvbi1pbmZvIikscj1mdW5jdGlvbigpe24ub2ZmKCJjbGljay5idXR0b25zLWNvcHkiKTtmKHApLm9mZigiLmJ1dHRvbnMtY29weSIpO2IuYnV0dG9ucy5pbmZvKCExKX07bi5vbigiY2xpY2suYnV0dG9ucy1jb3B5IixyKTtmKHApLm9uKCJrZXlkb3duLmJ1dHRvbnMtY29weSIsZnVuY3Rpb24oYSl7Mjc9PT1hLmtleUNvZGUmJihyKCksZy5wcm9jZXNzaW5nKCExKSl9KS5vbigiY29weS5idXR0b25zLWNvcHkgY3V0LmJ1dHRvbnMtY29weSIsZnVuY3Rpb24oKXtyKCk7Zy5wcm9jZXNzaW5nKCExKX0pfSxleHBvcnRPcHRpb25zOnt9LGZpZWxkU2VwYXJhdG9yOiJcdCIsZmllbGRCb3VuZGFyeToiIixoZWFkZXI6ITAsZm9vdGVyOiExLAp0aXRsZToiKiIsbWVzc2FnZVRvcDoiKiIsbWVzc2FnZUJvdHRvbToiKiJ9O3YuZXh0LmJ1dHRvbnMuY3N2SHRtbDU9e2JvbTohMSxjbGFzc05hbWU6ImJ1dHRvbnMtY3N2IGJ1dHRvbnMtaHRtbDUiLGF2YWlsYWJsZTpmdW5jdGlvbigpe3JldHVybiBnLkZpbGVSZWFkZXIhPT13JiZnLkJsb2J9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5jc3YiLCJDU1YiKX0sYWN0aW9uOmZ1bmN0aW9uKGEsYixkLGMpe3RoaXMucHJvY2Vzc2luZyghMCk7YT1JKGIsYykuc3RyO2Q9Yi5idXR0b25zLmV4cG9ydEluZm8oYyk7dmFyIGY9Yy5jaGFyc2V0O2MuY3VzdG9taXplJiYoYT1jLmN1c3RvbWl6ZShhLGMsYikpOyExIT09Zj8oZnx8KGY9cC5jaGFyYWN0ZXJTZXR8fHAuY2hhcnNldCksZiYmKGY9IjtjaGFyc2V0PSIrZikpOmY9IiI7Yy5ib20mJihhPSLvu78iK2EpO0IobmV3IEJsb2IoW2FdLHt0eXBlOiJ0ZXh0L2NzdiIrZn0pLGQuZmlsZW5hbWUsITApO3RoaXMucHJvY2Vzc2luZyghMSl9LApmaWxlbmFtZToiKiIsZXh0ZW5zaW9uOiIuY3N2IixleHBvcnRPcHRpb25zOnt9LGZpZWxkU2VwYXJhdG9yOiIsIixmaWVsZEJvdW5kYXJ5OiciJyxlc2NhcGVDaGFyOiciJyxjaGFyc2V0Om51bGwsaGVhZGVyOiEwLGZvb3RlcjohMX07di5leHQuYnV0dG9ucy5leGNlbEh0bWw1PXtjbGFzc05hbWU6ImJ1dHRvbnMtZXhjZWwgYnV0dG9ucy1odG1sNSIsYXZhaWxhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGcuRmlsZVJlYWRlciE9PXcmJih6fHxnLkpTWmlwKSE9PXcmJiFKKCkmJkN9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5leGNlbCIsIkV4Y2VsIil9LGFjdGlvbjpmdW5jdGlvbihhLGIsZCxjKXt0aGlzLnByb2Nlc3NpbmcoITApO3ZhciBwPXRoaXMsZT0wO2E9ZnVuY3Rpb24oYSl7cmV0dXJuIGYucGFyc2VYTUwoRlthXSl9O3ZhciBoPWEoInhsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCIpLG09aC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2hlZXREYXRhIilbMF07CmE9e19yZWxzOnsiLnJlbHMiOmEoIl9yZWxzLy5yZWxzIil9LHhsOntfcmVsczp7Indvcmtib29rLnhtbC5yZWxzIjphKCJ4bC9fcmVscy93b3JrYm9vay54bWwucmVscyIpfSwid29ya2Jvb2sueG1sIjphKCJ4bC93b3JrYm9vay54bWwiKSwic3R5bGVzLnhtbCI6YSgieGwvc3R5bGVzLnhtbCIpLHdvcmtzaGVldHM6eyJzaGVldDEueG1sIjpofX0sIltDb250ZW50X1R5cGVzXS54bWwiOmEoIltDb250ZW50X1R5cGVzXS54bWwiKX07dmFyIGs9Yi5idXR0b25zLmV4cG9ydERhdGEoYy5leHBvcnRPcHRpb25zKSxuLHYscT1mdW5jdGlvbihhKXtuPWUrMTt2PXIoaCwicm93Iix7YXR0cjp7cjpufX0pO2Zvcih2YXIgYj0wLGQ9YS5sZW5ndGg7YjxkO2IrKyl7dmFyIGs9QShiKSsiIituLGc9bnVsbDtpZihudWxsPT09YVtiXXx8YVtiXT09PXd8fCIiPT09YVtiXSlpZighMD09PWMuY3JlYXRlRW1wdHlDZWxscylhW2JdPSIiO2Vsc2UgY29udGludWU7dmFyIGw9YVtiXTthW2JdPWYudHJpbShhW2JdKTsKZm9yKHZhciBxPTAscD1LLmxlbmd0aDtxPHA7cSsrKXt2YXIgdT1LW3FdO2lmKGFbYl0ubWF0Y2gmJiFhW2JdLm1hdGNoKC9eMFxkKy8pJiZhW2JdLm1hdGNoKHUubWF0Y2gpKXtnPWFbYl0ucmVwbGFjZSgvW15cZFwuXC1dL2csIiIpO3UuZm10JiYoZz11LmZtdChnKSk7Zz1yKGgsImMiLHthdHRyOntyOmssczp1LnN0eWxlfSxjaGlsZHJlbjpbcihoLCJ2Iix7dGV4dDpnfSldfSk7YnJlYWt9fWd8fCgibnVtYmVyIj09PXR5cGVvZiBhW2JdfHxhW2JdLm1hdGNoJiZhW2JdLm1hdGNoKC9eLT9cZCsoXC5cZCspPyQvKSYmIWFbYl0ubWF0Y2goL14wXGQrLyk/Zz1yKGgsImMiLHthdHRyOnt0OiJuIixyOmt9LGNoaWxkcmVuOltyKGgsInYiLHt0ZXh0OmFbYl19KV19KToobD1sLnJlcGxhY2U/bC5yZXBsYWNlKC9bXHgwMC1ceDA5XHgwQlx4MENceDBFLVx4MUZceDdGLVx4OUZdL2csIiIpOmwsZz1yKGgsImMiLHthdHRyOnt0OiJpbmxpbmVTdHIiLHI6a30sY2hpbGRyZW46e3JvdzpyKGgsCiJpcyIse2NoaWxkcmVuOntyb3c6cihoLCJ0Iix7dGV4dDpsLGF0dHI6eyJ4bWw6c3BhY2UiOiJwcmVzZXJ2ZSJ9fSl9fSl9fSkpKTt2LmFwcGVuZENoaWxkKGcpfW0uYXBwZW5kQ2hpbGQodik7ZSsrfTtjLmN1c3RvbWl6ZURhdGEmJmMuY3VzdG9taXplRGF0YShrKTt2YXIgeD1mdW5jdGlvbihhLGIpe3ZhciBjPWYoIm1lcmdlQ2VsbHMiLGgpO2NbMF0uYXBwZW5kQ2hpbGQocihoLCJtZXJnZUNlbGwiLHthdHRyOntyZWY6IkEiK2ErIjoiK0EoYikrYX19KSk7Yy5hdHRyKCJjb3VudCIscGFyc2VGbG9hdChjLmF0dHIoImNvdW50IikpKzEpO2YoInJvdzplcSgiKyhhLTEpKyIpIGMiLGgpLmF0dHIoInMiLCI1MSIpfSxsPWIuYnV0dG9ucy5leHBvcnRJbmZvKGMpO2wudGl0bGUmJihxKFtsLnRpdGxlXSxlKSx4KGUsay5oZWFkZXIubGVuZ3RoLTEpKTtsLm1lc3NhZ2VUb3AmJihxKFtsLm1lc3NhZ2VUb3BdLGUpLHgoZSxrLmhlYWRlci5sZW5ndGgtMSkpO2MuaGVhZGVyJiYocShrLmhlYWRlciwKZSksZigicm93Omxhc3QgYyIsaCkuYXR0cigicyIsIjIiKSk7ZD1lO3ZhciB0PTA7Zm9yKHZhciB5PWsuYm9keS5sZW5ndGg7dDx5O3QrKylxKGsuYm9keVt0XSxlKTt0PWU7Yy5mb290ZXImJmsuZm9vdGVyJiYocShrLmZvb3RlcixlKSxmKCJyb3c6bGFzdCBjIixoKS5hdHRyKCJzIiwiMiIpKTtsLm1lc3NhZ2VCb3R0b20mJihxKFtsLm1lc3NhZ2VCb3R0b21dLGUpLHgoZSxrLmhlYWRlci5sZW5ndGgtMSkpO3E9cihoLCJjb2xzIik7Zigid29ya3NoZWV0IixoKS5wcmVwZW5kKHEpO3g9MDtmb3IoeT1rLmhlYWRlci5sZW5ndGg7eDx5O3grKylxLmFwcGVuZENoaWxkKHIoaCwiY29sIix7YXR0cjp7bWluOngrMSxtYXg6eCsxLHdpZHRoOkwoayx4KSxjdXN0b21XaWR0aDoxfX0pKTtxPWEueGxbIndvcmtib29rLnhtbCJdO2YoInNoZWV0cyBzaGVldCIscSkuYXR0cigibmFtZSIsRyhjKSk7Yy5hdXRvRmlsdGVyJiYoZigibWVyZ2VDZWxscyIsaCkuYmVmb3JlKHIoaCwiYXV0b0ZpbHRlciIsCnthdHRyOntyZWY6IkEiK2QrIjoiK0Eoay5oZWFkZXIubGVuZ3RoLTEpK3R9fSkpLGYoImRlZmluZWROYW1lcyIscSkuYXBwZW5kKHIocSwiZGVmaW5lZE5hbWUiLHthdHRyOntuYW1lOiJfeGxubS5fRmlsdGVyRGF0YWJhc2UiLGxvY2FsU2hlZXRJZDoiMCIsaGlkZGVuOjF9LHRleHQ6RyhjKSsiISRBJCIrZCsiOiIrQShrLmhlYWRlci5sZW5ndGgtMSkrdH0pKSk7Yy5jdXN0b21pemUmJmMuY3VzdG9taXplKGEsYyxiKTswPT09ZigibWVyZ2VDZWxscyIsaCkuY2hpbGRyZW4oKS5sZW5ndGgmJmYoIm1lcmdlQ2VsbHMiLGgpLnJlbW92ZSgpO2I9bmV3ICh6fHxnLkpTWmlwKTtkPXt0eXBlOiJibG9iIixtaW1lVHlwZToiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQifTtFKGIsYSk7Yi5nZW5lcmF0ZUFzeW5jP2IuZ2VuZXJhdGVBc3luYyhkKS50aGVuKGZ1bmN0aW9uKGEpe0IoYSxsLmZpbGVuYW1lKTtwLnByb2Nlc3NpbmcoITEpfSk6CihCKGIuZ2VuZXJhdGUoZCksbC5maWxlbmFtZSksdGhpcy5wcm9jZXNzaW5nKCExKSl9LGZpbGVuYW1lOiIqIixleHRlbnNpb246Ii54bHN4IixleHBvcnRPcHRpb25zOnt9LGhlYWRlcjohMCxmb290ZXI6ITEsdGl0bGU6IioiLG1lc3NhZ2VUb3A6IioiLG1lc3NhZ2VCb3R0b206IioiLGNyZWF0ZUVtcHR5Q2VsbHM6ITEsYXV0b0ZpbHRlcjohMSxzaGVldE5hbWU6IiJ9O3YuZXh0LmJ1dHRvbnMucGRmSHRtbDU9e2NsYXNzTmFtZToiYnV0dG9ucy1wZGYgYnV0dG9ucy1odG1sNSIsYXZhaWxhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGcuRmlsZVJlYWRlciE9PXcmJih0fHxnLnBkZk1ha2UpfSx0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMucGRmIiwiUERGIil9LGFjdGlvbjpmdW5jdGlvbihhLGIsZCxjKXt0aGlzLnByb2Nlc3NpbmcoITApO2Q9Yi5idXR0b25zLmV4cG9ydERhdGEoYy5leHBvcnRPcHRpb25zKTthPWIuYnV0dG9ucy5leHBvcnRJbmZvKGMpO3ZhciBwPQpbXTtjLmhlYWRlciYmcC5wdXNoKGYubWFwKGQuaGVhZGVyLGZ1bmN0aW9uKGEpe3JldHVybnt0ZXh0OiJzdHJpbmciPT09dHlwZW9mIGE/YTphKyIiLHN0eWxlOiJ0YWJsZUhlYWRlciJ9fSkpO2Zvcih2YXIgZT0wLGg9ZC5ib2R5Lmxlbmd0aDtlPGg7ZSsrKXAucHVzaChmLm1hcChkLmJvZHlbZV0sZnVuY3Rpb24oYSl7aWYobnVsbD09PWF8fGE9PT13KWE9IiI7cmV0dXJue3RleHQ6InN0cmluZyI9PT10eXBlb2YgYT9hOmErIiIsc3R5bGU6ZSUyPyJ0YWJsZUJvZHlFdmVuIjoidGFibGVCb2R5T2RkIn19KSk7Yy5mb290ZXImJmQuZm9vdGVyJiZwLnB1c2goZi5tYXAoZC5mb290ZXIsZnVuY3Rpb24oYSl7cmV0dXJue3RleHQ6InN0cmluZyI9PT10eXBlb2YgYT9hOmErIiIsc3R5bGU6InRhYmxlRm9vdGVyIn19KSk7ZD17cGFnZVNpemU6Yy5wYWdlU2l6ZSxwYWdlT3JpZW50YXRpb246Yy5vcmllbnRhdGlvbixjb250ZW50Olt7dGFibGU6e2hlYWRlclJvd3M6MSxib2R5OnB9LGxheW91dDoibm9Cb3JkZXJzIn1dLApzdHlsZXM6e3RhYmxlSGVhZGVyOntib2xkOiEwLGZvbnRTaXplOjExLGNvbG9yOiJ3aGl0ZSIsZmlsbENvbG9yOiIjMmQ0MTU0IixhbGlnbm1lbnQ6ImNlbnRlciJ9LHRhYmxlQm9keUV2ZW46e30sdGFibGVCb2R5T2RkOntmaWxsQ29sb3I6IiNmM2YzZjMifSx0YWJsZUZvb3Rlcjp7Ym9sZDohMCxmb250U2l6ZToxMSxjb2xvcjoid2hpdGUiLGZpbGxDb2xvcjoiIzJkNDE1NCJ9LHRpdGxlOnthbGlnbm1lbnQ6ImNlbnRlciIsZm9udFNpemU6MTV9LG1lc3NhZ2U6e319LGRlZmF1bHRTdHlsZTp7Zm9udFNpemU6MTB9fTthLm1lc3NhZ2VUb3AmJmQuY29udGVudC51bnNoaWZ0KHt0ZXh0OmEubWVzc2FnZVRvcCxzdHlsZToibWVzc2FnZSIsbWFyZ2luOlswLDAsMCwxMl19KTthLm1lc3NhZ2VCb3R0b20mJmQuY29udGVudC5wdXNoKHt0ZXh0OmEubWVzc2FnZUJvdHRvbSxzdHlsZToibWVzc2FnZSIsbWFyZ2luOlswLDAsMCwxMl19KTthLnRpdGxlJiZkLmNvbnRlbnQudW5zaGlmdCh7dGV4dDphLnRpdGxlLApzdHlsZToidGl0bGUiLG1hcmdpbjpbMCwwLDAsMTJdfSk7Yy5jdXN0b21pemUmJmMuY3VzdG9taXplKGQsYyxiKTtiPSh0fHxnLnBkZk1ha2UpLmNyZWF0ZVBkZihkKTsib3BlbiIhPT1jLmRvd25sb2FkfHxKKCk/Yi5kb3dubG9hZChhLmZpbGVuYW1lKTpiLm9wZW4oKTt0aGlzLnByb2Nlc3NpbmcoITEpfSx0aXRsZToiKiIsZmlsZW5hbWU6IioiLGV4dGVuc2lvbjoiLnBkZiIsZXhwb3J0T3B0aW9uczp7fSxvcmllbnRhdGlvbjoicG9ydHJhaXQiLHBhZ2VTaXplOiJBNCIsaGVhZGVyOiEwLGZvb3RlcjohMSxtZXNzYWdlVG9wOiIqIixtZXNzYWdlQm90dG9tOiIqIixjdXN0b21pemU6bnVsbCxkb3dubG9hZDoiZG93bmxvYWQifTtyZXR1cm4gdi5CdXR0b25zfSk7Cg=="></script>
<script src="data:application/x-javascript;base64,LyohCiBDb2x1bW4gdmlzaWJpbGl0eSBidXR0b25zIGZvciBCdXR0b25zIGFuZCBEYXRhVGFibGVzLgogMjAxNiBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQoqLwooZnVuY3Rpb24oZil7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5IiwiZGF0YXRhYmxlcy5uZXQiLCJkYXRhdGFibGVzLm5ldC1idXR0b25zIl0sZnVuY3Rpb24oYyl7cmV0dXJuIGYoYyx3aW5kb3csZG9jdW1lbnQpfSk6Im9iamVjdCI9PT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihjLGUpe2N8fChjPXdpbmRvdyk7ZSYmZS5mbi5kYXRhVGFibGV8fChlPXJlcXVpcmUoImRhdGF0YWJsZXMubmV0IikoYyxlKS4kKTtlLmZuLmRhdGFUYWJsZS5CdXR0b25zfHxyZXF1aXJlKCJkYXRhdGFibGVzLm5ldC1idXR0b25zIikoYyxlKTtyZXR1cm4gZihlLGMsYy5kb2N1bWVudCl9OmYoalF1ZXJ5LHdpbmRvdyxkb2N1bWVudCl9KShmdW5jdGlvbihmLGMsZSxoKXtjPWYuZm4uZGF0YVRhYmxlO2YuZXh0ZW5kKGMuZXh0LmJ1dHRvbnMse2NvbHZpczpmdW5jdGlvbihhLGIpe3JldHVybntleHRlbmQ6ImNvbGxlY3Rpb24iLAp0ZXh0OmZ1bmN0aW9uKGIpe3JldHVybiBiLmkxOG4oImJ1dHRvbnMuY29sdmlzIiwiQ29sdW1uIHZpc2liaWxpdHkiKX0sY2xhc3NOYW1lOiJidXR0b25zLWNvbHZpcyIsYnV0dG9uczpbe2V4dGVuZDoiY29sdW1uc1RvZ2dsZSIsY29sdW1uczpiLmNvbHVtbnMsY29sdW1uVGV4dDpiLmNvbHVtblRleHR9XX19LGNvbHVtbnNUb2dnbGU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5jb2x1bW5zKGIuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihhKXtyZXR1cm57ZXh0ZW5kOiJjb2x1bW5Ub2dnbGUiLGNvbHVtbnM6YSxjb2x1bW5UZXh0OmIuY29sdW1uVGV4dH19KS50b0FycmF5KCl9LGNvbHVtblRvZ2dsZTpmdW5jdGlvbihhLGIpe3JldHVybntleHRlbmQ6ImNvbHVtblZpc2liaWxpdHkiLGNvbHVtbnM6Yi5jb2x1bW5zLGNvbHVtblRleHQ6Yi5jb2x1bW5UZXh0fX0sY29sdW1uc1Zpc2liaWxpdHk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5jb2x1bW5zKGIuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihhKXtyZXR1cm57ZXh0ZW5kOiJjb2x1bW5WaXNpYmlsaXR5IiwKY29sdW1uczphLHZpc2liaWxpdHk6Yi52aXNpYmlsaXR5LGNvbHVtblRleHQ6Yi5jb2x1bW5UZXh0fX0pLnRvQXJyYXkoKX0sY29sdW1uVmlzaWJpbGl0eTp7Y29sdW1uczpoLHRleHQ6ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBkLl9jb2x1bW5UZXh0KGEsZCl9LGNsYXNzTmFtZToiYnV0dG9ucy1jb2x1bW5WaXNpYmlsaXR5IixhY3Rpb246ZnVuY3Rpb24oYSxiLGQsZyl7YT1iLmNvbHVtbnMoZy5jb2x1bW5zKTtiPWEudmlzaWJsZSgpO2EudmlzaWJsZShnLnZpc2liaWxpdHkhPT1oP2cudmlzaWJpbGl0eTohKGIubGVuZ3RoJiZiWzBdKSl9LGluaXQ6ZnVuY3Rpb24oYSxiLGQpe3ZhciBnPXRoaXM7Yi5hdHRyKCJkYXRhLWN2LWlkeCIsZC5jb2x1bW5zKTthLm9uKCJjb2x1bW4tdmlzaWJpbGl0eS5kdCIrZC5uYW1lc3BhY2UsZnVuY3Rpb24oYixjKXtjLmJEZXN0cm95aW5nfHxjLm5UYWJsZSE9YS5zZXR0aW5ncygpWzBdLm5UYWJsZXx8Zy5hY3RpdmUoYS5jb2x1bW4oZC5jb2x1bW5zKS52aXNpYmxlKCkpfSkub24oImNvbHVtbi1yZW9yZGVyLmR0IisKZC5uYW1lc3BhY2UsZnVuY3Rpb24oYyxlLGYpezE9PT1hLmNvbHVtbnMoZC5jb2x1bW5zKS5jb3VudCgpJiYoYi50ZXh0KGQuX2NvbHVtblRleHQoYSxkKSksZy5hY3RpdmUoYS5jb2x1bW4oZC5jb2x1bW5zKS52aXNpYmxlKCkpKX0pO3RoaXMuYWN0aXZlKGEuY29sdW1uKGQuY29sdW1ucykudmlzaWJsZSgpKX0sZGVzdHJveTpmdW5jdGlvbihhLGIsZCl7YS5vZmYoImNvbHVtbi12aXNpYmlsaXR5LmR0IitkLm5hbWVzcGFjZSkub2ZmKCJjb2x1bW4tcmVvcmRlci5kdCIrZC5uYW1lc3BhY2UpfSxfY29sdW1uVGV4dDpmdW5jdGlvbihhLGIpe3ZhciBkPWEuY29sdW1uKGIuY29sdW1ucykuaW5kZXgoKSxjPWEuc2V0dGluZ3MoKVswXS5hb0NvbHVtbnNbZF0uc1RpdGxlLnJlcGxhY2UoL1xuL2csIiAiKS5yZXBsYWNlKC88YnJccypcLz8+L2dpLCIgIikucmVwbGFjZSgvPHNlbGVjdCguKj8pPFwvc2VsZWN0Pi9nLCIiKS5yZXBsYWNlKC88IVwtXC0uKj9cLVwtPi9nLCIiKS5yZXBsYWNlKC88Lio/Pi9nLAoiIikucmVwbGFjZSgvXlxzK3xccyskL2csIiIpO3JldHVybiBiLmNvbHVtblRleHQ/Yi5jb2x1bW5UZXh0KGEsZCxjKTpjfX0sY29sdmlzUmVzdG9yZTp7Y2xhc3NOYW1lOiJidXR0b25zLWNvbHZpc1Jlc3RvcmUiLHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5jb2x2aXNSZXN0b3JlIiwiUmVzdG9yZSB2aXNpYmlsaXR5Iil9LGluaXQ6ZnVuY3Rpb24oYSxiLGQpe2QuX3Zpc09yaWdpbmFsPWEuY29sdW1ucygpLmluZGV4ZXMoKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGEuY29sdW1uKGIpLnZpc2libGUoKX0pLnRvQXJyYXkoKX0sYWN0aW9uOmZ1bmN0aW9uKGEsYixkLGMpe2IuY29sdW1ucygpLmV2ZXJ5KGZ1bmN0aW9uKGEpe2E9Yi5jb2xSZW9yZGVyJiZiLmNvbFJlb3JkZXIudHJhbnNwb3NlP2IuY29sUmVvcmRlci50cmFuc3Bvc2UoYSwidG9PcmlnaW5hbCIpOmE7dGhpcy52aXNpYmxlKGMuX3Zpc09yaWdpbmFsW2FdKX0pfX0sY29sdmlzR3JvdXA6e2NsYXNzTmFtZToiYnV0dG9ucy1jb2x2aXNHcm91cCIsCmFjdGlvbjpmdW5jdGlvbihhLGIsZCxjKXtiLmNvbHVtbnMoYy5zaG93KS52aXNpYmxlKCEwLCExKTtiLmNvbHVtbnMoYy5oaWRlKS52aXNpYmxlKCExLCExKTtiLmNvbHVtbnMuYWRqdXN0KCl9LHNob3c6W10saGlkZTpbXX19KTtyZXR1cm4gYy5CdXR0b25zfSk7Cg=="></script>
<script src="data:application/x-javascript;base64,LyohCiBQcmludCBidXR0b24gZm9yIEJ1dHRvbnMgYW5kIERhdGFUYWJsZXMuCiAyMDE2IFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiovCihmdW5jdGlvbihjKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiLCJkYXRhdGFibGVzLm5ldCIsImRhdGF0YWJsZXMubmV0LWJ1dHRvbnMiXSxmdW5jdGlvbihlKXtyZXR1cm4gYyhlLHdpbmRvdyxkb2N1bWVudCl9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGUsYSl7ZXx8KGU9d2luZG93KTthJiZhLmZuLmRhdGFUYWJsZXx8KGE9cmVxdWlyZSgiZGF0YXRhYmxlcy5uZXQiKShlLGEpLiQpO2EuZm4uZGF0YVRhYmxlLkJ1dHRvbnN8fHJlcXVpcmUoImRhdGF0YWJsZXMubmV0LWJ1dHRvbnMiKShlLGEpO3JldHVybiBjKGEsZSxlLmRvY3VtZW50KX06YyhqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGMsZSxhLHEpe3ZhciBrPWMuZm4uZGF0YVRhYmxlLGQ9YS5jcmVhdGVFbGVtZW50KCJhIikscD1mdW5jdGlvbihiKXtkLmhyZWY9YjtiPWQuaG9zdDstMT09PWIuaW5kZXhPZigiLyIpJiYKMCE9PWQucGF0aG5hbWUuaW5kZXhPZigiLyIpJiYoYis9Ii8iKTtyZXR1cm4gZC5wcm90b2NvbCsiLy8iK2IrZC5wYXRobmFtZStkLnNlYXJjaH07ay5leHQuYnV0dG9ucy5wcmludD17Y2xhc3NOYW1lOiJidXR0b25zLXByaW50Iix0ZXh0OmZ1bmN0aW9uKGIpe3JldHVybiBiLmkxOG4oImJ1dHRvbnMucHJpbnQiLCJQcmludCIpfSxhY3Rpb246ZnVuY3Rpb24oYixhLGQsZyl7Yj1hLmJ1dHRvbnMuZXhwb3J0RGF0YShjLmV4dGVuZCh7ZGVjb2RlRW50aXRpZXM6ITF9LGcuZXhwb3J0T3B0aW9ucykpO2Q9YS5idXR0b25zLmV4cG9ydEluZm8oZyk7dmFyIGs9YS5jb2x1bW5zKGcuZXhwb3J0T3B0aW9ucy5jb2x1bW5zKS5mbGF0dGVuKCkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBhLnNldHRpbmdzKClbMF0uYW9Db2x1bW5zW2EuY29sdW1uKGIpLmluZGV4KCldLnNDbGFzc30pLnRvQXJyYXkoKSxtPWZ1bmN0aW9uKGIsYSl7Zm9yKHZhciBkPSI8dHI+IixjPTAsZT1iLmxlbmd0aDtjPGU7YysrKWQrPQoiPCIrYSsiICIrKGtbY10/J2NsYXNzPSInK2tbY10rJyInOiIiKSsiPiIrKG51bGw9PT1iW2NdfHxiW2NdPT09cT8iIjpiW2NdKSsiPC8iK2ErIj4iO3JldHVybiBkKyI8L3RyPiJ9LGg9Jzx0YWJsZSBjbGFzcz0iJythLnRhYmxlKCkubm9kZSgpLmNsYXNzTmFtZSsnIj4nO2cuaGVhZGVyJiYoaCs9Ijx0aGVhZD4iK20oYi5oZWFkZXIsInRoIikrIjwvdGhlYWQ+Iik7aCs9Ijx0Ym9keT4iO2Zvcih2YXIgbj0wLHI9Yi5ib2R5Lmxlbmd0aDtuPHI7bisrKWgrPW0oYi5ib2R5W25dLCJ0ZCIpO2grPSI8L3Rib2R5PiI7Zy5mb290ZXImJmIuZm9vdGVyJiYoaCs9Ijx0Zm9vdD4iK20oYi5mb290ZXIsInRoIikrIjwvdGZvb3Q+Iik7aCs9IjwvdGFibGU+Ijt2YXIgZj1lLm9wZW4oIiIsIiIpO2YuZG9jdW1lbnQuY2xvc2UoKTt2YXIgbD0iPHRpdGxlPiIrZC50aXRsZSsiPC90aXRsZT4iO2MoInN0eWxlLCBsaW5rIikuZWFjaChmdW5jdGlvbigpe3ZhciBiPWwsYT1jKHRoaXMpLmNsb25lKClbMF07CiJsaW5rIj09PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmKGEuaHJlZj1wKGEuaHJlZikpO2w9YithLm91dGVySFRNTH0pO3RyeXtmLmRvY3VtZW50LmhlYWQuaW5uZXJIVE1MPWx9Y2F0Y2godCl7YyhmLmRvY3VtZW50LmhlYWQpLmh0bWwobCl9Zi5kb2N1bWVudC5ib2R5LmlubmVySFRNTD0iPGgxPiIrZC50aXRsZSsiPC9oMT48ZGl2PiIrKGQubWVzc2FnZVRvcHx8IiIpKyI8L2Rpdj4iK2grIjxkaXY+IisoZC5tZXNzYWdlQm90dG9tfHwiIikrIjwvZGl2PiI7YyhmLmRvY3VtZW50LmJvZHkpLmFkZENsYXNzKCJkdC1wcmludC12aWV3Iik7YygiaW1nIixmLmRvY3VtZW50LmJvZHkpLmVhY2goZnVuY3Rpb24oYixhKXthLnNldEF0dHJpYnV0ZSgic3JjIixwKGEuZ2V0QXR0cmlidXRlKCJzcmMiKSkpfSk7Zy5jdXN0b21pemUmJmcuY3VzdG9taXplKGYsZyxhKTtiPWZ1bmN0aW9uKCl7Zy5hdXRvUHJpbnQmJihmLnByaW50KCksZi5jbG9zZSgpKX07bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvVHJpZGVudFwvXGQuXGQvKT8KYigpOmYuc2V0VGltZW91dChiLDFFMyl9LHRpdGxlOiIqIixtZXNzYWdlVG9wOiIqIixtZXNzYWdlQm90dG9tOiIqIixleHBvcnRPcHRpb25zOnt9LGhlYWRlcjohMCxmb290ZXI6ITEsYXV0b1ByaW50OiEwLGN1c3RvbWl6ZTpudWxsfTtyZXR1cm4gay5CdXR0b25zfSk7Cg=="></script>
<link href="data:text/css;charset=utf-8,table%2EDTFC%5FCloned%20thead%2Ctable%2EDTFC%5FCloned%20tfoot%7Bbackground%2Dcolor%3Awhite%7Ddiv%2EDTFC%5FBlocker%7Bbackground%2Dcolor%3Awhite%7Ddiv%2EDTFC%5FLeftWrapper%20table%2EdataTable%2Cdiv%2EDTFC%5FRightWrapper%20table%2EdataTable%7Bmargin%2Dbottom%3A0%3Bz%2Dindex%3A2%7Ddiv%2EDTFC%5FLeftWrapper%20table%2EdataTable%2Eno%2Dfooter%2Cdiv%2EDTFC%5FRightWrapper%20table%2EdataTable%2Eno%2Dfooter%7Bborder%2Dbottom%3Anone%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,LyohCiAgIENvcHlyaWdodCAyMDEwLTIwMTggU3ByeU1lZGlhIEx0ZC4KCiBUaGlzIHNvdXJjZSBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2U6CiAgIE1JVCBsaWNlbnNlIC0gaHR0cDovL2RhdGF0YWJsZXMubmV0L2xpY2Vuc2UvbWl0CgogVGhpcyBzb3VyY2UgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZCiBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBsaWNlbnNlIGZpbGVzIGZvciBkZXRhaWxzLgoKIEZvciBkZXRhaWxzIHBsZWFzZSByZWZlciB0bzogaHR0cDovL3d3dy5kYXRhdGFibGVzLm5ldAogRml4ZWRDb2x1bW5zIDMuMy4wCiDCqTIwMTAtMjAxOCBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQoqLwp2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuZmluZEludGVybmFsPWZ1bmN0aW9uKGMsZyxlKXtjIGluc3RhbmNlb2YgU3RyaW5nJiYoYz1TdHJpbmcoYykpO2Zvcih2YXIgcT1jLmxlbmd0aCxsPTA7bDxxO2wrKyl7dmFyIHU9Y1tsXTtpZihnLmNhbGwoZSx1LGwsYykpcmV0dXJue2k6bCx2OnV9fXJldHVybntpOi0xLHY6dm9pZCAwfX07JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7CiRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGMsZyxlKXtjIT1BcnJheS5wcm90b3R5cGUmJmMhPU9iamVjdC5wcm90b3R5cGUmJihjW2ddPWUudmFsdWUpfTskanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihjKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93PT09Yz9jOiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsJiZudWxsIT1nbG9iYWw/Z2xvYmFsOmN9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOwokanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGMsZyxlLHEpe2lmKGcpe2U9JGpzY29tcC5nbG9iYWw7Yz1jLnNwbGl0KCIuIik7Zm9yKHE9MDtxPGMubGVuZ3RoLTE7cSsrKXt2YXIgbD1jW3FdO2wgaW4gZXx8KGVbbF09e30pO2U9ZVtsXX1jPWNbYy5sZW5ndGgtMV07cT1lW2NdO2c9ZyhxKTtnIT1xJiZudWxsIT1nJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGUsYyx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KX19OyRqc2NvbXAucG9seWZpbGwoIkFycmF5LnByb3RvdHlwZS5maW5kIixmdW5jdGlvbihjKXtyZXR1cm4gYz9jOmZ1bmN0aW9uKGMsZSl7cmV0dXJuICRqc2NvbXAuZmluZEludGVybmFsKHRoaXMsYyxlKS52fX0sImVzNiIsImVzMyIpOwooZnVuY3Rpb24oYyl7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5IiwiZGF0YXRhYmxlcy5uZXQiXSxmdW5jdGlvbihnKXtyZXR1cm4gYyhnLHdpbmRvdyxkb2N1bWVudCl9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGcsZSl7Z3x8KGc9d2luZG93KTtlJiZlLmZuLmRhdGFUYWJsZXx8KGU9cmVxdWlyZSgiZGF0YXRhYmxlcy5uZXQiKShnLGUpLiQpO3JldHVybiBjKGUsZyxnLmRvY3VtZW50KX06YyhqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGMsZyxlLHEpe3ZhciBsPWMuZm4uZGF0YVRhYmxlLHUscD1mdW5jdGlvbihhLGIpe3ZhciBkPXRoaXM7aWYodGhpcyBpbnN0YW5jZW9mIHApe2lmKGI9PT1xfHwhMD09PWIpYj17fTt2YXIgaD1jLmZuLmRhdGFUYWJsZS5jYW1lbFRvSHVuZ2FyaWFuO2gmJihoKHAuZGVmYXVsdHMscC5kZWZhdWx0cywhMCksaChwLmRlZmF1bHRzLApiKSk7YT0obmV3IGMuZm4uZGF0YVRhYmxlLkFwaShhKSkuc2V0dGluZ3MoKVswXTt0aGlzLnM9e2R0OmEsaVRhYmxlQ29sdW1uczphLmFvQ29sdW1ucy5sZW5ndGgsYWlPdXRlcldpZHRoczpbXSxhaUlubmVyV2lkdGhzOltdLHJ0bDoicnRsIj09PWMoYS5uVGFibGUpLmNzcygiZGlyZWN0aW9uIil9O3RoaXMuZG9tPXtzY3JvbGxlcjpudWxsLGhlYWRlcjpudWxsLGJvZHk6bnVsbCxmb290ZXI6bnVsbCxncmlkOnt3cmFwcGVyOm51bGwsZHQ6bnVsbCxsZWZ0Ont3cmFwcGVyOm51bGwsaGVhZDpudWxsLGJvZHk6bnVsbCxmb290Om51bGx9LHJpZ2h0Ont3cmFwcGVyOm51bGwsaGVhZDpudWxsLGJvZHk6bnVsbCxmb290Om51bGx9fSxjbG9uZTp7bGVmdDp7aGVhZGVyOm51bGwsYm9keTpudWxsLGZvb3RlcjpudWxsfSxyaWdodDp7aGVhZGVyOm51bGwsYm9keTpudWxsLGZvb3RlcjpudWxsfX19O2lmKGEuX29GaXhlZENvbHVtbnMpdGhyb3ciRml4ZWRDb2x1bW5zIGFscmVhZHkgaW5pdGlhbGlzZWQgb24gdGhpcyB0YWJsZSI7CmEuX29GaXhlZENvbHVtbnM9dGhpczthLl9iSW5pdENvbXBsZXRlP3RoaXMuX2ZuQ29uc3RydWN0KGIpOmEub0FwaS5fZm5DYWxsYmFja1JlZyhhLCJhb0luaXRDb21wbGV0ZSIsZnVuY3Rpb24oKXtkLl9mbkNvbnN0cnVjdChiKX0sIkZpeGVkQ29sdW1ucyIpfWVsc2UgYWxlcnQoIkZpeGVkQ29sdW1ucyB3YXJuaW5nOiBGaXhlZENvbHVtbnMgbXVzdCBiZSBpbml0aWFsaXNlZCB3aXRoIHRoZSAnbmV3JyBrZXl3b3JkLiIpfTtjLmV4dGVuZChwLnByb3RvdHlwZSx7Zm5VcGRhdGU6ZnVuY3Rpb24oKXt0aGlzLl9mbkRyYXcoITApfSxmblJlZHJhd0xheW91dDpmdW5jdGlvbigpe3RoaXMuX2ZuQ29sQ2FsYygpO3RoaXMuX2ZuR3JpZExheW91dCgpO3RoaXMuZm5VcGRhdGUoKX0sZm5SZWNhbGN1bGF0ZUhlaWdodDpmdW5jdGlvbihhKXtkZWxldGUgYS5fRFRUQ19pSGVpZ2h0O2Euc3R5bGUuaGVpZ2h0PSJhdXRvIn0sZm5TZXRSb3dIZWlnaHQ6ZnVuY3Rpb24oYSxiKXthLnN0eWxlLmhlaWdodD0KYisicHgifSxmbkdldFBvc2l0aW9uOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucy5kdC5vSW5zdGFuY2U7aWYoYyhhKS5wYXJlbnRzKCIuRFRGQ19DbG9uZWQiKS5sZW5ndGgpe2lmKCJ0ciI9PT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuIGE9YyhhKS5pbmRleCgpLGIuZm5HZXRQb3NpdGlvbihjKCJ0ciIsdGhpcy5zLmR0Lm5UQm9keSlbYV0pO3ZhciBkPWMoYSkuaW5kZXgoKTthPWMoYS5wYXJlbnROb2RlKS5pbmRleCgpO3JldHVybltiLmZuR2V0UG9zaXRpb24oYygidHIiLHRoaXMucy5kdC5uVEJvZHkpW2FdKSxkLGIub0FwaS5fZm5WaXNpYmxlVG9Db2x1bW5JbmRleCh0aGlzLnMuZHQsZCldfXJldHVybiBiLmZuR2V0UG9zaXRpb24oYSl9LGZuVG9GaXhlZE5vZGU6ZnVuY3Rpb24oYSxiKXt2YXIgZDtiPHRoaXMucy5pTGVmdENvbHVtbnM/ZD1jKHRoaXMuZG9tLmNsb25lLmxlZnQuYm9keSkuZmluZCgiW2RhdGEtZHQtcm93PSIrYSsiXVtkYXRhLWR0LWNvbHVtbj0iKwpiKyJdIik6Yj49dGhpcy5zLmlSaWdodENvbHVtbnMmJihkPWModGhpcy5kb20uY2xvbmUucmlnaHQuYm9keSkuZmluZCgiW2RhdGEtZHQtcm93PSIrYSsiXVtkYXRhLWR0LWNvbHVtbj0iK2IrIl0iKSk7cmV0dXJuIGQmJmQubGVuZ3RoP2RbMF06KG5ldyBjLmZuLmRhdGFUYWJsZS5BcGkodGhpcy5zLmR0KSkuY2VsbChhLGIpLm5vZGUoKX0sX2ZuQ29uc3RydWN0OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXMucy5kdC5vSW5zdGFuY2UuZm5WZXJzaW9uQ2hlY2t8fCEwIT09dGhpcy5zLmR0Lm9JbnN0YW5jZS5mblZlcnNpb25DaGVjaygiMS44LjAiKSlhbGVydCgiRml4ZWRDb2x1bW5zICIrcC5WRVJTSU9OKyIgcmVxdWlyZWQgRGF0YVRhYmxlcyAxLjguMCBvciBsYXRlci4gUGxlYXNlIHVwZ3JhZGUgeW91ciBEYXRhVGFibGVzIGluc3RhbGxhdGlvbiIpO2Vsc2UgaWYoIiI9PT10aGlzLnMuZHQub1Njcm9sbC5zWCl0aGlzLnMuZHQub0luc3RhbmNlLm9BcGkuX2ZuTG9nKHRoaXMucy5kdCwKMSwiRml4ZWRDb2x1bW5zIGlzIG5vdCBuZWVkZWQgKG5vIHgtc2Nyb2xsaW5nIGluIERhdGFUYWJsZXMgZW5hYmxlZCksIHNvIG5vIGFjdGlvbiB3aWxsIGJlIHRha2VuLiBVc2UgJ0ZpeGVkSGVhZGVyJyBmb3IgY29sdW1uIGZpeGluZyB3aGVuIHNjcm9sbGluZyBpcyBub3QgZW5hYmxlZCIpO2Vsc2V7dGhpcy5zPWMuZXh0ZW5kKCEwLHRoaXMucyxwLmRlZmF1bHRzLGEpO2E9dGhpcy5zLmR0Lm9DbGFzc2VzO3RoaXMuZG9tLmdyaWQuZHQ9Yyh0aGlzLnMuZHQublRhYmxlKS5wYXJlbnRzKCJkaXYuIithLnNTY3JvbGxXcmFwcGVyKVswXTt0aGlzLmRvbS5zY3JvbGxlcj1jKCJkaXYuIithLnNTY3JvbGxCb2R5LHRoaXMuZG9tLmdyaWQuZHQpWzBdO3RoaXMuX2ZuQ29sQ2FsYygpO3RoaXMuX2ZuR3JpZFNldHVwKCk7dmFyIGQsaD0hMTtjKHRoaXMucy5kdC5uVGFibGVXcmFwcGVyKS5vbigibW91c2Vkb3duLkRURkMiLGZ1bmN0aW9uKGEpezA9PT1hLmJ1dHRvbiYmKGg9ITAsYyhlKS5vbmUoIm1vdXNldXAiLApmdW5jdGlvbigpe2g9ITF9KSl9KTtjKHRoaXMuZG9tLnNjcm9sbGVyKS5vbigibW91c2VvdmVyLkRURkMgdG91Y2hzdGFydC5EVEZDIixmdW5jdGlvbigpe2h8fChkPSJtYWluIil9KS5vbigic2Nyb2xsLkRURkMiLGZ1bmN0aW9uKGEpeyFkJiZhLm9yaWdpbmFsRXZlbnQmJihkPSJtYWluIik7Im1haW4iPT09ZCYmKDA8Yi5zLmlMZWZ0Q29sdW1ucyYmKGIuZG9tLmdyaWQubGVmdC5saW5lci5zY3JvbGxUb3A9Yi5kb20uc2Nyb2xsZXIuc2Nyb2xsVG9wKSwwPGIucy5pUmlnaHRDb2x1bW5zJiYoYi5kb20uZ3JpZC5yaWdodC5saW5lci5zY3JvbGxUb3A9Yi5kb20uc2Nyb2xsZXIuc2Nyb2xsVG9wKSl9KTt2YXIgZj0ib253aGVlbCJpbiBlLmNyZWF0ZUVsZW1lbnQoImRpdiIpPyJ3aGVlbC5EVEZDIjoibW91c2V3aGVlbC5EVEZDIjtpZigwPGIucy5pTGVmdENvbHVtbnMpYyhiLmRvbS5ncmlkLmxlZnQubGluZXIpLm9uKCJtb3VzZW92ZXIuRFRGQyB0b3VjaHN0YXJ0LkRURkMiLGZ1bmN0aW9uKCl7aHx8CihkPSJsZWZ0Iil9KS5vbigic2Nyb2xsLkRURkMiLGZ1bmN0aW9uKGEpeyFkJiZhLm9yaWdpbmFsRXZlbnQmJihkPSJsZWZ0Iik7ImxlZnQiPT09ZCYmKGIuZG9tLnNjcm9sbGVyLnNjcm9sbFRvcD1iLmRvbS5ncmlkLmxlZnQubGluZXIuc2Nyb2xsVG9wLDA8Yi5zLmlSaWdodENvbHVtbnMmJihiLmRvbS5ncmlkLnJpZ2h0LmxpbmVyLnNjcm9sbFRvcD1iLmRvbS5ncmlkLmxlZnQubGluZXIuc2Nyb2xsVG9wKSl9KS5vbihmLGZ1bmN0aW9uKGEpe2IuZG9tLnNjcm9sbGVyLnNjcm9sbExlZnQtPSJ3aGVlbCI9PT1hLnR5cGU/LWEub3JpZ2luYWxFdmVudC5kZWx0YVg6YS5vcmlnaW5hbEV2ZW50LndoZWVsRGVsdGFYfSk7aWYoMDxiLnMuaVJpZ2h0Q29sdW1ucyljKGIuZG9tLmdyaWQucmlnaHQubGluZXIpLm9uKCJtb3VzZW92ZXIuRFRGQyB0b3VjaHN0YXJ0LkRURkMiLGZ1bmN0aW9uKCl7aHx8KGQ9InJpZ2h0Iil9KS5vbigic2Nyb2xsLkRURkMiLGZ1bmN0aW9uKGEpeyFkJiZhLm9yaWdpbmFsRXZlbnQmJgooZD0icmlnaHQiKTsicmlnaHQiPT09ZCYmKGIuZG9tLnNjcm9sbGVyLnNjcm9sbFRvcD1iLmRvbS5ncmlkLnJpZ2h0LmxpbmVyLnNjcm9sbFRvcCwwPGIucy5pTGVmdENvbHVtbnMmJihiLmRvbS5ncmlkLmxlZnQubGluZXIuc2Nyb2xsVG9wPWIuZG9tLmdyaWQucmlnaHQubGluZXIuc2Nyb2xsVG9wKSl9KS5vbihmLGZ1bmN0aW9uKGEpe2IuZG9tLnNjcm9sbGVyLnNjcm9sbExlZnQtPSJ3aGVlbCI9PT1hLnR5cGU/LWEub3JpZ2luYWxFdmVudC5kZWx0YVg6YS5vcmlnaW5hbEV2ZW50LndoZWVsRGVsdGFYfSk7YyhnKS5vbigicmVzaXplLkRURkMiLGZ1bmN0aW9uKCl7Yi5fZm5HcmlkTGF5b3V0LmNhbGwoYil9KTt2YXIgbT0hMCxrPWModGhpcy5zLmR0Lm5UYWJsZSk7ay5vbigiZHJhdy5kdC5EVEZDIixmdW5jdGlvbigpe2IuX2ZuQ29sQ2FsYygpO2IuX2ZuRHJhdy5jYWxsKGIsbSk7bT0hMX0pLm9uKCJjb2x1bW4tc2l6aW5nLmR0LkRURkMiLGZ1bmN0aW9uKCl7Yi5fZm5Db2xDYWxjKCk7CmIuX2ZuR3JpZExheW91dChiKX0pLm9uKCJjb2x1bW4tdmlzaWJpbGl0eS5kdC5EVEZDIixmdW5jdGlvbihhLGMsZCxmLGgpe2lmKGg9PT1xfHxoKWIuX2ZuQ29sQ2FsYygpLGIuX2ZuR3JpZExheW91dChiKSxiLl9mbkRyYXcoITApfSkub24oInNlbGVjdC5kdC5EVEZDIGRlc2VsZWN0LmR0LkRURkMiLGZ1bmN0aW9uKGEsYyxkLGYpeyJkdCI9PT1hLm5hbWVzcGFjZSYmYi5fZm5EcmF3KCExKX0pLm9uKCJkZXN0cm95LmR0LkRURkMiLGZ1bmN0aW9uKCl7ay5vZmYoIi5EVEZDIik7YyhiLmRvbS5zY3JvbGxlcikub2ZmKCIuRFRGQyIpO2MoZykub2ZmKCIuRFRGQyIpO2MoYi5zLmR0Lm5UYWJsZVdyYXBwZXIpLm9mZigiLkRURkMiKTtjKGIuZG9tLmdyaWQubGVmdC5saW5lcikub2ZmKCIuRFRGQyAiK2YpO2MoYi5kb20uZ3JpZC5sZWZ0LndyYXBwZXIpLnJlbW92ZSgpO2MoYi5kb20uZ3JpZC5yaWdodC5saW5lcikub2ZmKCIuRFRGQyAiK2YpO2MoYi5kb20uZ3JpZC5yaWdodC53cmFwcGVyKS5yZW1vdmUoKX0pOwp0aGlzLl9mbkdyaWRMYXlvdXQoKTt0aGlzLnMuZHQub0luc3RhbmNlLmZuRHJhdyghMSl9fSxfZm5Db2xDYWxjOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPTAsZD0wO3RoaXMucy5haUlubmVyV2lkdGhzPVtdO3RoaXMucy5haU91dGVyV2lkdGhzPVtdO2MuZWFjaCh0aGlzLnMuZHQuYW9Db2x1bW5zLGZ1bmN0aW9uKGgsZil7Zj1jKGYublRoKTtpZihmLmZpbHRlcigiOnZpc2libGUiKS5sZW5ndGgpe3ZhciBtPWYub3V0ZXJXaWR0aCgpO2lmKDA9PT1hLnMuYWlPdXRlcldpZHRocy5sZW5ndGgpe3ZhciBrPWMoYS5zLmR0Lm5UYWJsZSkuY3NzKCJib3JkZXItbGVmdC13aWR0aCIpO20rPSJzdHJpbmciPT09dHlwZW9mIGsmJi0xPT09ay5pbmRleE9mKCJweCIpPzE6cGFyc2VJbnQoaywxMCl9YS5zLmFpT3V0ZXJXaWR0aHMubGVuZ3RoPT09YS5zLmR0LmFvQ29sdW1ucy5sZW5ndGgtMSYmKGs9YyhhLnMuZHQublRhYmxlKS5jc3MoImJvcmRlci1yaWdodC13aWR0aCIpLG0rPSJzdHJpbmciPT09CnR5cGVvZiBrJiYtMT09PWsuaW5kZXhPZigicHgiKT8xOnBhcnNlSW50KGssMTApKTthLnMuYWlPdXRlcldpZHRocy5wdXNoKG0pO2Eucy5haUlubmVyV2lkdGhzLnB1c2goZi53aWR0aCgpKTtoPGEucy5pTGVmdENvbHVtbnMmJihiKz1tKTthLnMuaVRhYmxlQ29sdW1ucy1hLnMuaVJpZ2h0Q29sdW1uczw9aCYmKGQrPW0pfWVsc2UgYS5zLmFpSW5uZXJXaWR0aHMucHVzaCgwKSxhLnMuYWlPdXRlcldpZHRocy5wdXNoKDApfSk7dGhpcy5zLmlMZWZ0V2lkdGg9Yjt0aGlzLnMuaVJpZ2h0V2lkdGg9ZH0sX2ZuR3JpZFNldHVwOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5fZm5EVE92ZXJmbG93KCk7dGhpcy5kb20uYm9keT10aGlzLnMuZHQublRhYmxlO3RoaXMuZG9tLmhlYWRlcj10aGlzLnMuZHQublRIZWFkLnBhcmVudE5vZGU7dGhpcy5kb20uaGVhZGVyLnBhcmVudE5vZGUucGFyZW50Tm9kZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3ZhciBiPWMoJzxkaXYgY2xhc3M9IkRURkNfU2Nyb2xsV3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyBjbGVhcjpib3RoOyI+PGRpdiBjbGFzcz0iRFRGQ19MZWZ0V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyIgYXJpYS1oaWRkZW49InRydWUiPjxkaXYgY2xhc3M9IkRURkNfTGVmdEhlYWRXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7IG92ZXJmbG93OmhpZGRlbjsiPjwvZGl2PjxkaXYgY2xhc3M9IkRURkNfTGVmdEJvZHlXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7IGhlaWdodDowOyBvdmVyZmxvdzpoaWRkZW47Ij48ZGl2IGNsYXNzPSJEVEZDX0xlZnRCb2R5TGluZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IGxlZnQ6MDsgb3ZlcmZsb3cteTpzY3JvbGw7Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJEVEZDX0xlZnRGb290V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyBvdmVyZmxvdzpoaWRkZW47Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6MDsiIGFyaWEtaGlkZGVuPSJ0cnVlIj48ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0SGVhZFdyYXBwZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IGxlZnQ6MDsiPjxkaXYgY2xhc3M9IkRURkNfUmlnaHRIZWFkQmxvY2tlciBEVEZDX0Jsb2NrZXIiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGJvdHRvbTowOyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iRFRGQ19SaWdodEJvZHlXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7IGhlaWdodDowOyBvdmVyZmxvdzpoaWRkZW47Ij48ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0Qm9keUxpbmVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7IG92ZXJmbG93LXk6c2Nyb2xsOyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iRFRGQ19SaWdodEZvb3RXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7Ij48ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0Rm9vdEJsb2NrZXIgRFRGQ19CbG9ja2VyIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBib3R0b206MDsiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PicpWzBdLApkPWIuY2hpbGROb2Rlc1swXSxoPWIuY2hpbGROb2Rlc1sxXTt0aGlzLmRvbS5ncmlkLmR0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsdGhpcy5kb20uZ3JpZC5kdCk7Yi5hcHBlbmRDaGlsZCh0aGlzLmRvbS5ncmlkLmR0KTt0aGlzLmRvbS5ncmlkLndyYXBwZXI9YjswPHRoaXMucy5pTGVmdENvbHVtbnMmJih0aGlzLmRvbS5ncmlkLmxlZnQud3JhcHBlcj1kLHRoaXMuZG9tLmdyaWQubGVmdC5oZWFkPWQuY2hpbGROb2Rlc1swXSx0aGlzLmRvbS5ncmlkLmxlZnQuYm9keT1kLmNoaWxkTm9kZXNbMV0sdGhpcy5kb20uZ3JpZC5sZWZ0LmxpbmVyPWMoImRpdi5EVEZDX0xlZnRCb2R5TGluZXIiLGIpWzBdLGIuYXBwZW5kQ2hpbGQoZCkpO2lmKDA8dGhpcy5zLmlSaWdodENvbHVtbnMpe3RoaXMuZG9tLmdyaWQucmlnaHQud3JhcHBlcj1oO3RoaXMuZG9tLmdyaWQucmlnaHQuaGVhZD1oLmNoaWxkTm9kZXNbMF07dGhpcy5kb20uZ3JpZC5yaWdodC5ib2R5PWguY2hpbGROb2Rlc1sxXTsKdGhpcy5kb20uZ3JpZC5yaWdodC5saW5lcj1jKCJkaXYuRFRGQ19SaWdodEJvZHlMaW5lciIsYilbMF07aC5zdHlsZS5yaWdodD1hLmJhcisicHgiO3ZhciBmPWMoImRpdi5EVEZDX1JpZ2h0SGVhZEJsb2NrZXIiLGIpWzBdO2Yuc3R5bGUud2lkdGg9YS5iYXIrInB4IjtmLnN0eWxlLnJpZ2h0PS1hLmJhcisicHgiO3RoaXMuZG9tLmdyaWQucmlnaHQuaGVhZEJsb2NrPWY7Zj1jKCJkaXYuRFRGQ19SaWdodEZvb3RCbG9ja2VyIixiKVswXTtmLnN0eWxlLndpZHRoPWEuYmFyKyJweCI7Zi5zdHlsZS5yaWdodD0tYS5iYXIrInB4Ijt0aGlzLmRvbS5ncmlkLnJpZ2h0LmZvb3RCbG9jaz1mO2IuYXBwZW5kQ2hpbGQoaCl9dGhpcy5zLmR0Lm5URm9vdCYmKHRoaXMuZG9tLmZvb3Rlcj10aGlzLnMuZHQublRGb290LnBhcmVudE5vZGUsMDx0aGlzLnMuaUxlZnRDb2x1bW5zJiYodGhpcy5kb20uZ3JpZC5sZWZ0LmZvb3Q9ZC5jaGlsZE5vZGVzWzJdKSwwPHRoaXMucy5pUmlnaHRDb2x1bW5zJiYodGhpcy5kb20uZ3JpZC5yaWdodC5mb290PQpoLmNoaWxkTm9kZXNbMl0pKTt0aGlzLnMucnRsJiZjKCJkaXYuRFRGQ19SaWdodEhlYWRCbG9ja2VyIixiKS5jc3Moe2xlZnQ6LWEuYmFyKyJweCIscmlnaHQ6IiJ9KX0sX2ZuR3JpZExheW91dDpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj10aGlzLmRvbS5ncmlkO2MoYi53cmFwcGVyKS53aWR0aCgpO3ZhciBkPXRoaXMucy5kdC5uVGFibGUucGFyZW50Tm9kZS5vZmZzZXRIZWlnaHQsaD10aGlzLnMuZHQublRhYmxlLnBhcmVudE5vZGUucGFyZW50Tm9kZS5vZmZzZXRIZWlnaHQsZj10aGlzLl9mbkRUT3ZlcmZsb3coKSxtPXRoaXMucy5pTGVmdFdpZHRoLGs9dGhpcy5zLmlSaWdodFdpZHRoLHg9InJ0bCI9PT1jKHRoaXMuZG9tLmJvZHkpLmNzcygiZGlyZWN0aW9uIiksdz1mdW5jdGlvbihiLGQpe2YuYmFyP2EuX2ZpcmVmb3hTY3JvbGxFcnJvcigpPzM0PGMoYikuaGVpZ2h0KCkmJihiLnN0eWxlLndpZHRoPWQrZi5iYXIrInB4Iik6Yi5zdHlsZS53aWR0aD1kK2YuYmFyKyJweCI6KGIuc3R5bGUud2lkdGg9CmQrMjArInB4IixiLnN0eWxlLnBhZGRpbmdSaWdodD0iMjBweCIsYi5zdHlsZS5ib3hTaXppbmc9ImJvcmRlci1ib3giKX07Zi54JiYoZC09Zi5iYXIpO2Iud3JhcHBlci5zdHlsZS5oZWlnaHQ9aCsicHgiOzA8dGhpcy5zLmlMZWZ0Q29sdW1ucyYmKGg9Yi5sZWZ0LndyYXBwZXIsaC5zdHlsZS53aWR0aD1tKyJweCIsaC5zdHlsZS5oZWlnaHQ9IjFweCIseD8oaC5zdHlsZS5sZWZ0PSIiLGguc3R5bGUucmlnaHQ9MCk6KGguc3R5bGUubGVmdD0wLGguc3R5bGUucmlnaHQ9IiIpLGIubGVmdC5ib2R5LnN0eWxlLmhlaWdodD1kKyJweCIsYi5sZWZ0LmZvb3QmJihiLmxlZnQuZm9vdC5zdHlsZS50b3A9KGYueD9mLmJhcjowKSsicHgiKSx3KGIubGVmdC5saW5lcixtKSxiLmxlZnQubGluZXIuc3R5bGUuaGVpZ2h0PWQrInB4IixiLmxlZnQubGluZXIuc3R5bGUubWF4SGVpZ2h0PWQrInB4Iik7MDx0aGlzLnMuaVJpZ2h0Q29sdW1ucyYmKGg9Yi5yaWdodC53cmFwcGVyLGguc3R5bGUud2lkdGg9CmsrInB4IixoLnN0eWxlLmhlaWdodD0iMXB4Iix0aGlzLnMucnRsPyhoLnN0eWxlLmxlZnQ9Zi55P2YuYmFyKyJweCI6MCxoLnN0eWxlLnJpZ2h0PSIiKTooaC5zdHlsZS5sZWZ0PSIiLGguc3R5bGUucmlnaHQ9Zi55P2YuYmFyKyJweCI6MCksYi5yaWdodC5ib2R5LnN0eWxlLmhlaWdodD1kKyJweCIsYi5yaWdodC5mb290JiYoYi5yaWdodC5mb290LnN0eWxlLnRvcD0oZi54P2YuYmFyOjApKyJweCIpLHcoYi5yaWdodC5saW5lcixrKSxiLnJpZ2h0LmxpbmVyLnN0eWxlLmhlaWdodD1kKyJweCIsYi5yaWdodC5saW5lci5zdHlsZS5tYXhIZWlnaHQ9ZCsicHgiLGIucmlnaHQuaGVhZEJsb2NrLnN0eWxlLmRpc3BsYXk9Zi55PyJibG9jayI6Im5vbmUiLGIucmlnaHQuZm9vdEJsb2NrLnN0eWxlLmRpc3BsYXk9Zi55PyJibG9jayI6Im5vbmUiKX0sX2ZuRFRPdmVyZmxvdzpmdW5jdGlvbigpe3ZhciBhPXRoaXMucy5kdC5uVGFibGUsYj1hLnBhcmVudE5vZGUsYz17eDohMSx5OiExLGJhcjp0aGlzLnMuZHQub1Njcm9sbC5pQmFyV2lkdGh9OwphLm9mZnNldFdpZHRoPmIuY2xpZW50V2lkdGgmJihjLng9ITApO2Eub2Zmc2V0SGVpZ2h0PmIuY2xpZW50SGVpZ2h0JiYoYy55PSEwKTtyZXR1cm4gY30sX2ZuRHJhdzpmdW5jdGlvbihhKXt0aGlzLl9mbkdyaWRMYXlvdXQoKTt0aGlzLl9mbkNsb25lTGVmdChhKTt0aGlzLl9mbkNsb25lUmlnaHQoYSk7bnVsbCE9PXRoaXMucy5mbkRyYXdDYWxsYmFjayYmdGhpcy5zLmZuRHJhd0NhbGxiYWNrLmNhbGwodGhpcyx0aGlzLmRvbS5jbG9uZS5sZWZ0LHRoaXMuZG9tLmNsb25lLnJpZ2h0KTtjKHRoaXMpLnRyaWdnZXIoImRyYXcuZHRmYyIse2xlZnRDbG9uZTp0aGlzLmRvbS5jbG9uZS5sZWZ0LHJpZ2h0Q2xvbmU6dGhpcy5kb20uY2xvbmUucmlnaHR9KX0sX2ZuQ2xvbmVSaWdodDpmdW5jdGlvbihhKXtpZighKDA+PXRoaXMucy5pUmlnaHRDb2x1bW5zKSl7dmFyIGIsYz1bXTtmb3IoYj10aGlzLnMuaVRhYmxlQ29sdW1ucy10aGlzLnMuaVJpZ2h0Q29sdW1ucztiPHRoaXMucy5pVGFibGVDb2x1bW5zO2IrKyl0aGlzLnMuZHQuYW9Db2x1bW5zW2JdLmJWaXNpYmxlJiYKYy5wdXNoKGIpO3RoaXMuX2ZuQ2xvbmUodGhpcy5kb20uY2xvbmUucmlnaHQsdGhpcy5kb20uZ3JpZC5yaWdodCxjLGEpfX0sX2ZuQ2xvbmVMZWZ0OmZ1bmN0aW9uKGEpe2lmKCEoMD49dGhpcy5zLmlMZWZ0Q29sdW1ucykpe3ZhciBiLGM9W107Zm9yKGI9MDtiPHRoaXMucy5pTGVmdENvbHVtbnM7YisrKXRoaXMucy5kdC5hb0NvbHVtbnNbYl0uYlZpc2libGUmJmMucHVzaChiKTt0aGlzLl9mbkNsb25lKHRoaXMuZG9tLmNsb25lLmxlZnQsdGhpcy5kb20uZ3JpZC5sZWZ0LGMsYSl9fSxfZm5Db3B5TGF5b3V0OmZ1bmN0aW9uKGEsYixkKXtmb3IodmFyIGg9W10sZj1bXSxtPVtdLGs9MCx4PWEubGVuZ3RoO2s8eDtrKyspe3ZhciB3PVtdO3cublRyPWMoYVtrXS5uVHIpLmNsb25lKGQsITEpWzBdO2Zvcih2YXIgZT0wLG49dGhpcy5zLmlUYWJsZUNvbHVtbnM7ZTxuO2UrKylpZigtMSE9PWMuaW5BcnJheShlLGIpKXt2YXIgZz1jLmluQXJyYXkoYVtrXVtlXS5jZWxsLG0pOy0xPT09Zz8oZz0KYyhhW2tdW2VdLmNlbGwpLmNsb25lKGQsITEpWzBdLGYucHVzaChnKSxtLnB1c2goYVtrXVtlXS5jZWxsKSx3LnB1c2goe2NlbGw6Zyx1bmlxdWU6YVtrXVtlXS51bmlxdWV9KSk6dy5wdXNoKHtjZWxsOmZbZ10sdW5pcXVlOmFba11bZV0udW5pcXVlfSl9aC5wdXNoKHcpfXJldHVybiBofSxfZm5DbG9uZTpmdW5jdGlvbihhLGIsZCxoKXt2YXIgZj10aGlzLG0sayxlPXRoaXMucy5kdDtpZihoKXtjKGEuaGVhZGVyKS5yZW1vdmUoKTthLmhlYWRlcj1jKHRoaXMuZG9tLmhlYWRlcikuY2xvbmUoITAsITEpWzBdO2EuaGVhZGVyLmNsYXNzTmFtZSs9IiBEVEZDX0Nsb25lZCI7YS5oZWFkZXIuc3R5bGUud2lkdGg9IjEwMCUiO2IuaGVhZC5hcHBlbmRDaGlsZChhLmhlYWRlcik7dmFyIGc9dGhpcy5fZm5Db3B5TGF5b3V0KGUuYW9IZWFkZXIsZCwhMCk7dmFyIGw9YygiPnRoZWFkIixhLmhlYWRlcik7bC5lbXB0eSgpO3ZhciBuPTA7Zm9yKG09Zy5sZW5ndGg7bjxtO24rKylsWzBdLmFwcGVuZENoaWxkKGdbbl0ublRyKTsKZS5vQXBpLl9mbkRyYXdIZWFkKGUsZywhMCl9ZWxzZXtnPXRoaXMuX2ZuQ29weUxheW91dChlLmFvSGVhZGVyLGQsITEpO3ZhciBwPVtdO2Uub0FwaS5fZm5EZXRlY3RIZWFkZXIocCxjKCI+dGhlYWQiLGEuaGVhZGVyKVswXSk7bj0wO2ZvcihtPWcubGVuZ3RoO248bTtuKyspe3ZhciB0PTA7Zm9yKGw9Z1tuXS5sZW5ndGg7dDxsO3QrKylwW25dW3RdLmNlbGwuY2xhc3NOYW1lPWdbbl1bdF0uY2VsbC5jbGFzc05hbWUsYygic3Bhbi5EYXRhVGFibGVzX3NvcnRfaWNvbiIscFtuXVt0XS5jZWxsKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5jbGFzc05hbWU9Yygic3Bhbi5EYXRhVGFibGVzX3NvcnRfaWNvbiIsZ1tuXVt0XS5jZWxsKVswXS5jbGFzc05hbWV9KX19dGhpcy5fZm5FcXVhbGlzZUhlaWdodHMoInRoZWFkIix0aGlzLmRvbS5oZWFkZXIsYS5oZWFkZXIpOyJhdXRvIj09dGhpcy5zLnNIZWlnaHRNYXRjaCYmYygiPnRib2R5PnRyIixmLmRvbS5ib2R5KS5jc3MoImhlaWdodCIsImF1dG8iKTsKbnVsbCE9PWEuYm9keSYmKGMoYS5ib2R5KS5yZW1vdmUoKSxhLmJvZHk9bnVsbCk7YS5ib2R5PWModGhpcy5kb20uYm9keSkuY2xvbmUoITApWzBdO2EuYm9keS5jbGFzc05hbWUrPSIgRFRGQ19DbG9uZWQiO2EuYm9keS5zdHlsZS5wYWRkaW5nQm90dG9tPWUub1Njcm9sbC5pQmFyV2lkdGgrInB4IjthLmJvZHkuc3R5bGUubWFyZ2luQm90dG9tPTIqZS5vU2Nyb2xsLmlCYXJXaWR0aCsicHgiO251bGwhPT1hLmJvZHkuZ2V0QXR0cmlidXRlKCJpZCIpJiZhLmJvZHkucmVtb3ZlQXR0cmlidXRlKCJpZCIpO2MoIj50aGVhZD50ciIsYS5ib2R5KS5lbXB0eSgpO2MoIj50Zm9vdCIsYS5ib2R5KS5yZW1vdmUoKTt2YXIgdT1jKCJ0Ym9keSIsYS5ib2R5KVswXTtjKHUpLmVtcHR5KCk7aWYoMDxlLmFpRGlzcGxheS5sZW5ndGgpe209YygiPnRoZWFkPnRyIixhLmJvZHkpWzBdO2ZvcihrPTA7azxkLmxlbmd0aDtrKyspe3ZhciB2PWRba107dmFyIHI9YyhlLmFvQ29sdW1uc1t2XS5uVGgpLmNsb25lKCEwKVswXTsKci5pbm5lckhUTUw9IiI7bD1yLnN0eWxlO2wucGFkZGluZ1RvcD0iMCI7bC5wYWRkaW5nQm90dG9tPSIwIjtsLmJvcmRlclRvcFdpZHRoPSIwIjtsLmJvcmRlckJvdHRvbVdpZHRoPSIwIjtsLmhlaWdodD0wO2wud2lkdGg9Zi5zLmFpSW5uZXJXaWR0aHNbdl0rInB4IjttLmFwcGVuZENoaWxkKHIpfWMoIj50Ym9keT50ciIsZi5kb20uYm9keSkuZWFjaChmdW5jdGlvbihhKXthPSExPT09Zi5zLmR0Lm9GZWF0dXJlcy5iU2VydmVyU2lkZT9mLnMuZHQuYWlEaXNwbGF5W2Yucy5kdC5faURpc3BsYXlTdGFydCthXTphO3ZhciBiPWYucy5kdC5hb0RhdGFbYV0uYW5DZWxsc3x8Yyh0aGlzKS5jaGlsZHJlbigidGQsIHRoIiksZT10aGlzLmNsb25lTm9kZSghMSk7ZS5yZW1vdmVBdHRyaWJ1dGUoImlkIik7ZS5zZXRBdHRyaWJ1dGUoImRhdGEtZHQtcm93IixhKTtmb3Ioaz0wO2s8ZC5sZW5ndGg7aysrKXY9ZFtrXSwwPGIubGVuZ3RoJiYocj1jKGJbdl0pLmNsb25lKCEwLCEwKVswXSxyLnJlbW92ZUF0dHJpYnV0ZSgiaWQiKSwKci5zZXRBdHRyaWJ1dGUoImRhdGEtZHQtcm93IixhKSxyLnNldEF0dHJpYnV0ZSgiZGF0YS1kdC1jb2x1bW4iLHYpLGUuYXBwZW5kQ2hpbGQocikpO3UuYXBwZW5kQ2hpbGQoZSl9KX1lbHNlIGMoIj50Ym9keT50ciIsZi5kb20uYm9keSkuZWFjaChmdW5jdGlvbihhKXtyPXRoaXMuY2xvbmVOb2RlKCEwKTtyLmNsYXNzTmFtZSs9IiBEVEZDX05vRGF0YSI7YygidGQiLHIpLmh0bWwoIiIpO3UuYXBwZW5kQ2hpbGQocil9KTthLmJvZHkuc3R5bGUud2lkdGg9IjEwMCUiO2EuYm9keS5zdHlsZS5tYXJnaW49IjAiO2EuYm9keS5zdHlsZS5wYWRkaW5nPSIwIjtlLm9TY3JvbGxlciE9PXEmJihtPWUub1Njcm9sbGVyLmRvbS5mb3JjZSxiLmZvcmNlcj9iLmZvcmNlci5zdHlsZS5oZWlnaHQ9bS5zdHlsZS5oZWlnaHQ6KGIuZm9yY2VyPW0uY2xvbmVOb2RlKCEwKSxiLmxpbmVyLmFwcGVuZENoaWxkKGIuZm9yY2VyKSkpO2IubGluZXIuYXBwZW5kQ2hpbGQoYS5ib2R5KTt0aGlzLl9mbkVxdWFsaXNlSGVpZ2h0cygidGJvZHkiLApmLmRvbS5ib2R5LGEuYm9keSk7aWYobnVsbCE9PWUublRGb290KXtpZihoKXtudWxsIT09YS5mb290ZXImJmEuZm9vdGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYS5mb290ZXIpO2EuZm9vdGVyPWModGhpcy5kb20uZm9vdGVyKS5jbG9uZSghMCwhMClbMF07YS5mb290ZXIuY2xhc3NOYW1lKz0iIERURkNfQ2xvbmVkIjthLmZvb3Rlci5zdHlsZS53aWR0aD0iMTAwJSI7Yi5mb290LmFwcGVuZENoaWxkKGEuZm9vdGVyKTtnPXRoaXMuX2ZuQ29weUxheW91dChlLmFvRm9vdGVyLGQsITApO2I9YygiPnRmb290IixhLmZvb3Rlcik7Yi5lbXB0eSgpO249MDtmb3IobT1nLmxlbmd0aDtuPG07bisrKWJbMF0uYXBwZW5kQ2hpbGQoZ1tuXS5uVHIpO2Uub0FwaS5fZm5EcmF3SGVhZChlLGcsITApfWVsc2UgZm9yKGc9dGhpcy5fZm5Db3B5TGF5b3V0KGUuYW9Gb290ZXIsZCwhMSksYj1bXSxlLm9BcGkuX2ZuRGV0ZWN0SGVhZGVyKGIsYygiPnRmb290IixhLmZvb3RlcilbMF0pLG49MCxtPWcubGVuZ3RoO248Cm07bisrKWZvcih0PTAsbD1nW25dLmxlbmd0aDt0PGw7dCsrKWJbbl1bdF0uY2VsbC5jbGFzc05hbWU9Z1tuXVt0XS5jZWxsLmNsYXNzTmFtZTt0aGlzLl9mbkVxdWFsaXNlSGVpZ2h0cygidGZvb3QiLHRoaXMuZG9tLmZvb3RlcixhLmZvb3Rlcil9Yj1lLm9BcGkuX2ZuR2V0VW5pcXVlVGhzKGUsYygiPnRoZWFkIixhLmhlYWRlcilbMF0pO2MoYikuZWFjaChmdW5jdGlvbihhKXt2PWRbYV07dGhpcy5zdHlsZS53aWR0aD1mLnMuYWlJbm5lcldpZHRoc1t2XSsicHgifSk7bnVsbCE9PWYucy5kdC5uVEZvb3QmJihiPWUub0FwaS5fZm5HZXRVbmlxdWVUaHMoZSxjKCI+dGZvb3QiLGEuZm9vdGVyKVswXSksYyhiKS5lYWNoKGZ1bmN0aW9uKGEpe3Y9ZFthXTt0aGlzLnN0eWxlLndpZHRoPWYucy5haUlubmVyV2lkdGhzW3ZdKyJweCJ9KSl9LF9mbkdldFRyTm9kZXM6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MCxlPWEuY2hpbGROb2Rlcy5sZW5ndGg7YzxlO2MrKykiVFIiPT1hLmNoaWxkTm9kZXNbY10ubm9kZU5hbWUudG9VcHBlckNhc2UoKSYmCmIucHVzaChhLmNoaWxkTm9kZXNbY10pO3JldHVybiBifSxfZm5FcXVhbGlzZUhlaWdodHM6ZnVuY3Rpb24oYSxiLGQpe2lmKCJub25lIiE9dGhpcy5zLnNIZWlnaHRNYXRjaHx8InRoZWFkIj09PWF8fCJ0Zm9vdCI9PT1hKXt2YXIgZT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpWzBdO2Q9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZShhKVswXTthPWMoIj4iK2ErIj50cjplcSgwKSIsYikuY2hpbGRyZW4oIjpmaXJzdCIpO2Eub3V0ZXJIZWlnaHQoKTthLmhlaWdodCgpO2U9dGhpcy5fZm5HZXRUck5vZGVzKGUpO2I9dGhpcy5fZm5HZXRUck5vZGVzKGQpO3ZhciBmPVtdO2Q9MDtmb3IoYT1iLmxlbmd0aDtkPGE7ZCsrKXt2YXIgZz1lW2RdLm9mZnNldEhlaWdodDt2YXIgaz1iW2RdLm9mZnNldEhlaWdodDtnPWs+Zz9rOmc7InNlbWlhdXRvIj09dGhpcy5zLnNIZWlnaHRNYXRjaCYmKGVbZF0uX0RUVENfaUhlaWdodD1nKTtmLnB1c2goZyl9ZD0wO2ZvcihhPWIubGVuZ3RoO2Q8YTtkKyspYltkXS5zdHlsZS5oZWlnaHQ9CmZbZF0rInB4IixlW2RdLnN0eWxlLmhlaWdodD1mW2RdKyJweCJ9fSxfZmlyZWZveFNjcm9sbEVycm9yOmZ1bmN0aW9uKCl7aWYodT09PXEpe3ZhciBhPWMoIjxkaXYvPiIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsaGVpZ2h0OjEwLHdpZHRoOjUwLG92ZXJmbG93OiJzY3JvbGwifSkuYXBwZW5kVG8oImJvZHkiKTt1PWFbMF0uY2xpZW50V2lkdGg9PT1hWzBdLm9mZnNldFdpZHRoJiYwIT09dGhpcy5fZm5EVE92ZXJmbG93KCkuYmFyO2EucmVtb3ZlKCl9cmV0dXJuIHV9fSk7cC5kZWZhdWx0cz17aUxlZnRDb2x1bW5zOjEsaVJpZ2h0Q29sdW1uczowLGZuRHJhd0NhbGxiYWNrOm51bGwsc0hlaWdodE1hdGNoOiJzZW1pYXV0byJ9O3AudmVyc2lvbj0iMy4zLjAiO2wuQXBpLnJlZ2lzdGVyKCJmaXhlZENvbHVtbnMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pO2wuQXBpLnJlZ2lzdGVyKCJmaXhlZENvbHVtbnMoKS51cGRhdGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLApmdW5jdGlvbihhKXthLl9vRml4ZWRDb2x1bW5zJiZhLl9vRml4ZWRDb2x1bW5zLmZuVXBkYXRlKCl9KX0pO2wuQXBpLnJlZ2lzdGVyKCJmaXhlZENvbHVtbnMoKS5yZWxheW91dCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7YS5fb0ZpeGVkQ29sdW1ucyYmYS5fb0ZpeGVkQ29sdW1ucy5mblJlZHJhd0xheW91dCgpfSl9KTtsLkFwaS5yZWdpc3Rlcigicm93cygpLnJlY2FsY0hlaWdodCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJyb3ciLGZ1bmN0aW9uKGEsYil7YS5fb0ZpeGVkQ29sdW1ucyYmYS5fb0ZpeGVkQ29sdW1ucy5mblJlY2FsY3VsYXRlSGVpZ2h0KHRoaXMucm93KGIpLm5vZGUoKSl9KX0pO2wuQXBpLnJlZ2lzdGVyKCJmaXhlZENvbHVtbnMoKS5yb3dJbmRleCgpIixmdW5jdGlvbihhKXthPWMoYSk7cmV0dXJuIGEucGFyZW50cygiLkRURkNfQ2xvbmVkIikubGVuZ3RoP3RoaXMucm93cyh7cGFnZToiY3VycmVudCJ9KS5pbmRleGVzKClbYS5pbmRleCgpXToKdGhpcy5yb3coYSkuaW5kZXgoKX0pO2wuQXBpLnJlZ2lzdGVyKCJmaXhlZENvbHVtbnMoKS5jZWxsSW5kZXgoKSIsZnVuY3Rpb24oYSl7YT1jKGEpO2lmKGEucGFyZW50cygiLkRURkNfQ2xvbmVkIikubGVuZ3RoKXt2YXIgYj1hLnBhcmVudCgpLmluZGV4KCk7Yj10aGlzLnJvd3Moe3BhZ2U6ImN1cnJlbnQifSkuaW5kZXhlcygpW2JdO2E9YS5wYXJlbnRzKCIuRFRGQ19MZWZ0V3JhcHBlciIpLmxlbmd0aD9hLmluZGV4KCk6dGhpcy5jb2x1bW5zKCkuZmxhdHRlbigpLmxlbmd0aC10aGlzLmNvbnRleHRbMF0uX29GaXhlZENvbHVtbnMucy5pUmlnaHRDb2x1bW5zK2EuaW5kZXgoKTtyZXR1cm57cm93OmIsY29sdW1uOnRoaXMuY29sdW1uLmluZGV4KCJ0b0RhdGEiLGEpLGNvbHVtblZpc2libGU6YX19cmV0dXJuIHRoaXMuY2VsbChhKS5pbmRleCgpfSk7bC5BcGkucmVnaXN0ZXJQbHVyYWwoImNlbGxzKCkuZml4ZWROb2RlcygpIiwiY2VsbCgpLmZpeGVkTm9kZSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIiwKZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhLl9vRml4ZWRDb2x1bW5zP2EuX29GaXhlZENvbHVtbnMuZm5Ub0ZpeGVkTm9kZShiLGMpOnRoaXMubm9kZSgpfSwxKX0pO2MoZSkub24oImluaXQuZHQuZml4ZWRDb2x1bW5zIixmdW5jdGlvbihhLGIpe2lmKCJkdCI9PT1hLm5hbWVzcGFjZSl7YT1iLm9Jbml0LmZpeGVkQ29sdW1uczt2YXIgZD1sLmRlZmF1bHRzLmZpeGVkQ29sdW1ucztpZihhfHxkKWQ9Yy5leHRlbmQoe30sYSxkKSwhMSE9PWEmJm5ldyBwKGIsZCl9fSk7Yy5mbi5kYXRhVGFibGUuRml4ZWRDb2x1bW5zPXA7cmV0dXJuIGMuZm4uRGF0YVRhYmxlLkZpeGVkQ29sdW1ucz1wfSk7Cg=="></script>
<link href="data:text/css;charset=utf-8,%0A%2Econtainer%2Dfluid%2Ecrosstalk%2Dbscols%20%7B%0Amargin%2Dleft%3A%20%2D30px%3B%0Amargin%2Dright%3A%20%2D30px%3B%0Awhite%2Dspace%3A%20normal%3B%0A%7D%0A%0Abody%20%3E%20%2Econtainer%2Dfluid%2Ecrosstalk%2Dbscols%20%7B%0Amargin%2Dleft%3A%20auto%3B%0Amargin%2Dright%3A%20auto%3B%0A%7D%0A%2Ecrosstalk%2Dinput%2Dcheckboxgroup%20%2Ecrosstalk%2Doptions%2Dgroup%20%2Ecrosstalk%2Doptions%2Dcolumn%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0Apadding%2Dright%3A%2012px%3B%0Avertical%2Dalign%3A%20top%3B%0A%7D%0A%40media%20only%20screen%20and%20%28max%2Dwidth%3A480px%29%20%7B%0A%2Ecrosstalk%2Dinput%2Dcheckboxgroup%20%2Ecrosstalk%2Doptions%2Dgroup%20%2Ecrosstalk%2Doptions%2Dcolumn%20%7B%0Adisplay%3A%20block%3B%0Apadding%2Dright%3A%20inherit%3B%0A%7D%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj1pfX19LHtrZXk6Il9tZXJnZUV4dHJhSW5mbyIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGEuZXh0ZW5kKHt9LHRoaXMuX2V4dHJhSW5mbz90aGlzLl9leHRyYUluZm86bnVsbCxlfHxudWxsKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2VtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5jbGVhcigpLHRoaXMuc2V0R3JvdXAobnVsbCl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5fZmlsdGVyU2V0JiYodGhpcy5fZmlsdGVyU2V0LmNsZWFyKHRoaXMuX2lkKSx0aGlzLl9vbkNoYW5nZShlKSl9fSx7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dGhpcy5fZmlsdGVyU2V0JiYodGhpcy5fZmlsdGVyU2V0LnVwZGF0ZSh0aGlzLl9pZCxlKSx0aGlzLl9vbkNoYW5nZSh0KSl9fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vbihlLHQpfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9lbWl0dGVyLm9mZihlLHQpfX0se2tleToiX29uQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLl9maWx0ZXJTZXQmJnRoaXMuX2ZpbHRlclZhci5zZXQodGhpcy5fZmlsdGVyU2V0LnZhbHVlLHRoaXMuX21lcmdlRXh0cmFJbmZvKGUpKX19LHtrZXk6ImZpbHRlcmVkS2V5cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpbHRlclNldD90aGlzLl9maWx0ZXJTZXQudmFsdWU6bnVsbH19XSksbn0oKX0seyIuL2V2ZW50cyI6MSwiLi9maWx0ZXJzZXQiOjMsIi4vZ3JvdXAiOjQsIi4vdXRpbCI6MTF9XSwzOltmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0oKSxhPWUoIi4vdXRpbCIpO2Z1bmN0aW9uIGwoZSx0KXtyZXR1cm4gZT09PXQ/MDplPHQ/LTE6dDxlPzE6dm9pZCAwfXZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLHRoaXMucmVzZXQoKX1yZXR1cm4gcihlLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oYW5kbGVzPXt9LHRoaXMuX2tleXM9e30sdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9hY3RpdmVIYW5kbGVzPTB9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7bnVsbCE9PXQmJih0PXQuc2xpY2UoMCkpLnNvcnQobCk7dmFyIG49KDAsYS5kaWZmU29ydGVkTGlzdHMpKHRoaXMuX2hhbmRsZXNbZV0sdCkscj1uLmFkZGVkLGk9bi5yZW1vdmVkO3RoaXMuX2hhbmRsZXNbZV09dDtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKyl0aGlzLl9rZXlzW3Jbb11dPSh0aGlzLl9rZXlzW3Jbb11dfHwwKSsxO2Zvcih2YXIgdT0wO3U8aS5sZW5ndGg7dSsrKXRoaXMuX2tleXNbaVt1XV0tLTt0aGlzLl91cGRhdGVWYWx1ZSh0KX19LHtrZXk6Il91cGRhdGVWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5fYWxsS2V5cyx0PU9iamVjdC5rZXlzKHRoaXMuX2hhbmRsZXMpLmxlbmd0aDtpZigwPT09dCl0aGlzLl92YWx1ZT1udWxsO2Vsc2V7dGhpcy5fdmFsdWU9W107Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3RoaXMuX2tleXNbZVtuXV09PT10JiZ0aGlzLl92YWx1ZS5wdXNoKGVbbl0pfX19fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09dGhpcy5faGFuZGxlc1tlXSl7dmFyIHQ9dGhpcy5faGFuZGxlc1tlXTt0fHwodD1bXSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy5fa2V5c1t0W25dXS0tO2RlbGV0ZSB0aGlzLl9oYW5kbGVzW2VdLHRoaXMuX3VwZGF0ZVZhbHVlKCl9fX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX19LHtrZXk6Il9hbGxLZXlzIixnZXQ6ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3Qua2V5cyh0aGlzLl9rZXlzKTtyZXR1cm4gZS5zb3J0KGwpLGV9fV0pLGV9KCk7bi5kZWZhdWx0PWl9LHsiLi91dGlsIjoxMX1dLDQ6W2Z1bmN0aW9uKGwsZSxzKXsoZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0oKSxyPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfTtzLmRlZmF1bHQ9ZnVuY3Rpb24gZSh0KXt7aWYodCYmInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB1Lmhhc093blByb3BlcnR5KHQpfHwodVt0XT1uZXcgYSh0KSksdVt0XTtpZigib2JqZWN0Ij09PSh2b2lkIDA9PT10PyJ1bmRlZmluZWQiOnIodCkpJiZ0Ll92YXJzJiZ0LnZhcilyZXR1cm4gdDtpZihBcnJheS5pc0FycmF5KHQpJiYxPT10Lmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiB0WzBdKXJldHVybiBlKHRbMF0pO3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCBncm91cE5hbWUgYXJndW1lbnQiKX19O3ZhciB0LGk9bCgiLi92YXIiKSxvPSh0PWkpJiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fTtlLl9fY3Jvc3N0YWxrX2dyb3Vwcz1lLl9fY3Jvc3N0YWxrX2dyb3Vwc3x8e307dmFyIHU9ZS5fX2Nyb3NzdGFsa19ncm91cHM7dmFyIGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLHQpLHRoaXMubmFtZT1lLHRoaXMuX3ZhcnM9e319cmV0dXJuIG4odCxbe2tleToidmFyIix2YWx1ZTpmdW5jdGlvbihlKXtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB2YXIgbmFtZSIpO3JldHVybiB0aGlzLl92YXJzLmhhc093blByb3BlcnR5KGUpfHwodGhpcy5fdmFyc1tlXT1uZXcgby5kZWZhdWx0KHRoaXMsZSkpLHRoaXMuX3ZhcnNbZV19fSx7a2V5OiJoYXMiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKCFlfHwic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHZhciBuYW1lIik7cmV0dXJuIHRoaXMuX3ZhcnMuaGFzT3duUHJvcGVydHkoZSl9fV0pLHR9KCl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi92YXIiOjEyfV0sNTpbZnVuY3Rpb24oZixlLGMpeyhmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0LG49ZigiLi9ncm91cCIpLHI9KHQ9bikmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9LGk9ZigiLi9zZWxlY3Rpb24iKSxvPWYoIi4vZmlsdGVyIiksdT1mKCIuL2lucHV0Iik7ZigiLi9pbnB1dF9zZWxlY3RpemUiKSxmKCIuL2lucHV0X2NoZWNrYm94Z3JvdXAiKSxmKCIuL2lucHV0X3NsaWRlciIpO3ZhciBhPSgwLHIuZGVmYXVsdCkoImRlZmF1bHQiKTtmdW5jdGlvbiBsKGUpe3JldHVybiBhLnZhcihlKX1lLlNoaW55JiZlLlNoaW55LmFkZEN1c3RvbU1lc3NhZ2VIYW5kbGVyKCJ1cGRhdGUtY2xpZW50LXZhbHVlIixmdW5jdGlvbihlKXsic3RyaW5nIj09dHlwZW9mIGUuZ3JvdXA/KDAsci5kZWZhdWx0KShlLmdyb3VwKS52YXIoZS5uYW1lKS5zZXQoZS52YWx1ZSk6bChlLm5hbWUpLnNldChlLnZhbHVlKX0pO3ZhciBzPXtncm91cDpyLmRlZmF1bHQsdmFyOmwsaGFzOmZ1bmN0aW9uKGUpe3JldHVybiBhLmhhcyhlKX0sU2VsZWN0aW9uSGFuZGxlOmkuU2VsZWN0aW9uSGFuZGxlLEZpbHRlckhhbmRsZTpvLkZpbHRlckhhbmRsZSxiaW5kOnUuYmluZH07Yy5kZWZhdWx0PXMsZS5jcm9zc3RhbGs9c30pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL2ZpbHRlciI6MiwiLi9ncm91cCI6NCwiLi9pbnB1dCI6NiwiLi9pbnB1dF9jaGVja2JveGdyb3VwIjo3LCIuL2lucHV0X3NlbGVjdGl6ZSI6OCwiLi9pbnB1dF9zbGlkZXIiOjksIi4vc2VsZWN0aW9uIjoxMH1dLDY6W2Z1bmN0aW9uKGUsdCxhKXsoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhLnJlZ2lzdGVyPWZ1bmN0aW9uKGUpe3JbZS5jbGFzc05hbWVdPWUsdC5kb2N1bWVudCYmImNvbXBsZXRlIiE9PXQuZG9jdW1lbnQucmVhZHlTdGF0ZT9vKGZ1bmN0aW9uKCl7bigpfSk6dC5kb2N1bWVudCYmc2V0VGltZW91dChuLDEwMCl9LGEuYmluZD1uO3ZhciBvPXQualF1ZXJ5LHI9e307ZnVuY3Rpb24gbigpe09iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIG49cltlXTtvKCIuIituLmNsYXNzTmFtZSkubm90KCIuY3Jvc3N0YWxrLWlucHV0LWJvdW5kIikuZWFjaChmdW5jdGlvbihlLHQpe2kobix0KX0pfSl9ZnVuY3Rpb24gaShlLHQpe3ZhciBuPW8odCkuZmluZCgic2NyaXB0W3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nXVtkYXRhLWZvcj0nIit0LmlkLnJlcGxhY2UoLyhbISIjJCUmJygpKissLi86Ozw9Pj9AW1xcXF1eYHt8fX5dKS9nLCJcXCQxIikrIiddIikscj1KU09OLnBhcnNlKG5bMF0uaW5uZXJUZXh0KSxpPWUuZmFjdG9yeSh0LHIpO28odCkuZGF0YSgiY3Jvc3N0YWxrLWluc3RhbmNlIixpKSxvKHQpLmFkZENsYXNzKCJjcm9zc3RhbGstaW5wdXQtYm91bmQiKX1pZih0LlNoaW55KXt2YXIgZT1uZXcgdC5TaGlueS5JbnB1dEJpbmRpbmcsdT10LmpRdWVyeTt1LmV4dGVuZChlLHtmaW5kOmZ1bmN0aW9uKGUpe3JldHVybiB1KGUpLmZpbmQoIi5jcm9zc3RhbGstaW5wdXQiKX0saW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdCxuO3UoZSkuaGFzQ2xhc3MoImNyb3NzdGFsay1pbnB1dC1ib3VuZCIpfHwobj1vKHQ9ZSksT2JqZWN0LmtleXMocikuZm9yRWFjaChmdW5jdGlvbihlKXtuLmhhc0NsYXNzKGUpJiYhbi5oYXNDbGFzcygiY3Jvc3N0YWxrLWlucHV0LWJvdW5kIikmJmkocltlXSx0KX0pKX0sZ2V0SWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWR9LGdldFZhbHVlOmZ1bmN0aW9uKGUpe30sc2V0VmFsdWU6ZnVuY3Rpb24oZSx0KXt9LHJlY2VpdmVNZXNzYWdlOmZ1bmN0aW9uKGUsdCl7fSxzdWJzY3JpYmU6ZnVuY3Rpb24oZSx0KXt1KGUpLmRhdGEoImNyb3NzdGFsay1pbnN0YW5jZSIpLnJlc3VtZSgpfSx1bnN1YnNjcmliZTpmdW5jdGlvbihlKXt1KGUpLmRhdGEoImNyb3NzdGFsay1pbnN0YW5jZSIpLnN1c3BlbmQoKX19KSx0LlNoaW55LmlucHV0QmluZGluZ3MucmVnaXN0ZXIoZSwiY3Jvc3N0YWxrLmlucHV0QmluZGluZyIpfX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0se31dLDc6W2Z1bmN0aW9uKHIsZSx0KXsoZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO3ZhciB0PWZ1bmN0aW9uKGUpe3tpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9fShyKCIuL2lucHV0IikpLG49cigiLi9maWx0ZXIiKTt2YXIgYT1lLmpRdWVyeTt0LnJlZ2lzdGVyKHtjbGFzc05hbWU6ImNyb3NzdGFsay1pbnB1dC1jaGVja2JveGdyb3VwIixmYWN0b3J5OmZ1bmN0aW9uKGUscil7dmFyIGk9bmV3IG4uRmlsdGVySGFuZGxlKHIuZ3JvdXApLG89dm9pZCAwLHU9YShlKTtyZXR1cm4gdS5vbigiY2hhbmdlIiwiaW5wdXRbdHlwZT0nY2hlY2tib3gnXSIsZnVuY3Rpb24oKXt2YXIgZT11LmZpbmQoImlucHV0W3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCIpO2lmKDA9PT1lLmxlbmd0aClvPW51bGwsaS5jbGVhcigpO2Vsc2V7dmFyIHQ9e307ZS5lYWNoKGZ1bmN0aW9uKCl7ci5tYXBbdGhpcy52YWx1ZV0uZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPSEwfSl9KTt2YXIgbj1PYmplY3Qua2V5cyh0KTtuLnNvcnQoKSxvPW4saS5zZXQobil9fSkse3N1c3BlbmQ6ZnVuY3Rpb24oKXtpLmNsZWFyKCl9LHJlc3VtZTpmdW5jdGlvbigpe28mJmkuc2V0KG8pfX19fSl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi9maWx0ZXIiOjIsIi4vaW5wdXQiOjZ9XSw4OltmdW5jdGlvbihyLGUsdCl7KGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1uKHIoIi4vaW5wdXQiKSksbD1uKHIoIi4vdXRpbCIpKSxzPXIoIi4vZmlsdGVyIik7ZnVuY3Rpb24gbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9dmFyIGY9ZS5qUXVlcnk7dC5yZWdpc3Rlcih7Y2xhc3NOYW1lOiJjcm9zc3RhbGstaW5wdXQtc2VsZWN0IixmYWN0b3J5OmZ1bmN0aW9uKGUsbil7dmFyIHQ9bC5kYXRhZnJhbWVUb0QzKG4uaXRlbXMpLHI9e29wdGlvbnM6W3t2YWx1ZToiIixsYWJlbDoiKEFsbCkifV0uY29uY2F0KHQpLHZhbHVlRmllbGQ6InZhbHVlIixsYWJlbEZpZWxkOiJsYWJlbCIsc2VhcmNoRmllbGQ6ImxhYmVsIn0saT1mKGUpLmZpbmQoInNlbGVjdCIpWzBdLG89ZihpKS5zZWxlY3RpemUocilbMF0uc2VsZWN0aXplLHU9bmV3IHMuRmlsdGVySGFuZGxlKG4uZ3JvdXApLGE9dm9pZCAwO3JldHVybiBvLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoMD09PW8uaXRlbXMubGVuZ3RoKWE9bnVsbCx1LmNsZWFyKCk7ZWxzZXt2YXIgdD17fTtvLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oZSl7bi5tYXBbZV0uZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPSEwfSl9KTt2YXIgZT1PYmplY3Qua2V5cyh0KTtlLnNvcnQoKSxhPWUsdS5zZXQoZSl9fSkse3N1c3BlbmQ6ZnVuY3Rpb24oKXt1LmNsZWFyKCl9LHJlc3VtZTpmdW5jdGlvbigpe2EmJnUuc2V0KGEpfX19fSl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi9maWx0ZXIiOjIsIi4vaW5wdXQiOjYsIi4vdXRpbCI6MTF9XSw5OltmdW5jdGlvbihuLGUsdCl7KGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxyPSEwLGk9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgdSxhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEocj0odT1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2godS52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7cj0hMCk7fWNhdGNoKGUpe2k9ITAsbz1lfWZpbmFsbHl7dHJ5eyFyJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfSx0PWZ1bmN0aW9uKGUpe3tpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9fShuKCIuL2lucHV0IikpLGE9bigiLi9maWx0ZXIiKTt2YXIgdj1lLmpRdWVyeSxwPWUuc3RyZnRpbWU7ZnVuY3Rpb24geShlLHQpe2Zvcih2YXIgbj1lLnRvU3RyaW5nKCk7bi5sZW5ndGg8dDspbj0iMCIrbjtyZXR1cm4gbn10LnJlZ2lzdGVyKHtjbGFzc05hbWU6ImNyb3NzdGFsay1pbnB1dC1zbGlkZXIiLGZhY3Rvcnk6ZnVuY3Rpb24oZSxsKXt2YXIgcz1uZXcgYS5GaWx0ZXJIYW5kbGUobC5ncm91cCksdD17fSxmPXYoZSkuZmluZCgiaW5wdXQiKSxuPWYuZGF0YSgiZGF0YS10eXBlIikscj1mLmRhdGEoInRpbWUtZm9ybWF0IiksaT1mLmRhdGEoInJvdW5kIiksbz12b2lkIDA7aWYoImRhdGUiPT09bilvPXAudXRjKCksdC5wcmV0dGlmeT1mdW5jdGlvbihlKXtyZXR1cm4gbyhyLG5ldyBEYXRlKGUpKX07ZWxzZSBpZigiZGF0ZXRpbWUiPT09bil7dmFyIHU9Zi5kYXRhKCJ0aW1lem9uZSIpO289dT9wLnRpbWV6b25lKHUpOnAsdC5wcmV0dGlmeT1mdW5jdGlvbihlKXtyZXR1cm4gbyhyLG5ldyBEYXRlKGUpKX19ZWxzZSJudW1iZXIiPT09biYmdm9pZCAwIT09aSYmKHQucHJldHRpZnk9ZnVuY3Rpb24oZSl7dmFyIHQ9TWF0aC5wb3coMTAsaSk7cmV0dXJuIE1hdGgucm91bmQoZSp0KS90fSk7ZnVuY3Rpb24gYygpe3ZhciBlPWYuZGF0YSgiaW9uUmFuZ2VTbGlkZXIiKS5yZXN1bHQsdD12b2lkIDAsbj1mLmRhdGEoImRhdGEtdHlwZSIpO3JldHVybiB0PSJkYXRlIj09PW4/ZnVuY3Rpb24oZSl7cmV0dXJuKHQ9bmV3IERhdGUoK2UpKWluc3RhbmNlb2YgRGF0ZT90LmdldFVUQ0Z1bGxZZWFyKCkrIi0iK3kodC5nZXRVVENNb250aCgpKzEsMikrIi0iK3kodC5nZXRVVENEYXRlKCksMik6bnVsbDt2YXIgdH06ImRhdGV0aW1lIj09PW4/ZnVuY3Rpb24oZSl7cmV0dXJuK2UvMWUzfTpmdW5jdGlvbihlKXtyZXR1cm4rZX0sImRvdWJsZSI9PT1mLmRhdGEoImlvblJhbmdlU2xpZGVyIikub3B0aW9ucy50eXBlP1t0KGUuZnJvbSksdChlLnRvKV06dChlLmZyb20pfWYuaW9uUmFuZ2VTbGlkZXIodCk7dmFyIGg9bnVsbDtyZXR1cm4gZi5vbigiY2hhbmdlLmNyb3NzdGFsa1NsaWRlcklucHV0IixmdW5jdGlvbihlKXtpZighZi5kYXRhKCJ1cGRhdGluZyIpJiYhZi5kYXRhKCJhbmltYXRpbmciKSl7Zm9yKHZhciB0PWMoKSxuPWQodCwyKSxyPW5bMF0saT1uWzFdLG89W10sdT0wO3U8bC52YWx1ZXMubGVuZ3RoO3UrKyl7dmFyIGE9bC52YWx1ZXNbdV07cjw9YSYmYTw9aSYmby5wdXNoKGwua2V5c1t1XSl9by5zb3J0KCkscy5zZXQobyksaD1vfX0pLHtzdXNwZW5kOmZ1bmN0aW9uKCl7cy5jbGVhcigpfSxyZXN1bWU6ZnVuY3Rpb24oKXtoJiZzLnNldChoKX19fX0pfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vZmlsdGVyIjoyLCIuL2lucHV0Ijo2fV0sMTA6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uU2VsZWN0aW9uSGFuZGxlPXZvaWQgMDt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0oKSxpPWEoZSgiLi9ldmVudHMiKSksbz1hKGUoIi4vZ3JvdXAiKSksdT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fW4uU2VsZWN0aW9uSGFuZGxlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe3ZhciBlPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsLHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGw7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IHUuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX3Zhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPXUuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5zZXRHcm91cChlKX1yZXR1cm4gcihuLFt7a2V5OiJzZXRHcm91cCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztpZih0aGlzLl9ncm91cCE9PWUmJih0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl92YXImJih0aGlzLl92YXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLl92YXI9bnVsbCx0aGlzLl92YXJPbkNoYW5nZVN1Yj1udWxsKSx0aGlzLl9ncm91cD1lKSl7dGhpcy5fdmFyPSgwLG8uZGVmYXVsdCkoZSkudmFyKCJzZWxlY3Rpb24iKTt2YXIgbj10aGlzLl92YXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7dC5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUsdCl9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj1ufX19LHtrZXk6Il9tZXJnZUV4dHJhSW5mbyIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHUuZXh0ZW5kKHt9LHRoaXMuX2V4dHJhSW5mbz90aGlzLl9leHRyYUluZm86bnVsbCxlfHxudWxsKX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt0aGlzLl92YXImJnRoaXMuX3Zhci5zZXQoZSx0aGlzLl9tZXJnZUV4dHJhSW5mbyh0KSl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5fdmFyJiZ0aGlzLnNldCh2b2lkIDAsdGhpcy5fbWVyZ2VFeHRyYUluZm8oZSkpfX0se2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2VtaXR0ZXIub24oZSx0KX19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vZmYoZSx0KX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2VtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5zZXRHcm91cChudWxsKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFyP3RoaXMuX3Zhci5nZXQoKTpudWxsfX1dKSxufSgpfSx7Ii4vZXZlbnRzIjoxLCIuL2dyb3VwIjo0LCIuL3V0aWwiOjExfV0sMTE6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGw9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9O2Z1bmN0aW9uIHUoZSl7Zm9yKHZhciB0PTE7dDxlLmxlbmd0aDt0KyspaWYoZVt0XTw9ZVt0LTFdKXRocm93IG5ldyBFcnJvcigiTGlzdCBpcyBub3Qgc29ydGVkIG9yIGNvbnRhaW5zIGR1cGxpY2F0ZSIpfW4uZXh0ZW5kPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkoMTx0P3QtMTowKSxyPTE7cjx0O3IrKyluW3ItMV09YXJndW1lbnRzW3JdO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbz1uW2ldO2lmKG51bGwhPW8pZm9yKHZhciB1IGluIG8pby5oYXNPd25Qcm9wZXJ0eSh1KSYmKGVbdV09b1t1XSl9cmV0dXJuIGV9LG4uY2hlY2tTb3J0ZWQ9dSxuLmRpZmZTb3J0ZWRMaXN0cz1mdW5jdGlvbihlLHQpe3ZhciBuPTAscj0wO2V8fChlPVtdKTt0fHwodD1bXSk7dmFyIGk9W10sbz1bXTt1KGUpLHUodCk7Zm9yKDtuPGUubGVuZ3RoJiZyPHQubGVuZ3RoOyllW25dPT09dFtyXT8obisrLHIrKyk6ZVtuXTx0W3JdP2kucHVzaChlW24rK10pOm8ucHVzaCh0W3IrK10pO248ZS5sZW5ndGgmJihpPWkuY29uY2F0KGUuc2xpY2UobikpKTtyPHQubGVuZ3RoJiYobz1vLmNvbmNhdCh0LnNsaWNlKHIpKSk7cmV0dXJue3JlbW92ZWQ6aSxhZGRlZDpvfX0sbi5kYXRhZnJhbWVUb0QzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49dm9pZCAwO2Zvcih2YXIgciBpbiBlKXtpZihlLmhhc093blByb3BlcnR5KHIpJiZ0LnB1c2gociksIm9iamVjdCIhPT1sKGVbcl0pfHx2b2lkIDA9PT1lW3JdLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkFsbCBmaWVsZHMgbXVzdCBiZSBhcnJheXMiKTtpZih2b2lkIDAhPT1uJiZuIT09ZVtyXS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIG9mIHRoZSBzYW1lIGxlbmd0aCIpO249ZVtyXS5sZW5ndGh9Zm9yKHZhciBpPVtdLG89dm9pZCAwLHU9MDt1PG47dSsrKXtvPXt9O2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKW9bdFthXV09ZVt0W2FdXVt1XTtpLnB1c2gobyl9cmV0dXJuIGl9O24uU3Vic2NyaXB0aW9uVHJhY2tlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsdCksdGhpcy5fZW1pdHRlcj1lLHRoaXMuX3N1YnM9e319cmV0dXJuIHIodCxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fZW1pdHRlci5vbihlLHQpO3JldHVybiB0aGlzLl9zdWJzW25dPWUsbn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9lbWl0dGVyLm9mZihlLHQpO3JldHVybiBuJiZkZWxldGUgdGhpcy5fc3Vic1tuXSxufX0se2tleToicmVtb3ZlQWxsTGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj10aGlzLl9zdWJzO3RoaXMuX3N1YnM9e30sT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihlKXt0Ll9lbWl0dGVyLm9mZihuW2VdLGUpfSl9fV0pLHR9KCl9LHt9XSwxMjpbZnVuY3Rpb24oYSxlLGwpeyhmdW5jdGlvbihvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlLHU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCksbj1hKCIuL2V2ZW50cyIpLGk9KGU9bikmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9O3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQsbil7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsciksdGhpcy5fZ3JvdXA9ZSx0aGlzLl9uYW1lPXQsdGhpcy5fdmFsdWU9bix0aGlzLl9ldmVudHM9bmV3IGkuZGVmYXVsdH1yZXR1cm4gdChyLFt7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbihlLHQpe2lmKHRoaXMuX3ZhbHVlIT09ZSl7dmFyIG49dGhpcy5fdmFsdWU7dGhpcy5fdmFsdWU9ZTt2YXIgcj17fTtpZih0JiYib2JqZWN0Ij09PSh2b2lkIDA9PT10PyJ1bmRlZmluZWQiOnUodCkpKWZvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJihyW2ldPXRbaV0pO3Iub2xkVmFsdWU9bixyLnZhbHVlPWUsdGhpcy5fZXZlbnRzLnRyaWdnZXIoImNoYW5nZSIscix0aGlzKSxvLlNoaW55JiZvLlNoaW55Lm9uSW5wdXRDaGFuZ2UmJm8uU2hpbnkub25JbnB1dENoYW5nZSgiLmNsaWVudFZhbHVlLSIrKG51bGwhPT10aGlzLl9ncm91cC5uYW1lP3RoaXMuX2dyb3VwLm5hbWUrIi0iOiIiKSt0aGlzLl9uYW1lLHZvaWQgMD09PWU/bnVsbDplKX19fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZXZlbnRzLm9uKGUsdCl9fSx7a2V5OiJvZmYiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2V2ZW50cy5vZmYoZSx0KX19XSkscn0oKTtsLmRlZmF1bHQ9cn0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL2V2ZW50cyI6MX1dfSx7fSxbNV0pOwovLyMgc291cmNlTWFwcGluZ1VSTD1jcm9zc3RhbGsubWluLmpzLm1hcA=="></script>
<link href="data:text/css;charset=utf-8,%0A%2Ebiojs%5Fmsa%5Fdiv%20%7B%0A%7D%0A%2Ebiojs%5Fmsa%5Fstage%20%7B%0Acursor%3A%20default%3B%0Aline%2Dheight%3A%20normal%3B%20font%2Dfamily%3A%20Helvetica%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Fseqblock%20%7B%0Acursor%3A%20move%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Flayer%7B%0Adisplay%3A%20block%3B%0Awhite%2Dspace%3A%20nowrap%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Flabels%20%7B%0Acolor%3Ablack%3B%0Adisplay%3A%20inline%2Dblock%3B%0Awhite%2Dspace%3A%20nowrap%3B%0Acursor%3A%20pointer%3B%0Avertical%2Dalign%3Amiddle%3B%0Aoverflow%3A%20hidden%3B%0Atext%2Doverflow%3A%20clip%3B%0A%0Atext%2Dalign%3A%20left%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Fheader%20%7B%0Awhite%2Dspace%3A%20nowrap%3B%0Atext%2Dalign%3A%20left%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Flabelrow%3Abefore%20%7B%0Acontent%3A%20%27%27%3B%0Adisplay%3A%20inline%2Dblock%3B%0Awidth%3A%200%3B%0Aheight%3A%20100%25%3B%0Avertical%2Dalign%3A%20middle%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Flabelrow%7B%0Aheight%3A%20100%25%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Flabelblock%3A%3A%2Dwebkit%2Dscrollbar%2C%20%2Ebiojs%5Fmsa%5Frheader%3A%3A%2Dwebkit%2Dscrollbar%7B%0A%2F%2F%20FIX%20scrollbars%20on%20Mac%0A%2Dwebkit%2Dappearance%3A%20none%3B%0Awidth%3A%207px%3B%0Aheight%3A%207px%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Flabelblock%3A%3A%2Dwebkit%2Dscrollbar%2Dthumb%2C%20%2Ebiojs%5Fmsa%5Frheader%3A%3A%2Dwebkit%2Dscrollbar%2Dthumb%7B%0Aborder%2Dradius%3A%204px%3B%0Abackground%2Dcolor%3A%20rgba%280%2C0%2C0%2C%2E5%29%3B%0Abox%2Dshadow%3A%200%200%201px%20rgba%28255%2C255%2C255%2C%2E5%29%3B%0A%7D%0A%0A%0A%2Ebiojs%5Fmsa%5Fmarker%20%7B%0Acolor%3A%20%23999%3B%0Awhite%2Dspace%3A%20nowrap%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Fmarker%20%2Emsa%2Dcol%2Dheader%20%7B%0Acursor%3A%20pointer%3B%0Acursor%3A%20pointer%3B%0Atext%2Dalign%3A%20center%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Fmarker%20%2Emsa%2Dcol%2Dheader%3Ahover%20%7B%0Acolor%3A%20%23f00%3B%0A%7D%0A%0A%0A%2Esmenubar%20%2Esmenubar%5Falink%20%7B%0Abackground%3A%20%233498db%3B%0Abackground%2Dimage%3A%20%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%233498db%2C%20%232980b9%29%3B%0Abackground%2Dimage%3A%20%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%233498db%2C%20%232980b9%29%3B%0Abackground%2Dimage%3A%20%2Dms%2Dlinear%2Dgradient%28top%2C%20%233498db%2C%20%232980b9%29%3B%0Abackground%2Dimage%3A%20%2Do%2Dlinear%2Dgradient%28top%2C%20%233498db%2C%20%232980b9%29%3B%0Abackground%2Dimage%3A%20linear%2Dgradient%28to%20bottom%2C%20%233498db%2C%20%232980b9%29%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%2028%3B%0A%2Dmoz%2Dborder%2Dradius%3A%2028%3B%0Aborder%2Dradius%3A%2028px%3B%0Afont%2Dfamily%3A%20Arial%3B%0Acolor%3A%20%23ffffff%3B%0Apadding%3A%203px%2010px%203px%2010px%3B%0Amargin%2Dleft%3A%2010px%3B%0Atext%2Ddecoration%3A%20none%3B%0A%7D%0A%2Esmenubar%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0A%7D%0A%2Esmenubar%20%2Esmenubar%5Falink%3Ahover%20%7B%0Acursor%3A%20pointer%3B%0A%7D%0A%0A%2Esmenu%2Ddropdown%20%7B%0Aposition%3A%20absolute%3B%0Az%2Dindex%3A%209999999%3B%0Adisplay%3A%20none%3B%0A%7D%0A%2Esmenu%2Ddropdown%20%2Esmenu%2Ddropdown%2Dmenu%2C%0A%2Esmenu%2Ddropdown%20%2Esmenu%2Ddropdown%2Dpanel%20%7B%0Amin%2Dwidth%3A%20160px%3B%0Amax%2Dwidth%3A%20360px%3B%0Alist%2Dstyle%3A%20none%3B%0Abackground%3A%20%23FFF%3B%0Aborder%3A%20solid%201px%20%23DDD%3B%0Aborder%3A%20solid%201px%20rgba%280%2C%200%2C%200%2C%20%2E2%29%3B%0Aborder%2Dradius%3A%206px%3B%0Abox%2Dshadow%3A%200%205px%2010px%20rgba%280%2C%200%2C%200%2C%20%2E2%29%3B%0Aoverflow%3A%20visible%3B%0Apadding%3A%204px%200%3B%0Amargin%3A%200%3B%0A%7D%0A%2Esmenu%2Ddropdown%20%2Esmenu%2Ddropdown%2Dpanel%20%7B%0Apadding%3A%2010px%3B%0A%7D%0A%2Esmenu%2Ddropdown%2Esmenu%2Ddropdown%2Dscroll%20%2Esmenu%2Ddropdown%2Dmenu%2C%0A%2Esmenu%2Ddropdown%2Esmenu%2Ddropdown%2Dscroll%20%2Esmenu%2Ddropdown%2Dpanel%20%7B%0Amax%2Dheight%3A%20358px%3B%0Aoverflow%3A%20auto%3B%0A%7D%0A%2Esmenu%2Ddropdown%20%2Esmenu%2Ddropdown%2Dmenu%20LI%20%7B%0Alist%2Dstyle%3A%20none%3B%0Apadding%3A%200%200%3B%0Amargin%3A%200%3B%0Aline%2Dheight%3A%2018px%3B%0A%7D%0A%2Esmenu%2Ddropdown%20%2Esmenu%2Ddropdown%2Dmenu%20LI%2C%0A%2Esmenu%2Ddropdown%20%2Esmenu%2Ddropdown%2Dmenu%20LABEL%20%7B%0Adisplay%3A%20block%3B%0Acolor%3A%20%23555%3B%0Atext%2Ddecoration%3A%20none%3B%0Aline%2Dheight%3A%2018px%3B%0Apadding%3A%203px%2015px%3B%0Awhite%2Dspace%3A%20nowrap%3B%0A%7D%0A%2Esmenu%2Ddropdown%20%2Esmenu%2Ddropdown%2Dmenu%20LI%3Ahover%2C%0A%2Esmenu%2Ddropdown%20%2Esmenu%2Ddropdown%2Dmenu%20LABEL%3Ahover%20%7B%0Abackground%2Dcolor%3A%20%2308C%3B%0Acolor%3A%20%23FFF%3B%0Acursor%3A%20pointer%3B%0A%7D%0A%2Esmenu%2Ddropdown%20%2Esmenu%2Ddropdown%2Dmenu%20%2Esmenu%2Ddropdown%2Ddivider%20%7B%0Afont%2Dsize%3A%201px%3B%0Aborder%2Dtop%3A%20solid%201px%20%23E5E5E5%3B%0Apadding%3A%200%3B%0Amargin%3A%205px%200%3B%0A%7D%0A%0A%2Ebiojs%5Fmsa%5Fdiv%20%7B%0Aposition%3A%20relative%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Fscale%20%7B%0Aposition%3A%20absolute%3B%0Abottom%3A%200%3B%0Aright%3A%200%3B%0Abackground%2Dcolor%3A%20%23fff%3B%0Abox%2Dshadow%3A%200%202px%203px%20%23999%3B%0Aborder%2Dradius%3A%203px%3B%0Amargin%3A%205px%200%200%20auto%3B%0Apadding%3A%205px%3B%0Atext%2Dalign%3A%20center%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Fscale%20%2Emsa%2Dbtngroup%20%7B%0Amargin%3A%205px%20auto%200%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Fscale%20%5Btype%3D%22range%22%5D%20%7B%0Acursor%3A%20pointer%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Fscale%20%2Emsa%2Dscale%2Dminimised%20%7B%0A%7D%0A%2Ebiojs%5Fmsa%5Fscale%20%2Emsa%2Dscale%2Dminimised%20%7B%0A%7D%0A%2Ebiojs%5Fmsa%5Fscale%20%2Emsa%2Dbtn%2Dclose%20%7B%0Atext%2Dalign%3A%20right%3B%0Afont%2Dsize%3A%200%2E8em%3B%0Apadding%3A%202px%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Fscale%20%2Emsa%2Dbtn%2Dopen%20%7B%0Abackground%2Dcolor%3A%20%23fff%3B%0A%7D%0A%2Ebiojs%5Fmsa%5Fscale%20%2Emsa%2Dhide%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%2Emsa%2Dbtn%20%7B%0Acursor%3A%20pointer%3B%0Afont%2Dsize%3A%201%2E1em%3B%0Adisplay%3A%20inline%2Dblock%3B%0Apadding%3A%202px%208px%3B%0Amargin%2Dbottom%3A%200%3B%0Aborder%3A%201px%20solid%20transparent%3B%0Aborder%2Dradius%3A%204px%3B%0Abox%2Dsizing%3A%20border%2Dbox%3B%0A%7D%0A%2Emsa%2Dbtn%3Ahover%20%7B%0Abackground%2Dcolor%3A%20%23ddd%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,IWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUocil7aWYobltyXSlyZXR1cm4gbltyXS5leHBvcnRzO3ZhciBpPW5bcl09e2V4cG9ydHM6e30saWQ6cixsb2FkZWQ6ITF9O3JldHVybiB0W3JdLmNhbGwoaS5leHBvcnRzLGksaS5leHBvcnRzLGUpLGkubG9hZGVkPSEwLGkuZXhwb3J0c312YXIgbj17fTtyZXR1cm4gZS5tPXQsZS5jPW4sZS5wPSIiLGUoMCl9KFtmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7aWYodCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPXt9O2lmKG51bGwhPXQpZm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlLmRlZmF1bHQ9dCxlfXZhciBpPW4oMTAzKSxvPXIoaSk7bigxNDQpO3ZhciBzPW8uZGVmYXVsdDtmb3IodmFyIGEgaW4gbylvLmhhc093blByb3BlcnR5KGEpJiYoc1thXT1vW2FdKTt3aW5kb3cmJih3aW5kb3cubXNhPXMpLHQuZXhwb3J0cz1zfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3QuZXhwb3J0cy5Nb2RlbD1uKDQyKSx0LmV4cG9ydHMuQ29sbGVjdGlvbj1uKDU1KSx0LmV4cG9ydHMuRXZlbnRzPW4oMTEpLHQuZXhwb3J0cy5leHRlbmQ9bigxNSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxMCksaT1uKDExKSxvPW4oMTUpLHM9big1KSxhPWZ1bmN0aW9uKHQpe3RoaXMuY2lkPXIudW5pcXVlSWQoInZpZXciKSx0fHwodD17fSksci5leHRlbmQodGhpcyxyLnBpY2sodCxsKSksdGhpcy5fZW5zdXJlRWxlbWVudCgpLHRoaXMuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHU9L14oXFMrKVxzKiguKikkLyxsPVsibW9kZWwiLCJjb2xsZWN0aW9uIiwiZWwiLCJpZCIsImF0dHJpYnV0ZXMiLCJjbGFzc05hbWUiLCJ0YWdOYW1lIiwiZXZlbnRzIl07ci5leHRlbmQoYS5wcm90b3R5cGUsaSx7dGFnTmFtZToiZGl2IiwkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLiRlbC5maW5kKHQpfSxpbml0aWFsaXplOmZ1bmN0aW9uKCl7fSxyZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbW92ZUVsZW1lbnQoKSx0aGlzLnN0b3BMaXN0ZW5pbmcoKSx0aGlzfSxfcmVtb3ZlRWxlbWVudDpmdW5jdGlvbigpe3RoaXMuJGVsLnJlbW92ZSgpfSxzZXRFbGVtZW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnVuZGVsZWdhdGVFdmVudHMoKSx0aGlzLl9zZXRFbGVtZW50KHQpLHRoaXMuZGVsZWdhdGVFdmVudHMoKSx0aGlzfSxfc2V0RWxlbWVudDpmdW5jdGlvbih0KXt0aGlzLiRlbD10IGluc3RhbmNlb2Ygcz90OnModCksdGhpcy5lbD10aGlzLiRlbFswXX0sZGVsZWdhdGVFdmVudHM6ZnVuY3Rpb24odCl7aWYoIXQmJiEodD1yLnJlc3VsdCh0aGlzLCJldmVudHMiKSkpcmV0dXJuIHRoaXM7dGhpcy51bmRlbGVnYXRlRXZlbnRzKCk7Zm9yKHZhciBlIGluIHQpe3ZhciBuPXRbZV07aWYoci5pc0Z1bmN0aW9uKG4pfHwobj10aGlzW3RbZV1dKSxuKXt2YXIgaT1lLm1hdGNoKHUpO3RoaXMuZGVsZWdhdGUoaVsxXSxpWzJdLHIuYmluZChuLHRoaXMpKX19cmV0dXJuIHRoaXN9LGRlbGVnYXRlOmZ1bmN0aW9uKHQsZSxuKXt0aGlzLiRlbC5vbih0KyIuZGVsZWdhdGVFdmVudHMiK3RoaXMuY2lkLGUsbil9LHVuZGVsZWdhdGVFdmVudHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZWwmJnRoaXMuJGVsLm9mZigiLmRlbGVnYXRlRXZlbnRzIit0aGlzLmNpZCksdGhpc30sdW5kZWxlZ2F0ZTpmdW5jdGlvbih0LGUsbil7dGhpcy4kZWwub2ZmKHQrIi5kZWxlZ2F0ZUV2ZW50cyIrdGhpcy5jaWQsZSxuKX0sX2NyZWF0ZUVsZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCl9LF9lbnN1cmVFbGVtZW50OmZ1bmN0aW9uKCl7aWYodGhpcy5lbCl0aGlzLnNldEVsZW1lbnQoci5yZXN1bHQodGhpcywiZWwiKSk7ZWxzZXt2YXIgdD1yLmV4dGVuZCh7fSxyLnJlc3VsdCh0aGlzLCJhdHRyaWJ1dGVzIikpO3RoaXMuaWQmJih0LmlkPXIucmVzdWx0KHRoaXMsImlkIikpLHRoaXMuY2xhc3NOYW1lJiYodC5jbGFzcz1yLnJlc3VsdCh0aGlzLCJjbGFzc05hbWUiKSksdGhpcy5zZXRFbGVtZW50KHRoaXMuX2NyZWF0ZUVsZW1lbnQoci5yZXN1bHQodGhpcywidGFnTmFtZSIpKSksdGhpcy5fc2V0QXR0cmlidXRlcyh0KX19LF9zZXRBdHRyaWJ1dGVzOmZ1bmN0aW9uKHQpe3RoaXMuJGVsLmF0dHIodCl9fSksYS5leHRlbmQ9byx0LmV4cG9ydHM9YX0sZnVuY3Rpb24odCxlLG4pe3ZhciByOyhmdW5jdGlvbih0LGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgbz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH07KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcyh0LGUpe3JldHVybiB0LnNldChlWzBdLGVbMV0pLHR9ZnVuY3Rpb24gYSh0LGUpe3JldHVybiB0LmFkZChlKSx0fWZ1bmN0aW9uIHUodCxlLG4pe3N3aXRjaChuLmxlbmd0aCl7Y2FzZSAwOnJldHVybiB0LmNhbGwoZSk7Y2FzZSAxOnJldHVybiB0LmNhbGwoZSxuWzBdKTtjYXNlIDI6cmV0dXJuIHQuY2FsbChlLG5bMF0sblsxXSk7Y2FzZSAzOnJldHVybiB0LmNhbGwoZSxuWzBdLG5bMV0sblsyXSl9cmV0dXJuIHQuYXBwbHkoZSxuKX1mdW5jdGlvbiBsKHQsZSxuLHIpe2Zvcih2YXIgaT0tMSxvPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK2k8bzspe3ZhciBzPXRbaV07ZShyLHMsbihzKSx0KX1yZXR1cm4gcn1mdW5jdGlvbiBjKHQsZSl7Zm9yKHZhciBuPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoOysrbjxyJiZlKHRbbl0sbix0KSE9PSExOyk7cmV0dXJuIHR9ZnVuY3Rpb24gaCh0LGUpe2Zvcih2YXIgbj1udWxsPT10PzA6dC5sZW5ndGg7bi0tJiZlKHRbbl0sbix0KSE9PSExOyk7cmV0dXJuIHR9ZnVuY3Rpb24gZih0LGUpe2Zvcih2YXIgbj0tMSxyPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK248cjspaWYoIWUodFtuXSxuLHQpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGQodCxlKXtmb3IodmFyIG49LTEscj1udWxsPT10PzA6dC5sZW5ndGgsaT0wLG89W107KytuPHI7KXt2YXIgcz10W25dO2UocyxuLHQpJiYob1tpKytdPXMpfXJldHVybiBvfWZ1bmN0aW9uIGcodCxlKXtyZXR1cm4hIShudWxsPT10PzA6dC5sZW5ndGgpJiZ6KHQsZSwwKT4tMX1mdW5jdGlvbiBwKHQsZSxuKXtmb3IodmFyIHI9LTEsaT1udWxsPT10PzA6dC5sZW5ndGg7KytyPGk7KWlmKG4oZSx0W3JdKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBtKHQsZSl7Zm9yKHZhciBuPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoLGk9QXJyYXkocik7KytuPHI7KWlbbl09ZSh0W25dLG4sdCk7cmV0dXJuIGl9ZnVuY3Rpb24gdih0LGUpe2Zvcih2YXIgbj0tMSxyPWUubGVuZ3RoLGk9dC5sZW5ndGg7KytuPHI7KXRbaStuXT1lW25dO3JldHVybiB0fWZ1bmN0aW9uIF8odCxlLG4scil7dmFyIGk9LTEsbz1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHImJm8mJihuPXRbKytpXSk7KytpPG87KW49ZShuLHRbaV0saSx0KTtyZXR1cm4gbn1mdW5jdGlvbiB5KHQsZSxuLHIpe3ZhciBpPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IociYmaSYmKG49dFstLWldKTtpLS07KW49ZShuLHRbaV0saSx0KTtyZXR1cm4gbn1mdW5jdGlvbiBiKHQsZSl7Zm9yKHZhciBuPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoOysrbjxyOylpZihlKHRbbl0sbix0KSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiB4KHQpe3JldHVybiB0LnNwbGl0KCIiKX1mdW5jdGlvbiB3KHQpe3JldHVybiB0Lm1hdGNoKFVlKXx8W119ZnVuY3Rpb24gUyh0LGUsbil7dmFyIHI7cmV0dXJuIG4odCxmdW5jdGlvbih0LG4saSl7aWYoZSh0LG4saSkpcmV0dXJuIHI9biwhMX0pLHJ9ZnVuY3Rpb24gayh0LGUsbixyKXtmb3IodmFyIGk9dC5sZW5ndGgsbz1uKyhyPzE6LTEpO3I/by0tOisrbzxpOylpZihlKHRbb10sbyx0KSlyZXR1cm4gbztyZXR1cm4tMX1mdW5jdGlvbiB6KHQsZSxuKXtyZXR1cm4gZT09PWU/Sih0LGUsbik6ayh0LE0sbil9ZnVuY3Rpb24gQyh0LGUsbixyKXtmb3IodmFyIGk9bi0xLG89dC5sZW5ndGg7KytpPG87KWlmKHIodFtpXSxlKSlyZXR1cm4gaTtyZXR1cm4tMX1mdW5jdGlvbiBNKHQpe3JldHVybiB0IT09dH1mdW5jdGlvbiBqKHQsZSl7dmFyIG49bnVsbD09dD8wOnQubGVuZ3RoO3JldHVybiBuP0wodCxlKS9uOlB0fWZ1bmN0aW9uIEUodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP290OmVbdF19fWZ1bmN0aW9uIE8odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT10P290OnRbZV19fWZ1bmN0aW9uIFQodCxlLG4scixpKXtyZXR1cm4gaSh0LGZ1bmN0aW9uKHQsaSxvKXtuPXI/KHI9ITEsdCk6ZShuLHQsaSxvKX0pLG59ZnVuY3Rpb24gQSh0LGUpe3ZhciBuPXQubGVuZ3RoO2Zvcih0LnNvcnQoZSk7bi0tOyl0W25dPXRbbl0udmFsdWU7cmV0dXJuIHR9ZnVuY3Rpb24gTCh0LGUpe2Zvcih2YXIgbixyPS0xLGk9dC5sZW5ndGg7KytyPGk7KXt2YXIgbz1lKHRbcl0pO28hPT1vdCYmKG49bj09PW90P286bitvKX1yZXR1cm4gbn1mdW5jdGlvbiBSKHQsZSl7Zm9yKHZhciBuPS0xLHI9QXJyYXkodCk7KytuPHQ7KXJbbl09ZShuKTtyZXR1cm4gcn1mdW5jdGlvbiBxKHQsZSl7cmV0dXJuIG0oZSxmdW5jdGlvbihlKXtyZXR1cm5bZSx0W2VdXX0pfWZ1bmN0aW9uIE4odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfX1mdW5jdGlvbiBJKHQsZSl7cmV0dXJuIG0oZSxmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pfWZ1bmN0aW9uIFAodCxlKXtyZXR1cm4gdC5oYXMoZSl9ZnVuY3Rpb24gVyh0LGUpe2Zvcih2YXIgbj0tMSxyPXQubGVuZ3RoOysrbjxyJiZ6KGUsdFtuXSwwKT4tMTspO3JldHVybiBufWZ1bmN0aW9uIEYodCxlKXtmb3IodmFyIG49dC5sZW5ndGg7bi0tJiZ6KGUsdFtuXSwwKT4tMTspO3JldHVybiBufWZ1bmN0aW9uIEIodCxlKXtmb3IodmFyIG49dC5sZW5ndGgscj0wO24tLTspdFtuXT09PWUmJisrcjtyZXR1cm4gcn1mdW5jdGlvbiBIKHQpe3JldHVybiJcXCIrcnJbdF19ZnVuY3Rpb24gRCh0LGUpe3JldHVybiBudWxsPT10P290OnRbZV19ZnVuY3Rpb24gVSh0KXtyZXR1cm4gWG4udGVzdCh0KX1mdW5jdGlvbiBWKHQpe3JldHVybiBabi50ZXN0KHQpfWZ1bmN0aW9uICQodCl7Zm9yKHZhciBlLG49W107IShlPXQubmV4dCgpKS5kb25lOyluLnB1c2goZS52YWx1ZSk7cmV0dXJuIG59ZnVuY3Rpb24gRyh0KXt2YXIgZT0tMSxuPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0LHIpe25bKytlXT1bcix0XX0pLG59ZnVuY3Rpb24gWCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdChlKG4pKX19ZnVuY3Rpb24gWih0LGUpe2Zvcih2YXIgbj0tMSxyPXQubGVuZ3RoLGk9MCxvPVtdOysrbjxyOyl7dmFyIHM9dFtuXTtzIT09ZSYmcyE9PWZ0fHwodFtuXT1mdCxvW2krK109bil9cmV0dXJuIG99ZnVuY3Rpb24gSyh0KXt2YXIgZT0tMSxuPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0KXtuWysrZV09dH0pLG59ZnVuY3Rpb24gWSh0KXt2YXIgZT0tMSxuPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0KXtuWysrZV09W3QsdF19KSxufWZ1bmN0aW9uIEoodCxlLG4pe2Zvcih2YXIgcj1uLTEsaT10Lmxlbmd0aDsrK3I8aTspaWYodFtyXT09PWUpcmV0dXJuIHI7cmV0dXJuLTF9ZnVuY3Rpb24gUSh0LGUsbil7Zm9yKHZhciByPW4rMTtyLS07KWlmKHRbcl09PT1lKXJldHVybiByO3JldHVybiByfWZ1bmN0aW9uIHR0KHQpe3JldHVybiBVKHQpP250KHQpOmJyKHQpfWZ1bmN0aW9uIGV0KHQpe3JldHVybiBVKHQpP3J0KHQpOngodCl9ZnVuY3Rpb24gbnQodCl7Zm9yKHZhciBlPSRuLmxhc3RJbmRleD0wOyRuLnRlc3QodCk7KSsrZTtyZXR1cm4gZX1mdW5jdGlvbiBydCh0KXtyZXR1cm4gdC5tYXRjaCgkbil8fFtdfWZ1bmN0aW9uIGl0KHQpe3JldHVybiB0Lm1hdGNoKEduKXx8W119dmFyIG90LHN0PSI0LjE3LjQiLGF0PTIwMCx1dD0iVW5zdXBwb3J0ZWQgY29yZS1qcyB1c2UuIFRyeSBodHRwczovL25wbXMuaW8vc2VhcmNoP3E9cG9ueWZpbGwuIixsdD0iRXhwZWN0ZWQgYSBmdW5jdGlvbiIsY3Q9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLGh0PTUwMCxmdD0iX19sb2Rhc2hfcGxhY2Vob2xkZXJfXyIsZHQ9MSxndD0yLHB0PTQsbXQ9MSx2dD0yLF90PTEseXQ9MixidD00LHh0PTgsd3Q9MTYsU3Q9MzIsa3Q9NjQsenQ9MTI4LEN0PTI1NixNdD01MTIsanQ9MzAsRXQ9Ii4uLiIsT3Q9ODAwLFR0PTE2LEF0PTEsTHQ9MixSdD0zLHF0PTEvMCxOdD05MDA3MTk5MjU0NzQwOTkxLEl0PTEuNzk3NjkzMTM0ODYyMzE1N2UzMDgsUHQ9TmFOLFd0PTQyOTQ5NjcyOTUsRnQ9V3QtMSxCdD1XdD4+PjEsSHQ9W1siYXJ5Iix6dF0sWyJiaW5kIixfdF0sWyJiaW5kS2V5Iix5dF0sWyJjdXJyeSIseHRdLFsiY3VycnlSaWdodCIsd3RdLFsiZmxpcCIsTXRdLFsicGFydGlhbCIsU3RdLFsicGFydGlhbFJpZ2h0IixrdF0sWyJyZWFyZyIsQ3RdXSxEdD0iW29iamVjdCBBcmd1bWVudHNdIixVdD0iW29iamVjdCBBcnJheV0iLFZ0PSJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIiwkdD0iW29iamVjdCBCb29sZWFuXSIsR3Q9IltvYmplY3QgRGF0ZV0iLFh0PSJbb2JqZWN0IERPTUV4Y2VwdGlvbl0iLFp0PSJbb2JqZWN0IEVycm9yXSIsS3Q9IltvYmplY3QgRnVuY3Rpb25dIixZdD0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLEp0PSJbb2JqZWN0IE1hcF0iLFF0PSJbb2JqZWN0IE51bWJlcl0iLHRlPSJbb2JqZWN0IE51bGxdIixlZT0iW29iamVjdCBPYmplY3RdIixuZT0iW29iamVjdCBQcm9taXNlXSIscmU9IltvYmplY3QgUHJveHldIixpZT0iW29iamVjdCBSZWdFeHBdIixvZT0iW29iamVjdCBTZXRdIixzZT0iW29iamVjdCBTdHJpbmddIixhZT0iW29iamVjdCBTeW1ib2xdIix1ZT0iW29iamVjdCBVbmRlZmluZWRdIixsZT0iW29iamVjdCBXZWFrTWFwXSIsY2U9IltvYmplY3QgV2Vha1NldF0iLGhlPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsZmU9IltvYmplY3QgRGF0YVZpZXddIixkZT0iW29iamVjdCBGbG9hdDMyQXJyYXldIixnZT0iW29iamVjdCBGbG9hdDY0QXJyYXldIixwZT0iW29iamVjdCBJbnQ4QXJyYXldIixtZT0iW29iamVjdCBJbnQxNkFycmF5XSIsdmU9IltvYmplY3QgSW50MzJBcnJheV0iLF9lPSJbb2JqZWN0IFVpbnQ4QXJyYXldIix5ZT0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLGJlPSJbb2JqZWN0IFVpbnQxNkFycmF5XSIseGU9IltvYmplY3QgVWludDMyQXJyYXldIix3ZT0vXGJfX3AgXCs9ICcnOy9nLFNlPS9cYihfX3AgXCs9KSAnJyBcKy9nLGtlPS8oX19lXCguKj9cKXxcYl9fdFwpKSBcK1xuJyc7L2csemU9LyYoPzphbXB8bHR8Z3R8cXVvdHwjMzkpOy9nLENlPS9bJjw+IiddL2csTWU9UmVnRXhwKHplLnNvdXJjZSksamU9UmVnRXhwKENlLnNvdXJjZSksRWU9LzwlLShbXHNcU10rPyklPi9nLE9lPS88JShbXHNcU10rPyklPi9nLFRlPS88JT0oW1xzXFNdKz8pJT4vZyxBZT0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxMZT0vXlx3KiQvLFJlPS9eXC4vLHFlPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLE5lPS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxJZT1SZWdFeHAoTmUuc291cmNlKSxQZT0vXlxzK3xccyskL2csV2U9L15ccysvLEZlPS9ccyskLyxCZT0vXHsoPzpcblwvXCogXFt3cmFwcGVkIHdpdGggLitcXSBcKlwvKT9cbj8vLEhlPS9ce1xuXC9cKiBcW3dyYXBwZWQgd2l0aCAoLispXF0gXCovLERlPS8sPyAmIC8sVWU9L1teXHgwMC1ceDJmXHgzYS1ceDQwXHg1Yi1ceDYwXHg3Yi1ceDdmXSsvZyxWZT0vXFwoXFwpPy9nLCRlPS9cJFx7KFteXFx9XSooPzpcXC5bXlxcfV0qKSopXH0vZyxHZT0vXHcqJC8sWGU9L15bLStdMHhbMC05YS1mXSskL2ksWmU9L14wYlswMV0rJC9pLEtlPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLFllPS9eMG9bMC03XSskL2ksSmU9L14oPzowfFsxLTldXGQqKSQvLFFlPS9bXHhjMC1ceGQ2XHhkOC1ceGY2XHhmOC1ceGZmXHUwMTAwLVx1MDE3Zl0vZyx0bj0vKCReKS8sZW49L1snXG5cclx1MjAyOFx1MjAyOVxcXS9nLG5uPSJcXHVkODAwLVxcdWRmZmYiLHJuPSJcXHUwMzAwLVxcdTAzNmYiLG9uPSJcXHVmZTIwLVxcdWZlMmYiLHNuPSJcXHUyMGQwLVxcdTIwZmYiLGFuPXJuK29uK3NuLHVuPSJcXHUyNzAwLVxcdTI3YmYiLGxuPSJhLXpcXHhkZi1cXHhmNlxceGY4LVxceGZmIixjbj0iXFx4YWNcXHhiMVxceGQ3XFx4ZjciLGhuPSJcXHgwMC1cXHgyZlxceDNhLVxceDQwXFx4NWItXFx4NjBcXHg3Yi1cXHhiZiIsZm49IlxcdTIwMDAtXFx1MjA2ZiIsZG49IiBcXHRcXHgwYlxcZlxceGEwXFx1ZmVmZlxcblxcclxcdTIwMjhcXHUyMDI5XFx1MTY4MFxcdTE4MGVcXHUyMDAwXFx1MjAwMVxcdTIwMDJcXHUyMDAzXFx1MjAwNFxcdTIwMDVcXHUyMDA2XFx1MjAwN1xcdTIwMDhcXHUyMDA5XFx1MjAwYVxcdTIwMmZcXHUyMDVmXFx1MzAwMCIsZ249IkEtWlxceGMwLVxceGQ2XFx4ZDgtXFx4ZGUiLHBuPSJcXHVmZTBlXFx1ZmUwZiIsbW49Y24raG4rZm4rZG4sdm49Ilsn4oCZXSIsX249IlsiK25uKyJdIix5bj0iWyIrbW4rIl0iLGJuPSJbIithbisiXSIseG49IlxcZCsiLHduPSJbIit1bisiXSIsU249IlsiK2xuKyJdIixrbj0iW14iK25uK21uK3huK3VuK2xuK2duKyJdIix6bj0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIixDbj0iKD86IitibisifCIrem4rIikiLE1uPSJbXiIrbm4rIl0iLGpuPSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixFbj0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsT249IlsiK2duKyJdIixUbj0iXFx1MjAwZCIsQW49Iig/OiIrU24rInwiK2tuKyIpIixMbj0iKD86IitPbisifCIra24rIikiLFJuPSIoPzoiK3ZuKyIoPzpkfGxsfG18cmV8c3x0fHZlKSk/Iixxbj0iKD86Iit2bisiKD86RHxMTHxNfFJFfFN8VHxWRSkpPyIsTm49Q24rIj8iLEluPSJbIitwbisiXT8iLFBuPSIoPzoiK1RuKyIoPzoiK1tNbixqbixFbl0uam9pbigifCIpKyIpIitJbitObisiKSoiLFduPSJcXGQqKD86KD86MXN0fDJuZHwzcmR8KD8hWzEyM10pXFxkdGgpXFxiKSIsRm49IlxcZCooPzooPzoxU1R8Mk5EfDNSRHwoPyFbMTIzXSlcXGRUSClcXGIpIixCbj1JbitObitQbixIbj0iKD86Iitbd24sam4sRW5dLmpvaW4oInwiKSsiKSIrQm4sRG49Iig/OiIrW01uK2JuKyI/IixibixqbixFbixfbl0uam9pbigifCIpKyIpIixVbj1SZWdFeHAodm4sImciKSxWbj1SZWdFeHAoYm4sImciKSwkbj1SZWdFeHAoem4rIig/PSIrem4rIil8IitEbitCbiwiZyIpLEduPVJlZ0V4cChbT24rIj8iK1NuKyIrIitSbisiKD89IitbeW4sT24sIiQiXS5qb2luKCJ8IikrIikiLExuKyIrIitxbisiKD89IitbeW4sT24rQW4sIiQiXS5qb2luKCJ8IikrIikiLE9uKyI/IitBbisiKyIrUm4sT24rIisiK3FuLEZuLFduLHhuLEhuXS5qb2luKCJ8IiksImciKSxYbj1SZWdFeHAoIlsiK1RuK25uK2FuK3BuKyJdIiksWm49L1thLXpdW0EtWl18W0EtWl17Mix9W2Etel18WzAtOV1bYS16QS1aXXxbYS16QS1aXVswLTldfFteYS16QS1aMC05IF0vLEtuPVsiQXJyYXkiLCJCdWZmZXIiLCJEYXRhVmlldyIsIkRhdGUiLCJFcnJvciIsIkZsb2F0MzJBcnJheSIsIkZsb2F0NjRBcnJheSIsIkZ1bmN0aW9uIiwiSW50OEFycmF5IiwiSW50MTZBcnJheSIsIkludDMyQXJyYXkiLCJNYXAiLCJNYXRoIiwiT2JqZWN0IiwiUHJvbWlzZSIsIlJlZ0V4cCIsIlNldCIsIlN0cmluZyIsIlN5bWJvbCIsIlR5cGVFcnJvciIsIlVpbnQ4QXJyYXkiLCJVaW50OENsYW1wZWRBcnJheSIsIlVpbnQxNkFycmF5IiwiVWludDMyQXJyYXkiLCJXZWFrTWFwIiwiXyIsImNsZWFyVGltZW91dCIsImlzRmluaXRlIiwicGFyc2VJbnQiLCJzZXRUaW1lb3V0Il0sWW49LTEsSm49e307Sm5bZGVdPUpuW2dlXT1KbltwZV09Sm5bbWVdPUpuW3ZlXT1KbltfZV09Sm5beWVdPUpuW2JlXT1Kblt4ZV09ITAsSm5bRHRdPUpuW1V0XT1KbltoZV09Sm5bJHRdPUpuW2ZlXT1KbltHdF09Sm5bWnRdPUpuW0t0XT1KbltKdF09Sm5bUXRdPUpuW2VlXT1KbltpZV09Sm5bb2VdPUpuW3NlXT1KbltsZV09ITE7dmFyIFFuPXt9O1FuW0R0XT1RbltVdF09UW5baGVdPVFuW2ZlXT1RblskdF09UW5bR3RdPVFuW2RlXT1RbltnZV09UW5bcGVdPVFuW21lXT1Rblt2ZV09UW5bSnRdPVFuW1F0XT1RbltlZV09UW5baWVdPVFuW29lXT1RbltzZV09UW5bYWVdPVFuW19lXT1Rblt5ZV09UW5bYmVdPVFuW3hlXT0hMCxRbltadF09UW5bS3RdPVFuW2xlXT0hMTt2YXIgdHI9eyLDgCI6IkEiLCLDgSI6IkEiLCLDgiI6IkEiLCLDgyI6IkEiLCLDhCI6IkEiLCLDhSI6IkEiLCLDoCI6ImEiLCLDoSI6ImEiLCLDoiI6ImEiLCLDoyI6ImEiLCLDpCI6ImEiLCLDpSI6ImEiLCLDhyI6IkMiLCLDpyI6ImMiLCLDkCI6IkQiLCLDsCI6ImQiLCLDiCI6IkUiLCLDiSI6IkUiLCLDiiI6IkUiLCLDiyI6IkUiLCLDqCI6ImUiLCLDqSI6ImUiLCLDqiI6ImUiLCLDqyI6ImUiLCLDjCI6IkkiLCLDjSI6IkkiLCLDjiI6IkkiLCLDjyI6IkkiLCLDrCI6ImkiLCLDrSI6ImkiLCLDriI6ImkiLCLDryI6ImkiLCLDkSI6Ik4iLCLDsSI6Im4iLCLDkiI6Ik8iLCLDkyI6Ik8iLCLDlCI6Ik8iLCLDlSI6Ik8iLCLDliI6Ik8iLCLDmCI6Ik8iLCLDsiI6Im8iLCLDsyI6Im8iLCLDtCI6Im8iLCLDtSI6Im8iLCLDtiI6Im8iLCLDuCI6Im8iLCLDmSI6IlUiLCLDmiI6IlUiLCLDmyI6IlUiLCLDnCI6IlUiLCLDuSI6InUiLCLDuiI6InUiLCLDuyI6InUiLCLDvCI6InUiLCLDnSI6IlkiLCLDvSI6InkiLCLDvyI6InkiLCLDhiI6IkFlIiwiw6YiOiJhZSIsIsOeIjoiVGgiLCLDviI6InRoIiwiw58iOiJzcyIsIsSAIjoiQSIsIsSCIjoiQSIsIsSEIjoiQSIsIsSBIjoiYSIsIsSDIjoiYSIsIsSFIjoiYSIsIsSGIjoiQyIsIsSIIjoiQyIsIsSKIjoiQyIsIsSMIjoiQyIsIsSHIjoiYyIsIsSJIjoiYyIsIsSLIjoiYyIsIsSNIjoiYyIsIsSOIjoiRCIsIsSQIjoiRCIsIsSPIjoiZCIsIsSRIjoiZCIsIsSSIjoiRSIsIsSUIjoiRSIsIsSWIjoiRSIsIsSYIjoiRSIsIsSaIjoiRSIsIsSTIjoiZSIsIsSVIjoiZSIsIsSXIjoiZSIsIsSZIjoiZSIsIsSbIjoiZSIsIsScIjoiRyIsIsSeIjoiRyIsIsSgIjoiRyIsIsSiIjoiRyIsIsSdIjoiZyIsIsSfIjoiZyIsIsShIjoiZyIsIsSjIjoiZyIsIsSkIjoiSCIsIsSmIjoiSCIsIsSlIjoiaCIsIsSnIjoiaCIsIsSoIjoiSSIsIsSqIjoiSSIsIsSsIjoiSSIsIsSuIjoiSSIsIsSwIjoiSSIsIsSpIjoiaSIsIsSrIjoiaSIsIsStIjoiaSIsIsSvIjoiaSIsIsSxIjoiaSIsIsS0IjoiSiIsIsS1IjoiaiIsIsS2IjoiSyIsIsS3IjoiayIsIsS4IjoiayIsIsS5IjoiTCIsIsS7IjoiTCIsIsS9IjoiTCIsIsS/IjoiTCIsIsWBIjoiTCIsIsS6IjoibCIsIsS8IjoibCIsIsS+IjoibCIsIsWAIjoibCIsIsWCIjoibCIsIsWDIjoiTiIsIsWFIjoiTiIsIsWHIjoiTiIsIsWKIjoiTiIsIsWEIjoibiIsIsWGIjoibiIsIsWIIjoibiIsIsWLIjoibiIsIsWMIjoiTyIsIsWOIjoiTyIsIsWQIjoiTyIsIsWNIjoibyIsIsWPIjoibyIsIsWRIjoibyIsIsWUIjoiUiIsIsWWIjoiUiIsIsWYIjoiUiIsIsWVIjoiciIsIsWXIjoiciIsIsWZIjoiciIsIsWaIjoiUyIsIsWcIjoiUyIsIsWeIjoiUyIsIsWgIjoiUyIsIsWbIjoicyIsIsWdIjoicyIsIsWfIjoicyIsIsWhIjoicyIsIsWiIjoiVCIsIsWkIjoiVCIsIsWmIjoiVCIsIsWjIjoidCIsIsWlIjoidCIsIsWnIjoidCIsIsWoIjoiVSIsIsWqIjoiVSIsIsWsIjoiVSIsIsWuIjoiVSIsIsWwIjoiVSIsIsWyIjoiVSIsIsWpIjoidSIsIsWrIjoidSIsIsWtIjoidSIsIsWvIjoidSIsIsWxIjoidSIsIsWzIjoidSIsIsW0IjoiVyIsIsW1IjoidyIsIsW2IjoiWSIsIsW3IjoieSIsIsW4IjoiWSIsIsW5IjoiWiIsIsW7IjoiWiIsIsW9IjoiWiIsIsW6IjoieiIsIsW8IjoieiIsIsW+IjoieiIsIsSyIjoiSUoiLCLEsyI6ImlqIiwixZIiOiJPZSIsIsWTIjoib2UiLCLFiSI6IiduIiwixb8iOiJzIn0sZXI9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyIsIiciOiImIzM5OyJ9LG5yPXsiJmFtcDsiOiImIiwiJmx0OyI6IjwiLCImZ3Q7IjoiPiIsIiZxdW90OyI6JyInLCImIzM5OyI6IicifSxycj17IlxcIjoiXFwiLCInIjoiJyIsIlxuIjoibiIsIlxyIjoiciIsIlx1MjAyOCI6InUyMDI4IiwiXHUyMDI5IjoidTIwMjkifSxpcj1wYXJzZUZsb2F0LG9yPXBhcnNlSW50LHNyPSJvYmplY3QiPT0oInVuZGVmaW5lZCI9PXR5cGVvZiB0PyJ1bmRlZmluZWQiOm8odCkpJiZ0JiZ0Lk9iamVjdD09PU9iamVjdCYmdCxhcj0ib2JqZWN0Ij09KCJ1bmRlZmluZWQiPT10eXBlb2Ygc2VsZj8idW5kZWZpbmVkIjpvKHNlbGYpKSYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsdXI9c3J8fGFyfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLGxyPSJvYmplY3QiPT1vKGUpJiZlJiYhZS5ub2RlVHlwZSYmZSxjcj1sciYmIm9iamVjdCI9PW8oaSkmJmkmJiFpLm5vZGVUeXBlJiZpLGhyPWNyJiZjci5leHBvcnRzPT09bHIsZnI9aHImJnNyLnByb2Nlc3MsZHI9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGZyJiZmci5iaW5kaW5nJiZmci5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2godCl7fX0oKSxncj1kciYmZHIuaXNBcnJheUJ1ZmZlcixwcj1kciYmZHIuaXNEYXRlLG1yPWRyJiZkci5pc01hcCx2cj1kciYmZHIuaXNSZWdFeHAsX3I9ZHImJmRyLmlzU2V0LHlyPWRyJiZkci5pc1R5cGVkQXJyYXksYnI9RSgibGVuZ3RoIikseHI9Tyh0ciksd3I9TyhlciksU3I9Tyhuciksa3I9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe2lmKGN1KHQpJiYhd2YodCkmJiEodCBpbnN0YW5jZW9mIHgpKXtpZih0IGluc3RhbmNlb2YgaSlyZXR1cm4gdDtpZih4Yy5jYWxsKHQsIl9fd3JhcHBlZF9fIikpcmV0dXJuIGFzKHQpfXJldHVybiBuZXcgaSh0KX1mdW5jdGlvbiByKCl7fWZ1bmN0aW9uIGkodCxlKXt0aGlzLl9fd3JhcHBlZF9fPXQsdGhpcy5fX2FjdGlvbnNfXz1bXSx0aGlzLl9fY2hhaW5fXz0hIWUsdGhpcy5fX2luZGV4X189MCx0aGlzLl9fdmFsdWVzX189b3R9ZnVuY3Rpb24geCh0KXt0aGlzLl9fd3JhcHBlZF9fPXQsdGhpcy5fX2FjdGlvbnNfXz1bXSx0aGlzLl9fZGlyX189MSx0aGlzLl9fZmlsdGVyZWRfXz0hMSx0aGlzLl9faXRlcmF0ZWVzX189W10sdGhpcy5fX3Rha2VDb3VudF9fPVd0LHRoaXMuX192aWV3c19fPVtdfWZ1bmN0aW9uIE8oKXt2YXIgdD1uZXcgeCh0aGlzLl9fd3JhcHBlZF9fKTtyZXR1cm4gdC5fX2FjdGlvbnNfXz1CaSh0aGlzLl9fYWN0aW9uc19fKSx0Ll9fZGlyX189dGhpcy5fX2Rpcl9fLHQuX19maWx0ZXJlZF9fPXRoaXMuX19maWx0ZXJlZF9fLHQuX19pdGVyYXRlZXNfXz1CaSh0aGlzLl9faXRlcmF0ZWVzX18pLHQuX190YWtlQ291bnRfXz10aGlzLl9fdGFrZUNvdW50X18sdC5fX3ZpZXdzX189QmkodGhpcy5fX3ZpZXdzX18pLHR9ZnVuY3Rpb24gSigpe2lmKHRoaXMuX19maWx0ZXJlZF9fKXt2YXIgdD1uZXcgeCh0aGlzKTt0Ll9fZGlyX189LTEsdC5fX2ZpbHRlcmVkX189ITB9ZWxzZSB0PXRoaXMuY2xvbmUoKSx0Ll9fZGlyX18qPS0xO3JldHVybiB0fWZ1bmN0aW9uIG50KCl7dmFyIHQ9dGhpcy5fX3dyYXBwZWRfXy52YWx1ZSgpLGU9dGhpcy5fX2Rpcl9fLG49d2YodCkscj1lPDAsaT1uP3QubGVuZ3RoOjAsbz1UbygwLGksdGhpcy5fX3ZpZXdzX18pLHM9by5zdGFydCxhPW8uZW5kLHU9YS1zLGw9cj9hOnMtMSxjPXRoaXMuX19pdGVyYXRlZXNfXyxoPWMubGVuZ3RoLGY9MCxkPVljKHUsdGhpcy5fX3Rha2VDb3VudF9fKTtpZighbnx8IXImJmk9PXUmJmQ9PXUpcmV0dXJuIHdpKHQsdGhpcy5fX2FjdGlvbnNfXyk7dmFyIGc9W107dDpmb3IoO3UtLSYmZjxkOyl7bCs9ZTtmb3IodmFyIHA9LTEsbT10W2xdOysrcDxoOyl7dmFyIHY9Y1twXSxfPXYuaXRlcmF0ZWUseT12LnR5cGUsYj1fKG0pO2lmKHk9PUx0KW09YjtlbHNlIGlmKCFiKXtpZih5PT1BdCljb250aW51ZSB0O2JyZWFrIHR9fWdbZisrXT1tfXJldHVybiBnfWZ1bmN0aW9uIHJ0KHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgcj10W2VdO3RoaXMuc2V0KHJbMF0sclsxXSl9fWZ1bmN0aW9uIFVlKCl7dGhpcy5fX2RhdGFfXz1haD9haChudWxsKTp7fSx0aGlzLnNpemU9MH1mdW5jdGlvbiBubih0KXt2YXIgZT10aGlzLmhhcyh0KSYmZGVsZXRlIHRoaXMuX19kYXRhX19bdF07cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX1mdW5jdGlvbiBybih0KXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKGFoKXt2YXIgbj1lW3RdO3JldHVybiBuPT09Y3Q/b3Q6bn1yZXR1cm4geGMuY2FsbChlLHQpP2VbdF06b3R9ZnVuY3Rpb24gb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXztyZXR1cm4gYWg/ZVt0XSE9PW90OnhjLmNhbGwoZSx0KX1mdW5jdGlvbiBzbih0LGUpe3ZhciBuPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXModCk/MDoxLG5bdF09YWgmJmU9PT1vdD9jdDplLHRoaXN9ZnVuY3Rpb24gYW4odCl7dmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8bjspe3ZhciByPXRbZV07dGhpcy5zZXQoclswXSxyWzFdKX19ZnVuY3Rpb24gdW4oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfWZ1bmN0aW9uIGxuKHQpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1SbihlLHQpO3JldHVybiEobjwwfHwobj09ZS5sZW5ndGgtMT9lLnBvcCgpOnFjLmNhbGwoZSxuLDEpLC0tdGhpcy5zaXplLDApKX1mdW5jdGlvbiBjbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLG49Um4oZSx0KTtyZXR1cm4gbjwwP290OmVbbl1bMV19ZnVuY3Rpb24gaG4odCl7cmV0dXJuIFJuKHRoaXMuX19kYXRhX18sdCk+LTF9ZnVuY3Rpb24gZm4odCxlKXt2YXIgbj10aGlzLl9fZGF0YV9fLHI9Um4obix0KTtyZXR1cm4gcjwwPygrK3RoaXMuc2l6ZSxuLnB1c2goW3QsZV0pKTpuW3JdWzFdPWUsdGhpc31mdW5jdGlvbiBkbih0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxuOyl7dmFyIHI9dFtlXTt0aGlzLnNldChyWzBdLHJbMV0pfX1mdW5jdGlvbiBnbigpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IHJ0LG1hcDpuZXcocmh8fGFuKSxzdHJpbmc6bmV3IHJ0fX1mdW5jdGlvbiBwbih0KXt2YXIgZT1Nbyh0aGlzLHQpLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfWZ1bmN0aW9uIG1uKHQpe3JldHVybiBNbyh0aGlzLHQpLmdldCh0KX1mdW5jdGlvbiB2bih0KXtyZXR1cm4gTW8odGhpcyx0KS5oYXModCl9ZnVuY3Rpb24gX24odCxlKXt2YXIgbj1Nbyh0aGlzLHQpLHI9bi5zaXplO3JldHVybiBuLnNldCh0LGUpLHRoaXMuc2l6ZSs9bi5zaXplPT1yPzA6MSx0aGlzfWZ1bmN0aW9uIHluKHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBkbjsrK2U8bjspdGhpcy5hZGQodFtlXSl9ZnVuY3Rpb24gYm4odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KHQsY3QpLHRoaXN9ZnVuY3Rpb24geG4odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfWZ1bmN0aW9uIHduKHQpe3ZhciBlPXRoaXMuX19kYXRhX189bmV3IGFuKHQpO3RoaXMuc2l6ZT1lLnNpemV9ZnVuY3Rpb24gU24oKXt0aGlzLl9fZGF0YV9fPW5ldyBhbix0aGlzLnNpemU9MH1mdW5jdGlvbiBrbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fLG49ZS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZT1lLnNpemUsbn1mdW5jdGlvbiB6bih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQodCl9ZnVuY3Rpb24gQ24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfWZ1bmN0aW9uIE1uKHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXztpZihuIGluc3RhbmNlb2YgYW4pe3ZhciByPW4uX19kYXRhX187aWYoIXJofHxyLmxlbmd0aDxhdC0xKXJldHVybiByLnB1c2goW3QsZV0pLHRoaXMuc2l6ZT0rK24uc2l6ZSx0aGlzO249dGhpcy5fX2RhdGFfXz1uZXcgZG4ocil9cmV0dXJuIG4uc2V0KHQsZSksdGhpcy5zaXplPW4uc2l6ZSx0aGlzfWZ1bmN0aW9uIGpuKHQsZSl7dmFyIG49d2YodCkscj0hbiYmeGYodCksaT0hbiYmIXImJmtmKHQpLG89IW4mJiFyJiYhaSYmRWYodCkscz1ufHxyfHxpfHxvLGE9cz9SKHQubGVuZ3RoLGdjKTpbXSx1PWEubGVuZ3RoO2Zvcih2YXIgbCBpbiB0KSFlJiYheGMuY2FsbCh0LGwpfHxzJiYoImxlbmd0aCI9PWx8fGkmJigib2Zmc2V0Ij09bHx8InBhcmVudCI9PWwpfHxvJiYoImJ1ZmZlciI9PWx8fCJieXRlTGVuZ3RoIj09bHx8ImJ5dGVPZmZzZXQiPT1sKXx8V28obCx1KSl8fGEucHVzaChsKTtyZXR1cm4gYX1mdW5jdGlvbiBFbih0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZT90W3JpKDAsZS0xKV06b3R9ZnVuY3Rpb24gT24odCxlKXtyZXR1cm4gcnMoQmkodCksRm4oZSwwLHQubGVuZ3RoKSl9ZnVuY3Rpb24gVG4odCl7cmV0dXJuIHJzKEJpKHQpKX1mdW5jdGlvbiBBbih0LGUsbil7KG49PT1vdHx8S2EodFtlXSxuKSkmJihuIT09b3R8fGUgaW4gdCl8fFBuKHQsZSxuKX1mdW5jdGlvbiBMbih0LGUsbil7dmFyIHI9dFtlXTt4Yy5jYWxsKHQsZSkmJkthKHIsbikmJihuIT09b3R8fGUgaW4gdCl8fFBuKHQsZSxuKX1mdW5jdGlvbiBSbih0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aDtuLS07KWlmKEthKHRbbl1bMF0sZSkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gcW4odCxlLG4scil7cmV0dXJuIHloKHQsZnVuY3Rpb24odCxpLG8pe2Uocix0LG4odCksbyl9KSxyfWZ1bmN0aW9uIE5uKHQsZSl7cmV0dXJuIHQmJkhpKGUsVnUoZSksdCl9ZnVuY3Rpb24gSW4odCxlKXtyZXR1cm4gdCYmSGkoZSwkdShlKSx0KX1mdW5jdGlvbiBQbih0LGUsbil7Il9fcHJvdG9fXyI9PWUmJldjP1djKHQsZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6bix3cml0YWJsZTohMH0pOnRbZV09bn1mdW5jdGlvbiBXbih0LGUpe2Zvcih2YXIgbj0tMSxyPWUubGVuZ3RoLGk9YWMociksbz1udWxsPT10OysrbjxyOylpW25dPW8/b3Q6SHUodCxlW25dKTtyZXR1cm4gaX1mdW5jdGlvbiBGbih0LGUsbil7cmV0dXJuIHQ9PT10JiYobiE9PW90JiYodD10PD1uP3Q6biksZSE9PW90JiYodD10Pj1lP3Q6ZSkpLHR9ZnVuY3Rpb24gQm4odCxlLG4scixpLG8pe3ZhciBzLGE9ZSZkdCx1PWUmZ3QsbD1lJnB0O2lmKG4mJihzPWk/bih0LHIsaSxvKTpuKHQpKSxzIT09b3QpcmV0dXJuIHM7aWYoIWx1KHQpKXJldHVybiB0O3ZhciBoPXdmKHQpO2lmKGgpe2lmKHM9Um8odCksIWEpcmV0dXJuIEJpKHQscyl9ZWxzZXt2YXIgZj1UaCh0KSxkPWY9PUt0fHxmPT1ZdDtpZihrZih0KSlyZXR1cm4gRWkodCxhKTtpZihmPT1lZXx8Zj09RHR8fGQmJiFpKXtpZihzPXV8fGQ/e306cW8odCksIWEpcmV0dXJuIHU/VWkodCxJbihzLHQpKTpEaSh0LE5uKHMsdCkpfWVsc2V7aWYoIVFuW2ZdKXJldHVybiBpP3Q6e307cz1Obyh0LGYsQm4sYSl9fW98fChvPW5ldyB3bik7dmFyIGc9by5nZXQodCk7aWYoZylyZXR1cm4gZztvLnNldCh0LHMpO3ZhciBwPWw/dT9Tbzp3bzp1PyR1OlZ1LG09aD9vdDpwKHQpO3JldHVybiBjKG18fHQsZnVuY3Rpb24ocixpKXttJiYoaT1yLHI9dFtpXSksTG4ocyxpLEJuKHIsZSxuLGksdCxvKSl9KSxzfWZ1bmN0aW9uIEhuKHQpe3ZhciBlPVZ1KHQpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gRG4obix0LGUpfX1mdW5jdGlvbiBEbih0LGUsbil7dmFyIHI9bi5sZW5ndGg7aWYobnVsbD09dClyZXR1cm4hcjtmb3IodD1mYyh0KTtyLS07KXt2YXIgaT1uW3JdLG89ZVtpXSxzPXRbaV07aWYocz09PW90JiYhKGkgaW4gdCl8fCFvKHMpKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uICRuKHQsZSxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgcGMobHQpO3JldHVybiBSaChmdW5jdGlvbigpe3QuYXBwbHkob3Qsbil9LGUpfWZ1bmN0aW9uIEduKHQsZSxuLHIpe3ZhciBpPS0xLG89ZyxzPSEwLGE9dC5sZW5ndGgsdT1bXSxsPWUubGVuZ3RoO2lmKCFhKXJldHVybiB1O24mJihlPW0oZSxOKG4pKSkscj8obz1wLHM9ITEpOmUubGVuZ3RoPj1hdCYmKG89UCxzPSExLGU9bmV3IHluKGUpKTt0OmZvcig7KytpPGE7KXt2YXIgYz10W2ldLGg9bnVsbD09bj9jOm4oYyk7aWYoYz1yfHwwIT09Yz9jOjAscyYmaD09PWgpe2Zvcih2YXIgZj1sO2YtLTspaWYoZVtmXT09PWgpY29udGludWUgdDt1LnB1c2goYyl9ZWxzZSBvKGUsaCxyKXx8dS5wdXNoKGMpfXJldHVybiB1fWZ1bmN0aW9uIFhuKHQsZSl7dmFyIG49ITA7cmV0dXJuIHloKHQsZnVuY3Rpb24odCxyLGkpe3JldHVybiBuPSEhZSh0LHIsaSl9KSxufWZ1bmN0aW9uIFpuKHQsZSxuKXtmb3IodmFyIHI9LTEsaT10Lmxlbmd0aDsrK3I8aTspe3ZhciBvPXRbcl0scz1lKG8pO2lmKG51bGwhPXMmJihhPT09b3Q/cz09PXMmJiF4dShzKTpuKHMsYSkpKXZhciBhPXMsdT1vfXJldHVybiB1fWZ1bmN0aW9uIHRyKHQsZSxuLHIpe3ZhciBpPXQubGVuZ3RoO2ZvcihuPU11KG4pLG48MCYmKG49LW4+aT8wOmkrbikscj1yPT09b3R8fHI+aT9pOk11KHIpLHI8MCYmKHIrPWkpLHI9bj5yPzA6anUocik7bjxyOyl0W24rK109ZTtyZXR1cm4gdH1mdW5jdGlvbiBlcih0LGUpe3ZhciBuPVtdO3JldHVybiB5aCh0LGZ1bmN0aW9uKHQscixpKXtlKHQscixpKSYmbi5wdXNoKHQpfSksbn1mdW5jdGlvbiBucih0LGUsbixyLGkpe3ZhciBvPS0xLHM9dC5sZW5ndGg7Zm9yKG58fChuPVBvKSxpfHwoaT1bXSk7KytvPHM7KXt2YXIgYT10W29dO2U+MCYmbihhKT9lPjE/bnIoYSxlLTEsbixyLGkpOnYoaSxhKTpyfHwoaVtpLmxlbmd0aF09YSl9cmV0dXJuIGl9ZnVuY3Rpb24gcnIodCxlKXtyZXR1cm4gdCYmeGgodCxlLFZ1KX1mdW5jdGlvbiBzcih0LGUpe3JldHVybiB0JiZ3aCh0LGUsVnUpfWZ1bmN0aW9uIGFyKHQsZSl7cmV0dXJuIGQoZSxmdW5jdGlvbihlKXtyZXR1cm4gc3UodFtlXSl9KX1mdW5jdGlvbiBscih0LGUpe2U9TWkoZSx0KTtmb3IodmFyIG49MCxyPWUubGVuZ3RoO251bGwhPXQmJm48cjspdD10W2lzKGVbbisrXSldO3JldHVybiBuJiZuPT1yP3Q6b3R9ZnVuY3Rpb24gY3IodCxlLG4pe3ZhciByPWUodCk7cmV0dXJuIHdmKHQpP3I6dihyLG4odCkpfWZ1bmN0aW9uIGZyKHQpe3JldHVybiBudWxsPT10P3Q9PT1vdD91ZTp0ZTpQYyYmUGMgaW4gZmModCk/T28odCk6WW8odCl9ZnVuY3Rpb24gZHIodCxlKXtyZXR1cm4gdD5lfWZ1bmN0aW9uIGJyKHQsZSl7cmV0dXJuIG51bGwhPXQmJnhjLmNhbGwodCxlKX1mdW5jdGlvbiBrcih0LGUpe3JldHVybiBudWxsIT10JiZlIGluIGZjKHQpfWZ1bmN0aW9uIENyKHQsZSxuKXtyZXR1cm4gdD49WWMoZSxuKSYmdDxLYyhlLG4pfWZ1bmN0aW9uIE1yKHQsZSxuKXtmb3IodmFyIHI9bj9wOmcsaT10WzBdLmxlbmd0aCxvPXQubGVuZ3RoLHM9byxhPWFjKG8pLHU9MS8wLGw9W107cy0tOyl7dmFyIGM9dFtzXTtzJiZlJiYoYz1tKGMsTihlKSkpLHU9WWMoYy5sZW5ndGgsdSksYVtzXT0hbiYmKGV8fGk+PTEyMCYmYy5sZW5ndGg+PTEyMCk/bmV3IHluKHMmJmMpOm90fWM9dFswXTt2YXIgaD0tMSxmPWFbMF07dDpmb3IoOysraDxpJiZsLmxlbmd0aDx1Oyl7dmFyIGQ9Y1toXSx2PWU/ZShkKTpkO2lmKGQ9bnx8MCE9PWQ/ZDowLCEoZj9QKGYsdik6cihsLHYsbikpKXtmb3Iocz1vOy0tczspe3ZhciBfPWFbc107aWYoIShfP1AoXyx2KTpyKHRbc10sdixuKSkpY29udGludWUgdH1mJiZmLnB1c2godiksbC5wdXNoKGQpfX1yZXR1cm4gbH1mdW5jdGlvbiBqcih0LGUsbixyKXtyZXR1cm4gcnIodCxmdW5jdGlvbih0LGksbyl7ZShyLG4odCksaSxvKX0pLHJ9ZnVuY3Rpb24gRXIodCxlLG4pe2U9TWkoZSx0KSx0PVFvKHQsZSk7dmFyIHI9bnVsbD09dD90OnRbaXMoQ3MoZSkpXTtyZXR1cm4gbnVsbD09cj9vdDp1KHIsdCxuKX1mdW5jdGlvbiBPcih0KXtyZXR1cm4gY3UodCkmJmZyKHQpPT1EdH1mdW5jdGlvbiBUcih0KXtyZXR1cm4gY3UodCkmJmZyKHQpPT1oZX1mdW5jdGlvbiBBcih0KXtyZXR1cm4gY3UodCkmJmZyKHQpPT1HdH1mdW5jdGlvbiBMcih0LGUsbixyLGkpe3JldHVybiB0PT09ZXx8KG51bGw9PXR8fG51bGw9PWV8fCFjdSh0KSYmIWN1KGUpP3QhPT10JiZlIT09ZTpScih0LGUsbixyLExyLGkpKX1mdW5jdGlvbiBScih0LGUsbixyLGksbyl7dmFyIHM9d2YodCksYT13ZihlKSx1PXM/VXQ6VGgodCksbD1hP1V0OlRoKGUpO3U9dT09RHQ/ZWU6dSxsPWw9PUR0P2VlOmw7dmFyIGM9dT09ZWUsaD1sPT1lZSxmPXU9PWw7aWYoZiYma2YodCkpe2lmKCFrZihlKSlyZXR1cm4hMTtzPSEwLGM9ITF9aWYoZiYmIWMpcmV0dXJuIG98fChvPW5ldyB3biksc3x8RWYodCk/X28odCxlLG4scixpLG8pOnlvKHQsZSx1LG4scixpLG8pO2lmKCEobiZtdCkpe3ZhciBkPWMmJnhjLmNhbGwodCwiX193cmFwcGVkX18iKSxnPWgmJnhjLmNhbGwoZSwiX193cmFwcGVkX18iKTtpZihkfHxnKXt2YXIgcD1kP3QudmFsdWUoKTp0LG09Zz9lLnZhbHVlKCk6ZTtyZXR1cm4gb3x8KG89bmV3IHduKSxpKHAsbSxuLHIsbyl9fXJldHVybiEhZiYmKG98fChvPW5ldyB3biksYm8odCxlLG4scixpLG8pKX1mdW5jdGlvbiBxcih0KXtyZXR1cm4gY3UodCkmJlRoKHQpPT1KdH1mdW5jdGlvbiBOcih0LGUsbixyKXt2YXIgaT1uLmxlbmd0aCxvPWkscz0hcjtpZihudWxsPT10KXJldHVybiFvO2Zvcih0PWZjKHQpO2ktLTspe3ZhciBhPW5baV07aWYocyYmYVsyXT9hWzFdIT09dFthWzBdXTohKGFbMF1pbiB0KSlyZXR1cm4hMX1mb3IoOysraTxvOyl7YT1uW2ldO3ZhciB1PWFbMF0sbD10W3VdLGM9YVsxXTtpZihzJiZhWzJdKXtpZihsPT09b3QmJiEodSBpbiB0KSlyZXR1cm4hMX1lbHNle3ZhciBoPW5ldyB3bjtpZihyKXZhciBmPXIobCxjLHUsdCxlLGgpO2lmKCEoZj09PW90P0xyKGMsbCxtdHx2dCxyLGgpOmYpKXJldHVybiExfX1yZXR1cm4hMH1mdW5jdGlvbiBJcih0KXtyZXR1cm4hKCFsdSh0KXx8VW8odCkpJiYoc3UodCk/TWM6S2UpLnRlc3Qob3ModCkpfWZ1bmN0aW9uIFByKHQpe3JldHVybiBjdSh0KSYmZnIodCk9PWllfWZ1bmN0aW9uIFdyKHQpe3JldHVybiBjdSh0KSYmVGgodCk9PW9lfWZ1bmN0aW9uIEZyKHQpe3JldHVybiBjdSh0KSYmdXUodC5sZW5ndGgpJiYhIUpuW2ZyKHQpXX1mdW5jdGlvbiBCcih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGw9PXQ/cWw6Im9iamVjdCI9PSgidW5kZWZpbmVkIj09dHlwZW9mIHQ/InVuZGVmaW5lZCI6byh0KSk/d2YodCk/R3IodFswXSx0WzFdKTokcih0KTpEbCh0KX1mdW5jdGlvbiBIcih0KXtpZighVm8odCkpcmV0dXJuIFpjKHQpO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiBmYyh0KSl4Yy5jYWxsKHQsbikmJiJjb25zdHJ1Y3RvciIhPW4mJmUucHVzaChuKTtyZXR1cm4gZX1mdW5jdGlvbiBEcih0KXtpZighbHUodCkpcmV0dXJuIEtvKHQpO3ZhciBlPVZvKHQpLG49W107Zm9yKHZhciByIGluIHQpKCJjb25zdHJ1Y3RvciIhPXJ8fCFlJiZ4Yy5jYWxsKHQscikpJiZuLnB1c2gocik7cmV0dXJuIG59ZnVuY3Rpb24gVXIodCxlKXtyZXR1cm4gdDxlfWZ1bmN0aW9uIFZyKHQsZSl7dmFyIG49LTEscj1ZYSh0KT9hYyh0Lmxlbmd0aCk6W107cmV0dXJuIHloKHQsZnVuY3Rpb24odCxpLG8pe3JbKytuXT1lKHQsaSxvKX0pLHJ9ZnVuY3Rpb24gJHIodCl7dmFyIGU9am8odCk7cmV0dXJuIDE9PWUubGVuZ3RoJiZlWzBdWzJdP0dvKGVbMF1bMF0sZVswXVsxXSk6ZnVuY3Rpb24obil7cmV0dXJuIG49PT10fHxOcihuLHQsZSl9fWZ1bmN0aW9uIEdyKHQsZSl7cmV0dXJuIEJvKHQpJiYkbyhlKT9Hbyhpcyh0KSxlKTpmdW5jdGlvbihuKXt2YXIgcj1IdShuLHQpO3JldHVybiByPT09b3QmJnI9PT1lP1V1KG4sdCk6THIoZSxyLG10fHZ0KX19ZnVuY3Rpb24gWHIodCxlLG4scixpKXt0IT09ZSYmeGgoZSxmdW5jdGlvbihvLHMpe2lmKGx1KG8pKWl8fChpPW5ldyB3biksWnIodCxlLHMsbixYcixyLGkpO2Vsc2V7dmFyIGE9cj9yKHRbc10sbyxzKyIiLHQsZSxpKTpvdDthPT09b3QmJihhPW8pLEFuKHQscyxhKX19LCR1KX1mdW5jdGlvbiBacih0LGUsbixyLGksbyxzKXt2YXIgYT10W25dLHU9ZVtuXSxsPXMuZ2V0KHUpO2lmKGwpcmV0dXJuIHZvaWQgQW4odCxuLGwpO3ZhciBjPW8/byhhLHUsbisiIix0LGUscyk6b3QsaD1jPT09b3Q7aWYoaCl7dmFyIGY9d2YodSksZD0hZiYma2YodSksZz0hZiYmIWQmJkVmKHUpO2M9dSxmfHxkfHxnP3dmKGEpP2M9YTpKYShhKT9jPUJpKGEpOmQ/KGg9ITEsYz1FaSh1LCEwKSk6Zz8oaD0hMSxjPU5pKHUsITApKTpjPVtdOl91KHUpfHx4Zih1KT8oYz1hLHhmKGEpP2M9T3UoYSk6KCFsdShhKXx8ciYmc3UoYSkpJiYoYz1xbyh1KSkpOmg9ITF9aCYmKHMuc2V0KHUsYyksaShjLHUscixvLHMpLHMuZGVsZXRlKHUpKSxBbih0LG4sYyl9ZnVuY3Rpb24gS3IodCxlKXt2YXIgbj10Lmxlbmd0aDtpZihuKXJldHVybiBlKz1lPDA/bjowLFdvKGUsbik/dFtlXTpvdH1mdW5jdGlvbiBZcih0LGUsbil7dmFyIHI9LTE7cmV0dXJuIGU9bShlLmxlbmd0aD9lOltxbF0sTihDbygpKSksQShWcih0LGZ1bmN0aW9uKHQsbixpKXtyZXR1cm57Y3JpdGVyaWE6bShlLGZ1bmN0aW9uKGUpe3JldHVybiBlKHQpfSksaW5kZXg6KytyLHZhbHVlOnR9fSksZnVuY3Rpb24odCxlKXtyZXR1cm4gUGkodCxlLG4pfSl9ZnVuY3Rpb24gSnIodCxlKXtyZXR1cm4gUXIodCxlLGZ1bmN0aW9uKGUsbil7cmV0dXJuIFV1KHQsbil9KX1mdW5jdGlvbiBRcih0LGUsbil7Zm9yKHZhciByPS0xLGk9ZS5sZW5ndGgsbz17fTsrK3I8aTspe3ZhciBzPWVbcl0sYT1scih0LHMpO24oYSxzKSYmbGkobyxNaShzLHQpLGEpfXJldHVybiBvfWZ1bmN0aW9uIHRpKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gbHIoZSx0KX19ZnVuY3Rpb24gZWkodCxlLG4scil7dmFyIGk9cj9DOnosbz0tMSxzPWUubGVuZ3RoLGE9dDtmb3IodD09PWUmJihlPUJpKGUpKSxuJiYoYT1tKHQsTihuKSkpOysrbzxzOylmb3IodmFyIHU9MCxsPWVbb10sYz1uP24obCk6bDsodT1pKGEsYyx1LHIpKT4tMTspYSE9PXQmJnFjLmNhbGwoYSx1LDEpLHFjLmNhbGwodCx1LDEpO3JldHVybiB0fWZ1bmN0aW9uIG5pKHQsZSl7Zm9yKHZhciBuPXQ/ZS5sZW5ndGg6MCxyPW4tMTtuLS07KXt2YXIgaT1lW25dO2lmKG49PXJ8fGkhPT1vKXt2YXIgbz1pO1dvKGkpP3FjLmNhbGwodCxpLDEpOnlpKHQsaSl9fXJldHVybiB0fWZ1bmN0aW9uIHJpKHQsZSl7cmV0dXJuIHQrVWModGgoKSooZS10KzEpKX1mdW5jdGlvbiBpaSh0LGUsbixyKXtmb3IodmFyIGk9LTEsbz1LYyhEYygoZS10KS8obnx8MSkpLDApLHM9YWMobyk7by0tOylzW3I/bzorK2ldPXQsdCs9bjtyZXR1cm4gc31mdW5jdGlvbiBvaSh0LGUpe3ZhciBuPSIiO2lmKCF0fHxlPDF8fGU+TnQpcmV0dXJuIG47ZG8gZSUyJiYobis9dCksZT1VYyhlLzIpLGUmJih0Kz10KTt3aGlsZShlKTtyZXR1cm4gbn1mdW5jdGlvbiBzaSh0LGUpe3JldHVybiBxaChKbyh0LGUscWwpLHQrIiIpfWZ1bmN0aW9uIGFpKHQpe3JldHVybiBFbihpbCh0KSl9ZnVuY3Rpb24gdWkodCxlKXt2YXIgbj1pbCh0KTtyZXR1cm4gcnMobixGbihlLDAsbi5sZW5ndGgpKX1mdW5jdGlvbiBsaSh0LGUsbixyKXtpZighbHUodCkpcmV0dXJuIHQ7ZT1NaShlLHQpO2Zvcih2YXIgaT0tMSxvPWUubGVuZ3RoLHM9by0xLGE9dDtudWxsIT1hJiYrK2k8bzspe3ZhciB1PWlzKGVbaV0pLGw9bjtpZihpIT1zKXt2YXIgYz1hW3VdO2w9cj9yKGMsdSxhKTpvdCxsPT09b3QmJihsPWx1KGMpP2M6V28oZVtpKzFdKT9bXTp7fSl9TG4oYSx1LGwpLGE9YVt1XX1yZXR1cm4gdH1mdW5jdGlvbiBjaSh0KXtyZXR1cm4gcnMoaWwodCkpfWZ1bmN0aW9uIGhpKHQsZSxuKXt2YXIgcj0tMSxpPXQubGVuZ3RoO2U8MCYmKGU9LWU+aT8wOmkrZSksbj1uPmk/aTpuLG48MCYmKG4rPWkpLGk9ZT5uPzA6bi1lPj4+MCxlPj4+PTA7Zm9yKHZhciBvPWFjKGkpOysrcjxpOylvW3JdPXRbcitlXTtyZXR1cm4gb31mdW5jdGlvbiBmaSh0LGUpe3ZhciBuO3JldHVybiB5aCh0LGZ1bmN0aW9uKHQscixpKXtyZXR1cm4gbj1lKHQscixpKSwhbn0pLCEhbn1mdW5jdGlvbiBkaSh0LGUsbil7dmFyIHI9MCxpPW51bGw9PXQ/cjp0Lmxlbmd0aDtpZigibnVtYmVyIj09dHlwZW9mIGUmJmU9PT1lJiZpPD1CdCl7Zm9yKDtyPGk7KXt2YXIgbz1yK2k+Pj4xLHM9dFtvXTtudWxsIT09cyYmIXh1KHMpJiYobj9zPD1lOnM8ZSk/cj1vKzE6aT1vfXJldHVybiBpfXJldHVybiBnaSh0LGUscWwsbil9ZnVuY3Rpb24gZ2kodCxlLG4scil7ZT1uKGUpO2Zvcih2YXIgaT0wLG89bnVsbD09dD8wOnQubGVuZ3RoLHM9ZSE9PWUsYT1udWxsPT09ZSx1PXh1KGUpLGw9ZT09PW90O2k8bzspe3ZhciBjPVVjKChpK28pLzIpLGg9bih0W2NdKSxmPWghPT1vdCxkPW51bGw9PT1oLGc9aD09PWgscD14dShoKTtpZihzKXZhciBtPXJ8fGc7ZWxzZSBtPWw/ZyYmKHJ8fGYpOmE/ZyYmZiYmKHJ8fCFkKTp1P2cmJmYmJiFkJiYocnx8IXApOiFkJiYhcCYmKHI/aDw9ZTpoPGUpO20/aT1jKzE6bz1jfXJldHVybiBZYyhvLEZ0KX1mdW5jdGlvbiBwaSh0LGUpe2Zvcih2YXIgbj0tMSxyPXQubGVuZ3RoLGk9MCxvPVtdOysrbjxyOyl7dmFyIHM9dFtuXSxhPWU/ZShzKTpzO2lmKCFufHwhS2EoYSx1KSl7dmFyIHU9YTtvW2krK109MD09PXM/MDpzfX1yZXR1cm4gb31mdW5jdGlvbiBtaSh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/dDp4dSh0KT9QdDordH1mdW5jdGlvbiB2aSh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYod2YodCkpcmV0dXJuIG0odCx2aSkrIiI7aWYoeHUodCkpcmV0dXJuIHZoP3ZoLmNhbGwodCk6IiI7dmFyIGU9dCsiIjtyZXR1cm4iMCI9PWUmJjEvdD09LXF0PyItMCI6ZX1mdW5jdGlvbiBfaSh0LGUsbil7dmFyIHI9LTEsaT1nLG89dC5sZW5ndGgscz0hMCxhPVtdLHU9YTtpZihuKXM9ITEsaT1wO2Vsc2UgaWYobz49YXQpe3ZhciBsPWU/bnVsbDpNaCh0KTtpZihsKXJldHVybiBLKGwpO3M9ITEsaT1QLHU9bmV3IHlufWVsc2UgdT1lP1tdOmE7dDpmb3IoOysrcjxvOyl7dmFyIGM9dFtyXSxoPWU/ZShjKTpjO2lmKGM9bnx8MCE9PWM/YzowLHMmJmg9PT1oKXtmb3IodmFyIGY9dS5sZW5ndGg7Zi0tOylpZih1W2ZdPT09aCljb250aW51ZSB0O2UmJnUucHVzaChoKSxhLnB1c2goYyl9ZWxzZSBpKHUsaCxuKXx8KHUhPT1hJiZ1LnB1c2goaCksYS5wdXNoKGMpKX1yZXR1cm4gYX1mdW5jdGlvbiB5aSh0LGUpe3JldHVybiBlPU1pKGUsdCksdD1Rbyh0LGUpLG51bGw9PXR8fGRlbGV0ZSB0W2lzKENzKGUpKV19ZnVuY3Rpb24gYmkodCxlLG4scil7cmV0dXJuIGxpKHQsZSxuKGxyKHQsZSkpLHIpfWZ1bmN0aW9uIHhpKHQsZSxuLHIpe2Zvcih2YXIgaT10Lmxlbmd0aCxvPXI/aTotMTsocj9vLS06KytvPGkpJiZlKHRbb10sbyx0KTspO3JldHVybiBuP2hpKHQscj8wOm8scj9vKzE6aSk6aGkodCxyP28rMTowLHI/aTpvKX1mdW5jdGlvbiB3aSh0LGUpe3ZhciBuPXQ7cmV0dXJuIG4gaW5zdGFuY2VvZiB4JiYobj1uLnZhbHVlKCkpLF8oZSxmdW5jdGlvbih0LGUpe3JldHVybiBlLmZ1bmMuYXBwbHkoZS50aGlzQXJnLHYoW3RdLGUuYXJncykpfSxuKX1mdW5jdGlvbiBTaSh0LGUsbil7dmFyIHI9dC5sZW5ndGg7aWYocjwyKXJldHVybiByP19pKHRbMF0pOltdO2Zvcih2YXIgaT0tMSxvPWFjKHIpOysraTxyOylmb3IodmFyIHM9dFtpXSxhPS0xOysrYTxyOylhIT1pJiYob1tpXT1HbihvW2ldfHxzLHRbYV0sZSxuKSk7cmV0dXJuIF9pKG5yKG8sMSksZSxuKX1mdW5jdGlvbiBraSh0LGUsbil7Zm9yKHZhciByPS0xLGk9dC5sZW5ndGgsbz1lLmxlbmd0aCxzPXt9OysrcjxpOyl7dmFyIGE9cjxvP2Vbcl06b3Q7bihzLHRbcl0sYSl9cmV0dXJuIHN9ZnVuY3Rpb24gemkodCl7cmV0dXJuIEphKHQpP3Q6W119ZnVuY3Rpb24gQ2kodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpxbH1mdW5jdGlvbiBNaSh0LGUpe3JldHVybiB3Zih0KT90OkJvKHQsZSk/W3RdOk5oKEF1KHQpKX1mdW5jdGlvbiBqaSh0LGUsbil7dmFyIHI9dC5sZW5ndGg7cmV0dXJuIG49bj09PW90P3I6biwhZSYmbj49cj90OmhpKHQsZSxuKX1mdW5jdGlvbiBFaSh0LGUpe2lmKGUpcmV0dXJuIHQuc2xpY2UoKTt2YXIgbj10Lmxlbmd0aCxyPVRjP1RjKG4pOm5ldyB0LmNvbnN0cnVjdG9yKG4pO3JldHVybiB0LmNvcHkocikscn1mdW5jdGlvbiBPaSh0KXt2YXIgZT1uZXcgdC5jb25zdHJ1Y3Rvcih0LmJ5dGVMZW5ndGgpO3JldHVybiBuZXcgT2MoZSkuc2V0KG5ldyBPYyh0KSksZX1mdW5jdGlvbiBUaSh0LGUpe3ZhciBuPWU/T2kodC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihuLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpfWZ1bmN0aW9uIEFpKHQsZSxuKXtyZXR1cm4gXyhlP24oRyh0KSxkdCk6Ryh0KSxzLG5ldyB0LmNvbnN0cnVjdG9yKX1mdW5jdGlvbiBMaSh0KXt2YXIgZT1uZXcgdC5jb25zdHJ1Y3Rvcih0LnNvdXJjZSxHZS5leGVjKHQpKTtyZXR1cm4gZS5sYXN0SW5kZXg9dC5sYXN0SW5kZXgsZX1mdW5jdGlvbiBSaSh0LGUsbil7cmV0dXJuIF8oZT9uKEsodCksZHQpOksodCksYSxuZXcgdC5jb25zdHJ1Y3Rvcil9ZnVuY3Rpb24gcWkodCl7cmV0dXJuIG1oP2ZjKG1oLmNhbGwodCkpOnt9fWZ1bmN0aW9uIE5pKHQsZSl7dmFyIG49ZT9PaSh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKG4sdC5ieXRlT2Zmc2V0LHQubGVuZ3RoKX1mdW5jdGlvbiBJaSh0LGUpe2lmKHQhPT1lKXt2YXIgbj10IT09b3Qscj1udWxsPT09dCxpPXQ9PT10LG89eHUodCkscz1lIT09b3QsYT1udWxsPT09ZSx1PWU9PT1lLGw9eHUoZSk7aWYoIWEmJiFsJiYhbyYmdD5lfHxvJiZzJiZ1JiYhYSYmIWx8fHImJnMmJnV8fCFuJiZ1fHwhaSlyZXR1cm4gMTtpZighciYmIW8mJiFsJiZ0PGV8fGwmJm4mJmkmJiFyJiYhb3x8YSYmbiYmaXx8IXMmJml8fCF1KXJldHVybi0xfXJldHVybiAwfWZ1bmN0aW9uIFBpKHQsZSxuKXtmb3IodmFyIHI9LTEsaT10LmNyaXRlcmlhLG89ZS5jcml0ZXJpYSxzPWkubGVuZ3RoLGE9bi5sZW5ndGg7KytyPHM7KXt2YXIgdT1JaShpW3JdLG9bcl0pO2lmKHUpcmV0dXJuIHI+PWE/dTp1KigiZGVzYyI9PW5bcl0/LTE6MSl9cmV0dXJuIHQuaW5kZXgtZS5pbmRleH1mdW5jdGlvbiBXaSh0LGUsbixyKXtmb3IodmFyIGk9LTEsbz10Lmxlbmd0aCxzPW4ubGVuZ3RoLGE9LTEsdT1lLmxlbmd0aCxsPUtjKG8tcywwKSxjPWFjKHUrbCksaD0hcjsrK2E8dTspY1thXT1lW2FdO2Zvcig7KytpPHM7KShofHxpPG8pJiYoY1tuW2ldXT10W2ldKTtmb3IoO2wtLTspY1thKytdPXRbaSsrXTtyZXR1cm4gY31mdW5jdGlvbiBGaSh0LGUsbixyKXtmb3IodmFyIGk9LTEsbz10Lmxlbmd0aCxzPS0xLGE9bi5sZW5ndGgsdT0tMSxsPWUubGVuZ3RoLGM9S2Moby1hLDApLGg9YWMoYytsKSxmPSFyOysraTxjOyloW2ldPXRbaV07Zm9yKHZhciBkPWk7Kyt1PGw7KWhbZCt1XT1lW3VdO2Zvcig7KytzPGE7KShmfHxpPG8pJiYoaFtkK25bc11dPXRbaSsrXSk7cmV0dXJuIGh9ZnVuY3Rpb24gQmkodCxlKXt2YXIgbj0tMSxyPXQubGVuZ3RoO2ZvcihlfHwoZT1hYyhyKSk7KytuPHI7KWVbbl09dFtuXTtyZXR1cm4gZX1mdW5jdGlvbiBIaSh0LGUsbixyKXt2YXIgaT0hbjtufHwobj17fSk7Zm9yKHZhciBvPS0xLHM9ZS5sZW5ndGg7KytvPHM7KXt2YXIgYT1lW29dLHU9cj9yKG5bYV0sdFthXSxhLG4sdCk6b3Q7dT09PW90JiYodT10W2FdKSxpP1BuKG4sYSx1KTpMbihuLGEsdSl9cmV0dXJuIG59ZnVuY3Rpb24gRGkodCxlKXtyZXR1cm4gSGkodCxFaCh0KSxlKX1mdW5jdGlvbiBVaSh0LGUpe3JldHVybiBIaSh0LE9oKHQpLGUpfWZ1bmN0aW9uIFZpKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4scil7dmFyIGk9d2Yobik/bDpxbixvPWU/ZSgpOnt9O3JldHVybiBpKG4sdCxDbyhyLDIpLG8pfX1mdW5jdGlvbiAkaSh0KXtyZXR1cm4gc2koZnVuY3Rpb24oZSxuKXt2YXIgcj0tMSxpPW4ubGVuZ3RoLG89aT4xP25baS0xXTpvdCxzPWk+Mj9uWzJdOm90O2ZvcihvPXQubGVuZ3RoPjMmJiJmdW5jdGlvbiI9PXR5cGVvZiBvPyhpLS0sbyk6b3QscyYmRm8oblswXSxuWzFdLHMpJiYobz1pPDM/b3Q6byxpPTEpLGU9ZmMoZSk7KytyPGk7KXt2YXIgYT1uW3JdO2EmJnQoZSxhLHIsbyl9cmV0dXJuIGV9KX1mdW5jdGlvbiBHaSh0LGUpe3JldHVybiBmdW5jdGlvbihuLHIpe2lmKG51bGw9PW4pcmV0dXJuIG47aWYoIVlhKG4pKXJldHVybiB0KG4scik7Zm9yKHZhciBpPW4ubGVuZ3RoLG89ZT9pOi0xLHM9ZmMobik7KGU/by0tOisrbzxpKSYmcihzW29dLG8scykhPT0hMTspO3JldHVybiBufX1mdW5jdGlvbiBYaSh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLHIpe2Zvcih2YXIgaT0tMSxvPWZjKGUpLHM9cihlKSxhPXMubGVuZ3RoO2EtLTspe3ZhciB1PXNbdD9hOisraV07aWYobihvW3VdLHUsbyk9PT0hMSlicmVha31yZXR1cm4gZX19ZnVuY3Rpb24gWmkodCxlLG4pe2Z1bmN0aW9uIHIoKXtyZXR1cm4odGhpcyYmdGhpcyE9PXVyJiZ0aGlzIGluc3RhbmNlb2Ygcj9vOnQpLmFwcGx5KGk/bjp0aGlzLGFyZ3VtZW50cyl9dmFyIGk9ZSZfdCxvPUppKHQpO3JldHVybiByfWZ1bmN0aW9uIEtpKHQpe3JldHVybiBmdW5jdGlvbihlKXtlPUF1KGUpO3ZhciBuPVUoZSk/ZXQoZSk6b3Qscj1uP25bMF06ZS5jaGFyQXQoMCksaT1uP2ppKG4sMSkuam9pbigiIik6ZS5zbGljZSgxKTtyZXR1cm4gclt0XSgpK2l9fWZ1bmN0aW9uIFlpKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gXyhPbChjbChlKS5yZXBsYWNlKFVuLCIiKSksdCwiIil9fWZ1bmN0aW9uIEppKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cztzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IHQ7Y2FzZSAxOnJldHVybiBuZXcgdChlWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSk7Y2FzZSAzOnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSk7Y2FzZSA0OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdKTtjYXNlIDU6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSxlWzJdLGVbM10sZVs0XSk7Y2FzZSA2OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdLGVbNF0sZVs1XSk7Y2FzZSA3OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdLGVbNF0sZVs1XSxlWzZdKX12YXIgbj1faCh0LnByb3RvdHlwZSkscj10LmFwcGx5KG4sZSk7cmV0dXJuIGx1KHIpP3I6bn19ZnVuY3Rpb24gUWkodCxlLG4pe2Z1bmN0aW9uIHIoKXtmb3IodmFyIG89YXJndW1lbnRzLmxlbmd0aCxzPWFjKG8pLGE9byxsPXpvKHIpO2EtLTspc1thXT1hcmd1bWVudHNbYV07dmFyIGM9bzwzJiZzWzBdIT09bCYmc1tvLTFdIT09bD9bXTpaKHMsbCk7cmV0dXJuIG8tPWMubGVuZ3RoLG88bj9jbyh0LGUsbm8sci5wbGFjZWhvbGRlcixvdCxzLGMsb3Qsb3Qsbi1vKTp1KHRoaXMmJnRoaXMhPT11ciYmdGhpcyBpbnN0YW5jZW9mIHI/aTp0LHRoaXMscyl9dmFyIGk9SmkodCk7cmV0dXJuIHJ9ZnVuY3Rpb24gdG8odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixyKXt2YXIgaT1mYyhlKTtpZighWWEoZSkpe3ZhciBvPUNvKG4sMyk7ZT1WdShlKSxuPWZ1bmN0aW9uKHQpe3JldHVybiBvKGlbdF0sdCxpKX19dmFyIHM9dChlLG4scik7cmV0dXJuIHM+LTE/aVtvP2Vbc106c106b3R9fWZ1bmN0aW9uIGVvKHQpe3JldHVybiB4byhmdW5jdGlvbihlKXt2YXIgbj1lLmxlbmd0aCxyPW4sbz1pLnByb3RvdHlwZS50aHJ1O2Zvcih0JiZlLnJldmVyc2UoKTtyLS07KXt2YXIgcz1lW3JdO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzKXRocm93IG5ldyBwYyhsdCk7aWYobyYmIWEmJiJ3cmFwcGVyIj09a28ocykpdmFyIGE9bmV3IGkoW10sITApfWZvcihyPWE/cjpuOysrcjxuOyl7cz1lW3JdO3ZhciB1PWtvKHMpLGw9IndyYXBwZXIiPT11P2poKHMpOm90O2E9bCYmRG8obFswXSkmJmxbMV09PSh6dHx4dHxTdHxDdCkmJiFsWzRdLmxlbmd0aCYmMT09bFs5XT9hW2tvKGxbMF0pXS5hcHBseShhLGxbM10pOjE9PXMubGVuZ3RoJiZEbyhzKT9hW3VdKCk6YS50aHJ1KHMpfXJldHVybiBmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cyxyPXRbMF07aWYoYSYmMT09dC5sZW5ndGgmJndmKHIpKXJldHVybiBhLnBsYW50KHIpLnZhbHVlKCk7Zm9yKHZhciBpPTAsbz1uP2VbaV0uYXBwbHkodGhpcyx0KTpyOysraTxuOylvPWVbaV0uY2FsbCh0aGlzLG8pO3JldHVybiBvfX0pfWZ1bmN0aW9uIG5vKHQsZSxuLHIsaSxvLHMsYSx1LGwpe2Z1bmN0aW9uIGMoKXtmb3IodmFyIHY9YXJndW1lbnRzLmxlbmd0aCxfPWFjKHYpLHk9djt5LS07KV9beV09YXJndW1lbnRzW3ldO2lmKGcpdmFyIGI9em8oYykseD1CKF8sYik7aWYociYmKF89V2koXyxyLGksZykpLG8mJihfPUZpKF8sbyxzLGcpKSx2LT14LGcmJnY8bCl7dmFyIHc9WihfLGIpO3JldHVybiBjbyh0LGUsbm8sYy5wbGFjZWhvbGRlcixuLF8sdyxhLHUsbC12KX12YXIgUz1mP246dGhpcyxrPWQ/U1t0XTp0O3JldHVybiB2PV8ubGVuZ3RoLGE/Xz10cyhfLGEpOnAmJnY+MSYmXy5yZXZlcnNlKCksaCYmdTx2JiYoXy5sZW5ndGg9dSksdGhpcyYmdGhpcyE9PXVyJiZ0aGlzIGluc3RhbmNlb2YgYyYmKGs9bXx8SmkoaykpLGsuYXBwbHkoUyxfKX12YXIgaD1lJnp0LGY9ZSZfdCxkPWUmeXQsZz1lJih4dHx3dCkscD1lJk10LG09ZD9vdDpKaSh0KTtyZXR1cm4gY31mdW5jdGlvbiBybyh0LGUpe3JldHVybiBmdW5jdGlvbihuLHIpe3JldHVybiBqcihuLHQsZShyKSx7fSl9fWZ1bmN0aW9uIGlvKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4scil7dmFyIGk7aWYobj09PW90JiZyPT09b3QpcmV0dXJuIGU7aWYobiE9PW90JiYoaT1uKSxyIT09b3Qpe2lmKGk9PT1vdClyZXR1cm4gcjsic3RyaW5nIj09dHlwZW9mIG58fCJzdHJpbmciPT10eXBlb2Ygcj8obj12aShuKSxyPXZpKHIpKToobj1taShuKSxyPW1pKHIpKSxpPXQobixyKX1yZXR1cm4gaX19ZnVuY3Rpb24gb28odCl7cmV0dXJuIHhvKGZ1bmN0aW9uKGUpe3JldHVybiBlPW0oZSxOKENvKCkpKSxzaShmdW5jdGlvbihuKXt2YXIgcj10aGlzO3JldHVybiB0KGUsZnVuY3Rpb24odCl7cmV0dXJuIHUodCxyLG4pfSl9KX0pfWZ1bmN0aW9uIHNvKHQsZSl7ZT1lPT09b3Q/IiAiOnZpKGUpO3ZhciBuPWUubGVuZ3RoO2lmKG48MilyZXR1cm4gbj9vaShlLHQpOmU7dmFyIHI9b2koZSxEYyh0L3R0KGUpKSk7cmV0dXJuIFUoZSk/amkoZXQociksMCx0KS5qb2luKCIiKTpyLnNsaWNlKDAsdCl9ZnVuY3Rpb24gYW8odCxlLG4scil7ZnVuY3Rpb24gaSgpe2Zvcih2YXIgZT0tMSxhPWFyZ3VtZW50cy5sZW5ndGgsbD0tMSxjPXIubGVuZ3RoLGg9YWMoYythKSxmPXRoaXMmJnRoaXMhPT11ciYmdGhpcyBpbnN0YW5jZW9mIGk/czp0OysrbDxjOyloW2xdPXJbbF07Zm9yKDthLS07KWhbbCsrXT1hcmd1bWVudHNbKytlXTtyZXR1cm4gdShmLG8/bjp0aGlzLGgpfXZhciBvPWUmX3Qscz1KaSh0KTtyZXR1cm4gaX1mdW5jdGlvbiB1byh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLHIpe3JldHVybiByJiYibnVtYmVyIiE9dHlwZW9mIHImJkZvKGUsbixyKSYmKG49cj1vdCksZT1DdShlKSxuPT09b3Q/KG49ZSxlPTApOm49Q3Uobikscj1yPT09b3Q/ZTxuPzE6LTE6Q3UociksaWkoZSxuLHIsdCl9fWZ1bmN0aW9uIGxvKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmInN0cmluZyI9PXR5cGVvZiBufHwoZT1FdShlKSxuPUV1KG4pKSx0KGUsbil9fWZ1bmN0aW9uIGNvKHQsZSxuLHIsaSxvLHMsYSx1LGwpe3ZhciBjPWUmeHQsaD1jP3M6b3QsZj1jP290OnMsZD1jP286b3QsZz1jP290Om87ZXw9Yz9TdDprdCxlJj1+KGM/a3Q6U3QpLGUmYnR8fChlJj1+KF90fHl0KSk7dmFyIHA9W3QsZSxpLGQsaCxnLGYsYSx1LGxdLG09bi5hcHBseShvdCxwKTsKcmV0dXJuIERvKHQpJiZMaChtLHApLG0ucGxhY2Vob2xkZXI9cixlcyhtLHQsZSl9ZnVuY3Rpb24gaG8odCl7dmFyIGU9aGNbdF07cmV0dXJuIGZ1bmN0aW9uKHQsbil7aWYodD1FdSh0KSxuPW51bGw9PW4/MDpZYyhNdShuKSwyOTIpKXt2YXIgcj0oQXUodCkrImUiKS5zcGxpdCgiZSIpO3JldHVybiByPShBdShlKHJbMF0rImUiKygrclsxXStuKSkpKyJlIikuc3BsaXQoImUiKSwrKHJbMF0rImUiKygrclsxXS1uKSl9cmV0dXJuIGUodCl9fWZ1bmN0aW9uIGZvKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1UaChlKTtyZXR1cm4gbj09SnQ/RyhlKTpuPT1vZT9ZKGUpOnEoZSx0KGUpKX19ZnVuY3Rpb24gZ28odCxlLG4scixpLG8scyxhKXt2YXIgdT1lJnl0O2lmKCF1JiYiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgcGMobHQpO3ZhciBsPXI/ci5sZW5ndGg6MDtpZihsfHwoZSY9fihTdHxrdCkscj1pPW90KSxzPXM9PT1vdD9zOktjKE11KHMpLDApLGE9YT09PW90P2E6TXUoYSksbC09aT9pLmxlbmd0aDowLGUma3Qpe3ZhciBjPXIsaD1pO3I9aT1vdH12YXIgZj11P290OmpoKHQpLGQ9W3QsZSxuLHIsaSxjLGgsbyxzLGFdO2lmKGYmJlpvKGQsZiksdD1kWzBdLGU9ZFsxXSxuPWRbMl0scj1kWzNdLGk9ZFs0XSxhPWRbOV09ZFs5XT09PW90P3U/MDp0Lmxlbmd0aDpLYyhkWzldLWwsMCksIWEmJmUmKHh0fHd0KSYmKGUmPX4oeHR8d3QpKSxlJiZlIT1fdClnPWU9PXh0fHxlPT13dD9RaSh0LGUsYSk6ZSE9U3QmJmUhPShfdHxTdCl8fGkubGVuZ3RoP25vLmFwcGx5KG90LGQpOmFvKHQsZSxuLHIpO2Vsc2UgdmFyIGc9WmkodCxlLG4pO3JldHVybiBlcygoZj9TaDpMaCkoZyxkKSx0LGUpfWZ1bmN0aW9uIHBvKHQsZSxuLHIpe3JldHVybiB0PT09b3R8fEthKHQsX2Nbbl0pJiYheGMuY2FsbChyLG4pP2U6dH1mdW5jdGlvbiBtbyh0LGUsbixyLGksbyl7cmV0dXJuIGx1KHQpJiZsdShlKSYmKG8uc2V0KGUsdCksWHIodCxlLG90LG1vLG8pLG8uZGVsZXRlKGUpKSx0fWZ1bmN0aW9uIHZvKHQpe3JldHVybiBfdSh0KT9vdDp0fWZ1bmN0aW9uIF9vKHQsZSxuLHIsaSxvKXt2YXIgcz1uJm10LGE9dC5sZW5ndGgsdT1lLmxlbmd0aDtpZihhIT11JiYhKHMmJnU+YSkpcmV0dXJuITE7dmFyIGw9by5nZXQodCk7aWYobCYmby5nZXQoZSkpcmV0dXJuIGw9PWU7dmFyIGM9LTEsaD0hMCxmPW4mdnQ/bmV3IHluOm90O2ZvcihvLnNldCh0LGUpLG8uc2V0KGUsdCk7KytjPGE7KXt2YXIgZD10W2NdLGc9ZVtjXTtpZihyKXZhciBwPXM/cihnLGQsYyxlLHQsbyk6cihkLGcsYyx0LGUsbyk7aWYocCE9PW90KXtpZihwKWNvbnRpbnVlO2g9ITE7YnJlYWt9aWYoZil7aWYoIWIoZSxmdW5jdGlvbih0LGUpe2lmKCFQKGYsZSkmJihkPT09dHx8aShkLHQsbixyLG8pKSlyZXR1cm4gZi5wdXNoKGUpfSkpe2g9ITE7YnJlYWt9fWVsc2UgaWYoZCE9PWcmJiFpKGQsZyxuLHIsbykpe2g9ITE7YnJlYWt9fXJldHVybiBvLmRlbGV0ZSh0KSxvLmRlbGV0ZShlKSxofWZ1bmN0aW9uIHlvKHQsZSxuLHIsaSxvLHMpe3N3aXRjaChuKXtjYXNlIGZlOmlmKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHx0LmJ5dGVPZmZzZXQhPWUuYnl0ZU9mZnNldClyZXR1cm4hMTt0PXQuYnVmZmVyLGU9ZS5idWZmZXI7Y2FzZSBoZTpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHwhbyhuZXcgT2ModCksbmV3IE9jKGUpKSk7Y2FzZSAkdDpjYXNlIEd0OmNhc2UgUXQ6cmV0dXJuIEthKCt0LCtlKTtjYXNlIFp0OnJldHVybiB0Lm5hbWU9PWUubmFtZSYmdC5tZXNzYWdlPT1lLm1lc3NhZ2U7Y2FzZSBpZTpjYXNlIHNlOnJldHVybiB0PT1lKyIiO2Nhc2UgSnQ6dmFyIGE9RztjYXNlIG9lOnZhciB1PXImbXQ7aWYoYXx8KGE9SyksdC5zaXplIT1lLnNpemUmJiF1KXJldHVybiExO3ZhciBsPXMuZ2V0KHQpO2lmKGwpcmV0dXJuIGw9PWU7cnw9dnQscy5zZXQodCxlKTt2YXIgYz1fbyhhKHQpLGEoZSkscixpLG8scyk7cmV0dXJuIHMuZGVsZXRlKHQpLGM7Y2FzZSBhZTppZihtaClyZXR1cm4gbWguY2FsbCh0KT09bWguY2FsbChlKX1yZXR1cm4hMX1mdW5jdGlvbiBibyh0LGUsbixyLGksbyl7dmFyIHM9biZtdCxhPXdvKHQpLHU9YS5sZW5ndGg7aWYodSE9d28oZSkubGVuZ3RoJiYhcylyZXR1cm4hMTtmb3IodmFyIGw9dTtsLS07KXt2YXIgYz1hW2xdO2lmKCEocz9jIGluIGU6eGMuY2FsbChlLGMpKSlyZXR1cm4hMX12YXIgaD1vLmdldCh0KTtpZihoJiZvLmdldChlKSlyZXR1cm4gaD09ZTt2YXIgZj0hMDtvLnNldCh0LGUpLG8uc2V0KGUsdCk7Zm9yKHZhciBkPXM7KytsPHU7KXtjPWFbbF07dmFyIGc9dFtjXSxwPWVbY107aWYocil2YXIgbT1zP3IocCxnLGMsZSx0LG8pOnIoZyxwLGMsdCxlLG8pO2lmKCEobT09PW90P2c9PT1wfHxpKGcscCxuLHIsbyk6bSkpe2Y9ITE7YnJlYWt9ZHx8KGQ9ImNvbnN0cnVjdG9yIj09Yyl9aWYoZiYmIWQpe3ZhciB2PXQuY29uc3RydWN0b3IsXz1lLmNvbnN0cnVjdG9yO3YhPV8mJiJjb25zdHJ1Y3RvciJpbiB0JiYiY29uc3RydWN0b3IiaW4gZSYmISgiZnVuY3Rpb24iPT10eXBlb2YgdiYmdiBpbnN0YW5jZW9mIHYmJiJmdW5jdGlvbiI9PXR5cGVvZiBfJiZfIGluc3RhbmNlb2YgXykmJihmPSExKX1yZXR1cm4gby5kZWxldGUodCksby5kZWxldGUoZSksZn1mdW5jdGlvbiB4byh0KXtyZXR1cm4gcWgoSm8odCxvdCxfcyksdCsiIil9ZnVuY3Rpb24gd28odCl7cmV0dXJuIGNyKHQsVnUsRWgpfWZ1bmN0aW9uIFNvKHQpe3JldHVybiBjcih0LCR1LE9oKX1mdW5jdGlvbiBrbyh0KXtmb3IodmFyIGU9dC5uYW1lKyIiLG49bGhbZV0scj14Yy5jYWxsKGxoLGUpP24ubGVuZ3RoOjA7ci0tOyl7dmFyIGk9bltyXSxvPWkuZnVuYztpZihudWxsPT1vfHxvPT10KXJldHVybiBpLm5hbWV9cmV0dXJuIGV9ZnVuY3Rpb24gem8odCl7cmV0dXJuKHhjLmNhbGwobiwicGxhY2Vob2xkZXIiKT9uOnQpLnBsYWNlaG9sZGVyfWZ1bmN0aW9uIENvKCl7dmFyIHQ9bi5pdGVyYXRlZXx8Tmw7cmV0dXJuIHQ9dD09PU5sP0JyOnQsYXJndW1lbnRzLmxlbmd0aD90KGFyZ3VtZW50c1swXSxhcmd1bWVudHNbMV0pOnR9ZnVuY3Rpb24gTW8odCxlKXt2YXIgbj10Ll9fZGF0YV9fO3JldHVybiBIbyhlKT9uWyJzdHJpbmciPT10eXBlb2YgZT8ic3RyaW5nIjoiaGFzaCJdOm4ubWFwfWZ1bmN0aW9uIGpvKHQpe2Zvcih2YXIgZT1WdSh0KSxuPWUubGVuZ3RoO24tLTspe3ZhciByPWVbbl0saT10W3JdO2Vbbl09W3IsaSwkbyhpKV19cmV0dXJuIGV9ZnVuY3Rpb24gRW8odCxlKXt2YXIgbj1EKHQsZSk7cmV0dXJuIElyKG4pP246b3R9ZnVuY3Rpb24gT28odCl7dmFyIGU9eGMuY2FsbCh0LFBjKSxuPXRbUGNdO3RyeXt0W1BjXT1vdDt2YXIgcj0hMH1jYXRjaCh0KXt9dmFyIGk9a2MuY2FsbCh0KTtyZXR1cm4gciYmKGU/dFtQY109bjpkZWxldGUgdFtQY10pLGl9ZnVuY3Rpb24gVG8odCxlLG4pe2Zvcih2YXIgcj0tMSxpPW4ubGVuZ3RoOysrcjxpOyl7dmFyIG89bltyXSxzPW8uc2l6ZTtzd2l0Y2goby50eXBlKXtjYXNlImRyb3AiOnQrPXM7YnJlYWs7Y2FzZSJkcm9wUmlnaHQiOmUtPXM7YnJlYWs7Y2FzZSJ0YWtlIjplPVljKGUsdCtzKTticmVhaztjYXNlInRha2VSaWdodCI6dD1LYyh0LGUtcyl9fXJldHVybntzdGFydDp0LGVuZDplfX1mdW5jdGlvbiBBbyh0KXt2YXIgZT10Lm1hdGNoKEhlKTtyZXR1cm4gZT9lWzFdLnNwbGl0KERlKTpbXX1mdW5jdGlvbiBMbyh0LGUsbil7ZT1NaShlLHQpO2Zvcih2YXIgcj0tMSxpPWUubGVuZ3RoLG89ITE7KytyPGk7KXt2YXIgcz1pcyhlW3JdKTtpZighKG89bnVsbCE9dCYmbih0LHMpKSlicmVhazt0PXRbc119cmV0dXJuIG98fCsrciE9aT9vOihpPW51bGw9PXQ/MDp0Lmxlbmd0aCwhIWkmJnV1KGkpJiZXbyhzLGkpJiYod2YodCl8fHhmKHQpKSl9ZnVuY3Rpb24gUm8odCl7dmFyIGU9dC5sZW5ndGgsbj10LmNvbnN0cnVjdG9yKGUpO3JldHVybiBlJiYic3RyaW5nIj09dHlwZW9mIHRbMF0mJnhjLmNhbGwodCwiaW5kZXgiKSYmKG4uaW5kZXg9dC5pbmRleCxuLmlucHV0PXQuaW5wdXQpLG59ZnVuY3Rpb24gcW8odCl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQuY29uc3RydWN0b3J8fFZvKHQpP3t9Ol9oKEFjKHQpKX1mdW5jdGlvbiBObyh0LGUsbixyKXt2YXIgaT10LmNvbnN0cnVjdG9yO3N3aXRjaChlKXtjYXNlIGhlOnJldHVybiBPaSh0KTtjYXNlICR0OmNhc2UgR3Q6cmV0dXJuIG5ldyBpKCt0KTtjYXNlIGZlOnJldHVybiBUaSh0LHIpO2Nhc2UgZGU6Y2FzZSBnZTpjYXNlIHBlOmNhc2UgbWU6Y2FzZSB2ZTpjYXNlIF9lOmNhc2UgeWU6Y2FzZSBiZTpjYXNlIHhlOnJldHVybiBOaSh0LHIpO2Nhc2UgSnQ6cmV0dXJuIEFpKHQscixuKTtjYXNlIFF0OmNhc2Ugc2U6cmV0dXJuIG5ldyBpKHQpO2Nhc2UgaWU6cmV0dXJuIExpKHQpO2Nhc2Ugb2U6cmV0dXJuIFJpKHQscixuKTtjYXNlIGFlOnJldHVybiBxaSh0KX19ZnVuY3Rpb24gSW8odCxlKXt2YXIgbj1lLmxlbmd0aDtpZighbilyZXR1cm4gdDt2YXIgcj1uLTE7cmV0dXJuIGVbcl09KG4+MT8iJiAiOiIiKStlW3JdLGU9ZS5qb2luKG4+Mj8iLCAiOiIgIiksdC5yZXBsYWNlKEJlLCJ7XG4vKiBbd3JhcHBlZCB3aXRoICIrZSsiXSAqL1xuIil9ZnVuY3Rpb24gUG8odCl7cmV0dXJuIHdmKHQpfHx4Zih0KXx8ISEoTmMmJnQmJnRbTmNdKX1mdW5jdGlvbiBXbyh0LGUpe3JldHVybiBlPW51bGw9PWU/TnQ6ZSwhIWUmJigibnVtYmVyIj09dHlwZW9mIHR8fEplLnRlc3QodCkpJiZ0Pi0xJiZ0JTE9PTAmJnQ8ZX1mdW5jdGlvbiBGbyh0LGUsbil7aWYoIWx1KG4pKXJldHVybiExO3ZhciByPSJ1bmRlZmluZWQiPT10eXBlb2YgZT8idW5kZWZpbmVkIjpvKGUpO3JldHVybiEhKCJudW1iZXIiPT1yP1lhKG4pJiZXbyhlLG4ubGVuZ3RoKToic3RyaW5nIj09ciYmZSBpbiBuKSYmS2EobltlXSx0KX1mdW5jdGlvbiBCbyh0LGUpe2lmKHdmKHQpKXJldHVybiExO3ZhciBuPSJ1bmRlZmluZWQiPT10eXBlb2YgdD8idW5kZWZpbmVkIjpvKHQpO3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPXQmJiF4dSh0KSl8fExlLnRlc3QodCl8fCFBZS50ZXN0KHQpfHxudWxsIT1lJiZ0IGluIGZjKGUpfWZ1bmN0aW9uIEhvKHQpe3ZhciBlPSJ1bmRlZmluZWQiPT10eXBlb2YgdD8idW5kZWZpbmVkIjpvKHQpO3JldHVybiJzdHJpbmciPT1lfHwibnVtYmVyIj09ZXx8InN5bWJvbCI9PWV8fCJib29sZWFuIj09ZT8iX19wcm90b19fIiE9PXQ6bnVsbD09PXR9ZnVuY3Rpb24gRG8odCl7dmFyIGU9a28odCkscj1uW2VdO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiByfHwhKGUgaW4geC5wcm90b3R5cGUpKXJldHVybiExO2lmKHQ9PT1yKXJldHVybiEwO3ZhciBpPWpoKHIpO3JldHVybiEhaSYmdD09PWlbMF19ZnVuY3Rpb24gVW8odCl7cmV0dXJuISFTYyYmU2MgaW4gdH1mdW5jdGlvbiBWbyh0KXt2YXIgZT10JiZ0LmNvbnN0cnVjdG9yO3JldHVybiB0PT09KCJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLnByb3RvdHlwZXx8X2MpfWZ1bmN0aW9uICRvKHQpe3JldHVybiB0PT09dCYmIWx1KHQpfWZ1bmN0aW9uIEdvKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBudWxsIT1uJiZuW3RdPT09ZSYmKGUhPT1vdHx8dCBpbiBmYyhuKSl9fWZ1bmN0aW9uIFhvKHQpe3ZhciBlPU5hKHQsZnVuY3Rpb24odCl7cmV0dXJuIG4uc2l6ZT09PWh0JiZuLmNsZWFyKCksdH0pLG49ZS5jYWNoZTtyZXR1cm4gZX1mdW5jdGlvbiBabyh0LGUpe3ZhciBuPXRbMV0scj1lWzFdLGk9bnxyLG89aTwoX3R8eXR8enQpLHM9cj09enQmJm49PXh0fHxyPT16dCYmbj09Q3QmJnRbN10ubGVuZ3RoPD1lWzhdfHxyPT0oenR8Q3QpJiZlWzddLmxlbmd0aDw9ZVs4XSYmbj09eHQ7aWYoIW8mJiFzKXJldHVybiB0O3ImX3QmJih0WzJdPWVbMl0saXw9biZfdD8wOmJ0KTt2YXIgYT1lWzNdO2lmKGEpe3ZhciB1PXRbM107dFszXT11P1dpKHUsYSxlWzRdKTphLHRbNF09dT9aKHRbM10sZnQpOmVbNF19cmV0dXJuIGE9ZVs1XSxhJiYodT10WzVdLHRbNV09dT9GaSh1LGEsZVs2XSk6YSx0WzZdPXU/Wih0WzVdLGZ0KTplWzZdKSxhPWVbN10sYSYmKHRbN109YSksciZ6dCYmKHRbOF09bnVsbD09dFs4XT9lWzhdOlljKHRbOF0sZVs4XSkpLG51bGw9PXRbOV0mJih0WzldPWVbOV0pLHRbMF09ZVswXSx0WzFdPWksdH1mdW5jdGlvbiBLbyh0KXt2YXIgZT1bXTtpZihudWxsIT10KWZvcih2YXIgbiBpbiBmYyh0KSllLnB1c2gobik7cmV0dXJuIGV9ZnVuY3Rpb24gWW8odCl7cmV0dXJuIGtjLmNhbGwodCl9ZnVuY3Rpb24gSm8odCxlLG4pe3JldHVybiBlPUtjKGU9PT1vdD90Lmxlbmd0aC0xOmUsMCksZnVuY3Rpb24oKXtmb3IodmFyIHI9YXJndW1lbnRzLGk9LTEsbz1LYyhyLmxlbmd0aC1lLDApLHM9YWMobyk7KytpPG87KXNbaV09cltlK2ldO2k9LTE7Zm9yKHZhciBhPWFjKGUrMSk7KytpPGU7KWFbaV09cltpXTtyZXR1cm4gYVtlXT1uKHMpLHUodCx0aGlzLGEpfX1mdW5jdGlvbiBRbyh0LGUpe3JldHVybiBlLmxlbmd0aDwyP3Q6bHIodCxoaShlLDAsLTEpKX1mdW5jdGlvbiB0cyh0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aCxyPVljKGUubGVuZ3RoLG4pLGk9QmkodCk7ci0tOyl7dmFyIG89ZVtyXTt0W3JdPVdvKG8sbik/aVtvXTpvdH1yZXR1cm4gdH1mdW5jdGlvbiBlcyh0LGUsbil7dmFyIHI9ZSsiIjtyZXR1cm4gcWgodCxJbyhyLHNzKEFvKHIpLG4pKSl9ZnVuY3Rpb24gbnModCl7dmFyIGU9MCxuPTA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9SmMoKSxpPVR0LShyLW4pO2lmKG49cixpPjApe2lmKCsrZT49T3QpcmV0dXJuIGFyZ3VtZW50c1swXX1lbHNlIGU9MDtyZXR1cm4gdC5hcHBseShvdCxhcmd1bWVudHMpfX1mdW5jdGlvbiBycyh0LGUpe3ZhciBuPS0xLHI9dC5sZW5ndGgsaT1yLTE7Zm9yKGU9ZT09PW90P3I6ZTsrK248ZTspe3ZhciBvPXJpKG4saSkscz10W29dO3Rbb109dFtuXSx0W25dPXN9cmV0dXJuIHQubGVuZ3RoPWUsdH1mdW5jdGlvbiBpcyh0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fHh1KHQpKXJldHVybiB0O3ZhciBlPXQrIiI7cmV0dXJuIjAiPT1lJiYxL3Q9PS1xdD8iLTAiOmV9ZnVuY3Rpb24gb3ModCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiBiYy5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn1mdW5jdGlvbiBzcyh0LGUpe3JldHVybiBjKEh0LGZ1bmN0aW9uKG4pe3ZhciByPSJfLiIrblswXTtlJm5bMV0mJiFnKHQscikmJnQucHVzaChyKX0pLHQuc29ydCgpfWZ1bmN0aW9uIGFzKHQpe2lmKHQgaW5zdGFuY2VvZiB4KXJldHVybiB0LmNsb25lKCk7dmFyIGU9bmV3IGkodC5fX3dyYXBwZWRfXyx0Ll9fY2hhaW5fXyk7cmV0dXJuIGUuX19hY3Rpb25zX189QmkodC5fX2FjdGlvbnNfXyksZS5fX2luZGV4X189dC5fX2luZGV4X18sZS5fX3ZhbHVlc19fPXQuX192YWx1ZXNfXyxlfWZ1bmN0aW9uIHVzKHQsZSxuKXtlPShuP0ZvKHQsZSxuKTplPT09b3QpPzE6S2MoTXUoZSksMCk7dmFyIHI9bnVsbD09dD8wOnQubGVuZ3RoO2lmKCFyfHxlPDEpcmV0dXJuW107Zm9yKHZhciBpPTAsbz0wLHM9YWMoRGMoci9lKSk7aTxyOylzW28rK109aGkodCxpLGkrPWUpO3JldHVybiBzfWZ1bmN0aW9uIGxzKHQpe2Zvcih2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aCxyPTAsaT1bXTsrK2U8bjspe3ZhciBvPXRbZV07byYmKGlbcisrXT1vKX1yZXR1cm4gaX1mdW5jdGlvbiBjcygpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg7aWYoIXQpcmV0dXJuW107Zm9yKHZhciBlPWFjKHQtMSksbj1hcmd1bWVudHNbMF0scj10O3ItLTspZVtyLTFdPWFyZ3VtZW50c1tyXTtyZXR1cm4gdih3ZihuKT9CaShuKTpbbl0sbnIoZSwxKSl9ZnVuY3Rpb24gaHModCxlLG4pe3ZhciByPW51bGw9PXQ/MDp0Lmxlbmd0aDtyZXR1cm4gcj8oZT1ufHxlPT09b3Q/MTpNdShlKSxoaSh0LGU8MD8wOmUscikpOltdfWZ1bmN0aW9uIGZzKHQsZSxuKXt2YXIgcj1udWxsPT10PzA6dC5sZW5ndGg7cmV0dXJuIHI/KGU9bnx8ZT09PW90PzE6TXUoZSksZT1yLWUsaGkodCwwLGU8MD8wOmUpKTpbXX1mdW5jdGlvbiBkcyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD94aSh0LENvKGUsMyksITAsITApOltdfWZ1bmN0aW9uIGdzKHQsZSl7cmV0dXJuIHQmJnQubGVuZ3RoP3hpKHQsQ28oZSwzKSwhMCk6W119ZnVuY3Rpb24gcHModCxlLG4scil7dmFyIGk9bnVsbD09dD8wOnQubGVuZ3RoO3JldHVybiBpPyhuJiYibnVtYmVyIiE9dHlwZW9mIG4mJkZvKHQsZSxuKSYmKG49MCxyPWkpLHRyKHQsZSxuLHIpKTpbXX1mdW5jdGlvbiBtcyh0LGUsbil7dmFyIHI9bnVsbD09dD8wOnQubGVuZ3RoO2lmKCFyKXJldHVybi0xO3ZhciBpPW51bGw9PW4/MDpNdShuKTtyZXR1cm4gaTwwJiYoaT1LYyhyK2ksMCkpLGsodCxDbyhlLDMpLGkpfWZ1bmN0aW9uIHZzKHQsZSxuKXt2YXIgcj1udWxsPT10PzA6dC5sZW5ndGg7aWYoIXIpcmV0dXJuLTE7dmFyIGk9ci0xO3JldHVybiBuIT09b3QmJihpPU11KG4pLGk9bjwwP0tjKHIraSwwKTpZYyhpLHItMSkpLGsodCxDbyhlLDMpLGksITApfWZ1bmN0aW9uIF9zKHQpe3JldHVybihudWxsPT10PzA6dC5sZW5ndGgpP25yKHQsMSk6W119ZnVuY3Rpb24geXModCl7cmV0dXJuKG51bGw9PXQ/MDp0Lmxlbmd0aCk/bnIodCxxdCk6W119ZnVuY3Rpb24gYnModCxlKXtyZXR1cm4obnVsbD09dD8wOnQubGVuZ3RoKT8oZT1lPT09b3Q/MTpNdShlKSxucih0LGUpKTpbXX1mdW5jdGlvbiB4cyh0KXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgscj17fTsrK2U8bjspe3ZhciBpPXRbZV07cltpWzBdXT1pWzFdfXJldHVybiByfWZ1bmN0aW9uIHdzKHQpe3JldHVybiB0JiZ0Lmxlbmd0aD90WzBdOm90fWZ1bmN0aW9uIFNzKHQsZSxuKXt2YXIgcj1udWxsPT10PzA6dC5sZW5ndGg7aWYoIXIpcmV0dXJuLTE7dmFyIGk9bnVsbD09bj8wOk11KG4pO3JldHVybiBpPDAmJihpPUtjKHIraSwwKSkseih0LGUsaSl9ZnVuY3Rpb24ga3ModCl7cmV0dXJuKG51bGw9PXQ/MDp0Lmxlbmd0aCk/aGkodCwwLC0xKTpbXX1mdW5jdGlvbiB6cyh0LGUpe3JldHVybiBudWxsPT10PyIiOlhjLmNhbGwodCxlKX1mdW5jdGlvbiBDcyh0KXt2YXIgZT1udWxsPT10PzA6dC5sZW5ndGg7cmV0dXJuIGU/dFtlLTFdOm90fWZ1bmN0aW9uIE1zKHQsZSxuKXt2YXIgcj1udWxsPT10PzA6dC5sZW5ndGg7aWYoIXIpcmV0dXJuLTE7dmFyIGk9cjtyZXR1cm4gbiE9PW90JiYoaT1NdShuKSxpPWk8MD9LYyhyK2ksMCk6WWMoaSxyLTEpKSxlPT09ZT9RKHQsZSxpKTprKHQsTSxpLCEwKX1mdW5jdGlvbiBqcyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD9Lcih0LE11KGUpKTpvdH1mdW5jdGlvbiBFcyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aCYmZSYmZS5sZW5ndGg/ZWkodCxlKTp0fWZ1bmN0aW9uIE9zKHQsZSxuKXtyZXR1cm4gdCYmdC5sZW5ndGgmJmUmJmUubGVuZ3RoP2VpKHQsZSxDbyhuLDIpKTp0fWZ1bmN0aW9uIFRzKHQsZSxuKXtyZXR1cm4gdCYmdC5sZW5ndGgmJmUmJmUubGVuZ3RoP2VpKHQsZSxvdCxuKTp0fWZ1bmN0aW9uIEFzKHQsZSl7dmFyIG49W107aWYoIXR8fCF0Lmxlbmd0aClyZXR1cm4gbjt2YXIgcj0tMSxpPVtdLG89dC5sZW5ndGg7Zm9yKGU9Q28oZSwzKTsrK3I8bzspe3ZhciBzPXRbcl07ZShzLHIsdCkmJihuLnB1c2gocyksaS5wdXNoKHIpKX1yZXR1cm4gbmkodCxpKSxufWZ1bmN0aW9uIExzKHQpe3JldHVybiBudWxsPT10P3Q6ZWguY2FsbCh0KX1mdW5jdGlvbiBScyh0LGUsbil7dmFyIHI9bnVsbD09dD8wOnQubGVuZ3RoO3JldHVybiByPyhuJiYibnVtYmVyIiE9dHlwZW9mIG4mJkZvKHQsZSxuKT8oZT0wLG49cik6KGU9bnVsbD09ZT8wOk11KGUpLG49bj09PW90P3I6TXUobikpLGhpKHQsZSxuKSk6W119ZnVuY3Rpb24gcXModCxlKXtyZXR1cm4gZGkodCxlKX1mdW5jdGlvbiBOcyh0LGUsbil7cmV0dXJuIGdpKHQsZSxDbyhuLDIpKX1mdW5jdGlvbiBJcyh0LGUpe3ZhciBuPW51bGw9PXQ/MDp0Lmxlbmd0aDtpZihuKXt2YXIgcj1kaSh0LGUpO2lmKHI8biYmS2EodFtyXSxlKSlyZXR1cm4gcn1yZXR1cm4tMX1mdW5jdGlvbiBQcyh0LGUpe3JldHVybiBkaSh0LGUsITApfWZ1bmN0aW9uIFdzKHQsZSxuKXtyZXR1cm4gZ2kodCxlLENvKG4sMiksITApfWZ1bmN0aW9uIEZzKHQsZSl7aWYobnVsbD09dD8wOnQubGVuZ3RoKXt2YXIgbj1kaSh0LGUsITApLTE7aWYoS2EodFtuXSxlKSlyZXR1cm4gbn1yZXR1cm4tMX1mdW5jdGlvbiBCcyh0KXtyZXR1cm4gdCYmdC5sZW5ndGg/cGkodCk6W119ZnVuY3Rpb24gSHModCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg/cGkodCxDbyhlLDIpKTpbXX1mdW5jdGlvbiBEcyh0KXt2YXIgZT1udWxsPT10PzA6dC5sZW5ndGg7cmV0dXJuIGU/aGkodCwxLGUpOltdfWZ1bmN0aW9uIFVzKHQsZSxuKXtyZXR1cm4gdCYmdC5sZW5ndGg/KGU9bnx8ZT09PW90PzE6TXUoZSksaGkodCwwLGU8MD8wOmUpKTpbXX1mdW5jdGlvbiBWcyh0LGUsbil7dmFyIHI9bnVsbD09dD8wOnQubGVuZ3RoO3JldHVybiByPyhlPW58fGU9PT1vdD8xOk11KGUpLGU9ci1lLGhpKHQsZTwwPzA6ZSxyKSk6W119ZnVuY3Rpb24gJHModCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg/eGkodCxDbyhlLDMpLCExLCEwKTpbXX1mdW5jdGlvbiBHcyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD94aSh0LENvKGUsMykpOltdfWZ1bmN0aW9uIFhzKHQpe3JldHVybiB0JiZ0Lmxlbmd0aD9faSh0KTpbXX1mdW5jdGlvbiBacyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD9faSh0LENvKGUsMikpOltdfWZ1bmN0aW9uIEtzKHQsZSl7cmV0dXJuIGU9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpvdCx0JiZ0Lmxlbmd0aD9faSh0LG90LGUpOltdfWZ1bmN0aW9uIFlzKHQpe2lmKCF0fHwhdC5sZW5ndGgpcmV0dXJuW107dmFyIGU9MDtyZXR1cm4gdD1kKHQsZnVuY3Rpb24odCl7aWYoSmEodCkpcmV0dXJuIGU9S2ModC5sZW5ndGgsZSksITB9KSxSKGUsZnVuY3Rpb24oZSl7cmV0dXJuIG0odCxFKGUpKX0pfWZ1bmN0aW9uIEpzKHQsZSl7aWYoIXR8fCF0Lmxlbmd0aClyZXR1cm5bXTt2YXIgbj1Zcyh0KTtyZXR1cm4gbnVsbD09ZT9uOm0obixmdW5jdGlvbih0KXtyZXR1cm4gdShlLG90LHQpfSl9ZnVuY3Rpb24gUXModCxlKXtyZXR1cm4ga2kodHx8W10sZXx8W10sTG4pfWZ1bmN0aW9uIHRhKHQsZSl7cmV0dXJuIGtpKHR8fFtdLGV8fFtdLGxpKX1mdW5jdGlvbiBlYSh0KXt2YXIgZT1uKHQpO3JldHVybiBlLl9fY2hhaW5fXz0hMCxlfWZ1bmN0aW9uIG5hKHQsZSl7cmV0dXJuIGUodCksdH1mdW5jdGlvbiByYSh0LGUpe3JldHVybiBlKHQpfWZ1bmN0aW9uIGlhKCl7cmV0dXJuIGVhKHRoaXMpfWZ1bmN0aW9uIG9hKCl7cmV0dXJuIG5ldyBpKHRoaXMudmFsdWUoKSx0aGlzLl9fY2hhaW5fXyl9ZnVuY3Rpb24gc2EoKXt0aGlzLl9fdmFsdWVzX189PT1vdCYmKHRoaXMuX192YWx1ZXNfXz16dSh0aGlzLnZhbHVlKCkpKTt2YXIgdD10aGlzLl9faW5kZXhfXz49dGhpcy5fX3ZhbHVlc19fLmxlbmd0aDtyZXR1cm57ZG9uZTp0LHZhbHVlOnQ/b3Q6dGhpcy5fX3ZhbHVlc19fW3RoaXMuX19pbmRleF9fKytdfX1mdW5jdGlvbiBhYSgpe3JldHVybiB0aGlzfWZ1bmN0aW9uIHVhKHQpe2Zvcih2YXIgZSxuPXRoaXM7biBpbnN0YW5jZW9mIHI7KXt2YXIgaT1hcyhuKTtpLl9faW5kZXhfXz0wLGkuX192YWx1ZXNfXz1vdCxlP28uX193cmFwcGVkX189aTplPWk7dmFyIG89aTtuPW4uX193cmFwcGVkX199cmV0dXJuIG8uX193cmFwcGVkX189dCxlfWZ1bmN0aW9uIGxhKCl7dmFyIHQ9dGhpcy5fX3dyYXBwZWRfXztpZih0IGluc3RhbmNlb2YgeCl7dmFyIGU9dDtyZXR1cm4gdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgmJihlPW5ldyB4KHRoaXMpKSxlPWUucmV2ZXJzZSgpLGUuX19hY3Rpb25zX18ucHVzaCh7ZnVuYzpyYSxhcmdzOltMc10sdGhpc0FyZzpvdH0pLG5ldyBpKGUsdGhpcy5fX2NoYWluX18pfXJldHVybiB0aGlzLnRocnUoTHMpfWZ1bmN0aW9uIGNhKCl7cmV0dXJuIHdpKHRoaXMuX193cmFwcGVkX18sdGhpcy5fX2FjdGlvbnNfXyl9ZnVuY3Rpb24gaGEodCxlLG4pe3ZhciByPXdmKHQpP2Y6WG47cmV0dXJuIG4mJkZvKHQsZSxuKSYmKGU9b3QpLHIodCxDbyhlLDMpKX1mdW5jdGlvbiBmYSh0LGUpe3JldHVybih3Zih0KT9kOmVyKSh0LENvKGUsMykpfWZ1bmN0aW9uIGRhKHQsZSl7cmV0dXJuIG5yKHlhKHQsZSksMSl9ZnVuY3Rpb24gZ2EodCxlKXtyZXR1cm4gbnIoeWEodCxlKSxxdCl9ZnVuY3Rpb24gcGEodCxlLG4pe3JldHVybiBuPW49PT1vdD8xOk11KG4pLG5yKHlhKHQsZSksbil9ZnVuY3Rpb24gbWEodCxlKXtyZXR1cm4od2YodCk/Yzp5aCkodCxDbyhlLDMpKX1mdW5jdGlvbiB2YSh0LGUpe3JldHVybih3Zih0KT9oOmJoKSh0LENvKGUsMykpfWZ1bmN0aW9uIF9hKHQsZSxuLHIpe3Q9WWEodCk/dDppbCh0KSxuPW4mJiFyP011KG4pOjA7dmFyIGk9dC5sZW5ndGg7cmV0dXJuIG48MCYmKG49S2MoaStuLDApKSxidSh0KT9uPD1pJiZ0LmluZGV4T2YoZSxuKT4tMTohIWkmJnoodCxlLG4pPi0xfWZ1bmN0aW9uIHlhKHQsZSl7cmV0dXJuKHdmKHQpP206VnIpKHQsQ28oZSwzKSl9ZnVuY3Rpb24gYmEodCxlLG4scil7cmV0dXJuIG51bGw9PXQ/W106KHdmKGUpfHwoZT1udWxsPT1lP1tdOltlXSksbj1yP290Om4sd2Yobil8fChuPW51bGw9PW4/W106W25dKSxZcih0LGUsbikpfWZ1bmN0aW9uIHhhKHQsZSxuKXt2YXIgcj13Zih0KT9fOlQsaT1hcmd1bWVudHMubGVuZ3RoPDM7cmV0dXJuIHIodCxDbyhlLDQpLG4saSx5aCl9ZnVuY3Rpb24gd2EodCxlLG4pe3ZhciByPXdmKHQpP3k6VCxpPWFyZ3VtZW50cy5sZW5ndGg8MztyZXR1cm4gcih0LENvKGUsNCksbixpLGJoKX1mdW5jdGlvbiBTYSh0LGUpe3JldHVybih3Zih0KT9kOmVyKSh0LElhKENvKGUsMykpKX1mdW5jdGlvbiBrYSh0KXtyZXR1cm4od2YodCk/RW46YWkpKHQpfWZ1bmN0aW9uIHphKHQsZSxuKXtyZXR1cm4gZT0obj9Gbyh0LGUsbik6ZT09PW90KT8xOk11KGUpLCh3Zih0KT9Pbjp1aSkodCxlKX1mdW5jdGlvbiBDYSh0KXtyZXR1cm4od2YodCk/VG46Y2kpKHQpfWZ1bmN0aW9uIE1hKHQpe2lmKG51bGw9PXQpcmV0dXJuIDA7aWYoWWEodCkpcmV0dXJuIGJ1KHQpP3R0KHQpOnQubGVuZ3RoO3ZhciBlPVRoKHQpO3JldHVybiBlPT1KdHx8ZT09b2U/dC5zaXplOkhyKHQpLmxlbmd0aH1mdW5jdGlvbiBqYSh0LGUsbil7dmFyIHI9d2YodCk/YjpmaTtyZXR1cm4gbiYmRm8odCxlLG4pJiYoZT1vdCkscih0LENvKGUsMykpfWZ1bmN0aW9uIEVhKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IHBjKGx0KTtyZXR1cm4gdD1NdSh0KSxmdW5jdGlvbigpe2lmKC0tdDwxKXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gT2EodCxlLG4pe3JldHVybiBlPW4/b3Q6ZSxlPXQmJm51bGw9PWU/dC5sZW5ndGg6ZSxnbyh0LHp0LG90LG90LG90LG90LGUpfWZ1bmN0aW9uIFRhKHQsZSl7dmFyIG47aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IHBjKGx0KTtyZXR1cm4gdD1NdSh0KSxmdW5jdGlvbigpe3JldHVybi0tdD4wJiYobj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdDw9MSYmKGU9b3QpLG59fWZ1bmN0aW9uIEFhKHQsZSxuKXtlPW4/b3Q6ZTt2YXIgcj1nbyh0LHh0LG90LG90LG90LG90LG90LGUpO3JldHVybiByLnBsYWNlaG9sZGVyPUFhLnBsYWNlaG9sZGVyLHJ9ZnVuY3Rpb24gTGEodCxlLG4pe2U9bj9vdDplO3ZhciByPWdvKHQsd3Qsb3Qsb3Qsb3Qsb3Qsb3QsZSk7cmV0dXJuIHIucGxhY2Vob2xkZXI9TGEucGxhY2Vob2xkZXIscn1mdW5jdGlvbiBSYSh0LGUsbil7ZnVuY3Rpb24gcihlKXt2YXIgbj1mLHI9ZDtyZXR1cm4gZj1kPW90LF89ZSxwPXQuYXBwbHkocixuKX1mdW5jdGlvbiBpKHQpe3JldHVybiBfPXQsbT1SaChhLGUpLHk/cih0KTpwfWZ1bmN0aW9uIG8odCl7dmFyIG49dC12LHI9dC1fLGk9ZS1uO3JldHVybiBiP1ljKGksZy1yKTppfWZ1bmN0aW9uIHModCl7dmFyIG49dC12LHI9dC1fO3JldHVybiB2PT09b3R8fG4+PWV8fG48MHx8YiYmcj49Z31mdW5jdGlvbiBhKCl7dmFyIHQ9Y2YoKTtyZXR1cm4gcyh0KT91KHQpOnZvaWQobT1SaChhLG8odCkpKX1mdW5jdGlvbiB1KHQpe3JldHVybiBtPW90LHgmJmY/cih0KTooZj1kPW90LHApfWZ1bmN0aW9uIGwoKXttIT09b3QmJkNoKG0pLF89MCxmPXY9ZD1tPW90fWZ1bmN0aW9uIGMoKXtyZXR1cm4gbT09PW90P3A6dShjZigpKX1mdW5jdGlvbiBoKCl7dmFyIHQ9Y2YoKSxuPXModCk7aWYoZj1hcmd1bWVudHMsZD10aGlzLHY9dCxuKXtpZihtPT09b3QpcmV0dXJuIGkodik7aWYoYilyZXR1cm4gbT1SaChhLGUpLHIodil9cmV0dXJuIG09PT1vdCYmKG09UmgoYSxlKSkscH12YXIgZixkLGcscCxtLHYsXz0wLHk9ITEsYj0hMSx4PSEwO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBwYyhsdCk7cmV0dXJuIGU9RXUoZSl8fDAsbHUobikmJih5PSEhbi5sZWFkaW5nLGI9Im1heFdhaXQiaW4gbixnPWI/S2MoRXUobi5tYXhXYWl0KXx8MCxlKTpnLHg9InRyYWlsaW5nImluIG4/ISFuLnRyYWlsaW5nOngpLGguY2FuY2VsPWwsaC5mbHVzaD1jLGh9ZnVuY3Rpb24gcWEodCl7cmV0dXJuIGdvKHQsTXQpfWZ1bmN0aW9uIE5hKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGwhPWUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBwYyhsdCk7dmFyIG49ZnVuY3Rpb24gbigpe3ZhciByPWFyZ3VtZW50cyxpPWU/ZS5hcHBseSh0aGlzLHIpOnJbMF0sbz1uLmNhY2hlO2lmKG8uaGFzKGkpKXJldHVybiBvLmdldChpKTt2YXIgcz10LmFwcGx5KHRoaXMscik7cmV0dXJuIG4uY2FjaGU9by5zZXQoaSxzKXx8byxzfTtyZXR1cm4gbi5jYWNoZT1uZXcoTmEuQ2FjaGV8fGRuKSxufWZ1bmN0aW9uIElhKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBwYyhsdCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzO3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAwOnJldHVybiF0LmNhbGwodGhpcyk7Y2FzZSAxOnJldHVybiF0LmNhbGwodGhpcyxlWzBdKTtjYXNlIDI6cmV0dXJuIXQuY2FsbCh0aGlzLGVbMF0sZVsxXSk7Y2FzZSAzOnJldHVybiF0LmNhbGwodGhpcyxlWzBdLGVbMV0sZVsyXSl9cmV0dXJuIXQuYXBwbHkodGhpcyxlKX19ZnVuY3Rpb24gUGEodCl7cmV0dXJuIFRhKDIsdCl9ZnVuY3Rpb24gV2EodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgcGMobHQpO3JldHVybiBlPWU9PT1vdD9lOk11KGUpLHNpKHQsZSl9ZnVuY3Rpb24gRmEodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgcGMobHQpO3JldHVybiBlPW51bGw9PWU/MDpLYyhNdShlKSwwKSxzaShmdW5jdGlvbihuKXt2YXIgcj1uW2VdLGk9amkobiwwLGUpO3JldHVybiByJiZ2KGksciksdSh0LHRoaXMsaSl9KX1mdW5jdGlvbiBCYSh0LGUsbil7dmFyIHI9ITAsaT0hMDtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgcGMobHQpO3JldHVybiBsdShuKSYmKHI9ImxlYWRpbmciaW4gbj8hIW4ubGVhZGluZzpyLGk9InRyYWlsaW5nImluIG4/ISFuLnRyYWlsaW5nOmkpLFJhKHQsZSx7bGVhZGluZzpyLG1heFdhaXQ6ZSx0cmFpbGluZzppfSl9ZnVuY3Rpb24gSGEodCl7cmV0dXJuIE9hKHQsMSl9ZnVuY3Rpb24gRGEodCxlKXtyZXR1cm4gbWYoQ2koZSksdCl9ZnVuY3Rpb24gVWEoKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5bXTt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIHdmKHQpP3Q6W3RdfWZ1bmN0aW9uIFZhKHQpe3JldHVybiBCbih0LHB0KX1mdW5jdGlvbiAkYSh0LGUpe3JldHVybiBlPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6b3QsQm4odCxwdCxlKX1mdW5jdGlvbiBHYSh0KXtyZXR1cm4gQm4odCxkdHxwdCl9ZnVuY3Rpb24gWGEodCxlKXtyZXR1cm4gZT0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOm90LEJuKHQsZHR8cHQsZSl9ZnVuY3Rpb24gWmEodCxlKXtyZXR1cm4gbnVsbD09ZXx8RG4odCxlLFZ1KGUpKX1mdW5jdGlvbiBLYSh0LGUpe3JldHVybiB0PT09ZXx8dCE9PXQmJmUhPT1lfWZ1bmN0aW9uIFlhKHQpe3JldHVybiBudWxsIT10JiZ1dSh0Lmxlbmd0aCkmJiFzdSh0KX1mdW5jdGlvbiBKYSh0KXtyZXR1cm4gY3UodCkmJllhKHQpfWZ1bmN0aW9uIFFhKHQpe3JldHVybiB0PT09ITB8fHQ9PT0hMXx8Y3UodCkmJmZyKHQpPT0kdH1mdW5jdGlvbiB0dSh0KXtyZXR1cm4gY3UodCkmJjE9PT10Lm5vZGVUeXBlJiYhX3UodCl9ZnVuY3Rpb24gZXUodCl7aWYobnVsbD09dClyZXR1cm4hMDtpZihZYSh0KSYmKHdmKHQpfHwic3RyaW5nIj09dHlwZW9mIHR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0LnNwbGljZXx8a2YodCl8fEVmKHQpfHx4Zih0KSkpcmV0dXJuIXQubGVuZ3RoO3ZhciBlPVRoKHQpO2lmKGU9PUp0fHxlPT1vZSlyZXR1cm4hdC5zaXplO2lmKFZvKHQpKXJldHVybiFIcih0KS5sZW5ndGg7Zm9yKHZhciBuIGluIHQpaWYoeGMuY2FsbCh0LG4pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIG51KHQsZSl7cmV0dXJuIExyKHQsZSl9ZnVuY3Rpb24gcnUodCxlLG4pe249ImZ1bmN0aW9uIj09dHlwZW9mIG4/bjpvdDt2YXIgcj1uP24odCxlKTpvdDtyZXR1cm4gcj09PW90P0xyKHQsZSxvdCxuKTohIXJ9ZnVuY3Rpb24gaXUodCl7aWYoIWN1KHQpKXJldHVybiExO3ZhciBlPWZyKHQpO3JldHVybiBlPT1adHx8ZT09WHR8fCJzdHJpbmciPT10eXBlb2YgdC5tZXNzYWdlJiYic3RyaW5nIj09dHlwZW9mIHQubmFtZSYmIV91KHQpfWZ1bmN0aW9uIG91KHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmR2ModCl9ZnVuY3Rpb24gc3UodCl7aWYoIWx1KHQpKXJldHVybiExO3ZhciBlPWZyKHQpO3JldHVybiBlPT1LdHx8ZT09WXR8fGU9PVZ0fHxlPT1yZX1mdW5jdGlvbiBhdSh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ9PU11KHQpfWZ1bmN0aW9uIHV1KHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD4tMSYmdCUxPT0wJiZ0PD1OdH1mdW5jdGlvbiBsdSh0KXt2YXIgZT0idW5kZWZpbmVkIj09dHlwZW9mIHQ/InVuZGVmaW5lZCI6byh0KTtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1lfHwiZnVuY3Rpb24iPT1lKX1mdW5jdGlvbiBjdSh0KXtyZXR1cm4gbnVsbCE9dCYmIm9iamVjdCI9PSgidW5kZWZpbmVkIj09dHlwZW9mIHQ/InVuZGVmaW5lZCI6byh0KSl9ZnVuY3Rpb24gaHUodCxlKXtyZXR1cm4gdD09PWV8fE5yKHQsZSxqbyhlKSl9ZnVuY3Rpb24gZnUodCxlLG4pe3JldHVybiBuPSJmdW5jdGlvbiI9PXR5cGVvZiBuP246b3QsTnIodCxlLGpvKGUpLG4pfWZ1bmN0aW9uIGR1KHQpe3JldHVybiB2dSh0KSYmdCE9K3R9ZnVuY3Rpb24gZ3UodCl7aWYoQWgodCkpdGhyb3cgbmV3IGxjKHV0KTtyZXR1cm4gSXIodCl9ZnVuY3Rpb24gcHUodCl7cmV0dXJuIG51bGw9PT10fWZ1bmN0aW9uIG11KHQpe3JldHVybiBudWxsPT10fWZ1bmN0aW9uIHZ1KHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdHx8Y3UodCkmJmZyKHQpPT1RdH1mdW5jdGlvbiBfdSh0KXtpZighY3UodCl8fGZyKHQpIT1lZSlyZXR1cm4hMTt2YXIgZT1BYyh0KTtpZihudWxsPT09ZSlyZXR1cm4hMDt2YXIgbj14Yy5jYWxsKGUsImNvbnN0cnVjdG9yIikmJmUuY29uc3RydWN0b3I7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4gaW5zdGFuY2VvZiBuJiZiYy5jYWxsKG4pPT16Y31mdW5jdGlvbiB5dSh0KXtyZXR1cm4gYXUodCkmJnQ+PS1OdCYmdDw9TnR9ZnVuY3Rpb24gYnUodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHwhd2YodCkmJmN1KHQpJiZmcih0KT09c2V9ZnVuY3Rpb24geHUodCl7cmV0dXJuInN5bWJvbCI9PSgidW5kZWZpbmVkIj09dHlwZW9mIHQ/InVuZGVmaW5lZCI6byh0KSl8fGN1KHQpJiZmcih0KT09YWV9ZnVuY3Rpb24gd3UodCl7cmV0dXJuIHQ9PT1vdH1mdW5jdGlvbiBTdSh0KXtyZXR1cm4gY3UodCkmJlRoKHQpPT1sZX1mdW5jdGlvbiBrdSh0KXtyZXR1cm4gY3UodCkmJmZyKHQpPT1jZX1mdW5jdGlvbiB6dSh0KXtpZighdClyZXR1cm5bXTtpZihZYSh0KSlyZXR1cm4gYnUodCk/ZXQodCk6QmkodCk7aWYoSWMmJnRbSWNdKXJldHVybiAkKHRbSWNdKCkpO3ZhciBlPVRoKHQpO3JldHVybihlPT1KdD9HOmU9PW9lP0s6aWwpKHQpfWZ1bmN0aW9uIEN1KHQpe3JldHVybiB0Pyh0PUV1KHQpLHQ9PT1xdHx8dD09PS1xdD8odDwwPy0xOjEpKkl0OnQ9PT10P3Q6MCk6MD09PXQ/dDowfWZ1bmN0aW9uIE11KHQpe3ZhciBlPUN1KHQpLG49ZSUxO3JldHVybiBlPT09ZT9uP2UtbjplOjB9ZnVuY3Rpb24ganUodCl7cmV0dXJuIHQ/Rm4oTXUodCksMCxXdCk6MH1mdW5jdGlvbiBFdSh0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoeHUodCkpcmV0dXJuIFB0O2lmKGx1KHQpKXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdC52YWx1ZU9mP3QudmFsdWVPZigpOnQ7dD1sdShlKT9lKyIiOmV9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9dC5yZXBsYWNlKFBlLCIiKTt2YXIgbj1aZS50ZXN0KHQpO3JldHVybiBufHxZZS50ZXN0KHQpP29yKHQuc2xpY2UoMiksbj8yOjgpOlhlLnRlc3QodCk/UHQ6K3R9ZnVuY3Rpb24gT3UodCl7cmV0dXJuIEhpKHQsJHUodCkpfWZ1bmN0aW9uIFR1KHQpe3JldHVybiB0P0ZuKE11KHQpLC1OdCxOdCk6MD09PXQ/dDowfWZ1bmN0aW9uIEF1KHQpe3JldHVybiBudWxsPT10PyIiOnZpKHQpfWZ1bmN0aW9uIEx1KHQsZSl7dmFyIG49X2godCk7cmV0dXJuIG51bGw9PWU/bjpObihuLGUpfWZ1bmN0aW9uIFJ1KHQsZSl7cmV0dXJuIFModCxDbyhlLDMpLHJyKX1mdW5jdGlvbiBxdSh0LGUpe3JldHVybiBTKHQsQ28oZSwzKSxzcil9ZnVuY3Rpb24gTnUodCxlKXtyZXR1cm4gbnVsbD09dD90OnhoKHQsQ28oZSwzKSwkdSl9ZnVuY3Rpb24gSXUodCxlKXtyZXR1cm4gbnVsbD09dD90OndoKHQsQ28oZSwzKSwkdSl9ZnVuY3Rpb24gUHUodCxlKXtyZXR1cm4gdCYmcnIodCxDbyhlLDMpKX1mdW5jdGlvbiBXdSh0LGUpe3JldHVybiB0JiZzcih0LENvKGUsMykpfWZ1bmN0aW9uIEZ1KHQpe3JldHVybiBudWxsPT10P1tdOmFyKHQsVnUodCkpfWZ1bmN0aW9uIEJ1KHQpe3JldHVybiBudWxsPT10P1tdOmFyKHQsJHUodCkpfWZ1bmN0aW9uIEh1KHQsZSxuKXt2YXIgcj1udWxsPT10P290OmxyKHQsZSk7cmV0dXJuIHI9PT1vdD9uOnJ9ZnVuY3Rpb24gRHUodCxlKXtyZXR1cm4gbnVsbCE9dCYmTG8odCxlLGJyKX1mdW5jdGlvbiBVdSh0LGUpe3JldHVybiBudWxsIT10JiZMbyh0LGUsa3IpfWZ1bmN0aW9uIFZ1KHQpe3JldHVybiBZYSh0KT9qbih0KTpIcih0KX1mdW5jdGlvbiAkdSh0KXtyZXR1cm4gWWEodCk/am4odCwhMCk6RHIodCl9ZnVuY3Rpb24gR3UodCxlKXt2YXIgbj17fTtyZXR1cm4gZT1DbyhlLDMpLHJyKHQsZnVuY3Rpb24odCxyLGkpe1BuKG4sZSh0LHIsaSksdCl9KSxufWZ1bmN0aW9uIFh1KHQsZSl7dmFyIG49e307cmV0dXJuIGU9Q28oZSwzKSxycih0LGZ1bmN0aW9uKHQscixpKXtQbihuLHIsZSh0LHIsaSkpfSksbn1mdW5jdGlvbiBadSh0LGUpe3JldHVybiBLdSh0LElhKENvKGUpKSl9ZnVuY3Rpb24gS3UodCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBuPW0oU28odCksZnVuY3Rpb24odCl7cmV0dXJuW3RdfSk7cmV0dXJuIGU9Q28oZSksUXIodCxuLGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodCxuWzBdKX0pfWZ1bmN0aW9uIFl1KHQsZSxuKXtlPU1pKGUsdCk7dmFyIHI9LTEsaT1lLmxlbmd0aDtmb3IoaXx8KGk9MSx0PW90KTsrK3I8aTspe3ZhciBvPW51bGw9PXQ/b3Q6dFtpcyhlW3JdKV07bz09PW90JiYocj1pLG89biksdD1zdShvKT9vLmNhbGwodCk6b31yZXR1cm4gdH1mdW5jdGlvbiBKdSh0LGUsbil7cmV0dXJuIG51bGw9PXQ/dDpsaSh0LGUsbil9ZnVuY3Rpb24gUXUodCxlLG4scil7cmV0dXJuIHI9ImZ1bmN0aW9uIj09dHlwZW9mIHI/cjpvdCxudWxsPT10P3Q6bGkodCxlLG4scil9ZnVuY3Rpb24gdGwodCxlLG4pe3ZhciByPXdmKHQpLGk9cnx8a2YodCl8fEVmKHQpO2lmKGU9Q28oZSw0KSxudWxsPT1uKXt2YXIgbz10JiZ0LmNvbnN0cnVjdG9yO249aT9yP25ldyBvOltdOmx1KHQpJiZzdShvKT9faChBYyh0KSk6e319cmV0dXJuKGk/YzpycikodCxmdW5jdGlvbih0LHIsaSl7cmV0dXJuIGUobix0LHIsaSl9KSxufWZ1bmN0aW9uIGVsKHQsZSl7cmV0dXJuIG51bGw9PXR8fHlpKHQsZSl9ZnVuY3Rpb24gbmwodCxlLG4pe3JldHVybiBudWxsPT10P3Q6YmkodCxlLENpKG4pKX1mdW5jdGlvbiBybCh0LGUsbixyKXtyZXR1cm4gcj0iZnVuY3Rpb24iPT10eXBlb2Ygcj9yOm90LG51bGw9PXQ/dDpiaSh0LGUsQ2kobikscil9ZnVuY3Rpb24gaWwodCl7cmV0dXJuIG51bGw9PXQ/W106SSh0LFZ1KHQpKX1mdW5jdGlvbiBvbCh0KXtyZXR1cm4gbnVsbD09dD9bXTpJKHQsJHUodCkpfWZ1bmN0aW9uIHNsKHQsZSxuKXtyZXR1cm4gbj09PW90JiYobj1lLGU9b3QpLG4hPT1vdCYmKG49RXUobiksbj1uPT09bj9uOjApLGUhPT1vdCYmKGU9RXUoZSksZT1lPT09ZT9lOjApLEZuKEV1KHQpLGUsbil9ZnVuY3Rpb24gYWwodCxlLG4pe3JldHVybiBlPUN1KGUpLG49PT1vdD8obj1lLGU9MCk6bj1DdShuKSx0PUV1KHQpLENyKHQsZSxuKX1mdW5jdGlvbiB1bCh0LGUsbil7aWYobiYmImJvb2xlYW4iIT10eXBlb2YgbiYmRm8odCxlLG4pJiYoZT1uPW90KSxuPT09b3QmJigiYm9vbGVhbiI9PXR5cGVvZiBlPyhuPWUsZT1vdCk6ImJvb2xlYW4iPT10eXBlb2YgdCYmKG49dCx0PW90KSksdD09PW90JiZlPT09b3Q/KHQ9MCxlPTEpOih0PUN1KHQpLGU9PT1vdD8oZT10LHQ9MCk6ZT1DdShlKSksdD5lKXt2YXIgcj10O3Q9ZSxlPXJ9aWYobnx8dCUxfHxlJTEpe3ZhciBpPXRoKCk7cmV0dXJuIFljKHQraSooZS10K2lyKCIxZS0iKygoaSsiIikubGVuZ3RoLTEpKSksZSl9cmV0dXJuIHJpKHQsZSl9ZnVuY3Rpb24gbGwodCl7cmV0dXJuIGVkKEF1KHQpLnRvTG93ZXJDYXNlKCkpfWZ1bmN0aW9uIGNsKHQpe3JldHVybiB0PUF1KHQpLHQmJnQucmVwbGFjZShRZSx4cikucmVwbGFjZShWbiwiIil9ZnVuY3Rpb24gaGwodCxlLG4pe3Q9QXUodCksZT12aShlKTt2YXIgcj10Lmxlbmd0aDtuPW49PT1vdD9yOkZuKE11KG4pLDAscik7dmFyIGk9bjtyZXR1cm4gbi09ZS5sZW5ndGgsbj49MCYmdC5zbGljZShuLGkpPT1lfWZ1bmN0aW9uIGZsKHQpe3JldHVybiB0PUF1KHQpLHQmJmplLnRlc3QodCk/dC5yZXBsYWNlKENlLHdyKTp0fWZ1bmN0aW9uIGRsKHQpe3JldHVybiB0PUF1KHQpLHQmJkllLnRlc3QodCk/dC5yZXBsYWNlKE5lLCJcXCQmIik6dH1mdW5jdGlvbiBnbCh0LGUsbil7dD1BdSh0KSxlPU11KGUpO3ZhciByPWU/dHQodCk6MDtpZighZXx8cj49ZSlyZXR1cm4gdDt2YXIgaT0oZS1yKS8yO3JldHVybiBzbyhVYyhpKSxuKSt0K3NvKERjKGkpLG4pfWZ1bmN0aW9uIHBsKHQsZSxuKXt0PUF1KHQpLGU9TXUoZSk7dmFyIHI9ZT90dCh0KTowO3JldHVybiBlJiZyPGU/dCtzbyhlLXIsbik6dH1mdW5jdGlvbiBtbCh0LGUsbil7dD1BdSh0KSxlPU11KGUpO3ZhciByPWU/dHQodCk6MDtyZXR1cm4gZSYmcjxlP3NvKGUtcixuKSt0OnR9ZnVuY3Rpb24gdmwodCxlLG4pe3JldHVybiBufHxudWxsPT1lP2U9MDplJiYoZT0rZSksUWMoQXUodCkucmVwbGFjZShXZSwiIiksZXx8MCl9ZnVuY3Rpb24gX2wodCxlLG4pe3JldHVybiBlPShuP0ZvKHQsZSxuKTplPT09b3QpPzE6TXUoZSksb2koQXUodCksZSl9ZnVuY3Rpb24geWwoKXt2YXIgdD1hcmd1bWVudHMsZT1BdSh0WzBdKTtyZXR1cm4gdC5sZW5ndGg8Mz9lOmUucmVwbGFjZSh0WzFdLHRbMl0pfWZ1bmN0aW9uIGJsKHQsZSxuKXtyZXR1cm4gbiYmIm51bWJlciIhPXR5cGVvZiBuJiZGbyh0LGUsbikmJihlPW49b3QpLChuPW49PT1vdD9XdDpuPj4+MCk/KHQ9QXUodCksdCYmKCJzdHJpbmciPT10eXBlb2YgZXx8bnVsbCE9ZSYmIU1mKGUpKSYmKGU9dmkoZSksIWUmJlUodCkpP2ppKGV0KHQpLDAsbik6dC5zcGxpdChlLG4pKTpbXX1mdW5jdGlvbiB4bCh0LGUsbil7cmV0dXJuIHQ9QXUodCksbj1udWxsPT1uPzA6Rm4oTXUobiksMCx0Lmxlbmd0aCksZT12aShlKSx0LnNsaWNlKG4sbitlLmxlbmd0aCk9PWV9ZnVuY3Rpb24gd2wodCxlLHIpe3ZhciBpPW4udGVtcGxhdGVTZXR0aW5ncztyJiZGbyh0LGUscikmJihlPW90KSx0PUF1KHQpLGU9UmYoe30sZSxpLHBvKTt2YXIgbyxzLGE9UmYoe30sZS5pbXBvcnRzLGkuaW1wb3J0cyxwbyksdT1WdShhKSxsPUkoYSx1KSxjPTAsaD1lLmludGVycG9sYXRlfHx0bixmPSJfX3AgKz0gJyIsZD1kYygoZS5lc2NhcGV8fHRuKS5zb3VyY2UrInwiK2guc291cmNlKyJ8IisoaD09PVRlPyRlOnRuKS5zb3VyY2UrInwiKyhlLmV2YWx1YXRlfHx0bikuc291cmNlKyJ8JCIsImciKSxnPSIvLyMgc291cmNlVVJMPSIrKCJzb3VyY2VVUkwiaW4gZT9lLnNvdXJjZVVSTDoibG9kYXNoLnRlbXBsYXRlU291cmNlc1siKyArK1luKyJdIikrIlxuIjt0LnJlcGxhY2UoZCxmdW5jdGlvbihlLG4scixpLGEsdSl7cmV0dXJuIHJ8fChyPWkpLGYrPXQuc2xpY2UoYyx1KS5yZXBsYWNlKGVuLEgpLG4mJihvPSEwLGYrPSInICtcbl9fZSgiK24rIikgK1xuJyIpLGEmJihzPSEwLGYrPSInO1xuIithKyI7XG5fX3AgKz0gJyIpLHImJihmKz0iJyArXG4oKF9fdCA9ICgiK3IrIikpID09IG51bGwgPyAnJyA6IF9fdCkgK1xuJyIpLGM9dStlLmxlbmd0aCxlfSksZis9Iic7XG4iO3ZhciBwPWUudmFyaWFibGU7cHx8KGY9IndpdGggKG9iaikge1xuIitmKyJcbn1cbiIpLGY9KHM/Zi5yZXBsYWNlKHdlLCIiKTpmKS5yZXBsYWNlKFNlLCIkMSIpLnJlcGxhY2Uoa2UsIiQxOyIpLGY9ImZ1bmN0aW9uKCIrKHB8fCJvYmoiKSsiKSB7XG4iKyhwPyIiOiJvYmogfHwgKG9iaiA9IHt9KTtcbiIpKyJ2YXIgX190LCBfX3AgPSAnJyIrKG8/IiwgX19lID0gXy5lc2NhcGUiOiIiKSsocz8iLCBfX2ogPSBBcnJheS5wcm90b3R5cGUuam9pbjtcbmZ1bmN0aW9uIHByaW50KCkgeyBfX3AgKz0gX19qLmNhbGwoYXJndW1lbnRzLCAnJykgfVxuIjoiO1xuIikrZisicmV0dXJuIF9fcFxufSI7dmFyIG09bmQoZnVuY3Rpb24oKXtyZXR1cm4gY2ModSxnKyJyZXR1cm4gIitmKS5hcHBseShvdCxsKX0pO2lmKG0uc291cmNlPWYsaXUobSkpdGhyb3cgbTtyZXR1cm4gbX1mdW5jdGlvbiBTbCh0KXtyZXR1cm4gQXUodCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBrbCh0KXtyZXR1cm4gQXUodCkudG9VcHBlckNhc2UoKX1mdW5jdGlvbiB6bCh0LGUsbil7aWYodD1BdSh0KSx0JiYobnx8ZT09PW90KSlyZXR1cm4gdC5yZXBsYWNlKFBlLCIiKTtpZighdHx8IShlPXZpKGUpKSlyZXR1cm4gdDt2YXIgcj1ldCh0KSxpPWV0KGUpO3JldHVybiBqaShyLFcocixpKSxGKHIsaSkrMSkuam9pbigiIil9ZnVuY3Rpb24gQ2wodCxlLG4pe2lmKHQ9QXUodCksdCYmKG58fGU9PT1vdCkpcmV0dXJuIHQucmVwbGFjZShGZSwiIik7aWYoIXR8fCEoZT12aShlKSkpcmV0dXJuIHQ7dmFyIHI9ZXQodCk7cmV0dXJuIGppKHIsMCxGKHIsZXQoZSkpKzEpLmpvaW4oIiIpfWZ1bmN0aW9uIE1sKHQsZSxuKXtpZih0PUF1KHQpLHQmJihufHxlPT09b3QpKXJldHVybiB0LnJlcGxhY2UoV2UsIiIpO2lmKCF0fHwhKGU9dmkoZSkpKXJldHVybiB0O3ZhciByPWV0KHQpO3JldHVybiBqaShyLFcocixldChlKSkpLmpvaW4oIiIpfWZ1bmN0aW9uIGpsKHQsZSl7dmFyIG49anQscj1FdDtpZihsdShlKSl7dmFyIGk9InNlcGFyYXRvciJpbiBlP2Uuc2VwYXJhdG9yOmk7bj0ibGVuZ3RoImluIGU/TXUoZS5sZW5ndGgpOm4scj0ib21pc3Npb24iaW4gZT92aShlLm9taXNzaW9uKTpyfXQ9QXUodCk7dmFyIG89dC5sZW5ndGg7aWYoVSh0KSl7dmFyIHM9ZXQodCk7bz1zLmxlbmd0aH1pZihuPj1vKXJldHVybiB0O3ZhciBhPW4tdHQocik7aWYoYTwxKXJldHVybiByO3ZhciB1PXM/amkocywwLGEpLmpvaW4oIiIpOnQuc2xpY2UoMCxhKTtpZihpPT09b3QpcmV0dXJuIHUrcjtpZihzJiYoYSs9dS5sZW5ndGgtYSksTWYoaSkpe2lmKHQuc2xpY2UoYSkuc2VhcmNoKGkpKXt2YXIgbCxjPXU7Zm9yKGkuZ2xvYmFsfHwoaT1kYyhpLnNvdXJjZSxBdShHZS5leGVjKGkpKSsiZyIpKSxpLmxhc3RJbmRleD0wO2w9aS5leGVjKGMpOyl2YXIgaD1sLmluZGV4O3U9dS5zbGljZSgwLGg9PT1vdD9hOmgpfX1lbHNlIGlmKHQuaW5kZXhPZih2aShpKSxhKSE9YSl7dmFyIGY9dS5sYXN0SW5kZXhPZihpKTtmPi0xJiYodT11LnNsaWNlKDAsZikpfXJldHVybiB1K3J9ZnVuY3Rpb24gRWwodCl7cmV0dXJuIHQ9QXUodCksdCYmTWUudGVzdCh0KT90LnJlcGxhY2UoemUsU3IpOnR9ZnVuY3Rpb24gT2wodCxlLG4pe3JldHVybiB0PUF1KHQpLGU9bj9vdDplLGU9PT1vdD9WKHQpP2l0KHQpOncodCk6dC5tYXRjaChlKXx8W119ZnVuY3Rpb24gVGwodCl7dmFyIGU9bnVsbD09dD8wOnQubGVuZ3RoLG49Q28oKTtyZXR1cm4gdD1lP20odCxmdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdFsxXSl0aHJvdyBuZXcgcGMobHQpO3JldHVybltuKHRbMF0pLHRbMV1dfSk6W10sc2koZnVuY3Rpb24obil7Zm9yKHZhciByPS0xOysrcjxlOyl7dmFyIGk9dFtyXTtpZih1KGlbMF0sdGhpcyxuKSlyZXR1cm4gdShpWzFdLHRoaXMsbil9fSl9ZnVuY3Rpb24gQWwodCl7cmV0dXJuIEhuKEJuKHQsZHQpKX1mdW5jdGlvbiBMbCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gUmwodCxlKXtyZXR1cm4gbnVsbD09dHx8dCE9PXQ/ZTp0fWZ1bmN0aW9uIHFsKHQpe3JldHVybiB0fWZ1bmN0aW9uIE5sKHQpe3JldHVybiBCcigiZnVuY3Rpb24iPT10eXBlb2YgdD90OkJuKHQsZHQpKX1mdW5jdGlvbiBJbCh0KXtyZXR1cm4gJHIoQm4odCxkdCkpfWZ1bmN0aW9uIFBsKHQsZSl7cmV0dXJuIEdyKHQsQm4oZSxkdCkpfWZ1bmN0aW9uIFdsKHQsZSxuKXt2YXIgcj1WdShlKSxpPWFyKGUscik7bnVsbCE9bnx8bHUoZSkmJihpLmxlbmd0aHx8IXIubGVuZ3RoKXx8KG49ZSxlPXQsdD10aGlzLGk9YXIoZSxWdShlKSkpO3ZhciBvPSEobHUobikmJiJjaGFpbiJpbiBuJiYhbi5jaGFpbikscz1zdSh0KTtyZXR1cm4gYyhpLGZ1bmN0aW9uKG4pe3ZhciByPWVbbl07dFtuXT1yLHMmJih0LnByb3RvdHlwZVtuXT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX19jaGFpbl9fO2lmKG98fGUpe3ZhciBuPXQodGhpcy5fX3dyYXBwZWRfXyk7cmV0dXJuKG4uX19hY3Rpb25zX189QmkodGhpcy5fX2FjdGlvbnNfXykpLnB1c2goe2Z1bmM6cixhcmdzOmFyZ3VtZW50cyx0aGlzQXJnOnR9KSxuLl9fY2hhaW5fXz1lLG59cmV0dXJuIHIuYXBwbHkodCx2KFt0aGlzLnZhbHVlKCldLGFyZ3VtZW50cykpfSl9KSx0fWZ1bmN0aW9uIEZsKCl7cmV0dXJuIHVyLl89PT10aGlzJiYodXIuXz1DYyksdGhpc31mdW5jdGlvbiBCbCgpe31mdW5jdGlvbiBIbCh0KXtyZXR1cm4gdD1NdSh0KSxzaShmdW5jdGlvbihlKXtyZXR1cm4gS3IoZSx0KX0pfWZ1bmN0aW9uIERsKHQpe3JldHVybiBCbyh0KT9FKGlzKHQpKTp0aSh0KX1mdW5jdGlvbiBVbCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PXQ/b3Q6bHIodCxlKX19ZnVuY3Rpb24gVmwoKXtyZXR1cm5bXX1mdW5jdGlvbiAkbCgpe3JldHVybiExfWZ1bmN0aW9uIEdsKCl7cmV0dXJue319ZnVuY3Rpb24gWGwoKXtyZXR1cm4iIn1mdW5jdGlvbiBabCgpe3JldHVybiEwfWZ1bmN0aW9uIEtsKHQsZSl7aWYodD1NdSh0KSx0PDF8fHQ+TnQpcmV0dXJuW107dmFyIG49V3Qscj1ZYyh0LFd0KTtlPUNvKGUpLHQtPVd0O2Zvcih2YXIgaT1SKHIsZSk7KytuPHQ7KWUobik7cmV0dXJuIGl9ZnVuY3Rpb24gWWwodCl7cmV0dXJuIHdmKHQpP20odCxpcyk6eHUodCk/W3RdOkJpKE5oKEF1KHQpKSl9ZnVuY3Rpb24gSmwodCl7dmFyIGU9Kyt3YztyZXR1cm4gQXUodCkrZX1mdW5jdGlvbiBRbCh0KXtyZXR1cm4gdCYmdC5sZW5ndGg/Wm4odCxxbCxkcik6b3R9ZnVuY3Rpb24gdGModCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg/Wm4odCxDbyhlLDIpLGRyKTpvdH1mdW5jdGlvbiBlYyh0KXtyZXR1cm4gaih0LHFsKX1mdW5jdGlvbiBuYyh0LGUpe3JldHVybiBqKHQsQ28oZSwyKSl9ZnVuY3Rpb24gcmModCl7cmV0dXJuIHQmJnQubGVuZ3RoP1puKHQscWwsVXIpOm90fWZ1bmN0aW9uIGljKHQsZSl7cmV0dXJuIHQmJnQubGVuZ3RoP1puKHQsQ28oZSwyKSxVcik6b3R9ZnVuY3Rpb24gb2ModCl7cmV0dXJuIHQmJnQubGVuZ3RoP0wodCxxbCk6MH1mdW5jdGlvbiBzYyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD9MKHQsQ28oZSwyKSk6MH1lPW51bGw9PWU/dXI6enIuZGVmYXVsdHModXIuT2JqZWN0KCksZSx6ci5waWNrKHVyLEtuKSk7dmFyIGFjPWUuQXJyYXksdWM9ZS5EYXRlLGxjPWUuRXJyb3IsY2M9ZS5GdW5jdGlvbixoYz1lLk1hdGgsZmM9ZS5PYmplY3QsZGM9ZS5SZWdFeHAsZ2M9ZS5TdHJpbmcscGM9ZS5UeXBlRXJyb3IsbWM9YWMucHJvdG90eXBlLHZjPWNjLnByb3RvdHlwZSxfYz1mYy5wcm90b3R5cGUseWM9ZVsiX19jb3JlLWpzX3NoYXJlZF9fIl0sYmM9dmMudG9TdHJpbmcseGM9X2MuaGFzT3duUHJvcGVydHksd2M9MCxTYz1mdW5jdGlvbigpe3ZhciB0PS9bXi5dKyQvLmV4ZWMoeWMmJnljLmtleXMmJnljLmtleXMuSUVfUFJPVE98fCIiKTtyZXR1cm4gdD8iU3ltYm9sKHNyYylfMS4iK3Q6IiJ9KCksa2M9X2MudG9TdHJpbmcsemM9YmMuY2FsbChmYyksQ2M9dXIuXyxNYz1kYygiXiIrYmMuY2FsbCh4YykucmVwbGFjZShOZSwiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKSxqYz1ocj9lLkJ1ZmZlcjpvdCxFYz1lLlN5bWJvbCxPYz1lLlVpbnQ4QXJyYXksVGM9amM/amMuYWxsb2NVbnNhZmU6b3QsQWM9WChmYy5nZXRQcm90b3R5cGVPZixmYyksTGM9ZmMuY3JlYXRlLFJjPV9jLnByb3BlcnR5SXNFbnVtZXJhYmxlLHFjPW1jLnNwbGljZSxOYz1FYz9FYy5pc0NvbmNhdFNwcmVhZGFibGU6b3QsSWM9RWM/RWMuaXRlcmF0b3I6b3QsUGM9RWM/RWMudG9TdHJpbmdUYWc6b3QsV2M9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9RW8oZmMsImRlZmluZVByb3BlcnR5Iik7cmV0dXJuIHQoe30sIiIse30pLHR9Y2F0Y2godCl7fX0oKSxGYz1lLmNsZWFyVGltZW91dCE9PXVyLmNsZWFyVGltZW91dCYmZS5jbGVhclRpbWVvdXQsQmM9dWMmJnVjLm5vdyE9PXVyLkRhdGUubm93JiZ1Yy5ub3csSGM9ZS5zZXRUaW1lb3V0IT09dXIuc2V0VGltZW91dCYmZS5zZXRUaW1lb3V0LERjPWhjLmNlaWwsVWM9aGMuZmxvb3IsVmM9ZmMuZ2V0T3duUHJvcGVydHlTeW1ib2xzLCRjPWpjP2pjLmlzQnVmZmVyOm90LEdjPWUuaXNGaW5pdGUsWGM9bWMuam9pbixaYz1YKGZjLmtleXMsZmMpLEtjPWhjLm1heCxZYz1oYy5taW4sSmM9dWMubm93LFFjPWUucGFyc2VJbnQsdGg9aGMucmFuZG9tLGVoPW1jLnJldmVyc2Usbmg9RW8oZSwiRGF0YVZpZXciKSxyaD1FbyhlLCJNYXAiKSxpaD1FbyhlLCJQcm9taXNlIiksb2g9RW8oZSwiU2V0Iiksc2g9RW8oZSwiV2Vha01hcCIpLGFoPUVvKGZjLCJjcmVhdGUiKSx1aD1zaCYmbmV3IHNoLGxoPXt9LGNoPW9zKG5oKSxoaD1vcyhyaCksZmg9b3MoaWgpLGRoPW9zKG9oKSxnaD1vcyhzaCkscGg9RWM/RWMucHJvdG90eXBlOm90LG1oPXBoP3BoLnZhbHVlT2Y6b3Qsdmg9cGg/cGgudG9TdHJpbmc6b3QsX2g9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiBmdW5jdGlvbihlKXtpZighbHUoZSkpcmV0dXJue307aWYoTGMpcmV0dXJuIExjKGUpO3QucHJvdG90eXBlPWU7dmFyIG49bmV3IHQ7cmV0dXJuIHQucHJvdG90eXBlPW90LG59fSgpO24udGVtcGxhdGVTZXR0aW5ncz17ZXNjYXBlOkVlLGV2YWx1YXRlOk9lLGludGVycG9sYXRlOlRlLHZhcmlhYmxlOiIiLGltcG9ydHM6e186bn19LG4ucHJvdG90eXBlPXIucHJvdG90eXBlLG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW4saS5wcm90b3R5cGU9X2goci5wcm90b3R5cGUpLGkucHJvdG90eXBlLmNvbnN0cnVjdG9yPWkseC5wcm90b3R5cGU9X2goci5wcm90b3R5cGUpLHgucHJvdG90eXBlLmNvbnN0cnVjdG9yPXgscnQucHJvdG90eXBlLmNsZWFyPVVlLHJ0LnByb3RvdHlwZS5kZWxldGU9bm4scnQucHJvdG90eXBlLmdldD1ybixydC5wcm90b3R5cGUuaGFzPW9uLHJ0LnByb3RvdHlwZS5zZXQ9c24sYW4ucHJvdG90eXBlLmNsZWFyPXVuLGFuLnByb3RvdHlwZS5kZWxldGU9bG4sYW4ucHJvdG90eXBlLmdldD1jbixhbi5wcm90b3R5cGUuaGFzPWhuLGFuLnByb3RvdHlwZS5zZXQ9Zm4sZG4ucHJvdG90eXBlLmNsZWFyPWduLGRuLnByb3RvdHlwZS5kZWxldGU9cG4sZG4ucHJvdG90eXBlLmdldD1tbixkbi5wcm90b3R5cGUuaGFzPXZuLGRuLnByb3RvdHlwZS5zZXQ9X24seW4ucHJvdG90eXBlLmFkZD15bi5wcm90b3R5cGUucHVzaD1ibix5bi5wcm90b3R5cGUuaGFzPXhuLHduLnByb3RvdHlwZS5jbGVhcj1Tbix3bi5wcm90b3R5cGUuZGVsZXRlPWtuLHduLnByb3RvdHlwZS5nZXQ9em4sd24ucHJvdG90eXBlLmhhcz1Dbix3bi5wcm90b3R5cGUuc2V0PU1uO3ZhciB5aD1HaShyciksYmg9R2koc3IsITApLHhoPVhpKCksd2g9WGkoITApLFNoPXVoP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIHVoLnNldCh0LGUpLHR9OnFsLGtoPVdjP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIFdjKHQsInRvU3RyaW5nIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsdmFsdWU6TGwoZSksd3JpdGFibGU6ITB9KX06cWwsemg9c2ksQ2g9RmN8fGZ1bmN0aW9uKHQpe3JldHVybiB1ci5jbGVhclRpbWVvdXQodCl9LE1oPW9oJiYxL0sobmV3IG9oKFssLTBdKSlbMV09PXF0P2Z1bmN0aW9uKHQpe3JldHVybiBuZXcgb2godCl9OkJsLGpoPXVoP2Z1bmN0aW9uKHQpe3JldHVybiB1aC5nZXQodCl9OkJsLEVoPVZjP2Z1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P1tdOih0PWZjKHQpLGQoVmModCksZnVuY3Rpb24oZSl7cmV0dXJuIFJjLmNhbGwodCxlKX0pKX06VmwsT2g9VmM/ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdO3Q7KXYoZSxFaCh0KSksdD1BYyh0KTtyZXR1cm4gZX06VmwsVGg9ZnI7KG5oJiZUaChuZXcgbmgobmV3IEFycmF5QnVmZmVyKDEpKSkhPWZlfHxyaCYmVGgobmV3IHJoKSE9SnR8fGloJiZUaChpaC5yZXNvbHZlKCkpIT1uZXx8b2gmJlRoKG5ldyBvaCkhPW9lfHxzaCYmVGgobmV3IHNoKSE9bGUpJiYoVGg9ZnVuY3Rpb24odCl7dmFyIGU9ZnIodCksbj1lPT1lZT90LmNvbnN0cnVjdG9yOm90LHI9bj9vcyhuKToiIjtpZihyKXN3aXRjaChyKXtjYXNlIGNoOnJldHVybiBmZTtjYXNlIGhoOnJldHVybiBKdDtjYXNlIGZoOnJldHVybiBuZTtjYXNlIGRoOnJldHVybiBvZTtjYXNlIGdoOnJldHVybiBsZX1yZXR1cm4gZX0pO3ZhciBBaD15Yz9zdTokbCxMaD1ucyhTaCksUmg9SGN8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHVyLnNldFRpbWVvdXQodCxlKX0scWg9bnMoa2gpLE5oPVhvKGZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiBSZS50ZXN0KHQpJiZlLnB1c2goIiIpLHQucmVwbGFjZShxZSxmdW5jdGlvbih0LG4scixpKXtlLnB1c2gocj9pLnJlcGxhY2UoVmUsIiQxIik6bnx8dCl9KSxlfSksSWg9c2koZnVuY3Rpb24odCxlKXtyZXR1cm4gSmEodCk/R24odCxucihlLDEsSmEsITApKTpbXX0pLFBoPXNpKGZ1bmN0aW9uKHQsZSl7dmFyIG49Q3MoZSk7cmV0dXJuIEphKG4pJiYobj1vdCksSmEodCk/R24odCxucihlLDEsSmEsITApLENvKG4sMikpOltdfSksV2g9c2koZnVuY3Rpb24odCxlKXt2YXIgbj1DcyhlKTtyZXR1cm4gSmEobikmJihuPW90KSxKYSh0KT9Hbih0LG5yKGUsMSxKYSwhMCksb3Qsbik6W119KSxGaD1zaShmdW5jdGlvbih0KXt2YXIgZT1tKHQsemkpO3JldHVybiBlLmxlbmd0aCYmZVswXT09PXRbMF0/TXIoZSk6W119KSxCaD1zaShmdW5jdGlvbih0KXt2YXIgZT1Dcyh0KSxuPW0odCx6aSk7cmV0dXJuIGU9PT1DcyhuKT9lPW90Om4ucG9wKCksbi5sZW5ndGgmJm5bMF09PT10WzBdP01yKG4sQ28oZSwyKSk6W119KSxIaD1zaShmdW5jdGlvbih0KXt2YXIgZT1Dcyh0KSxuPW0odCx6aSk7cmV0dXJuIGU9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpvdCxlJiZuLnBvcCgpLG4ubGVuZ3RoJiZuWzBdPT09dFswXT9NcihuLG90LGUpOltdfSksRGg9c2koRXMpLFVoPXhvKGZ1bmN0aW9uKHQsZSl7dmFyIG49bnVsbD09dD8wOnQubGVuZ3RoLHI9V24odCxlKTtyZXR1cm4gbmkodCxtKGUsZnVuY3Rpb24odCl7cmV0dXJuIFdvKHQsbik/K3Q6dH0pLnNvcnQoSWkpKSxyfSksVmg9c2koZnVuY3Rpb24odCl7cmV0dXJuIF9pKG5yKHQsMSxKYSwhMCkpfSksJGg9c2koZnVuY3Rpb24odCl7dmFyIGU9Q3ModCk7cmV0dXJuIEphKGUpJiYoZT1vdCksX2kobnIodCwxLEphLCEwKSxDbyhlLDIpKX0pLEdoPXNpKGZ1bmN0aW9uKHQpe3ZhciBlPUNzKHQpO3JldHVybiBlPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6b3QsX2kobnIodCwxLEphLCEwKSxvdCxlKX0pLFhoPXNpKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEphKHQpP0duKHQsZSk6W119KSxaaD1zaShmdW5jdGlvbih0KXtyZXR1cm4gU2koZCh0LEphKSl9KSxLaD1zaShmdW5jdGlvbih0KXt2YXIgZT1Dcyh0KTtyZXR1cm4gSmEoZSkmJihlPW90KSxTaShkKHQsSmEpLENvKGUsMikpfSksWWg9c2koZnVuY3Rpb24odCl7dmFyIGU9Q3ModCk7cmV0dXJuIGU9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpvdCxTaShkKHQsSmEpLG90LGUpfSksSmg9c2koWXMpLFFoPXNpKGZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoLG49ZT4xP3RbZS0xXTpvdDtyZXR1cm4gbj0iZnVuY3Rpb24iPT10eXBlb2Ygbj8odC5wb3AoKSxuKTpvdCxKcyh0LG4pfSksdGY9eG8oZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGgsbj1lP3RbMF06MCxyPXRoaXMuX193cmFwcGVkX18sbz1mdW5jdGlvbihlKXtyZXR1cm4gV24oZSx0KX07cmV0dXJuIShlPjF8fHRoaXMuX19hY3Rpb25zX18ubGVuZ3RoKSYmciBpbnN0YW5jZW9mIHgmJldvKG4pPyhyPXIuc2xpY2UobiwrbisoZT8xOjApKSxyLl9fYWN0aW9uc19fLnB1c2goe2Z1bmM6cmEsYXJnczpbb10sdGhpc0FyZzpvdH0pLG5ldyBpKHIsdGhpcy5fX2NoYWluX18pLnRocnUoZnVuY3Rpb24odCl7cmV0dXJuIGUmJiF0Lmxlbmd0aCYmdC5wdXNoKG90KSx0fSkpOnRoaXMudGhydShvKX0pLGVmPVZpKGZ1bmN0aW9uKHQsZSxuKXt4Yy5jYWxsKHQsbik/Kyt0W25dOlBuKHQsbiwxKX0pLG5mPXRvKG1zKSxyZj10byh2cyksb2Y9VmkoZnVuY3Rpb24odCxlLG4pe3hjLmNhbGwodCxuKT90W25dLnB1c2goZSk6UG4odCxuLFtlXSl9KSxzZj1zaShmdW5jdGlvbih0LGUsbil7dmFyIHI9LTEsaT0iZnVuY3Rpb24iPT10eXBlb2YgZSxvPVlhKHQpP2FjKHQubGVuZ3RoKTpbXTtyZXR1cm4geWgodCxmdW5jdGlvbih0KXtvWysrcl09aT91KGUsdCxuKTpFcih0LGUsbil9KSxvfSksYWY9VmkoZnVuY3Rpb24odCxlLG4pe1BuKHQsbixlKX0pLHVmPVZpKGZ1bmN0aW9uKHQsZSxuKXt0W24/MDoxXS5wdXNoKGUpfSxmdW5jdGlvbigpe3JldHVybltbXSxbXV19KSxsZj1zaShmdW5jdGlvbih0LGUpe2lmKG51bGw9PXQpcmV0dXJuW107dmFyIG49ZS5sZW5ndGg7cmV0dXJuIG4+MSYmRm8odCxlWzBdLGVbMV0pP2U9W106bj4yJiZGbyhlWzBdLGVbMV0sZVsyXSkmJihlPVtlWzBdXSksWXIodCxucihlLDEpLFtdKX0pLGNmPUJjfHxmdW5jdGlvbigpe3JldHVybiB1ci5EYXRlLm5vdygpfSxoZj1zaShmdW5jdGlvbih0LGUsbil7dmFyIHI9X3Q7aWYobi5sZW5ndGgpe3ZhciBpPVoobix6byhoZikpO3J8PVN0fXJldHVybiBnbyh0LHIsZSxuLGkpfSksZmY9c2koZnVuY3Rpb24odCxlLG4pe3ZhciByPV90fHl0O2lmKG4ubGVuZ3RoKXt2YXIgaT1aKG4sem8oZmYpKTtyfD1TdH1yZXR1cm4gZ28oZSxyLHQsbixpKX0pLGRmPXNpKGZ1bmN0aW9uKHQsZSl7cmV0dXJuICRuKHQsMSxlKX0pLGdmPXNpKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gJG4odCxFdShlKXx8MCxuKX0pO05hLkNhY2hlPWRuO3ZhciBwZj16aChmdW5jdGlvbih0LGUpe2U9MT09ZS5sZW5ndGgmJndmKGVbMF0pP20oZVswXSxOKENvKCkpKTptKG5yKGUsMSksTihDbygpKSk7CnZhciBuPWUubGVuZ3RoO3JldHVybiBzaShmdW5jdGlvbihyKXtmb3IodmFyIGk9LTEsbz1ZYyhyLmxlbmd0aCxuKTsrK2k8bzspcltpXT1lW2ldLmNhbGwodGhpcyxyW2ldKTtyZXR1cm4gdSh0LHRoaXMscil9KX0pLG1mPXNpKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGdvKHQsU3Qsb3QsZSxaKGUsem8obWYpKSl9KSx2Zj1zaShmdW5jdGlvbih0LGUpe3JldHVybiBnbyh0LGt0LG90LGUsWihlLHpvKHZmKSkpfSksX2Y9eG8oZnVuY3Rpb24odCxlKXtyZXR1cm4gZ28odCxDdCxvdCxvdCxvdCxlKX0pLHlmPWxvKGRyKSxiZj1sbyhmdW5jdGlvbih0LGUpe3JldHVybiB0Pj1lfSkseGY9T3IoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKT9PcjpmdW5jdGlvbih0KXtyZXR1cm4gY3UodCkmJnhjLmNhbGwodCwiY2FsbGVlIikmJiFSYy5jYWxsKHQsImNhbGxlZSIpfSx3Zj1hYy5pc0FycmF5LFNmPWdyP04oZ3IpOlRyLGtmPSRjfHwkbCx6Zj1wcj9OKHByKTpBcixDZj1tcj9OKG1yKTpxcixNZj12cj9OKHZyKTpQcixqZj1fcj9OKF9yKTpXcixFZj15cj9OKHlyKTpGcixPZj1sbyhVciksVGY9bG8oZnVuY3Rpb24odCxlKXtyZXR1cm4gdDw9ZX0pLEFmPSRpKGZ1bmN0aW9uKHQsZSl7aWYoVm8oZSl8fFlhKGUpKXJldHVybiB2b2lkIEhpKGUsVnUoZSksdCk7Zm9yKHZhciBuIGluIGUpeGMuY2FsbChlLG4pJiZMbih0LG4sZVtuXSl9KSxMZj0kaShmdW5jdGlvbih0LGUpe0hpKGUsJHUoZSksdCl9KSxSZj0kaShmdW5jdGlvbih0LGUsbixyKXtIaShlLCR1KGUpLHQscil9KSxxZj0kaShmdW5jdGlvbih0LGUsbixyKXtIaShlLFZ1KGUpLHQscil9KSxOZj14byhXbiksSWY9c2koZnVuY3Rpb24odCl7cmV0dXJuIHQucHVzaChvdCxwbyksdShSZixvdCx0KX0pLFBmPXNpKGZ1bmN0aW9uKHQpe3JldHVybiB0LnB1c2gob3QsbW8pLHUoRGYsb3QsdCl9KSxXZj1ybyhmdW5jdGlvbih0LGUsbil7dFtlXT1ufSxMbChxbCkpLEZmPXJvKGZ1bmN0aW9uKHQsZSxuKXt4Yy5jYWxsKHQsZSk/dFtlXS5wdXNoKG4pOnRbZV09W25dfSxDbyksQmY9c2koRXIpLEhmPSRpKGZ1bmN0aW9uKHQsZSxuKXtYcih0LGUsbil9KSxEZj0kaShmdW5jdGlvbih0LGUsbixyKXtYcih0LGUsbixyKX0pLFVmPXhvKGZ1bmN0aW9uKHQsZSl7dmFyIG49e307aWYobnVsbD09dClyZXR1cm4gbjt2YXIgcj0hMTtlPW0oZSxmdW5jdGlvbihlKXtyZXR1cm4gZT1NaShlLHQpLHJ8fChyPWUubGVuZ3RoPjEpLGV9KSxIaSh0LFNvKHQpLG4pLHImJihuPUJuKG4sZHR8Z3R8cHQsdm8pKTtmb3IodmFyIGk9ZS5sZW5ndGg7aS0tOyl5aShuLGVbaV0pO3JldHVybiBufSksVmY9eG8oZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD97fTpKcih0LGUpfSksJGY9Zm8oVnUpLEdmPWZvKCR1KSxYZj1ZaShmdW5jdGlvbih0LGUsbil7cmV0dXJuIGU9ZS50b0xvd2VyQ2FzZSgpLHQrKG4/bGwoZSk6ZSl9KSxaZj1ZaShmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQrKG4/Ii0iOiIiKStlLnRvTG93ZXJDYXNlKCl9KSxLZj1ZaShmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQrKG4/IiAiOiIiKStlLnRvTG93ZXJDYXNlKCl9KSxZZj1LaSgidG9Mb3dlckNhc2UiKSxKZj1ZaShmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQrKG4/Il8iOiIiKStlLnRvTG93ZXJDYXNlKCl9KSxRZj1ZaShmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQrKG4/IiAiOiIiKStlZChlKX0pLHRkPVlpKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdCsobj8iICI6IiIpK2UudG9VcHBlckNhc2UoKX0pLGVkPUtpKCJ0b1VwcGVyQ2FzZSIpLG5kPXNpKGZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiB1KHQsb3QsZSl9Y2F0Y2godCl7cmV0dXJuIGl1KHQpP3Q6bmV3IGxjKHQpfX0pLHJkPXhvKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGMoZSxmdW5jdGlvbihlKXtlPWlzKGUpLFBuKHQsZSxoZih0W2VdLHQpKX0pLHR9KSxpZD1lbygpLG9kPWVvKCEwKSxzZD1zaShmdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gRXIobix0LGUpfX0pLGFkPXNpKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBFcih0LG4sZSl9fSksdWQ9b28obSksbGQ9b28oZiksY2Q9b28oYiksaGQ9dW8oKSxmZD11byghMCksZGQ9aW8oZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSwwKSxnZD1obygiY2VpbCIpLHBkPWlvKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQvZX0sMSksbWQ9aG8oImZsb29yIiksdmQ9aW8oZnVuY3Rpb24odCxlKXtyZXR1cm4gdCplfSwxKSxfZD1obygicm91bmQiKSx5ZD1pbyhmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9LDApO3JldHVybiBuLmFmdGVyPUVhLG4uYXJ5PU9hLG4uYXNzaWduPUFmLG4uYXNzaWduSW49TGYsbi5hc3NpZ25JbldpdGg9UmYsbi5hc3NpZ25XaXRoPXFmLG4uYXQ9TmYsbi5iZWZvcmU9VGEsbi5iaW5kPWhmLG4uYmluZEFsbD1yZCxuLmJpbmRLZXk9ZmYsbi5jYXN0QXJyYXk9VWEsbi5jaGFpbj1lYSxuLmNodW5rPXVzLG4uY29tcGFjdD1scyxuLmNvbmNhdD1jcyxuLmNvbmQ9VGwsbi5jb25mb3Jtcz1BbCxuLmNvbnN0YW50PUxsLG4uY291bnRCeT1lZixuLmNyZWF0ZT1MdSxuLmN1cnJ5PUFhLG4uY3VycnlSaWdodD1MYSxuLmRlYm91bmNlPVJhLG4uZGVmYXVsdHM9SWYsbi5kZWZhdWx0c0RlZXA9UGYsbi5kZWZlcj1kZixuLmRlbGF5PWdmLG4uZGlmZmVyZW5jZT1JaCxuLmRpZmZlcmVuY2VCeT1QaCxuLmRpZmZlcmVuY2VXaXRoPVdoLG4uZHJvcD1ocyxuLmRyb3BSaWdodD1mcyxuLmRyb3BSaWdodFdoaWxlPWRzLG4uZHJvcFdoaWxlPWdzLG4uZmlsbD1wcyxuLmZpbHRlcj1mYSxuLmZsYXRNYXA9ZGEsbi5mbGF0TWFwRGVlcD1nYSxuLmZsYXRNYXBEZXB0aD1wYSxuLmZsYXR0ZW49X3Msbi5mbGF0dGVuRGVlcD15cyxuLmZsYXR0ZW5EZXB0aD1icyxuLmZsaXA9cWEsbi5mbG93PWlkLG4uZmxvd1JpZ2h0PW9kLG4uZnJvbVBhaXJzPXhzLG4uZnVuY3Rpb25zPUZ1LG4uZnVuY3Rpb25zSW49QnUsbi5ncm91cEJ5PW9mLG4uaW5pdGlhbD1rcyxuLmludGVyc2VjdGlvbj1GaCxuLmludGVyc2VjdGlvbkJ5PUJoLG4uaW50ZXJzZWN0aW9uV2l0aD1IaCxuLmludmVydD1XZixuLmludmVydEJ5PUZmLG4uaW52b2tlTWFwPXNmLG4uaXRlcmF0ZWU9Tmwsbi5rZXlCeT1hZixuLmtleXM9VnUsbi5rZXlzSW49JHUsbi5tYXA9eWEsbi5tYXBLZXlzPUd1LG4ubWFwVmFsdWVzPVh1LG4ubWF0Y2hlcz1JbCxuLm1hdGNoZXNQcm9wZXJ0eT1QbCxuLm1lbW9pemU9TmEsbi5tZXJnZT1IZixuLm1lcmdlV2l0aD1EZixuLm1ldGhvZD1zZCxuLm1ldGhvZE9mPWFkLG4ubWl4aW49V2wsbi5uZWdhdGU9SWEsbi5udGhBcmc9SGwsbi5vbWl0PVVmLG4ub21pdEJ5PVp1LG4ub25jZT1QYSxuLm9yZGVyQnk9YmEsbi5vdmVyPXVkLG4ub3ZlckFyZ3M9cGYsbi5vdmVyRXZlcnk9bGQsbi5vdmVyU29tZT1jZCxuLnBhcnRpYWw9bWYsbi5wYXJ0aWFsUmlnaHQ9dmYsbi5wYXJ0aXRpb249dWYsbi5waWNrPVZmLG4ucGlja0J5PUt1LG4ucHJvcGVydHk9RGwsbi5wcm9wZXJ0eU9mPVVsLG4ucHVsbD1EaCxuLnB1bGxBbGw9RXMsbi5wdWxsQWxsQnk9T3Msbi5wdWxsQWxsV2l0aD1UcyxuLnB1bGxBdD1VaCxuLnJhbmdlPWhkLG4ucmFuZ2VSaWdodD1mZCxuLnJlYXJnPV9mLG4ucmVqZWN0PVNhLG4ucmVtb3ZlPUFzLG4ucmVzdD1XYSxuLnJldmVyc2U9THMsbi5zYW1wbGVTaXplPXphLG4uc2V0PUp1LG4uc2V0V2l0aD1RdSxuLnNodWZmbGU9Q2Esbi5zbGljZT1ScyxuLnNvcnRCeT1sZixuLnNvcnRlZFVuaXE9QnMsbi5zb3J0ZWRVbmlxQnk9SHMsbi5zcGxpdD1ibCxuLnNwcmVhZD1GYSxuLnRhaWw9RHMsbi50YWtlPVVzLG4udGFrZVJpZ2h0PVZzLG4udGFrZVJpZ2h0V2hpbGU9JHMsbi50YWtlV2hpbGU9R3Msbi50YXA9bmEsbi50aHJvdHRsZT1CYSxuLnRocnU9cmEsbi50b0FycmF5PXp1LG4udG9QYWlycz0kZixuLnRvUGFpcnNJbj1HZixuLnRvUGF0aD1ZbCxuLnRvUGxhaW5PYmplY3Q9T3Usbi50cmFuc2Zvcm09dGwsbi51bmFyeT1IYSxuLnVuaW9uPVZoLG4udW5pb25CeT0kaCxuLnVuaW9uV2l0aD1HaCxuLnVuaXE9WHMsbi51bmlxQnk9WnMsbi51bmlxV2l0aD1LcyxuLnVuc2V0PWVsLG4udW56aXA9WXMsbi51bnppcFdpdGg9SnMsbi51cGRhdGU9bmwsbi51cGRhdGVXaXRoPXJsLG4udmFsdWVzPWlsLG4udmFsdWVzSW49b2wsbi53aXRob3V0PVhoLG4ud29yZHM9T2wsbi53cmFwPURhLG4ueG9yPVpoLG4ueG9yQnk9S2gsbi54b3JXaXRoPVloLG4uemlwPUpoLG4uemlwT2JqZWN0PVFzLG4uemlwT2JqZWN0RGVlcD10YSxuLnppcFdpdGg9UWgsbi5lbnRyaWVzPSRmLG4uZW50cmllc0luPUdmLG4uZXh0ZW5kPUxmLG4uZXh0ZW5kV2l0aD1SZixXbChuLG4pLG4uYWRkPWRkLG4uYXR0ZW1wdD1uZCxuLmNhbWVsQ2FzZT1YZixuLmNhcGl0YWxpemU9bGwsbi5jZWlsPWdkLG4uY2xhbXA9c2wsbi5jbG9uZT1WYSxuLmNsb25lRGVlcD1HYSxuLmNsb25lRGVlcFdpdGg9WGEsbi5jbG9uZVdpdGg9JGEsbi5jb25mb3Jtc1RvPVphLG4uZGVidXJyPWNsLG4uZGVmYXVsdFRvPVJsLG4uZGl2aWRlPXBkLG4uZW5kc1dpdGg9aGwsbi5lcT1LYSxuLmVzY2FwZT1mbCxuLmVzY2FwZVJlZ0V4cD1kbCxuLmV2ZXJ5PWhhLG4uZmluZD1uZixuLmZpbmRJbmRleD1tcyxuLmZpbmRLZXk9UnUsbi5maW5kTGFzdD1yZixuLmZpbmRMYXN0SW5kZXg9dnMsbi5maW5kTGFzdEtleT1xdSxuLmZsb29yPW1kLG4uZm9yRWFjaD1tYSxuLmZvckVhY2hSaWdodD12YSxuLmZvckluPU51LG4uZm9ySW5SaWdodD1JdSxuLmZvck93bj1QdSxuLmZvck93blJpZ2h0PVd1LG4uZ2V0PUh1LG4uZ3Q9eWYsbi5ndGU9YmYsbi5oYXM9RHUsbi5oYXNJbj1VdSxuLmhlYWQ9d3Msbi5pZGVudGl0eT1xbCxuLmluY2x1ZGVzPV9hLG4uaW5kZXhPZj1TcyxuLmluUmFuZ2U9YWwsbi5pbnZva2U9QmYsbi5pc0FyZ3VtZW50cz14ZixuLmlzQXJyYXk9d2Ysbi5pc0FycmF5QnVmZmVyPVNmLG4uaXNBcnJheUxpa2U9WWEsbi5pc0FycmF5TGlrZU9iamVjdD1KYSxuLmlzQm9vbGVhbj1RYSxuLmlzQnVmZmVyPWtmLG4uaXNEYXRlPXpmLG4uaXNFbGVtZW50PXR1LG4uaXNFbXB0eT1ldSxuLmlzRXF1YWw9bnUsbi5pc0VxdWFsV2l0aD1ydSxuLmlzRXJyb3I9aXUsbi5pc0Zpbml0ZT1vdSxuLmlzRnVuY3Rpb249c3Usbi5pc0ludGVnZXI9YXUsbi5pc0xlbmd0aD11dSxuLmlzTWFwPUNmLG4uaXNNYXRjaD1odSxuLmlzTWF0Y2hXaXRoPWZ1LG4uaXNOYU49ZHUsbi5pc05hdGl2ZT1ndSxuLmlzTmlsPW11LG4uaXNOdWxsPXB1LG4uaXNOdW1iZXI9dnUsbi5pc09iamVjdD1sdSxuLmlzT2JqZWN0TGlrZT1jdSxuLmlzUGxhaW5PYmplY3Q9X3Usbi5pc1JlZ0V4cD1NZixuLmlzU2FmZUludGVnZXI9eXUsbi5pc1NldD1qZixuLmlzU3RyaW5nPWJ1LG4uaXNTeW1ib2w9eHUsbi5pc1R5cGVkQXJyYXk9RWYsbi5pc1VuZGVmaW5lZD13dSxuLmlzV2Vha01hcD1TdSxuLmlzV2Vha1NldD1rdSxuLmpvaW49enMsbi5rZWJhYkNhc2U9WmYsbi5sYXN0PUNzLG4ubGFzdEluZGV4T2Y9TXMsbi5sb3dlckNhc2U9S2Ysbi5sb3dlckZpcnN0PVlmLG4ubHQ9T2Ysbi5sdGU9VGYsbi5tYXg9UWwsbi5tYXhCeT10YyxuLm1lYW49ZWMsbi5tZWFuQnk9bmMsbi5taW49cmMsbi5taW5CeT1pYyxuLnN0dWJBcnJheT1WbCxuLnN0dWJGYWxzZT0kbCxuLnN0dWJPYmplY3Q9R2wsbi5zdHViU3RyaW5nPVhsLG4uc3R1YlRydWU9Wmwsbi5tdWx0aXBseT12ZCxuLm50aD1qcyxuLm5vQ29uZmxpY3Q9Rmwsbi5ub29wPUJsLG4ubm93PWNmLG4ucGFkPWdsLG4ucGFkRW5kPXBsLG4ucGFkU3RhcnQ9bWwsbi5wYXJzZUludD12bCxuLnJhbmRvbT11bCxuLnJlZHVjZT14YSxuLnJlZHVjZVJpZ2h0PXdhLG4ucmVwZWF0PV9sLG4ucmVwbGFjZT15bCxuLnJlc3VsdD1ZdSxuLnJvdW5kPV9kLG4ucnVuSW5Db250ZXh0PXQsbi5zYW1wbGU9a2Esbi5zaXplPU1hLG4uc25ha2VDYXNlPUpmLG4uc29tZT1qYSxuLnNvcnRlZEluZGV4PXFzLG4uc29ydGVkSW5kZXhCeT1OcyxuLnNvcnRlZEluZGV4T2Y9SXMsbi5zb3J0ZWRMYXN0SW5kZXg9UHMsbi5zb3J0ZWRMYXN0SW5kZXhCeT1XcyxuLnNvcnRlZExhc3RJbmRleE9mPUZzLG4uc3RhcnRDYXNlPVFmLG4uc3RhcnRzV2l0aD14bCxuLnN1YnRyYWN0PXlkLG4uc3VtPW9jLG4uc3VtQnk9c2Msbi50ZW1wbGF0ZT13bCxuLnRpbWVzPUtsLG4udG9GaW5pdGU9Q3Usbi50b0ludGVnZXI9TXUsbi50b0xlbmd0aD1qdSxuLnRvTG93ZXI9U2wsbi50b051bWJlcj1FdSxuLnRvU2FmZUludGVnZXI9VHUsbi50b1N0cmluZz1BdSxuLnRvVXBwZXI9a2wsbi50cmltPXpsLG4udHJpbUVuZD1DbCxuLnRyaW1TdGFydD1NbCxuLnRydW5jYXRlPWpsLG4udW5lc2NhcGU9RWwsbi51bmlxdWVJZD1KbCxuLnVwcGVyQ2FzZT10ZCxuLnVwcGVyRmlyc3Q9ZWQsbi5lYWNoPW1hLG4uZWFjaFJpZ2h0PXZhLG4uZmlyc3Q9d3MsV2wobixmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiBycihuLGZ1bmN0aW9uKGUscil7eGMuY2FsbChuLnByb3RvdHlwZSxyKXx8KHRbcl09ZSl9KSx0fSgpLHtjaGFpbjohMX0pLG4uVkVSU0lPTj1zdCxjKFsiYmluZCIsImJpbmRLZXkiLCJjdXJyeSIsImN1cnJ5UmlnaHQiLCJwYXJ0aWFsIiwicGFydGlhbFJpZ2h0Il0sZnVuY3Rpb24odCl7blt0XS5wbGFjZWhvbGRlcj1ufSksYyhbImRyb3AiLCJ0YWtlIl0sZnVuY3Rpb24odCxlKXt4LnByb3RvdHlwZVt0XT1mdW5jdGlvbihuKXtuPW49PT1vdD8xOktjKE11KG4pLDApO3ZhciByPXRoaXMuX19maWx0ZXJlZF9fJiYhZT9uZXcgeCh0aGlzKTp0aGlzLmNsb25lKCk7cmV0dXJuIHIuX19maWx0ZXJlZF9fP3IuX190YWtlQ291bnRfXz1ZYyhuLHIuX190YWtlQ291bnRfXyk6ci5fX3ZpZXdzX18ucHVzaCh7c2l6ZTpZYyhuLFd0KSx0eXBlOnQrKHIuX19kaXJfXzwwPyJSaWdodCI6IiIpfSkscn0seC5wcm90b3R5cGVbdCsiUmlnaHQiXT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZXZlcnNlKClbdF0oZSkucmV2ZXJzZSgpfX0pLGMoWyJmaWx0ZXIiLCJtYXAiLCJ0YWtlV2hpbGUiXSxmdW5jdGlvbih0LGUpe3ZhciBuPWUrMSxyPW49PUF0fHxuPT1SdDt4LnByb3RvdHlwZVt0XT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNsb25lKCk7cmV0dXJuIGUuX19pdGVyYXRlZXNfXy5wdXNoKHtpdGVyYXRlZTpDbyh0LDMpLHR5cGU6bn0pLGUuX19maWx0ZXJlZF9fPWUuX19maWx0ZXJlZF9ffHxyLGV9fSksYyhbImhlYWQiLCJsYXN0Il0sZnVuY3Rpb24odCxlKXt2YXIgbj0idGFrZSIrKGU/IlJpZ2h0IjoiIik7eC5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tuXSgxKS52YWx1ZSgpWzBdfX0pLGMoWyJpbml0aWFsIiwidGFpbCJdLGZ1bmN0aW9uKHQsZSl7dmFyIG49ImRyb3AiKyhlPyIiOiJSaWdodCIpO3gucHJvdG90eXBlW3RdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19maWx0ZXJlZF9fP25ldyB4KHRoaXMpOnRoaXNbbl0oMSl9fSkseC5wcm90b3R5cGUuY29tcGFjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcihxbCl9LHgucHJvdG90eXBlLmZpbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZmlsdGVyKHQpLmhlYWQoKX0seC5wcm90b3R5cGUuZmluZExhc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmV2ZXJzZSgpLmZpbmQodCl9LHgucHJvdG90eXBlLmludm9rZU1hcD1zaShmdW5jdGlvbih0LGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P25ldyB4KHRoaXMpOnRoaXMubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBFcihuLHQsZSl9KX0pLHgucHJvdG90eXBlLnJlamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5maWx0ZXIoSWEoQ28odCkpKX0seC5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odCxlKXt0PU11KHQpO3ZhciBuPXRoaXM7cmV0dXJuIG4uX19maWx0ZXJlZF9fJiYodD4wfHxlPDApP25ldyB4KG4pOih0PDA/bj1uLnRha2VSaWdodCgtdCk6dCYmKG49bi5kcm9wKHQpKSxlIT09b3QmJihlPU11KGUpLG49ZTwwP24uZHJvcFJpZ2h0KC1lKTpuLnRha2UoZS10KSksbil9LHgucHJvdG90eXBlLnRha2VSaWdodFdoaWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJldmVyc2UoKS50YWtlV2hpbGUodCkucmV2ZXJzZSgpfSx4LnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFrZShXdCl9LHJyKHgucHJvdG90eXBlLGZ1bmN0aW9uKHQsZSl7dmFyIHI9L14oPzpmaWx0ZXJ8ZmluZHxtYXB8cmVqZWN0KXxXaGlsZSQvLnRlc3QoZSksbz0vXig/OmhlYWR8bGFzdCkkLy50ZXN0KGUpLHM9bltvPyJ0YWtlIisoImxhc3QiPT1lPyJSaWdodCI6IiIpOmVdLGE9b3x8L15maW5kLy50ZXN0KGUpO3MmJihuLnByb3RvdHlwZVtlXT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX193cmFwcGVkX18sdT1vP1sxXTphcmd1bWVudHMsbD1lIGluc3RhbmNlb2YgeCxjPXVbMF0saD1sfHx3ZihlKSxmPWZ1bmN0aW9uKHQpe3ZhciBlPXMuYXBwbHkobix2KFt0XSx1KSk7cmV0dXJuIG8mJmQ/ZVswXTplfTtoJiZyJiYiZnVuY3Rpb24iPT10eXBlb2YgYyYmMSE9Yy5sZW5ndGgmJihsPWg9ITEpO3ZhciBkPXRoaXMuX19jaGFpbl9fLGc9ISF0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCxwPWEmJiFkLG09bCYmIWc7aWYoIWEmJmgpe2U9bT9lOm5ldyB4KHRoaXMpO3ZhciBfPXQuYXBwbHkoZSx1KTtyZXR1cm4gXy5fX2FjdGlvbnNfXy5wdXNoKHtmdW5jOnJhLGFyZ3M6W2ZdLHRoaXNBcmc6b3R9KSxuZXcgaShfLGQpfXJldHVybiBwJiZtP3QuYXBwbHkodGhpcyx1KTooXz10aGlzLnRocnUoZikscD9vP18udmFsdWUoKVswXTpfLnZhbHVlKCk6Xyl9KX0pLGMoWyJwb3AiLCJwdXNoIiwic2hpZnQiLCJzb3J0Iiwic3BsaWNlIiwidW5zaGlmdCJdLGZ1bmN0aW9uKHQpe3ZhciBlPW1jW3RdLHI9L14oPzpwdXNofHNvcnR8dW5zaGlmdCkkLy50ZXN0KHQpPyJ0YXAiOiJ0aHJ1IixpPS9eKD86cG9wfHNoaWZ0KSQvLnRlc3QodCk7bi5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHM7aWYoaSYmIXRoaXMuX19jaGFpbl9fKXt2YXIgbj10aGlzLnZhbHVlKCk7cmV0dXJuIGUuYXBwbHkod2Yobik/bjpbXSx0KX1yZXR1cm4gdGhpc1tyXShmdW5jdGlvbihuKXtyZXR1cm4gZS5hcHBseSh3ZihuKT9uOltdLHQpfSl9fSkscnIoeC5wcm90b3R5cGUsZnVuY3Rpb24odCxlKXt2YXIgcj1uW2VdO2lmKHIpe3ZhciBpPXIubmFtZSsiIjsobGhbaV18fChsaFtpXT1bXSkpLnB1c2goe25hbWU6ZSxmdW5jOnJ9KX19KSxsaFtubyhvdCx5dCkubmFtZV09W3tuYW1lOiJ3cmFwcGVyIixmdW5jOm90fV0seC5wcm90b3R5cGUuY2xvbmU9Tyx4LnByb3RvdHlwZS5yZXZlcnNlPUoseC5wcm90b3R5cGUudmFsdWU9bnQsbi5wcm90b3R5cGUuYXQ9dGYsbi5wcm90b3R5cGUuY2hhaW49aWEsbi5wcm90b3R5cGUuY29tbWl0PW9hLG4ucHJvdG90eXBlLm5leHQ9c2Esbi5wcm90b3R5cGUucGxhbnQ9dWEsbi5wcm90b3R5cGUucmV2ZXJzZT1sYSxuLnByb3RvdHlwZS50b0pTT049bi5wcm90b3R5cGUudmFsdWVPZj1uLnByb3RvdHlwZS52YWx1ZT1jYSxuLnByb3RvdHlwZS5maXJzdD1uLnByb3RvdHlwZS5oZWFkLEljJiYobi5wcm90b3R5cGVbSWNdPWFhKSxufSx6cj1rcigpOyJvYmplY3QiPT1vKG4oNTMpKSYmbig1Myk/KHVyLl89enIscj1mdW5jdGlvbigpe3JldHVybiB6cn0uY2FsbChlLG4sZSxpKSwhKHIhPT1vdCYmKGkuZXhwb3J0cz1yKSkpOmNyPygoY3IuZXhwb3J0cz16cikuXz16cixsci5fPXpyKTp1ci5fPXpyfSkuY2FsbCh2b2lkIDApfSkuY2FsbChlLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCksbigyMykodCkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7dmFyIGU9dC5wYXJlbnROb2RlLG49dC5uZXh0U2libGluZztyZXR1cm4gZS5yZW1vdmVDaGlsZCh0KSxmdW5jdGlvbigpe24/ZS5pbnNlcnRCZWZvcmUodCxuKTplLmFwcGVuZENoaWxkKHQpfX12YXIgaSxvPW4oMTApLHM9bigyKSxhPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZTtlPXQubGFzdENoaWxkOyl0LnJlbW92ZUNoaWxkKGUpfTt0LmV4cG9ydHM9aT1zLmV4dGVuZCh7cmVuZGVyU3Vidmlld3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsLGU9dm9pZCAwIT10LnBhcmVudE5vZGU7aWYoZSl2YXIgbj1yKHQpO2EodCk7Zm9yKHZhciBpLHMsdT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksbD10aGlzLl92aWV3cygpLGM9by5zb3J0QnkobCxmdW5jdGlvbih0KXtyZXR1cm4gdC5vcmRlcmluZ30pLGg9MDtoPGMubGVuZ3RoO2grKylpPWNbaF0saS5yZW5kZXIoKSxzPWkuZWwsbnVsbCE9cyYmdS5hcHBlbmRDaGlsZChzKTtyZXR1cm4gdC5hcHBlbmRDaGlsZCh1KSxlJiZuKCksdH0sYWRkVmlldzpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3ZpZXdzKCk7aWYobnVsbD09ZSl0aHJvdyJJbnZhbGlkIHBsdWdpbi4gIjtyZXR1cm4gbnVsbD09ZS5vcmRlcmluZyYmKGUub3JkZXJpbmc9dCksblt0XT1lfSxyZW1vdmVWaWV3czpmdW5jdGlvbigpe3ZhciB0LGUsbj10aGlzLl92aWV3cygpO2ZvcihlIGluIG4pdD1uW2VdLHQudW5kZWxlZ2F0ZUV2ZW50cygpLHQudW5iaW5kKCksbnVsbCE9dC5yZW1vdmVWaWV3cyYmdC5yZW1vdmVWaWV3cygpLHQucmVtb3ZlKCk7cmV0dXJuIHRoaXMudmlld3M9e319LHJlbW92ZVZpZXc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmlld3MoKTtyZXR1cm4gZVt0XS5yZW1vdmUoKSxkZWxldGUgZVt0XX0sZ2V0VmlldzpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmlld3MoKVt0XX0scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVtb3ZlVmlld3MoKSxzLnByb3RvdHlwZS5yZW1vdmUuYXBwbHkodGhpcyl9LF92aWV3czpmdW5jdGlvbigpe3JldHVybiBudWxsPT10aGlzLnZpZXdzJiYodGhpcy52aWV3cz17fSksdGhpcy52aWV3c319KX0sZnVuY3Rpb24odCxlLG4pe3ZhciByOyhmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7dmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9Oy8qIQoJICogakJvbmUgdjEuMi4wIC0gMjAxNi0wNC0xMyAtIExpYnJhcnkgZm9yIERPTSBtYW5pcHVsYXRpb24KCSAqCgkgKiBodHRwOi8vamJvbmUuanMub3JnCgkgKgoJICogQ29weXJpZ2h0IDIwMTYgQWxleGV5IEt1cHJpeWFuZW5rbwoJICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLgoJICovCiFmdW5jdGlvbihvKXtmdW5jdGlvbiBzKHQpe3ZhciBlPXQubGVuZ3RoLG49InVuZGVmaW5lZCI9PXR5cGVvZiB0PyJ1bmRlZmluZWQiOmkodCk7cmV0dXJuIXkobikmJnQhPT1vJiYoISgxIT09dC5ub2RlVHlwZXx8IWUpfHxiKG4pfHwwPT09ZXx8Im51bWJlciI9PXR5cGVvZiBlJiZlPjAmJmUtMSBpbiB0KX1mdW5jdGlvbiBhKHQsZSl7dmFyIG4scjt0aGlzLm9yaWdpbmFsRXZlbnQ9dCxyPWZ1bmN0aW9uKHQsZSl7InByZXZlbnREZWZhdWx0Ij09PXQ/dGhpc1t0XT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITAsZVt0XSgpfToic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIj09PXQ/dGhpc1t0XT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD0hMCxlW3RdKCl9OnkoZVt0XSk/dGhpc1t0XT1mdW5jdGlvbigpe3JldHVybiBlW3RdKCl9OnRoaXNbdF09ZVt0XX07Zm9yKG4gaW4gdCkodFtuXXx8ImZ1bmN0aW9uIj09dHlwZW9mIHRbbl0pJiZyLmNhbGwodGhpcyxuLHQpO3guZXh0ZW5kKHRoaXMsZSx7aXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkfX0pfXZhciB1LGw9by4kLGM9by5qQm9uZSxoPS9ePChcdyspXHMqXC8/PiQvLGY9L14oPzpbXiM8XSooPFtcd1xXXSs+KVtePl0qJHwjKFtcd1wtXSopJCkvLGQ9W10uc2xpY2UsZz1bXS5zcGxpY2UscD1PYmplY3Qua2V5cyxtPWRvY3VtZW50LHY9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fSxfPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgT2JqZWN0fSx5PWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT17fS50b1N0cmluZy5jYWxsKHQpfSxiPWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfSx4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyB1LmluaXQodCxlKX07eC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG8uJD1sLG8uakJvbmU9Yyx4fSx1PXguZm49eC5wcm90b3R5cGU9e2luaXQ6ZnVuY3Rpb24odCxlKXt2YXIgbixyLGksbztpZighdClyZXR1cm4gdGhpcztpZih2KHQpKXtpZihyPWguZXhlYyh0KSlyZXR1cm4gdGhpc1swXT1tLmNyZWF0ZUVsZW1lbnQoclsxXSksdGhpcy5sZW5ndGg9MSxfKGUpJiZ0aGlzLmF0dHIoZSksdGhpcztpZigocj1mLmV4ZWModCkpJiZyWzFdKXtmb3Iobz1tLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxpPW0uY3JlYXRlRWxlbWVudCgiZGl2IiksaS5pbm5lckhUTUw9dDtpLmxhc3RDaGlsZDspby5hcHBlbmRDaGlsZChpLmZpcnN0Q2hpbGQpO3JldHVybiBuPWQuY2FsbChvLmNoaWxkTm9kZXMpLHgubWVyZ2UodGhpcyxuKX1pZih4LmlzRWxlbWVudChlKSlyZXR1cm4geChlKS5maW5kKHQpO3RyeXtyZXR1cm4gbj1tLnF1ZXJ5U2VsZWN0b3JBbGwodCkseC5tZXJnZSh0aGlzLG4pfWNhdGNoKHQpe3JldHVybiB0aGlzfX1yZXR1cm4gdC5ub2RlVHlwZT8odGhpc1swXT10LHRoaXMubGVuZ3RoPTEsdGhpcyk6eSh0KT90KCk6dCBpbnN0YW5jZW9mIHg/dDp4Lm1ha2VBcnJheSh0LHRoaXMpfSxwb3A6W10ucG9wLHB1c2g6W10ucHVzaCxyZXZlcnNlOltdLnJldmVyc2Usc2hpZnQ6W10uc2hpZnQsc29ydDpbXS5zb3J0LHNwbGljZTpbXS5zcGxpY2Usc2xpY2U6W10uc2xpY2UsaW5kZXhPZjpbXS5pbmRleE9mLGZvckVhY2g6W10uZm9yRWFjaCx1bnNoaWZ0OltdLnVuc2hpZnQsY29uY2F0OltdLmNvbmNhdCxqb2luOltdLmpvaW4sZXZlcnk6W10uZXZlcnksc29tZTpbXS5zb21lLGZpbHRlcjpbXS5maWx0ZXIsbWFwOltdLm1hcCxyZWR1Y2U6W10ucmVkdWNlLHJlZHVjZVJpZ2h0OltdLnJlZHVjZVJpZ2h0LGxlbmd0aDowfSx1LmNvbnN0cnVjdG9yPXgsdS5pbml0LnByb3RvdHlwZT11LHguc2V0SWQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5qaWQ7dD09PW8/ZT0id2luZG93Ijp2b2lkIDA9PT10LmppZCYmKHQuamlkPWU9Kyt4Ll9jYWNoZS5qaWQpLHguX2NhY2hlLmV2ZW50c1tlXXx8KHguX2NhY2hlLmV2ZW50c1tlXT17fSl9LHguZ2V0RGF0YT1mdW5jdGlvbih0KXt0PXQgaW5zdGFuY2VvZiB4P3RbMF06dDt2YXIgZT10PT09bz8id2luZG93Ijp0LmppZDtyZXR1cm57amlkOmUsZXZlbnRzOnguX2NhY2hlLmV2ZW50c1tlXX19LHguaXNFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0IGluc3RhbmNlb2YgeHx8dCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fHx2KHQpfSx4Ll9jYWNoZT17ZXZlbnRzOnt9LGppZDowfSx1LnB1c2hTdGFjaz1mdW5jdGlvbih0KXtyZXR1cm4geC5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksdCl9LHgubWVyZ2U9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49ZS5sZW5ndGgscj10Lmxlbmd0aCxpPTA7aTxuOyl0W3IrK109ZVtpKytdO3JldHVybiB0Lmxlbmd0aD1yLHR9LHguY29udGFpbnM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jb250YWlucyhlKX0seC5leHRlbmQ9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIGcuY2FsbChhcmd1bWVudHMsMSkuZm9yRWFjaChmdW5jdGlvbihuKXtpZihlPXQsbilmb3IodmFyIHIgaW4gbillW3JdPW5bcl19KSx0fSx4Lm1ha2VBcnJheT1mdW5jdGlvbih0LGUpe3ZhciBuPWV8fFtdO3JldHVybiBudWxsIT09dCYmKHModCk/eC5tZXJnZShuLHYodCk/W3RdOnQpOm4ucHVzaCh0KSksbn0seC51bmlxdWU9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm5bXTtmb3IodmFyIGU9W10sbj0wLHI9dC5sZW5ndGg7bjxyO24rKyl7dmFyIGk9dFtuXTtlLmluZGV4T2YoaSk8MCYmZS5wdXNoKGkpfXJldHVybiBlfSx4LkV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIG4scjtyZXR1cm4gdC50eXBlJiYhZSYmKGU9dCx0PXQudHlwZSksbj10LnNwbGl0KCIuIikuc3BsaWNlKDEpLmpvaW4oIi4iKSxyPXQuc3BsaXQoIi4iKVswXSx0PW0uY3JlYXRlRXZlbnQoIkV2ZW50IiksdC5pbml0RXZlbnQociwhMCwhMCkseC5leHRlbmQodCx7bmFtZXNwYWNlOm4saXNEZWZhdWx0UHJldmVudGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZGVmYXVsdFByZXZlbnRlZH19LGUpfSx4LmV2ZW50PXthZGQ6ZnVuY3Rpb24odCxlLG4scixpKXt4LnNldElkKHQpO3ZhciBvLHMsYSx1PWZ1bmN0aW9uKGUpe3guZXZlbnQuZGlzcGF0Y2guY2FsbCh0LGUpfSxsPXguZ2V0RGF0YSh0KS5ldmVudHM7Zm9yKGU9ZS5zcGxpdCgiICIpLHM9ZS5sZW5ndGg7cy0tOylhPWVbc10sbz1hLnNwbGl0KCIuIilbMF0sbFtvXT1sW29dfHxbXSxsW29dLmxlbmd0aD91PWxbb11bMF0uZm46dC5hZGRFdmVudExpc3RlbmVyJiZ0LmFkZEV2ZW50TGlzdGVuZXIobyx1LCExKSxsW29dLnB1c2goe25hbWVzcGFjZTphLnNwbGl0KCIuIikuc3BsaWNlKDEpLmpvaW4oIi4iKSxmbjp1LHNlbGVjdG9yOmksZGF0YTpyLG9yaWdpbmZuOm59KX0scmVtb3ZlOmZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpLG8scz1mdW5jdGlvbih0LGUscixpLG8pe3ZhciBzOyhuJiZvLm9yaWdpbmZuPT09bnx8IW4pJiYocz1vLmZuKSx0W2VdW3JdLmZuPT09cyYmKHRbZV0uc3BsaWNlKHIsMSksdFtlXS5sZW5ndGh8fGkucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHMpKX0sYT14LmdldERhdGEodCkuZXZlbnRzO2lmKGEpcmV0dXJuIWUmJmE/cChhKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2ZvcihvPWFbZV0saT1vLmxlbmd0aDtpLS07KXMoYSxlLGksdCxvW2ldKX0pOnZvaWQgZS5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIG4sdT1lLnNwbGl0KCIuIilbMF0sbD1lLnNwbGl0KCIuIikuc3BsaWNlKDEpLmpvaW4oIi4iKTtpZihhW3VdKWZvcihvPWFbdV0saT1vLmxlbmd0aDtpLS07KW49b1tpXSwoIWx8fGwmJm4ubmFtZXNwYWNlPT09bCkmJighcnx8ciYmbi5zZWxlY3Rvcj09PXIpJiZzKGEsdSxpLHQsbik7ZWxzZSBsJiZwKGEpLmZvckVhY2goZnVuY3Rpb24oZSl7Zm9yKG89YVtlXSxpPW8ubGVuZ3RoO2ktLTspbj1vW2ldLG4ubmFtZXNwYWNlLnNwbGl0KCIuIilbMF09PT1sLnNwbGl0KCIuIilbMF0mJnMoYSxlLGksdCxuKX0pfSl9LHRyaWdnZXI6ZnVuY3Rpb24odCxlKXt2YXIgbj1bXTt2KGUpP249ZS5zcGxpdCgiICIpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4geC5FdmVudCh0KX0pOihlPWUgaW5zdGFuY2VvZiBFdmVudD9lOnguRXZlbnQoZSksbj1bZV0pLG4uZm9yRWFjaChmdW5jdGlvbihlKXtlLnR5cGUmJnQuZGlzcGF0Y2hFdmVudCYmdC5kaXNwYXRjaEV2ZW50KGUpfSl9LGRpc3BhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuLHIsaSxvLHM9MCx1PTAsbD10aGlzLGM9eC5nZXREYXRhKGwpLmV2ZW50c1t0LnR5cGVdLGg9Yy5sZW5ndGgsZj1bXSxkPVtdO3M8aDtzKyspZi5wdXNoKGNbc10pO2ZvcihzPTAsaD1mLmxlbmd0aDtzPGgmJn5jLmluZGV4T2YoZltzXSkmJighaXx8IWkuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSk7cysrKWlmKG49bnVsbCxvPXt9LHI9ZltzXSxyLmRhdGEmJihvLmRhdGE9ci5kYXRhKSxyLnNlbGVjdG9yKXtpZih+KGQ9eChsKS5maW5kKHIuc2VsZWN0b3IpKS5pbmRleE9mKHQudGFyZ2V0KSYmKG49dC50YXJnZXQpfHxsIT09dC50YXJnZXQmJmwuY29udGFpbnModC50YXJnZXQpKXtpZighbilmb3IoZT1kLmxlbmd0aCx1PTA7dTxlO3UrKylkW3VdJiZkW3VdLmNvbnRhaW5zKHQudGFyZ2V0KSYmKG49ZFt1XSk7aWYoIW4pY29udGludWU7by5jdXJyZW50VGFyZ2V0PW4saT1uZXcgYSh0LG8pLHQubmFtZXNwYWNlJiZ0Lm5hbWVzcGFjZSE9PXIubmFtZXNwYWNlfHxyLm9yaWdpbmZuLmNhbGwobixpKX19ZWxzZSBpPW5ldyBhKHQsbyksdC5uYW1lc3BhY2UmJnQubmFtZXNwYWNlIT09ci5uYW1lc3BhY2V8fHIub3JpZ2luZm4uY2FsbChsLGkpfX0sdS5vbj1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLmxlbmd0aCxvPTA7aWYobnVsbD09biYmbnVsbD09cj8ocj1lLG49ZT12b2lkIDApOm51bGw9PXImJigic3RyaW5nIj09dHlwZW9mIGU/KHI9bixuPXZvaWQgMCk6KHI9bixuPWUsZT12b2lkIDApKSwhcilyZXR1cm4gdGhpcztmb3IoO288aTtvKyspeC5ldmVudC5hZGQodGhpc1tvXSx0LHIsbixlKTtyZXR1cm4gdGhpc30sdS5vbmU9ZnVuY3Rpb24odCl7dmFyIGUsbj1hcmd1bWVudHMscj0wLGk9dGhpcy5sZW5ndGgsbz1kLmNhbGwobiwxLG4ubGVuZ3RoLTEpLHM9ZC5jYWxsKG4sLTEpWzBdO2ZvcihlPWZ1bmN0aW9uKGUpe3ZhciBuPXgoZSk7dC5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHI9ZnVuY3Rpb24gcihpKXtuLm9mZih0LHIpLHMuY2FsbChlLGkpfTtuLm9uLmFwcGx5KG4sW3RdLmNvbmNhdChvLHIpKX0pfTtyPGk7cisrKWUodGhpc1tyXSk7cmV0dXJuIHRoaXN9LHUudHJpZ2dlcj1mdW5jdGlvbih0KXt2YXIgZT0wLG49dGhpcy5sZW5ndGg7aWYoIXQpcmV0dXJuIHRoaXM7Zm9yKDtlPG47ZSsrKXguZXZlbnQudHJpZ2dlcih0aGlzW2VdLHQpO3JldHVybiB0aGlzfSx1Lm9mZj1mdW5jdGlvbih0LGUsbil7dmFyIHI9MCxpPXRoaXMubGVuZ3RoO2Zvcih5KGUpJiYobj1lLGU9dm9pZCAwKTtyPGk7cisrKXguZXZlbnQucmVtb3ZlKHRoaXNbcl0sdCxuLGUpO3JldHVybiB0aGlzfSx1LmZpbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MCxyPXRoaXMubGVuZ3RoLGk9ZnVuY3Rpb24obil7eShuLnF1ZXJ5U2VsZWN0b3JBbGwpJiZbXS5mb3JFYWNoLmNhbGwobi5xdWVyeVNlbGVjdG9yQWxsKHQpLGZ1bmN0aW9uKHQpe2UucHVzaCh0KX0pfTtuPHI7bisrKWkodGhpc1tuXSk7cmV0dXJuIHgoZSl9LHUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10P3Q8MD90aGlzW3QrdGhpcy5sZW5ndGhdOnRoaXNbdF06ZC5jYWxsKHRoaXMpfSx1LmVxPWZ1bmN0aW9uKHQpe3JldHVybiB4KHRoaXNbdF0pfSx1LnBhcmVudD1mdW5jdGlvbigpe2Zvcih2YXIgdCxlPVtdLG49MCxyPXRoaXMubGVuZ3RoO248cjtuKyspIX5lLmluZGV4T2YodD10aGlzW25dLnBhcmVudEVsZW1lbnQpJiZ0JiZlLnB1c2godCk7cmV0dXJuIHgoZSl9LHUudG9BcnJheT1mdW5jdGlvbigpe3JldHVybiBkLmNhbGwodGhpcyl9LHUuaXM9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHM7cmV0dXJuIHRoaXMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT10WzBdfSl9LHUuaGFzPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzO3JldHVybiB0aGlzLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUucXVlcnlTZWxlY3RvckFsbCh0WzBdKS5sZW5ndGh9KX0sdS5hZGQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soeC51bmlxdWUoeC5tZXJnZSh0aGlzLmdldCgpLHgodCxlKSkpKX0sdS5hdHRyPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj1hcmd1bWVudHMsaT0wLG89dGhpcy5sZW5ndGg7aWYodih0KSYmMT09PXIubGVuZ3RoKXJldHVybiB0aGlzWzBdJiZ0aGlzWzBdLmdldEF0dHJpYnV0ZSh0KTtmb3IoMj09PXIubGVuZ3RoP249ZnVuY3Rpb24obil7bi5zZXRBdHRyaWJ1dGUodCxlKX06Xyh0KSYmKG49ZnVuY3Rpb24oZSl7cCh0KS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2Uuc2V0QXR0cmlidXRlKG4sdFtuXSl9KX0pO2k8bztpKyspbih0aGlzW2ldKTtyZXR1cm4gdGhpc30sdS5yZW1vdmVBdHRyPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dGhpcy5sZW5ndGg7ZTxuO2UrKyl0aGlzW2VdLnJlbW92ZUF0dHJpYnV0ZSh0KTtyZXR1cm4gdGhpc30sdS52YWw9ZnVuY3Rpb24odCl7dmFyIGU9MCxuPXRoaXMubGVuZ3RoO2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzWzBdJiZ0aGlzWzBdLnZhbHVlO2Zvcig7ZTxuO2UrKyl0aGlzW2VdLnZhbHVlPXQ7cmV0dXJuIHRoaXN9LHUuY3NzPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj1hcmd1bWVudHMsaT0wLHM9dGhpcy5sZW5ndGg7aWYodih0KSYmMT09PXIubGVuZ3RoKXJldHVybiB0aGlzWzBdJiZvLmdldENvbXB1dGVkU3R5bGUodGhpc1swXSlbdF07Zm9yKDI9PT1yLmxlbmd0aD9uPWZ1bmN0aW9uKG4pe24uc3R5bGVbdF09ZX06Xyh0KSYmKG49ZnVuY3Rpb24oZSl7cCh0KS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2Uuc3R5bGVbbl09dFtuXX0pfSk7aTxzO2krKyluKHRoaXNbaV0pO3JldHVybiB0aGlzfSx1LmRhdGE9ZnVuY3Rpb24odCxlKXt2YXIgbixyPWFyZ3VtZW50cyxpPXt9LG89MCxzPXRoaXMubGVuZ3RoLGE9ZnVuY3Rpb24odCxlLG4pe18obik/KHQuamRhdGE9dC5qZGF0YXx8e30sdC5qZGF0YVtlXT1uKTp0LmRhdGFzZXRbZV09bn0sdT1mdW5jdGlvbih0KXtyZXR1cm4idHJ1ZSI9PT10fHwiZmFsc2UiIT09dCYmdH07aWYoMD09PXIubGVuZ3RoKXJldHVybiB0aGlzWzBdLmpkYXRhJiYoaT10aGlzWzBdLmpkYXRhKSxwKHRoaXNbMF0uZGF0YXNldCkuZm9yRWFjaChmdW5jdGlvbih0KXtpW3RdPXUodGhpc1swXS5kYXRhc2V0W3RdKX0sdGhpcyksaTtpZigxPT09ci5sZW5ndGgmJnYodCkpcmV0dXJuIHRoaXNbMF0mJnUodGhpc1swXS5kYXRhc2V0W3RdfHx0aGlzWzBdLmpkYXRhJiZ0aGlzWzBdLmpkYXRhW3RdKTtmb3IoMT09PXIubGVuZ3RoJiZfKHQpP249ZnVuY3Rpb24oZSl7cCh0KS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2EoZSxuLHRbbl0pfSl9OjI9PT1yLmxlbmd0aCYmKG49ZnVuY3Rpb24obil7YShuLHQsZSl9KTtvPHM7bysrKW4odGhpc1tvXSk7cmV0dXJuIHRoaXN9LHUucmVtb3ZlRGF0YT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbixyPTAsaT10aGlzLmxlbmd0aDtyPGk7cisrKWlmKGU9dGhpc1tyXS5qZGF0YSxuPXRoaXNbcl0uZGF0YXNldCx0KWUmJmVbdF0mJmRlbGV0ZSBlW3RdLGRlbGV0ZSBuW3RdO2Vsc2V7Zm9yKHQgaW4gZSlkZWxldGUgZVt0XTtmb3IodCBpbiBuKWRlbGV0ZSBuW3RdfXJldHVybiB0aGlzfSx1LmFkZENsYXNzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49MCxyPXRoaXMubGVuZ3RoLGk9dD90LnRyaW0oKS5zcGxpdCgvXHMrLyk6W107ZTxyO2UrKylmb3Iobj0wLG49MDtuPGkubGVuZ3RoO24rKyl0aGlzW2VdLmNsYXNzTGlzdC5hZGQoaVtuXSk7cmV0dXJuIHRoaXN9LHUucmVtb3ZlQ2xhc3M9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsbj0wLHI9dGhpcy5sZW5ndGgsaT10P3QudHJpbSgpLnNwbGl0KC9ccysvKTpbXTtlPHI7ZSsrKWZvcihuPTAsbj0wO248aS5sZW5ndGg7bisrKXRoaXNbZV0uY2xhc3NMaXN0LnJlbW92ZShpW25dKTtyZXR1cm4gdGhpc30sdS50b2dnbGVDbGFzcz1mdW5jdGlvbih0LGUpe3ZhciBuPTAscj10aGlzLmxlbmd0aCxpPSJ0b2dnbGUiO2lmKGU9PT0hMCYmKGk9ImFkZCIpfHxlPT09ITEmJihpPSJyZW1vdmUiKSx0KWZvcig7bjxyO24rKyl0aGlzW25dLmNsYXNzTGlzdFtpXSh0KTtyZXR1cm4gdGhpc30sdS5oYXNDbGFzcz1mdW5jdGlvbih0KXt2YXIgZT0wLG49dGhpcy5sZW5ndGg7aWYodClmb3IoO2U8bjtlKyspaWYodGhpc1tlXS5jbGFzc0xpc3QuY29udGFpbnModCkpcmV0dXJuITA7cmV0dXJuITF9LHUuaHRtbD1mdW5jdGlvbih0KXt2YXIgZSxuPWFyZ3VtZW50cztyZXR1cm4gMT09PW4ubGVuZ3RoJiZ2b2lkIDAhPT10P3RoaXMuZW1wdHkoKS5hcHBlbmQodCk6MD09PW4ubGVuZ3RoJiYoZT10aGlzWzBdKT9lLmlubmVySFRNTDp0aGlzfSx1LmFwcGVuZD1mdW5jdGlvbih0KXt2YXIgZSxuPTAscj10aGlzLmxlbmd0aDtmb3Iodih0KSYmZi5leGVjKHQpP3Q9eCh0KTpfKHQpfHwodD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KSksdD10IGluc3RhbmNlb2YgeD90OngodCksZT1mdW5jdGlvbihlLG4pe3QuZm9yRWFjaChmdW5jdGlvbih0KXtuP2UuYXBwZW5kQ2hpbGQodC5jbG9uZU5vZGUoITApKTplLmFwcGVuZENoaWxkKHQpfSl9O248cjtuKyspZSh0aGlzW25dLG4pO3JldHVybiB0aGlzfSx1LmFwcGVuZFRvPWZ1bmN0aW9uKHQpe3JldHVybiB4KHQpLmFwcGVuZCh0aGlzKSx0aGlzfSx1LmVtcHR5PWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MCxuPXRoaXMubGVuZ3RoO2U8bjtlKyspZm9yKHQ9dGhpc1tlXTt0Lmxhc3RDaGlsZDspdC5yZW1vdmVDaGlsZCh0Lmxhc3RDaGlsZCk7cmV0dXJuIHRoaXN9LHUucmVtb3ZlPWZ1bmN0aW9uKCl7dmFyIHQsZT0wLG49dGhpcy5sZW5ndGg7Zm9yKHRoaXMub2ZmKCk7ZTxuO2UrKyl0PXRoaXNbZV0sZGVsZXRlIHQuamRhdGEsdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCk7cmV0dXJuIHRoaXN9LCJvYmplY3QiPT09aSh0KSYmdCYmIm9iamVjdCI9PT1pKHQuZXhwb3J0cyk/dC5leHBvcnRzPXg6KHI9ZnVuY3Rpb24oKXtyZXR1cm4geH0uY2FsbChlLG4sZSx0KSwhKHZvaWQgMCE9PXImJih0LmV4cG9ydHM9cikpLG8uakJvbmU9by4kPXgpfSh3aW5kb3cpfSkuY2FsbChlLG4oMjMpKHQpKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxMDYpLG89cihpKSxzPW8uZGVmYXVsdC5leHRlbmQoe2J1aWxkRE9NOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub24oIm5ldzpub2RlIix0aGlzLmJ1aWxkTm9kZSksdGhpcy5vbigibmV3OmJ1dHRvbiIsdGhpcy5idWlsZEJ1dHRvbiksdGhpcy5vbigibmV3Om1lbnUiLHRoaXMuYnVpbGRNZW51KSxvLmRlZmF1bHQucHJvdG90eXBlLmJ1aWxkRE9NLmNhbGwodGhpcyl9LGJ1aWxkTm9kZTpmdW5jdGlvbih0KXtpZihudWxsIT10aGlzLmcpcmV0dXJuIHQuc3R5bGUubGluZUhlaWdodD10aGlzLmcubWVudWNvbmZpZy5nZXQoIm1lbnVJdGVtTGluZUhlaWdodCIpfSxidWlsZEJ1dHRvbjpmdW5jdGlvbih0KXtpZihudWxsIT10aGlzLmcpcmV0dXJuIHQuc3R5bGUuZm9udFNpemU9dGhpcy5nLm1lbnVjb25maWcuZ2V0KCJtZW51Rm9udHNpemUiKSx0LnN0eWxlLm1hcmdpbkxlZnQ9dGhpcy5nLm1lbnVjb25maWcuZ2V0KCJtZW51TWFyZ2luTGVmdCIpLHQuc3R5bGUucGFkZGluZz10aGlzLmcubWVudWNvbmZpZy5nZXQoIm1lbnVQYWRkaW5nIil9LGJ1aWxkTWVudTpmdW5jdGlvbih0KXtpZihudWxsIT10aGlzLmcpcmV0dXJuIHQuc3R5bGUuZm9udFNpemU9dGhpcy5nLm1lbnVjb25maWcuZ2V0KCJtZW51SXRlbUZvbnRzaXplIil9fSk7ZS5kZWZhdWx0PXN9LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3ZhciBuPXt9O24ucmVtb3ZlVG9JbnNlcnRMYXRlcj1mdW5jdGlvbih0KXt2YXIgZSxuO3JldHVybiBuPXQucGFyZW50Tm9kZSxlPXQubmV4dFNpYmxpbmcsbi5yZW1vdmVDaGlsZCh0KSxmdW5jdGlvbigpe2U/bi5pbnNlcnRCZWZvcmUodCxlKTpuLmFwcGVuZENoaWxkKHQpfX0sbi5yZW1vdmVBbGxDaGlsZHM9ZnVuY3Rpb24odCl7dmFyIGU7Zm9yKGU9MDt0LmZpcnN0Q2hpbGQ7KWUrKyx0LnJlbW92ZUNoaWxkKHQuZmlyc3RDaGlsZCl9LHQuZXhwb3J0cz1ufSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNvbHVtbnNlbD1lLnJvd3NlbD1lLnBvc3NlbD1lLnNlbD12b2lkIDA7dmFyIHI9bigzKSxpPW4oMSkuTW9kZWwsbz1pLmV4dGVuZCh7ZGVmYXVsdHM6e3R5cGU6InN1cGVyIn19KSxzPW8uZXh0ZW5kKHtkZWZhdWx0czooMCxyLmV4dGVuZCkoe30sby5wcm90b3R5cGUuZGVmYXVsdHMse3R5cGU6InJvdyIsc2VxSWQ6IiJ9KSxpblJvdzpmdW5jdGlvbih0KXtyZXR1cm4gdD09PXRoaXMuZ2V0KCJzZXFJZCIpfSxpbkNvbHVtbjpmdW5jdGlvbih0KXtyZXR1cm4hMH0sZ2V0TGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIDF9fSksYT1vLmV4dGVuZCh7ZGVmYXVsdHM6KDAsci5leHRlbmQpKHt9LG8ucHJvdG90eXBlLmRlZmF1bHRzLHt0eXBlOiJjb2x1bW4iLHhTdGFydDotMSx4RW5kOi0xfSksaW5Sb3c6ZnVuY3Rpb24oKXtyZXR1cm4hMH0saW5Db2x1bW46ZnVuY3Rpb24odCl7cmV0dXJuIHhTdGFydDw9dCYmdDw9eEVuZH0sZ2V0TGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHhFbmQteFN0YXJ0fX0pLHU9cy5leHRlbmQoKDAsci5leHRlbmQpKHt9LCgwLHIucGljaykoYSwiaW5Db2x1bW4iKSwoMCxyLnBpY2spKGEsImdldExlbmd0aCIpLHtkZWZhdWx0czooMCxyLmV4dGVuZCkoe30sYS5wcm90b3R5cGUuZGVmYXVsdHMscy5wcm90b3R5cGUuZGVmYXVsdHMse3R5cGU6InBvcyJ9KX0pKTtlLnNlbD1vLGUucG9zc2VsPXUsZS5yb3dzZWw9cyxlLmNvbHVtbnNlbD1hfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1uKDgpLGk9bigzKSxvPW4oMSkuQ29sbGVjdGlvbixzPW8uZXh0ZW5kKHttb2RlbDpyLnNlbCxpbml0aWFsaXplOmZ1bmN0aW9uKHQsZSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBlJiZudWxsIT09ZSlyZXR1cm4gdGhpcy5nPWUuZyx0aGlzLmxpc3RlblRvKHRoaXMuZywicmVzaWR1ZTpjbGljayIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2hhbmRsZUUodC5ldnQsbmV3IHIucG9zc2VsKHt4U3RhcnQ6dC5yb3dQb3MseEVuZDp0LnJvd1BvcyxzZXFJZDp0LnNlcUlkfSkpfSksdGhpcy5saXN0ZW5Ubyh0aGlzLmcsInJvdzpjbGljayIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2hhbmRsZUUodC5ldnQsbmV3IHIucm93c2VsKHtzZXFJZDp0LnNlcUlkfSkpfSksdGhpcy5saXN0ZW5Ubyh0aGlzLmcsImNvbHVtbjpjbGljayIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2hhbmRsZUUodC5ldnQsbmV3IHIuY29sdW1uc2VsKHt4U3RhcnQ6dC5yb3dQb3MseEVuZDp0LnJvd1Bvcyt0LnN0ZXBTaXplLTF9KSl9KX0sZ2V0U2VsRm9yUm93OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5pblJvdyh0KX0pfSxnZXRTZWxGb3JDb2x1bW5zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5pbkNvbHVtbih0KX0pfSxhZGRKU09OOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmFkZCh0aGlzLl9mcm9tSlNPTih0KSl9LF9mcm9tSlNPTjpmdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlImNvbHVtbiI6cmV0dXJuIG5ldyByLmNvbHVtbnNlbCh0KTtjYXNlInJvdyI6cmV0dXJuIG5ldyByLnJvd3NlbCh0KTtjYXNlInBvcyI6cmV0dXJuIG5ldyByLnBvc3NlbCh0KX19LHJlc2V0SlNPTjpmdW5jdGlvbih0KXtyZXR1cm4gdD10Lm1hcCh0aGlzLl9mcm9tSlNPTiksdGhpcy5yZXNldCh0KX0sZ2V0QmxvY2tzRm9yUm93OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLHI9dGhpcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5Sb3codCl9KSxpPVtdLG89ZnVuY3Rpb24odCxuKXt2YXIgbj1yW3RdO3JldHVybiJyb3ciPT09bi5hdHRyaWJ1dGVzLnR5cGU/KGk9ZnVuY3Rpb24oKXt2YXIgdD1bXSxuPTA7aWYoMDw9ZSlmb3IoO248PWU7KXQucHVzaChuKyspO2Vsc2UgZm9yKDtuPj1lOyl0LnB1c2gobi0tKTtyZXR1cm4gdH0oKSwiYnJlYWsiKTp2b2lkKGk9aS5jb25jYXQoZnVuY3Rpb24oKXt2YXIgdD1bXSxlPW4uYXR0cmlidXRlcy54U3RhcnQ7aWYobi5hdHRyaWJ1dGVzLnhTdGFydDw9bi5hdHRyaWJ1dGVzLnhFbmQpZm9yKDtlPD1uLmF0dHJpYnV0ZXMueEVuZDspdC5wdXNoKGUrKyk7ZWxzZSBmb3IoO2U+PW4uYXR0cmlidXRlcy54RW5kOyl0LnB1c2goZS0tKTtyZXR1cm4gdH0oKSkpfSxzPTA7czxyLmxlbmd0aCYmImJyZWFrIiE9PW8ocyxuKTtzKyspO3JldHVybiBpfSxnZXRBbGxDb2x1bW5CbG9ja3M6ZnVuY3Rpb24odCl7dmFyIGU9KHQubWF4TGVuLHQud2l0aFBvcyxbXSksbj12b2lkIDA7bj10LndpdGhQb3M/dGhpcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQuZ2V0KCJ4U3RhcnQiKX0pOnRoaXMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiJjb2x1bW4iPT09dC5nZXQoInR5cGUiKX0pO2Zvcih2YXIgcixvPWZ1bmN0aW9uKHQscil7dmFyIHI9blt0XTtlPWUuY29uY2F0KGZ1bmN0aW9uKCl7dmFyIHQ9W10sZT1yLmF0dHJpYnV0ZXMueFN0YXJ0O2lmKHIuYXR0cmlidXRlcy54U3RhcnQ8PXIuYXR0cmlidXRlcy54RW5kKWZvcig7ZTw9ci5hdHRyaWJ1dGVzLnhFbmQ7KXQucHVzaChlKyspO2Vsc2UgZm9yKDtlPj1yLmF0dHJpYnV0ZXMueEVuZDspdC5wdXNoKGUtLSk7cmV0dXJuIHR9KCkpfSxzPTA7czxuLmxlbmd0aDtzKyspbyhzLHIpO3JldHVybiBlPSgwLGkudW5pcSkoZSl9LGludmVydFJvdzpmdW5jdGlvbih0KXt2YXIgZT10aGlzLndoZXJlKHt0eXBlOiJyb3cifSk7ZT1lLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5hdHRyaWJ1dGVzLnNlcUlkfSk7Zm9yKHZhciBuLG89KDAsaS5maWx0ZXIpKHQsZnVuY3Rpb24odCl7cmV0dXJuIShlLmluZGV4T2YodCk+PTApfSkscz1bXSxhPTA7YTxvLmxlbmd0aDthKyspe3ZhciBuPW9bYV07cy5wdXNoKG5ldyByLnJvd3NlbCh7c2VxSWQ6bn0pKX1yZXR1cm4gdGhpcy5yZXNldChzKX0saW52ZXJ0Q29sOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMud2hlcmUoe3R5cGU6ImNvbHVtbiJ9KS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jb25jYXQoZnVuY3Rpb24oKXt2YXIgdD1bXSxuPWUuYXR0cmlidXRlcy54U3RhcnQ7aWYoZS5hdHRyaWJ1dGVzLnhTdGFydDw9ZS5hdHRyaWJ1dGVzLnhFbmQpZm9yKDtuPD1lLmF0dHJpYnV0ZXMueEVuZDspdC5wdXNoKG4rKyk7ZWxzZSBmb3IoO24+PWUuYXR0cmlidXRlcy54RW5kOyl0LnB1c2gobi0tKTtyZXR1cm4gdH0oKSl9LFtdKSxuPSgwLGkuZmlsdGVyKSh0LGZ1bmN0aW9uKHQpe3JldHVybiEoZS5pbmRleE9mKHQpPj0wKX0pO2lmKDAhPT1uLmxlbmd0aCl7Zm9yKHZhciBvLHM9W10sYT1uWzBdLHU9YSxsPTA7bDxuLmxlbmd0aDtsKyspbz1uW2xdLHUrMT09PW8/dT1vOihzLnB1c2gobmV3IHIuY29sdW1uc2VsKHt4U3RhcnQ6YSx4RW5kOnV9KSksYT11PW8pO3JldHVybiBhIT09dSYmcy5wdXNoKG5ldyByLmNvbHVtbnNlbCh7eFN0YXJ0OmEseEVuZDpuW24ubGVuZ3RoLTFdfSkpLHRoaXMucmVzZXQocyl9fSxfaGFuZGxlRTpmdW5jdGlvbih0LGUpe3JldHVybiB0LmN0cmxLZXl8fHQubWV0YUtleT90aGlzLmFkZChlKTp0aGlzLnJlc2V0KFtlXSl9LF9yZWR1Y2VDb2x1bW5zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbih0LGUsbil7Zm9yKHZhciByPSgwLGkuZmlsdGVyKShuLGZ1bmN0aW9uKHQpe3JldHVybiJjb2x1bW4iPT09dC5nZXQoInR5cGUiKX0pLG89dC5nZXQoInhTdGFydCIpLHM9dC5nZXQoInhFbmQiKSxhPSgwLGkuZmlsdGVyKShyLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldCgieEVuZCIpPT09by0xfSksdT0wO3U8YS5sZW5ndGg7dSsrKWFbdV0uc2V0KCJ4RW5kIixvKTtmb3IodmFyIGw9KDAsaS5maWx0ZXIpKHIsZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0KCJ4U3RhcnQiKT09PXMrMX0pLGM9MDtjPGwubGVuZ3RoO2MrKylsW2NdLnNldCgieFN0YXJ0IixzKTtpZihhLmxlbmd0aD4wfHxsLmxlbmd0aD4wKXJldHVybiB0LmNvbGxlY3Rpb24ucmVtb3ZlKHQpfSl9fSk7ZS5kZWZhdWx0PXN9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpLG89ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9OyhmdW5jdGlvbigpe2Z1bmN0aW9uIG4odCl7ZnVuY3Rpb24gZShlLG4scixpLG8scyl7Zm9yKDtvPj0wJiZvPHM7bys9dCl7dmFyIGE9aT9pW29dOm87cj1uKHIsZVthXSxhLGUpfXJldHVybiByfXJldHVybiBmdW5jdGlvbihuLHIsaSxvKXtyPWsocixvLDQpO3ZhciBzPSFUKG4pJiZTLmtleXMobiksYT0oc3x8bikubGVuZ3RoLHU9dD4wPzA6YS0xO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDMmJihpPW5bcz9zW3VdOnVdLHUrPXQpLGUobixyLGkscyx1LGEpfX1mdW5jdGlvbiBzKHQpe3JldHVybiBmdW5jdGlvbihlLG4scil7bj16KG4scik7Zm9yKHZhciBpPU8oZSksbz10PjA/MDppLTE7bz49MCYmbzxpO28rPXQpaWYobihlW29dLG8sZSkpcmV0dXJuIG87cmV0dXJuLTF9fWZ1bmN0aW9uIGEodCxlLG4pe3JldHVybiBmdW5jdGlvbihyLGksbyl7dmFyIHM9MCxhPU8ocik7aWYoIm51bWJlciI9PXR5cGVvZiBvKXQ+MD9zPW8+PTA/bzpNYXRoLm1heChvK2Escyk6YT1vPj0wP01hdGgubWluKG8rMSxhKTpvK2ErMTtlbHNlIGlmKG4mJm8mJmEpcmV0dXJuIG89bihyLGkpLHJbb109PT1pP286LTE7aWYoaSE9PWkpcmV0dXJuIG89ZShwLmNhbGwocixzLGEpLFMuaXNOYU4pLG8+PTA/bytzOi0xO2ZvcihvPXQ+MD9zOmEtMTtvPj0wJiZvPGE7bys9dClpZihyW29dPT09aSlyZXR1cm4gbztyZXR1cm4tMX19ZnVuY3Rpb24gdSh0LGUpe3ZhciBuPU4ubGVuZ3RoLHI9dC5jb25zdHJ1Y3RvcixpPVMuaXNGdW5jdGlvbihyKSYmci5wcm90b3R5cGV8fGYsbz0iY29uc3RydWN0b3IiO2ZvcihTLmhhcyh0LG8pJiYhUy5jb250YWlucyhlLG8pJiZlLnB1c2gobyk7bi0tOylvPU5bbl0sbyBpbiB0JiZ0W29dIT09aVtvXSYmIVMuY29udGFpbnMoZSxvKSYmZS5wdXNoKG8pfXZhciBsPXRoaXMsYz1sLl8saD1BcnJheS5wcm90b3R5cGUsZj1PYmplY3QucHJvdG90eXBlLGQ9RnVuY3Rpb24ucHJvdG90eXBlLGc9aC5wdXNoLHA9aC5zbGljZSxtPWYudG9TdHJpbmcsdj1mLmhhc093blByb3BlcnR5LF89QXJyYXkuaXNBcnJheSx5PU9iamVjdC5rZXlzLGI9ZC5iaW5kLHg9T2JqZWN0LmNyZWF0ZSx3PWZ1bmN0aW9uKCl7fSxTPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0P2U6dGhpcyBpbnN0YW5jZW9mIHQ/dm9pZCh0aGlzLl93cmFwcGVkPWUpOm5ldyB0KGUpfTsidW5kZWZpbmVkIiE9dHlwZW9mIHQmJnQuZXhwb3J0cyYmKGU9dC5leHBvcnRzPVMpLGUuXz1TLFMuVkVSU0lPTj0iMS44LjMiO3ZhciBrPWZ1bmN0aW9uKHQsZSxuKXtpZih2b2lkIDA9PT1lKXJldHVybiB0O3N3aXRjaChudWxsPT1uPzM6bil7Y2FzZSAxOnJldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdC5jYWxsKGUsbil9O2Nhc2UgMjpyZXR1cm4gZnVuY3Rpb24obixyKXtyZXR1cm4gdC5jYWxsKGUsbixyKX07Y2FzZSAzOnJldHVybiBmdW5jdGlvbihuLHIsaSl7cmV0dXJuIHQuY2FsbChlLG4scixpKX07Y2FzZSA0OnJldHVybiBmdW5jdGlvbihuLHIsaSxvKXtyZXR1cm4gdC5jYWxsKGUsbixyLGksbyl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KGUsYXJndW1lbnRzKX19LHo9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBudWxsPT10P1MuaWRlbnRpdHk6Uy5pc0Z1bmN0aW9uKHQpP2sodCxlLG4pOlMuaXNPYmplY3QodCk/Uy5tYXRjaGVyKHQpOlMucHJvcGVydHkodCl9O1MuaXRlcmF0ZWU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geih0LGUsMS8wKX07dmFyIEM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDtpZihyPDJ8fG51bGw9PW4pcmV0dXJuIG47Zm9yKHZhciBpPTE7aTxyO2krKylmb3IodmFyIG89YXJndW1lbnRzW2ldLHM9dChvKSxhPXMubGVuZ3RoLHU9MDt1PGE7dSsrKXt2YXIgbD1zW3VdO2UmJnZvaWQgMCE9PW5bbF18fChuW2xdPW9bbF0pfXJldHVybiBufX0sTT1mdW5jdGlvbih0KXtpZighUy5pc09iamVjdCh0KSlyZXR1cm57fTtpZih4KXJldHVybiB4KHQpO3cucHJvdG90eXBlPXQ7dmFyIGU9bmV3IHc7cmV0dXJuIHcucHJvdG90eXBlPW51bGwsZX0saj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmVbdF19fSxFPU1hdGgucG93KDIsNTMpLTEsTz1qKCJsZW5ndGgiKSxUPWZ1bmN0aW9uKHQpe3ZhciBlPU8odCk7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlJiZlPj0wJiZlPD1FfTtTLmVhY2g9Uy5mb3JFYWNoPWZ1bmN0aW9uKHQsZSxuKXtlPWsoZSxuKTt2YXIgcixpO2lmKFQodCkpZm9yKHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspZSh0W3JdLHIsdCk7ZWxzZXt2YXIgbz1TLmtleXModCk7Zm9yKHI9MCxpPW8ubGVuZ3RoO3I8aTtyKyspZSh0W29bcl1dLG9bcl0sdCl9cmV0dXJuIHR9LFMubWFwPVMuY29sbGVjdD1mdW5jdGlvbih0LGUsbil7ZT16KGUsbik7Zm9yKHZhciByPSFUKHQpJiZTLmtleXModCksaT0ocnx8dCkubGVuZ3RoLG89QXJyYXkoaSkscz0wO3M8aTtzKyspe3ZhciBhPXI/cltzXTpzO29bc109ZSh0W2FdLGEsdCl9cmV0dXJuIG99LFMucmVkdWNlPVMuZm9sZGw9Uy5pbmplY3Q9bigxKSxTLnJlZHVjZVJpZ2h0PVMuZm9sZHI9bigtMSksUy5maW5kPVMuZGV0ZWN0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcjtpZihyPVQodCk/Uy5maW5kSW5kZXgodCxlLG4pOlMuZmluZEtleSh0LGUsbiksdm9pZCAwIT09ciYmciE9PS0xKXJldHVybiB0W3JdfSxTLmZpbHRlcj1TLnNlbGVjdD1mdW5jdGlvbih0LGUsbil7dmFyIHI9W107cmV0dXJuIGU9eihlLG4pLFMuZWFjaCh0LGZ1bmN0aW9uKHQsbixpKXtlKHQsbixpKSYmci5wdXNoKHQpfSkscn0sUy5yZWplY3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBTLmZpbHRlcih0LFMubmVnYXRlKHooZSkpLG4pfSxTLmV2ZXJ5PVMuYWxsPWZ1bmN0aW9uKHQsZSxuKXtlPXooZSxuKTtmb3IodmFyIHI9IVQodCkmJlMua2V5cyh0KSxpPShyfHx0KS5sZW5ndGgsbz0wO288aTtvKyspe3ZhciBzPXI/cltvXTpvO2lmKCFlKHRbc10scyx0KSlyZXR1cm4hMX1yZXR1cm4hMH0sUy5zb21lPVMuYW55PWZ1bmN0aW9uKHQsZSxuKXtlPXooZSxuKTtmb3IodmFyIHI9IVQodCkmJlMua2V5cyh0KSxpPShyfHx0KS5sZW5ndGgsbz0wO288aTtvKyspe3ZhciBzPXI/cltvXTpvO2lmKGUodFtzXSxzLHQpKXJldHVybiEwfXJldHVybiExfSxTLmNvbnRhaW5zPVMuaW5jbHVkZXM9Uy5pbmNsdWRlPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBUKHQpfHwodD1TLnZhbHVlcyh0KSksKCJudW1iZXIiIT10eXBlb2Ygbnx8cikmJihuPTApLFMuaW5kZXhPZih0LGUsbik+PTB9LFMuaW52b2tlPWZ1bmN0aW9uKHQsZSl7dmFyIG49cC5jYWxsKGFyZ3VtZW50cywyKSxyPVMuaXNGdW5jdGlvbihlKTtyZXR1cm4gUy5tYXAodCxmdW5jdGlvbih0KXt2YXIgaT1yP2U6dFtlXTtyZXR1cm4gbnVsbD09aT9pOmkuYXBwbHkodCxuKX0pfSxTLnBsdWNrPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFMubWFwKHQsUy5wcm9wZXJ0eShlKSl9LFMud2hlcmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gUy5maWx0ZXIodCxTLm1hdGNoZXIoZSkpfSxTLmZpbmRXaGVyZT1mdW5jdGlvbih0LGUpe3JldHVybiBTLmZpbmQodCxTLm1hdGNoZXIoZSkpfSxTLm1heD1mdW5jdGlvbih0LGUsbil7dmFyIHIsaSxvPS0oMS8wKSxzPS0oMS8wKTtpZihudWxsPT1lJiZudWxsIT10KXt0PVQodCk/dDpTLnZhbHVlcyh0KTtmb3IodmFyIGE9MCx1PXQubGVuZ3RoO2E8dTthKyspcj10W2FdLHI+byYmKG89cil9ZWxzZSBlPXooZSxuKSxTLmVhY2godCxmdW5jdGlvbih0LG4scil7aT1lKHQsbixyKSwoaT5zfHxpPT09LSgxLzApJiZvPT09LSgxLzApKSYmKG89dCxzPWkpfSk7cmV0dXJuIG99LFMubWluPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpLG89MS8wLHM9MS8wO2lmKG51bGw9PWUmJm51bGwhPXQpe3Q9VCh0KT90OlMudmFsdWVzKHQpO2Zvcih2YXIgYT0wLHU9dC5sZW5ndGg7YTx1O2ErKylyPXRbYV0scjxvJiYobz1yKX1lbHNlIGU9eihlLG4pLFMuZWFjaCh0LGZ1bmN0aW9uKHQsbixyKXtpPWUodCxuLHIpLChpPHN8fGk9PT0xLzAmJm89PT0xLzApJiYobz10LHM9aSl9KTtyZXR1cm4gb30sUy5zaHVmZmxlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPVQodCk/dDpTLnZhbHVlcyh0KSxyPW4ubGVuZ3RoLGk9QXJyYXkociksbz0wO288cjtvKyspZT1TLnJhbmRvbSgwLG8pLGUhPT1vJiYoaVtvXT1pW2VdKSxpW2VdPW5bb107cmV0dXJuIGl9LFMuc2FtcGxlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbnVsbD09ZXx8bj8oVCh0KXx8KHQ9Uy52YWx1ZXModCkpLHRbUy5yYW5kb20odC5sZW5ndGgtMSldKTpTLnNodWZmbGUodCkuc2xpY2UoMCxNYXRoLm1heCgwLGUpKX0sUy5zb3J0Qnk9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlPXooZSxuKSxTLnBsdWNrKFMubWFwKHQsZnVuY3Rpb24odCxuLHIpe3JldHVybnt2YWx1ZTp0LGluZGV4Om4sY3JpdGVyaWE6ZSh0LG4scil9fSkuc29ydChmdW5jdGlvbih0LGUpe3ZhciBuPXQuY3JpdGVyaWEscj1lLmNyaXRlcmlhO2lmKG4hPT1yKXtpZihuPnJ8fHZvaWQgMD09PW4pcmV0dXJuIDE7aWYobjxyfHx2b2lkIDA9PT1yKXJldHVybi0xfXJldHVybiB0LmluZGV4LWUuaW5kZXh9KSwidmFsdWUiKX07dmFyIEE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixyKXt2YXIgaT17fTtyZXR1cm4gbj16KG4sciksUy5lYWNoKGUsZnVuY3Rpb24ocixvKXt0KGkscixuKHIsbyxlKSl9KSxpfX07Uy5ncm91cEJ5PUEoZnVuY3Rpb24odCxlLG4pe1MuaGFzKHQsbik/dFtuXS5wdXNoKGUpOnRbbl09W2VdfSksUy5pbmRleEJ5PUEoZnVuY3Rpb24odCxlLG4pe3Rbbl09ZX0pLFMuY291bnRCeT1BKGZ1bmN0aW9uKHQsZSxuKXtTLmhhcyh0LG4pP3Rbbl0rKzp0W25dPTF9KSxTLnRvQXJyYXk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/Uy5pc0FycmF5KHQpP3AuY2FsbCh0KTpUKHQpP1MubWFwKHQsUy5pZGVudGl0eSk6Uy52YWx1ZXModCk6W119LFMuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8wOlQodCk/dC5sZW5ndGg6Uy5rZXlzKHQpLmxlbmd0aH0sUy5wYXJ0aXRpb249ZnVuY3Rpb24odCxlLG4pe2U9eihlLG4pO3ZhciByPVtdLGk9W107cmV0dXJuIFMuZWFjaCh0LGZ1bmN0aW9uKHQsbixvKXsoZSh0LG4sbyk/cjppKS5wdXNoKHQpfSksW3IsaV19LFMuZmlyc3Q9Uy5oZWFkPVMudGFrZT1mdW5jdGlvbih0LGUsbil7aWYobnVsbCE9dClyZXR1cm4gbnVsbD09ZXx8bj90WzBdOlMuaW5pdGlhbCh0LHQubGVuZ3RoLWUpfSxTLmluaXRpYWw9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBwLmNhbGwodCwwLE1hdGgubWF4KDAsdC5sZW5ndGgtKG51bGw9PWV8fG4/MTplKSkpfSxTLmxhc3Q9ZnVuY3Rpb24odCxlLG4pe2lmKG51bGwhPXQpcmV0dXJuIG51bGw9PWV8fG4/dFt0Lmxlbmd0aC0xXTpTLnJlc3QodCxNYXRoLm1heCgwLHQubGVuZ3RoLWUpKX0sUy5yZXN0PVMudGFpbD1TLmRyb3A9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBwLmNhbGwodCxudWxsPT1lfHxuPzE6ZSl9LFMuY29tcGFjdD1mdW5jdGlvbih0KXtyZXR1cm4gUy5maWx0ZXIodCxTLmlkZW50aXR5KX07dmFyIEw9ZnVuY3Rpb24gdChlLG4scixpKXtmb3IodmFyIG89W10scz0wLGE9aXx8MCx1PU8oZSk7YTx1O2ErKyl7dmFyIGw9ZVthXTtpZihUKGwpJiYoUy5pc0FycmF5KGwpfHxTLmlzQXJndW1lbnRzKGwpKSl7bnx8KGw9dChsLG4scikpO3ZhciBjPTAsaD1sLmxlbmd0aDtmb3Ioby5sZW5ndGgrPWg7YzxoOylvW3MrK109bFtjKytdfWVsc2Ugcnx8KG9bcysrXT1sKX1yZXR1cm4gb307Uy5mbGF0dGVuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEwodCxlLCExKX0sUy53aXRob3V0PWZ1bmN0aW9uKHQpe3JldHVybiBTLmRpZmZlcmVuY2UodCxwLmNhbGwoYXJndW1lbnRzLDEpKX0sUy51bmlxPVMudW5pcXVlPWZ1bmN0aW9uKHQsZSxuLHIpe1MuaXNCb29sZWFuKGUpfHwocj1uLG49ZSxlPSExKSxudWxsIT1uJiYobj16KG4scikpO2Zvcih2YXIgaT1bXSxvPVtdLHM9MCxhPU8odCk7czxhO3MrKyl7dmFyIHU9dFtzXSxsPW4/bih1LHMsdCk6dTtlPyhzJiZvPT09bHx8aS5wdXNoKHUpLG89bCk6bj9TLmNvbnRhaW5zKG8sbCl8fChvLnB1c2gobCksaS5wdXNoKHUpKTpTLmNvbnRhaW5zKGksdSl8fGkucHVzaCh1KX1yZXR1cm4gaX0sUy51bmlvbj1mdW5jdGlvbigpe3JldHVybiBTLnVuaXEoTChhcmd1bWVudHMsITAsITApKX0sUy5pbnRlcnNlY3Rpb249ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49YXJndW1lbnRzLmxlbmd0aCxyPTAsaT1PKHQpO3I8aTtyKyspe3ZhciBvPXRbcl07aWYoIVMuY29udGFpbnMoZSxvKSl7Zm9yKHZhciBzPTE7czxuJiZTLmNvbnRhaW5zKGFyZ3VtZW50c1tzXSxvKTtzKyspO3M9PT1uJiZlLnB1c2gobyl9fXJldHVybiBlfSxTLmRpZmZlcmVuY2U9ZnVuY3Rpb24odCl7dmFyIGU9TChhcmd1bWVudHMsITAsITAsMSk7cmV0dXJuIFMuZmlsdGVyKHQsZnVuY3Rpb24odCl7cmV0dXJuIVMuY29udGFpbnMoZSx0KX0pfSxTLnppcD1mdW5jdGlvbigpe3JldHVybiBTLnVuemlwKGFyZ3VtZW50cyl9LFMudW56aXA9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQmJlMubWF4KHQsTykubGVuZ3RofHwwLG49QXJyYXkoZSkscj0wO3I8ZTtyKyspbltyXT1TLnBsdWNrKHQscik7cmV0dXJuIG59LFMub2JqZWN0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXt9LHI9MCxpPU8odCk7cjxpO3IrKyllP25bdFtyXV09ZVtyXTpuW3Rbcl1bMF1dPXRbcl1bMV07cmV0dXJuIG59LFMuZmluZEluZGV4PXMoMSksUy5maW5kTGFzdEluZGV4PXMoLTEpLFMuc29ydGVkSW5kZXg9ZnVuY3Rpb24odCxlLG4scil7bj16KG4sciwxKTtmb3IodmFyIGk9bihlKSxvPTAscz1PKHQpO288czspe3ZhciBhPU1hdGguZmxvb3IoKG8rcykvMik7bih0W2FdKTxpP289YSsxOnM9YX1yZXR1cm4gb30sUy5pbmRleE9mPWEoMSxTLmZpbmRJbmRleCxTLnNvcnRlZEluZGV4KSxTLmxhc3RJbmRleE9mPWEoLTEsUy5maW5kTGFzdEluZGV4KSxTLnJhbmdlPWZ1bmN0aW9uKHQsZSxuKXtudWxsPT1lJiYoZT10fHwwLHQ9MCksbj1ufHwxO2Zvcih2YXIgcj1NYXRoLm1heChNYXRoLmNlaWwoKGUtdCkvbiksMCksaT1BcnJheShyKSxvPTA7bzxyO28rKyx0Kz1uKWlbb109dDtyZXR1cm4gaX07dmFyIFI9ZnVuY3Rpb24odCxlLG4scixpKXtpZighKHIgaW5zdGFuY2VvZiBlKSlyZXR1cm4gdC5hcHBseShuLGkpO3ZhciBvPU0odC5wcm90b3R5cGUpLHM9dC5hcHBseShvLGkpO3JldHVybiBTLmlzT2JqZWN0KHMpP3M6b307Uy5iaW5kPWZ1bmN0aW9uKHQsZSl7aWYoYiYmdC5iaW5kPT09YilyZXR1cm4gYi5hcHBseSh0LHAuY2FsbChhcmd1bWVudHMsMSkpO2lmKCFTLmlzRnVuY3Rpb24odCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQmluZCBtdXN0IGJlIGNhbGxlZCBvbiBhIGZ1bmN0aW9uIik7dmFyIG49cC5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24gcigpe3JldHVybiBSKHQscixlLHRoaXMsbi5jb25jYXQocC5jYWxsKGFyZ3VtZW50cykpKX19LFMucGFydGlhbD1mdW5jdGlvbih0KXt2YXIgZT1wLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBmdW5jdGlvbiBuKCl7Zm9yKHZhciByPTAsaT1lLmxlbmd0aCxvPUFycmF5KGkpLHM9MDtzPGk7cysrKW9bc109ZVtzXT09PVM/YXJndW1lbnRzW3IrK106ZVtzXTtmb3IoO3I8YXJndW1lbnRzLmxlbmd0aDspby5wdXNoKGFyZ3VtZW50c1tyKytdKTtyZXR1cm4gUih0LG4sdGhpcyx0aGlzLG8pfX0sUy5iaW5kQWxsPWZ1bmN0aW9uKHQpe3ZhciBlLG4scj1hcmd1bWVudHMubGVuZ3RoO2lmKHI8PTEpdGhyb3cgbmV3IEVycm9yKCJiaW5kQWxsIG11c3QgYmUgcGFzc2VkIGZ1bmN0aW9uIG5hbWVzIik7Zm9yKGU9MTtlPHI7ZSsrKW49YXJndW1lbnRzW2VdLHRbbl09Uy5iaW5kKHRbbl0sdCk7cmV0dXJuIHR9LFMubWVtb2l6ZT1mdW5jdGlvbih0LGUpe3ZhciBuPWZ1bmN0aW9uIG4ocil7dmFyIGk9bi5jYWNoZSxvPSIiKyhlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOnIpO3JldHVybiBTLmhhcyhpLG8pfHwoaVtvXT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSksaVtvXX07cmV0dXJuIG4uY2FjaGU9e30sbn0sUy5kZWxheT1mdW5jdGlvbih0LGUpe3ZhciBuPXAuY2FsbChhcmd1bWVudHMsMik7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShudWxsLG4pfSxlKX0sUy5kZWZlcj1TLnBhcnRpYWwoUy5kZWxheSxTLDEpLFMudGhyb3R0bGU9ZnVuY3Rpb24odCxlLG4pe3ZhciByLGksbyxzPW51bGwsYT0wO258fChuPXt9KTt2YXIgdT1mdW5jdGlvbigpe2E9bi5sZWFkaW5nPT09ITE/MDpTLm5vdygpLHM9bnVsbCxvPXQuYXBwbHkocixpKSxzfHwocj1pPW51bGwpfTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD1TLm5vdygpO2F8fG4ubGVhZGluZyE9PSExfHwoYT1sKTt2YXIgYz1lLShsLWEpO3JldHVybiByPXRoaXMsaT1hcmd1bWVudHMsYzw9MHx8Yz5lPyhzJiYoY2xlYXJUaW1lb3V0KHMpLHM9bnVsbCksYT1sLG89dC5hcHBseShyLGkpLHN8fChyPWk9bnVsbCkpOnN8fG4udHJhaWxpbmc9PT0hMXx8KHM9c2V0VGltZW91dCh1LGMpKSxvfX0sUy5kZWJvdW5jZT1mdW5jdGlvbih0LGUsbil7dmFyIHIsaSxvLHMsYSx1PWZ1bmN0aW9uIHUoKXt2YXIgbD1TLm5vdygpLXM7bDxlJiZsPj0wP3I9c2V0VGltZW91dCh1LGUtbCk6KHI9bnVsbCxufHwoYT10LmFwcGx5KG8saSkscnx8KG89aT1udWxsKSkpfTtyZXR1cm4gZnVuY3Rpb24oKXtvPXRoaXMsaT1hcmd1bWVudHMscz1TLm5vdygpO3ZhciBsPW4mJiFyO3JldHVybiByfHwocj1zZXRUaW1lb3V0KHUsZSkpLGwmJihhPXQuYXBwbHkobyxpKSxvPWk9bnVsbCksYX19LFMud3JhcD1mdW5jdGlvbih0LGUpe3JldHVybiBTLnBhcnRpYWwoZSx0KX0sUy5uZWdhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sUy5jb21wb3NlPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLGU9dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49ZSxyPXRbZV0uYXBwbHkodGhpcyxhcmd1bWVudHMpO24tLTspcj10W25dLmNhbGwodGhpcyxyKTtyZXR1cm4gcn19LFMuYWZ0ZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtpZigtLXQ8MSlyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxTLmJlZm9yZT1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiBmdW5jdGlvbigpe3JldHVybi0tdD4wJiYobj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdDw9MSYmKGU9bnVsbCksbn19LFMub25jZT1TLnBhcnRpYWwoUy5iZWZvcmUsMik7dmFyIHE9IXt0b1N0cmluZzpudWxsfS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgidG9TdHJpbmciKSxOPVsidmFsdWVPZiIsImlzUHJvdG90eXBlT2YiLCJ0b1N0cmluZyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiaGFzT3duUHJvcGVydHkiLCJ0b0xvY2FsZVN0cmluZyJdO1Mua2V5cz1mdW5jdGlvbih0KXtpZighUy5pc09iamVjdCh0KSlyZXR1cm5bXTtpZih5KXJldHVybiB5KHQpO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KVMuaGFzKHQsbikmJmUucHVzaChuKTtyZXR1cm4gcSYmdSh0LGUpLGV9LFMuYWxsS2V5cz1mdW5jdGlvbih0KXtpZighUy5pc09iamVjdCh0KSlyZXR1cm5bXTt2YXIgZT1bXTtmb3IodmFyIG4gaW4gdCllLnB1c2gobik7cmV0dXJuIHEmJnUodCxlKSxlfSxTLnZhbHVlcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9Uy5rZXlzKHQpLG49ZS5sZW5ndGgscj1BcnJheShuKSxpPTA7aTxuO2krKylyW2ldPXRbZVtpXV07cmV0dXJuIHJ9LFMubWFwT2JqZWN0PWZ1bmN0aW9uKHQsZSxuKXtlPXooZSxuKTtmb3IodmFyIHIsaT1TLmtleXModCksbz1pLmxlbmd0aCxzPXt9LGE9MDthPG87YSsrKXI9aVthXSxzW3JdPWUodFtyXSxyLHQpO3JldHVybiBzfSxTLnBhaXJzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1TLmtleXModCksbj1lLmxlbmd0aCxyPUFycmF5KG4pLGk9MDtpPG47aSsrKXJbaV09W2VbaV0sdFtlW2ldXV07cmV0dXJuIHJ9LFMuaW52ZXJ0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT17fSxuPVMua2V5cyh0KSxyPTAsaT1uLmxlbmd0aDtyPGk7cisrKWVbdFtuW3JdXV09bltyXTtyZXR1cm4gZX0sUy5mdW5jdGlvbnM9Uy5tZXRob2RzPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KVMuaXNGdW5jdGlvbih0W25dKSYmZS5wdXNoKG4pO3JldHVybiBlLnNvcnQoKX0sUy5leHRlbmQ9QyhTLmFsbEtleXMpLFMuZXh0ZW5kT3duPVMuYXNzaWduPUMoUy5rZXlzKSxTLmZpbmRLZXk9ZnVuY3Rpb24odCxlLG4pe2U9eihlLG4pO2Zvcih2YXIgcixpPVMua2V5cyh0KSxvPTAscz1pLmxlbmd0aDtvPHM7bysrKWlmKHI9aVtvXSxlKHRbcl0scix0KSlyZXR1cm4gcn0sUy5waWNrPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpLG89e30scz10O2lmKG51bGw9PXMpcmV0dXJuIG87Uy5pc0Z1bmN0aW9uKGUpPyhpPVMuYWxsS2V5cyhzKSxyPWsoZSxuKSk6KGk9TChhcmd1bWVudHMsITEsITEsMSkscj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGUgaW4gbn0scz1PYmplY3QocykpO2Zvcih2YXIgYT0wLHU9aS5sZW5ndGg7YTx1O2ErKyl7dmFyIGw9aVthXSxjPXNbbF07cihjLGwscykmJihvW2xdPWMpfXJldHVybiBvfSxTLm9taXQ9ZnVuY3Rpb24odCxlLG4pe2lmKFMuaXNGdW5jdGlvbihlKSllPVMubmVnYXRlKGUpO2Vsc2V7dmFyIHI9Uy5tYXAoTChhcmd1bWVudHMsITEsITEsMSksU3RyaW5nKTtlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIVMuY29udGFpbnMocixlKX19cmV0dXJuIFMucGljayh0LGUsbil9LFMuZGVmYXVsdHM9QyhTLmFsbEtleXMsITApLFMuY3JlYXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG49TSh0KTtyZXR1cm4gZSYmUy5leHRlbmRPd24obixlKSxufSxTLmNsb25lPWZ1bmN0aW9uKHQpe3JldHVybiBTLmlzT2JqZWN0KHQpP1MuaXNBcnJheSh0KT90LnNsaWNlKCk6Uy5leHRlbmQoe30sdCk6dH0sUy50YXA9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSh0KSx0fSxTLmlzTWF0Y2g9ZnVuY3Rpb24odCxlKXt2YXIgbj1TLmtleXMoZSkscj1uLmxlbmd0aDtpZihudWxsPT10KXJldHVybiFyO2Zvcih2YXIgaT1PYmplY3QodCksbz0wO288cjtvKyspe3ZhciBzPW5bb107aWYoZVtzXSE9PWlbc118fCEocyBpbiBpKSlyZXR1cm4hMX1yZXR1cm4hMH07dmFyIEk9ZnVuY3Rpb24gdChlLG4scixpKXtpZihlPT09bilyZXR1cm4gMCE9PWV8fDEvZT09PTEvbjtpZihudWxsPT1lfHxudWxsPT1uKXJldHVybiBlPT09bjtlIGluc3RhbmNlb2YgUyYmKGU9ZS5fd3JhcHBlZCksbiBpbnN0YW5jZW9mIFMmJihuPW4uX3dyYXBwZWQpO3ZhciBzPW0uY2FsbChlKTtpZihzIT09bS5jYWxsKG4pKXJldHVybiExO3N3aXRjaChzKXtjYXNlIltvYmplY3QgUmVnRXhwXSI6Y2FzZSJbb2JqZWN0IFN0cmluZ10iOnJldHVybiIiK2U9PSIiK247Y2FzZSJbb2JqZWN0IE51bWJlcl0iOnJldHVybitlIT09K2U/K24hPT0rbjowPT09K2U/MS8rZT09PTEvbjorZT09PStuO2Nhc2UiW29iamVjdCBEYXRlXSI6Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpyZXR1cm4rZT09PStufXZhciBhPSJbb2JqZWN0IEFycmF5XSI9PT1zO2lmKCFhKXtpZigib2JqZWN0IiE9KCJ1bmRlZmluZWQiPT10eXBlb2YgZT8idW5kZWZpbmVkIjpvKGUpKXx8Im9iamVjdCIhPSgidW5kZWZpbmVkIj09dHlwZW9mIG4/InVuZGVmaW5lZCI6byhuKSkpcmV0dXJuITE7dmFyIHU9ZS5jb25zdHJ1Y3RvcixsPW4uY29uc3RydWN0b3I7aWYodSE9PWwmJiEoUy5pc0Z1bmN0aW9uKHUpJiZ1IGluc3RhbmNlb2YgdSYmUy5pc0Z1bmN0aW9uKGwpJiZsIGluc3RhbmNlb2YgbCkmJiJjb25zdHJ1Y3RvciJpbiBlJiYiY29uc3RydWN0b3IiaW4gbilyZXR1cm4hMX1yPXJ8fFtdLGk9aXx8W107Zm9yKHZhciBjPXIubGVuZ3RoO2MtLTspaWYocltjXT09PWUpcmV0dXJuIGlbY109PT1uO2lmKHIucHVzaChlKSxpLnB1c2gobiksYSl7aWYoYz1lLmxlbmd0aCxjIT09bi5sZW5ndGgpcmV0dXJuITE7Zm9yKDtjLS07KWlmKCF0KGVbY10sbltjXSxyLGkpKXJldHVybiExfWVsc2V7dmFyIGgsZj1TLmtleXMoZSk7aWYoYz1mLmxlbmd0aCxTLmtleXMobikubGVuZ3RoIT09YylyZXR1cm4hMTtmb3IoO2MtLTspaWYoaD1mW2NdLCFTLmhhcyhuLGgpfHwhdChlW2hdLG5baF0scixpKSlyZXR1cm4hMX1yZXR1cm4gci5wb3AoKSxpLnBvcCgpLCEwfTtTLmlzRXF1YWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gSSh0LGUpfSxTLmlzRW1wdHk9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXR8fChUKHQpJiYoUy5pc0FycmF5KHQpfHxTLmlzU3RyaW5nKHQpfHxTLmlzQXJndW1lbnRzKHQpKT8wPT09dC5sZW5ndGg6MD09PVMua2V5cyh0KS5sZW5ndGgpfSxTLmlzRWxlbWVudD1mdW5jdGlvbih0KXtyZXR1cm4hKCF0fHwxIT09dC5ub2RlVHlwZSl9LFMuaXNBcnJheT1ffHxmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09bS5jYWxsKHQpfSxTLmlzT2JqZWN0PWZ1bmN0aW9uKHQpe3ZhciBlPSJ1bmRlZmluZWQiPT10eXBlb2YgdD8idW5kZWZpbmVkIjpvKHQpO3JldHVybiJmdW5jdGlvbiI9PT1lfHwib2JqZWN0Ij09PWUmJiEhdH0sUy5lYWNoKFsiQXJndW1lbnRzIiwiRnVuY3Rpb24iLCJTdHJpbmciLCJOdW1iZXIiLCJEYXRlIiwiUmVnRXhwIiwiRXJyb3IiXSxmdW5jdGlvbih0KXtTWyJpcyIrdF09ZnVuY3Rpb24oZSl7cmV0dXJuIG0uY2FsbChlKT09PSJbb2JqZWN0ICIrdCsiXSJ9fSksUy5pc0FyZ3VtZW50cyhhcmd1bWVudHMpfHwoUy5pc0FyZ3VtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gUy5oYXModCwiY2FsbGVlIil9KSwiZnVuY3Rpb24iIT10eXBlb2YvLi8mJiJvYmplY3QiIT0oInVuZGVmaW5lZCI9PXR5cGVvZiBJbnQ4QXJyYXk/InVuZGVmaW5lZCI6byhJbnQ4QXJyYXkpKSYmKFMuaXNGdW5jdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdHx8ITF9KSxTLmlzRmluaXRlPWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0KSYmIWlzTmFOKHBhcnNlRmxvYXQodCkpfSxTLmlzTmFOPWZ1bmN0aW9uKHQpe3JldHVybiBTLmlzTnVtYmVyKHQpJiZ0IT09K3R9LFMuaXNCb29sZWFuPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09ITB8fHQ9PT0hMXx8IltvYmplY3QgQm9vbGVhbl0iPT09bS5jYWxsKHQpfSxTLmlzTnVsbD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09PXR9LFMuaXNVbmRlZmluZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXR9LFMuaGFzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGwhPXQmJnYuY2FsbCh0LGUpfSxTLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbC5fPWMsdGhpc30sUy5pZGVudGl0eT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sUy5jb25zdGFudD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19LFMubm9vcD1mdW5jdGlvbigpe30sUy5wcm9wZXJ0eT1qLFMucHJvcGVydHlPZj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9mdW5jdGlvbigpe306ZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19fSxTLm1hdGNoZXI9Uy5tYXRjaGVzPWZ1bmN0aW9uKHQpe3JldHVybiB0PVMuZXh0ZW5kT3duKHt9LHQpLGZ1bmN0aW9uKGUpe3JldHVybiBTLmlzTWF0Y2goZSx0KX19LFMudGltZXM9ZnVuY3Rpb24odCxlLG4pe3ZhciByPUFycmF5KE1hdGgubWF4KDAsdCkpO2U9ayhlLG4sMSk7Zm9yKHZhciBpPTA7aTx0O2krKylyW2ldPWUoaSk7cmV0dXJuIHJ9LFMucmFuZG9tPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PWUmJihlPXQsdD0wKSx0K01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KzEpKX0sUy5ub3c9RGF0ZS5ub3d8fGZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9O3ZhciBQPXsiJiI6IiZhbXA7IiwiPCI6IiZsdDsiLCI+IjoiJmd0OyIsJyInOiImcXVvdDsiLCInIjoiJiN4Mjc7IiwiYCI6IiYjeDYwOyJ9LFc9Uy5pbnZlcnQoUCksRj1mdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0sbj0iKD86IitTLmtleXModCkuam9pbigifCIpKyIpIixyPVJlZ0V4cChuKSxpPVJlZ0V4cChuLCJnIik7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/IiI6IiIrdCxyLnRlc3QodCk/dC5yZXBsYWNlKGksZSk6dH19O1MuZXNjYXBlPUYoUCksUy51bmVzY2FwZT1GKFcpLFMucmVzdWx0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1udWxsPT10P3ZvaWQgMDp0W2VdO3JldHVybiB2b2lkIDA9PT1yJiYocj1uKSxTLmlzRnVuY3Rpb24ocik/ci5jYWxsKHQpOnJ9O3ZhciBCPTA7Uy51bmlxdWVJZD1mdW5jdGlvbih0KXt2YXIgZT0rK0IrIiI7cmV0dXJuIHQ/dCtlOmV9LFMudGVtcGxhdGVTZXR0aW5ncz17ZXZhbHVhdGU6LzwlKFtcc1xTXSs/KSU+L2csaW50ZXJwb2xhdGU6LzwlPShbXHNcU10rPyklPi9nLGVzY2FwZTovPCUtKFtcc1xTXSs/KSU+L2d9O3ZhciBIPS8oLileLyxEPXsiJyI6IiciLCJcXCI6IlxcIiwiXHIiOiJyIiwiXG4iOiJuIiwiXHUyMDI4IjoidTIwMjgiLCJcdTIwMjkiOiJ1MjAyOSJ9LFU9L1xcfCd8XHJ8XG58XHUyMDI4fFx1MjAyOS9nLFY9ZnVuY3Rpb24odCl7cmV0dXJuIlxcIitEW3RdfTtTLnRlbXBsYXRlPWZ1bmN0aW9uKHQsZSxuKXshZSYmbiYmKGU9biksZT1TLmRlZmF1bHRzKHt9LGUsUy50ZW1wbGF0ZVNldHRpbmdzKTt2YXIgcj1SZWdFeHAoWyhlLmVzY2FwZXx8SCkuc291cmNlLChlLmludGVycG9sYXRlfHxIKS5zb3VyY2UsKGUuZXZhbHVhdGV8fEgpLnNvdXJjZV0uam9pbigifCIpKyJ8JCIsImciKSxpPTAsbz0iX19wKz0nIjt0LnJlcGxhY2UocixmdW5jdGlvbihlLG4scixzLGEpe3JldHVybiBvKz10LnNsaWNlKGksYSkucmVwbGFjZShVLFYpLGk9YStlLmxlbmd0aCxuP28rPSInK1xuKChfX3Q9KCIrbisiKSk9PW51bGw/Jyc6Xy5lc2NhcGUoX190KSkrXG4nIjpyP28rPSInK1xuKChfX3Q9KCIrcisiKSk9PW51bGw/Jyc6X190KStcbiciOnMmJihvKz0iJztcbiIrcysiXG5fX3ArPSciKSxlfSksbys9Iic7XG4iLGUudmFyaWFibGV8fChvPSJ3aXRoKG9ianx8e30pe1xuIitvKyJ9XG4iKSxvPSJ2YXIgX190LF9fcD0nJyxfX2o9QXJyYXkucHJvdG90eXBlLmpvaW4scHJpbnQ9ZnVuY3Rpb24oKXtfX3ArPV9fai5jYWxsKGFyZ3VtZW50cywnJyk7fTtcbiIrbysicmV0dXJuIF9fcDtcbiI7dHJ5e3ZhciBzPW5ldyBGdW5jdGlvbihlLnZhcmlhYmxlfHwib2JqIiwiXyIsbyl9Y2F0Y2godCl7dGhyb3cgdC5zb3VyY2U9byx0fXZhciBhPWZ1bmN0aW9uKHQpe3JldHVybiBzLmNhbGwodGhpcyx0LFMpfSx1PWUudmFyaWFibGV8fCJvYmoiO3JldHVybiBhLnNvdXJjZT0iZnVuY3Rpb24oIit1KyIpe1xuIitvKyJ9IixhfSxTLmNoYWluPWZ1bmN0aW9uKHQpe3ZhciBlPVModCk7cmV0dXJuIGUuX2NoYWluPSEwLGV9O3ZhciAkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX2NoYWluP1MoZSkuY2hhaW4oKTplfTtTLm1peGluPWZ1bmN0aW9uKHQpe1MuZWFjaChTLmZ1bmN0aW9ucyh0KSxmdW5jdGlvbihlKXt2YXIgbj1TW2VdPXRbZV07Uy5wcm90b3R5cGVbZV09ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy5fd3JhcHBlZF07cmV0dXJuIGcuYXBwbHkodCxhcmd1bWVudHMpLCQodGhpcyxuLmFwcGx5KFMsdCkpfX0pfSxTLm1peGluKFMpLFMuZWFjaChbInBvcCIsInB1c2giLCJyZXZlcnNlIiwic2hpZnQiLCJzb3J0Iiwic3BsaWNlIiwidW5zaGlmdCJdLGZ1bmN0aW9uKHQpe3ZhciBlPWhbdF07Uy5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXt2YXIgbj10aGlzLl93cmFwcGVkO3JldHVybiBlLmFwcGx5KG4sYXJndW1lbnRzKSwic2hpZnQiIT09dCYmInNwbGljZSIhPT10fHwwIT09bi5sZW5ndGh8fGRlbGV0ZSBuWzBdLCQodGhpcyxuKX19KSxTLmVhY2goWyJjb25jYXQiLCJqb2luIiwic2xpY2UiXSxmdW5jdGlvbih0KXt2YXIgZT1oW3RdO1MucHJvdG90eXBlW3RdPWZ1bmN0aW9uKCl7cmV0dXJuICQodGhpcyxlLmFwcGx5KHRoaXMuX3dyYXBwZWQsYXJndW1lbnRzKSl9fSksUy5wcm90b3R5cGUudmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JhcHBlZH0sUy5wcm90b3R5cGUudmFsdWVPZj1TLnByb3RvdHlwZS50b0pTT049Uy5wcm90b3R5cGUudmFsdWUsUy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iIit0aGlzLl93cmFwcGVkfSxyPVtdLGk9ZnVuY3Rpb24oKXtyZXR1cm4gU30uYXBwbHkoZSxyKSwhKHZvaWQgMCE9PWkmJih0LmV4cG9ydHM9aSkpfSkuY2FsbCh2b2lkIDApfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1uKDU0KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS52ZXJzaW9uPWUueGhyPWUuc2Vxcz1lLnBhcnNlcj1lLm5ld2ljaz1lLm1hdHJpeD1lLmdmZj1lLmZhc3RhPWUuY2x1c3RhbD12b2lkIDA7dmFyIGk9big1Niksbz1yKGkpLHM9big1NyksYT1yKHMpLHU9big1OCksbD1yKHUpLGM9big2MCksaD1yKGMpLGY9big2MiksZD1yKGYpLGc9bigxMykscD1yKGcpLG09bigyNSksdj1yKG0pO2UuY2x1c3RhbD1vLmRlZmF1bHQsZS5mYXN0YT1hLmRlZmF1bHQsZS5nZmY9bC5kZWZhdWx0LGUubWF0cml4PWguZGVmYXVsdCxlLm5ld2ljaz1kLmRlZmF1bHQsZS5wYXJzZXI9cC5kZWZhdWx0LGUuc2Vxcz12LmRlZmF1bHQ7dmFyIF89bigyNCk7ZS54aHI9Xzt2YXIgeT0iaW1wb3J0ZWQiOyJ1bmRlZmluZWQiIT10eXBlb2YgSU9fVkVSU0lPTiYmKHk9SU9fVkVSU0lPTiksZS52ZXJzaW9uPXl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxpPW4oMjQpLG89e307ZS5kZWZhdWx0PW8sby5yZWFkPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4scixpKXsKcmV0dXJuIG8uX29uUmV0cmlldmFsKG4saSxlLHQpfX0odGhpcyk7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBlP25ldyBQcm9taXNlKGZ1bmN0aW9uKHIsbyl7ZT1mdW5jdGlvbih0LGUpe3Q/byh0KTpyKGUpfSxpKHQsbil9KTppKHQsbil9LG8uX29uUmV0cmlldmFsPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXZvaWQgMDtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHQmJihpPXIucGFyc2UoZSkpLG4uY2FsbChyLHQsaSl9LG8uZXh0ZW5kPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV4dGVuZChvLHQsZSl9LG8ubWl4aW49ZnVuY3Rpb24odCl7dmFyIGU9WyJyZWFkIl07cmV0dXJuIm9iamVjdCIhPT0oInVuZGVmaW5lZCI9PXR5cGVvZiB0PyJ1bmRlZmluZWQiOnIodCkpJiYodD10LnByb3RvdHlwZSksZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbZV09b1tlXX0sdGhpcyksdH19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHI9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSl7dmFyIHI9ZVtuXTt0LnNldEF0dHJpYnV0ZU5TKG51bGwsbixyKX1yZXR1cm4gdH0saT1mdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobiwic3ZnIik7cmV0dXJuIGUuc2V0QXR0cmlidXRlKCJ3aWR0aCIsdC53aWR0aCksZS5zZXRBdHRyaWJ1dGUoImhlaWdodCIsdC5oZWlnaHQpLGV9LG89ZnVuY3Rpb24odCl7cmV0dXJuIHIoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG4sInJlY3QiKSx0KX0scz1mdW5jdGlvbih0KXtyZXR1cm4gcihkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobiwibGluZSIpLHQpfSxhPWZ1bmN0aW9uKHQpe3JldHVybiByKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhuLCJwb2x5Z29uIiksdCl9O2UuYmFzZT1pLGUubGluZT1zLGUucmVjdD1vLGUucG9seWdvbj1hfSxmdW5jdGlvbih0LGUsbil7dmFyIHIsaSxvPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fTshZnVuY3Rpb24ocyl7Im9iamVjdCI9PT1vKGUpP3QuZXhwb3J0cz1zKCk6KHI9cyxpPSJmdW5jdGlvbiI9PXR5cGVvZiByP3IuY2FsbChlLG4sZSx0KTpyLCEodm9pZCAwIT09aSYmKHQuZXhwb3J0cz1pKSkpfShmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD17aGFzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfSxleHRlbmQ6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoOysrZSl7dmFyIG49YXJndW1lbnRzW2VdO2lmKG4pZm9yKHZhciByIGluIG4pdFtyXT1uW3JdfXJldHVybiB0fX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIHIsaT10aGlzO3I9ZSYmdC5oYXMoZSwiY29uc3RydWN0b3IiKT9lLmNvbnN0cnVjdG9yOmZ1bmN0aW9uKCl7cmV0dXJuIGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx0LmV4dGVuZChyLGksbik7dmFyIG89ZnVuY3Rpb24oKXt0aGlzLmNvbnN0cnVjdG9yPXJ9O3JldHVybiBvLnByb3RvdHlwZT1pLnByb3RvdHlwZSxyLnByb3RvdHlwZT1uZXcgbyxlJiZ0LmV4dGVuZChyLnByb3RvdHlwZSxlKSxyLl9fc3VwZXJfXz1pLnByb3RvdHlwZSxyfX0pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMTEpO3Iub25BbGw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5vbigiYWxsIix0LGUpLHRoaXN9LHIub2xkTWl4aW49ci5taXhpbixyLm1peGluPWZ1bmN0aW9uKHQpe3Iub2xkTWl4aW4odCk7Zm9yKHZhciBlPVsib25BbGwiXSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07dFtpXT10aGlzW2ldfXJldHVybiB0fSx0LmV4cG9ydHM9cn0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7dmFyIGU9e307ZS5kPWUuZGVmYXVsdFZhbHVlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PXQ/ImZ1bmN0aW9uIj09dHlwZW9mIHQ/ZSgpOmU6dH0sZS5pZD1mdW5jdGlvbih0KXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodCl9LGUubWs9ZnVuY3Rpb24odCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCl9LHZvaWQgMCE9PXQmJnZvaWQgMCE9PXQuZXhwb3J0cyYmKHQuZXhwb3J0cz1lKX0pLmNhbGwoZSxuKDIzKSh0KSl9LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gbiYmdChlLnByb3RvdHlwZSxuKSxyJiZ0KGUsciksZX19KCksaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXtuKHRoaXMsdCl9cmV0dXJuIHIodCxudWxsLFt7a2V5OiJyYW5kb21JbnQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBlfHxudWxsPT09ZSl7dmFyIG49WzAsdF07dD1uWzBdLGU9blsxXX1pZih0PmUpe3ZhciByPVtlLHRdO3Q9clswXSxlPXJbMV19cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KzEpK3QpfX0se2tleToidW5pcXVlSWQiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTo4LGU9IiI7ZS5sZW5ndGg8dDspZSs9TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIpO3JldHVybiBlLnN1YnN0cigwLHQpfX0se2tleToiZ2V0UmFuZG9tSW50Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtdCsxKSkrdH19XSksdH0oKTtlLmRlZmF1bHQ9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9bigxMiksaT1uKDMpLG89big3OSkscz1uKDgwKSxhPXtvcGVuSW5KYWx2aWV3OmZ1bmN0aW9uKHQsZSl7Ii4iPT09dC5jaGFyQXQoMCkmJih0PWRvY3VtZW50LlVSTC5zdWJzdHIoMCxkb2N1bWVudC5VUkwubGFzdEluZGV4T2YoIi8iKSkrIi8iK3QpLHQuaW5kZXhPZigiaHR0cCIpPDAmJih0PSJodHRwOi8vIit3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUrdCksdD1lbmNvZGVVUklDb21wb25lbnQodCk7dmFyIG49Imh0dHA6Ly93d3cuamFsdmlldy5vcmcvc2VydmljZXMvbGF1bmNoQXBwP29wZW49Iit0O3JldHVybiBuKz0iJmNvbG91cj0iK2Usd2luZG93Lm9wZW4obiwiX2JsYW5rIil9LHB1Ymxpc2hXZWI6ZnVuY3Rpb24odCxlKXt2YXIgbj1yLmZhc3RhLndyaXRlKHQuc2Vxcy50b0pTT04oKSk7cmV0dXJuIG49ZW5jb2RlVVJJQ29tcG9uZW50KG4pLCgwLHIueGhyKSh7bWV0aG9kOiJQT1NUIixib2R5OiJzcHJ1bmdlPSIrbix1cmk6Imh0dHA6Ly9zcHJ1bmdlLmJpb2pzLm5ldCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9fSxmdW5jdGlvbih0LG4scil7cmV0dXJuIGUoci50cmltKCkpfSl9LHNoYXJlTGluazpmdW5jdGlvbih0LGUpe3ZhciBuPXQuZy5jb25maWcuZ2V0KCJpbXBvcnRVUkwiKSxyPSJodHRwOi8vbXNhLmJpb2pzLm5ldC9hcHAvP3NlcT0iLGk9ZnVuY3Rpb24odCl7dmFyIG49cit0O2lmKGUpcmV0dXJuIGUobil9O3JldHVybiBuP2kobik6YS5wdWJsaXNoV2ViKHQsaSl9LHNhdmVBc0ZpbGU6ZnVuY3Rpb24odCxlKXt2YXIgbj1yLmZhc3RhLndyaXRlKHQuc2Vxcy50b0pTT04oKSk7cmV0dXJuIHMobmV3IEJsb2IoW25dLHt0eXBlOiJ0ZXh0L3BsYWluIn0pLGUpfSxzYXZlU2VsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIG49dC5nLnNlbGNvbC5wbHVjaygic2VxSWQiKTtpZihuLmxlbmd0aD4wKXtuPXQuc2Vxcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIG4uaW5kZXhPZih0LmdldCgiaWQiKSk+PTB9KTtmb3IodmFyIGk9bi5sZW5ndGgtMSxvPTA7MDxpP288PWk6bz49aTswPGk/bysrOm8tLSluW29dPW5bb10udG9KU09OKCl9ZWxzZSBuPXQuc2Vxcy50b0pTT04oKSxjb25zb2xlLndhcm4oIm5vIHNlbGVjdGlvbiBmb3VuZCIpO3ZhciBhPXIuZmFzdGEud3JpdGUobik7cmV0dXJuIHMobmV3IEJsb2IoW2FdLHt0eXBlOiJ0ZXh0L3BsYWluIn0pLGUpfSxzYXZlQW5ub3RzOmZ1bmN0aW9uKHQsZSl7dmFyIG49dC5zZXFzLm1hcChmdW5jdGlvbih0KXtpZihuPXQuZ2V0KCJmZWF0dXJlcyIpLDAhPT1uLmxlbmd0aCl7dmFyIGU9dC5nZXQoIm5hbWUiKTtyZXR1cm4gbi5lYWNoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNldCgic2VxbmFtZSIsZSl9KSxuLnRvSlNPTigpfX0pO249KDAsaS5mbGF0dGVuKSgoMCxpLmNvbXBhY3QpKG4pKTt2YXIgbz1yLmdmZi5leHBvcnRMaW5lcyhuKTtyZXR1cm4gcyhuZXcgQmxvYihbb10se3R5cGU6InRleHQvcGxhaW4ifSksZSl9LHNhdmVBc0ltZzpmdW5jdGlvbih0LGUpe3ZhciBuPXQuZ2V0Vmlldygic3RhZ2UiKS5nZXRWaWV3KCJib2R5IikuZ2V0Vmlldygic2VxYmxvY2siKS5lbDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG4mJm51bGwhPT1uKXJldHVybiBzKG8obi50b0RhdGFVUkwoImltYWdlL3BuZyIpKSxlLCJpbWFnZS9wbmciKX19O2UuZGVmYXVsdD1hfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXt2YXIgbj1bXSxyPSEwLGk9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcyxhPXRbU3ltYm9sLml0ZXJhdG9yXSgpOyEocj0ocz1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2gocy52YWx1ZSksIWV8fG4ubGVuZ3RoIT09ZSk7cj0hMCk7fWNhdGNoKHQpe2k9ITAsbz10fWZpbmFsbHl7dHJ5eyFyJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgb319cmV0dXJuIG59cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZTtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKXJldHVybiB0KGUsbik7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfX0oKSxvPW4oMykscz1uKDEyKSxhPW4oMzkpLHU9cihhKSxsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1zYT10LHRoaXN9LGM9e2d1ZXNzRmlsZUZyb21UZXh0OmZ1bmN0aW9uKHQsZSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB0fHxudWxsPT09dClyZXR1cm4gY29uc29sZS53YXJuKCJpbnZhbGlkIGZpbGUgZm9ybWF0IiksWyIiLCJlcnJvciJdO3N3aXRjaCgoMCx1LmRlZmF1bHQpKHQsZSkpe2Nhc2UiY2x1c3RhbCI6dmFyIG49cy5jbHVzdGFsLHI9InNlcXMiO2JyZWFrO2Nhc2UiZmFzdGEiOm49cy5mYXN0YSxyPSJzZXFzIjticmVhaztjYXNlIm5ld2ljayI6cj0ibmV3aWNrIjticmVhaztjYXNlImdmZiI6bj1zLmdmZixyPSJmZWF0dXJlcyI7YnJlYWs7ZGVmYXVsdDphbGVydCgiVW5rbm93biBmaWxlIGZvcm1hdC4gUGxlYXNlIGNvbnRhY3QgdXMgb24gR2l0aHViIGZvciBoZWxwLiIpfXJldHVybltuLHJdfSxwYXJzZVRleHQ6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmd1ZXNzRmlsZUZyb21UZXh0KHQsZSkscj1pKG4sMiksbz1yWzBdLHM9clsxXTtyZXR1cm4ic2VxcyI9PT1zP1tvLnBhcnNlKHQpLHNdOiJmZWF0dXJlcyI9PT1zP1tvLnBhcnNlU2Vxcyh0KSxzXTpbdCxzXX0saW1wb3J0RmlsZXM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49W10scj10Lmxlbmd0aC0xLGk9MDswPHI/aTw9cjppPj1yOzA8cj9pKys6aS0tKXt2YXIgbz10W2ldLHM9bmV3IEZpbGVSZWFkZXI7cy5vbmxvYWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGUuaW1wb3J0RmlsZSh0LnRhcmdldC5yZXN1bHQpfSxuLnB1c2gocy5yZWFkQXNUZXh0KG8pKX1yZXR1cm4gbn0oKX0saW1wb3J0RmlsZTpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7ZT1lfHx7fSxlLm5hbWU9dC5uYW1lO3ZhciByLG89dGhpcy5wYXJzZVRleHQodCxlKSxzPWkobywyKSxhPXNbMF0sdT1zWzFdO3JldHVybiJlcnJvciI9PT11PyhhbGVydCgiQW4gZXJyb3IgaGFwcGVuZWQiKSwiZXJyb3IiKTooInNlcXMiPT09dT8odGhpcy5tc2Euc2Vxcy5yZXNldChhKSx0aGlzLm1zYS5nLmNvbmZpZy5zZXQoInVybCIsInVzZXJpbXBvcnQiKSx0aGlzLm1zYS5nLnRyaWdnZXIoInVybDp1c2VySW1wb3J0IikpOiJmZWF0dXJlcyI9PT11P3RoaXMubXNhLnNlcXMuYWRkRmVhdHVyZXMoYSk6Im5ld2ljayI9PT11P3RoaXMubXNhLnUudHJlZS5sb2FkVHJlZShmdW5jdGlvbigpe3JldHVybiBuLm1zYS51LnRyZWUuc2hvd1RyZWUodCl9KTphbGVydCgiVW5rbm93biBmaWxlISIpLHI9dC5uYW1lKX0saW1wb3J0VVJMOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gdD10aGlzLm1zYS51LnByb3h5LmNvcnNVUkwodCksdGhpcy5tc2EuZy5jb25maWcuc2V0KCJ1cmwiLHQpLCgwLHMueGhyKSh7dXJsOnQsdGltZW91dDowfSxmdW5jdGlvbihyLGksbyl7cmV0dXJuIHI/Y29uc29sZS5lcnJvcihyKToiZXJyb3IiIT09bi5pbXBvcnRGaWxlKG8se3VybDp0fSk/KG4ubXNhLmcudHJpZ2dlcigiaW1wb3J0OnVybCIsdCksZT9lKCk6dm9pZCAwKTp2b2lkIDB9KX19OygwLG8uZXh0ZW5kKShsLnByb3RvdHlwZSxjKSxlLmRlZmF1bHQ9bH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9bigxNyksaT17bG9hZFNjcmlwdDpmdW5jdGlvbih0LGUpe3ZhciBuPXIubWsoInNjcmlwdCIpO3JldHVybiBuLnR5cGU9InRleHQvamF2YXNjcmlwdCIsbi5zcmM9dCxuLmFzeW5jPSEwLG4ub25sb2FkPW4ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoISh0fHx0aGlzLnJlYWR5U3RhdGUmJiJjb21wbGV0ZSIhPT10aGlzLnJlYWR5U3RhdGUpKXt2YXIgdD0hMDtyZXR1cm4gZSgpfX0sZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQobil9LGpvaW5DYjpmdW5jdGlvbih0LGUsbil7ZT1lfHwxO3ZhciByPTAsaT1mdW5jdGlvbih0LGUpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgdHx8bnVsbD09PXQ/bygpOmZ1bmN0aW9uKCl7dmFyIG47cmV0dXJuIG49ImFwcGx5Iix0LmluZGV4T2Yobik+PTAmJnQuYXBwbHkoZSxhcmd1bWVudHMpLG8oKX19LG89ZnVuY3Rpb24oKXtpZihyKysscj09PWUpcmV0dXJuIHQuY2FsbChuKX07cmV0dXJuIGl9fTtlLmRlZmF1bHQ9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9bigzKSxpPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmc9dC5nLHRoaXN9LG89e2NvcnNVUkw6ZnVuY3Rpb24odCl7cmV0dXJuIGRvY3VtZW50LlVSTC5pbmRleE9mKCJsb2NhbGhvc3QiKT49MCYmIi8iPT09dFswXT90OiIuIj09PXQuY2hhckF0KDApfHwiLyI9PT10LmNoYXJBdCgwKT90Oih0aGlzLmcuY29uZmlnLmdldCgiaW1wb3J0UHJveHlTdHJpcEh0dHAiKSYmKHQ9dC5yZXBsYWNlKCJodHRwOi8vIiwiIiksdD10LnJlcGxhY2UoImh0dHBzOi8vIiwiIikpLHQ9dGhpcy5nLmNvbmZpZy5nZXQoImltcG9ydFByb3h5IikrdCl9fTsoMCxyLmV4dGVuZCkoaS5wcm90b3R5cGUsbyksZS5kZWZhdWx0PWl9LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdC53ZWJwYWNrUG9seWZpbGx8fCh0LmRlcHJlY2F0ZT1mdW5jdGlvbigpe30sdC5wYXRocz1bXSx0LmNoaWxkcmVuPVtdLHQud2VicGFja1BvbHlmaWxsPTEpLHR9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlKXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyllKHRbbl0pfWZ1bmN0aW9uIGkodCl7Zm9yKHZhciBlIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBvKHQsZSxuKXt2YXIgcj10O3JldHVybiBoKGUpPyhuPWUsInN0cmluZyI9PXR5cGVvZiB0JiYocj17dXJpOnR9KSk6cj1kKGUse3VyaTp0fSksci5jYWxsYmFjaz1uLHJ9ZnVuY3Rpb24gcyh0LGUsbil7cmV0dXJuIGU9byh0LGUsbiksYShlKX1mdW5jdGlvbiBhKHQpe2Z1bmN0aW9uIGUoKXs0PT09Yy5yZWFkeVN0YXRlJiZzZXRUaW1lb3V0KG8sMCl9ZnVuY3Rpb24gbigpe3ZhciB0PXZvaWQgMDtpZih0PWMucmVzcG9uc2U/Yy5yZXNwb25zZTpjLnJlc3BvbnNlVGV4dHx8dShjKSxiKXRyeXt0PUpTT04ucGFyc2UodCl9Y2F0Y2godCl7fXJldHVybiB0fWZ1bmN0aW9uIHIodCl7cmV0dXJuIGNsZWFyVGltZW91dChnKSx0IGluc3RhbmNlb2YgRXJyb3J8fCh0PW5ldyBFcnJvcigiIisodHx8IlVua25vd24gWE1MSHR0cFJlcXVlc3QgRXJyb3IiKSkpLHQuc3RhdHVzQ29kZT0wLGwodCx4KX1mdW5jdGlvbiBvKCl7aWYoIWQpe3ZhciBlO2NsZWFyVGltZW91dChnKSxlPXQudXNlWERSJiZ2b2lkIDA9PT1jLnN0YXR1cz8yMDA6MTIyMz09PWMuc3RhdHVzPzIwNDpjLnN0YXR1czt2YXIgcj14LGk9bnVsbDtyZXR1cm4gMCE9PWU/KHI9e2JvZHk6bigpLHN0YXR1c0NvZGU6ZSxtZXRob2Q6bSxoZWFkZXJzOnt9LHVybDpwLHJhd1JlcXVlc3Q6Y30sYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMmJihyLmhlYWRlcnM9ZihjLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSkpOmk9bmV3IEVycm9yKCJJbnRlcm5hbCBYTUxIdHRwUmVxdWVzdCBFcnJvciIpLGwoaSxyLHIuYm9keSl9fWlmKCJ1bmRlZmluZWQiPT10eXBlb2YgdC5jYWxsYmFjayl0aHJvdyBuZXcgRXJyb3IoImNhbGxiYWNrIGFyZ3VtZW50IG1pc3NpbmciKTt2YXIgYT0hMSxsPWZ1bmN0aW9uKGUsbixyKXthfHwoYT0hMCx0LmNhbGxiYWNrKGUsbixyKSl9LGM9dC54aHJ8fG51bGw7Y3x8KGM9dC5jb3JzfHx0LnVzZVhEUj9uZXcgcy5YRG9tYWluUmVxdWVzdDpuZXcgcy5YTUxIdHRwUmVxdWVzdCk7dmFyIGgsZCxnLHA9Yy51cmw9dC51cml8fHQudXJsLG09Yy5tZXRob2Q9dC5tZXRob2R8fCJHRVQiLHY9dC5ib2R5fHx0LmRhdGEsXz1jLmhlYWRlcnM9dC5oZWFkZXJzfHx7fSx5PSEhdC5zeW5jLGI9ITEseD17Ym9keTp2b2lkIDAsaGVhZGVyczp7fSxzdGF0dXNDb2RlOjAsbWV0aG9kOm0sdXJsOnAscmF3UmVxdWVzdDpjfTtpZigianNvbiJpbiB0JiZ0Lmpzb24hPT0hMSYmKGI9ITAsXy5hY2NlcHR8fF8uQWNjZXB0fHwoXy5BY2NlcHQ9ImFwcGxpY2F0aW9uL2pzb24iKSwiR0VUIiE9PW0mJiJIRUFEIiE9PW0mJihfWyJjb250ZW50LXR5cGUiXXx8X1siQ29udGVudC1UeXBlIl18fChfWyJDb250ZW50LVR5cGUiXT0iYXBwbGljYXRpb24vanNvbiIpLHY9SlNPTi5zdHJpbmdpZnkodC5qc29uPT09ITA/djp0Lmpzb24pKSksYy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZSxjLm9ubG9hZD1vLGMub25lcnJvcj1yLGMub25wcm9ncmVzcz1mdW5jdGlvbigpe30sYy5vbmFib3J0PWZ1bmN0aW9uKCl7ZD0hMH0sYy5vbnRpbWVvdXQ9cixjLm9wZW4obSxwLCF5LHQudXNlcm5hbWUsdC5wYXNzd29yZCkseXx8KGMud2l0aENyZWRlbnRpYWxzPSEhdC53aXRoQ3JlZGVudGlhbHMpLCF5JiZ0LnRpbWVvdXQ+MCYmKGc9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKCFkKXtkPSEwLGMuYWJvcnQoInRpbWVvdXQiKTt2YXIgdD1uZXcgRXJyb3IoIlhNTEh0dHBSZXF1ZXN0IHRpbWVvdXQiKTt0LmNvZGU9IkVUSU1FRE9VVCIscih0KX19LHQudGltZW91dCkpLGMuc2V0UmVxdWVzdEhlYWRlcilmb3IoaCBpbiBfKV8uaGFzT3duUHJvcGVydHkoaCkmJmMuc2V0UmVxdWVzdEhlYWRlcihoLF9baF0pO2Vsc2UgaWYodC5oZWFkZXJzJiYhaSh0LmhlYWRlcnMpKXRocm93IG5ldyBFcnJvcigiSGVhZGVycyBjYW5ub3QgYmUgc2V0IG9uIGFuIFhEb21haW5SZXF1ZXN0IG9iamVjdCIpO3JldHVybiJyZXNwb25zZVR5cGUiaW4gdCYmKGMucmVzcG9uc2VUeXBlPXQucmVzcG9uc2VUeXBlKSwiYmVmb3JlU2VuZCJpbiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5iZWZvcmVTZW5kJiZ0LmJlZm9yZVNlbmQoYyksYy5zZW5kKHZ8fG51bGwpLGN9ZnVuY3Rpb24gdSh0KXtpZigiZG9jdW1lbnQiPT09dC5yZXNwb25zZVR5cGUpcmV0dXJuIHQucmVzcG9uc2VYTUw7dmFyIGU9dC5yZXNwb25zZVhNTCYmInBhcnNlcmVycm9yIj09PXQucmVzcG9uc2VYTUwuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lO3JldHVybiIiIT09dC5yZXNwb25zZVR5cGV8fGU/bnVsbDp0LnJlc3BvbnNlWE1MfWZ1bmN0aW9uIGwoKXt9dmFyIGM9big4MyksaD1uKDQ3KSxmPW4oMTAyKSxkPW4oMTQxKTt0LmV4cG9ydHM9cyxzLlhNTEh0dHBSZXF1ZXN0PWMuWE1MSHR0cFJlcXVlc3R8fGwscy5YRG9tYWluUmVxdWVzdD0id2l0aENyZWRlbnRpYWxzImluIG5ldyBzLlhNTEh0dHBSZXF1ZXN0P3MuWE1MSHR0cFJlcXVlc3Q6Yy5YRG9tYWluUmVxdWVzdCxyKFsiZ2V0IiwicHV0IiwicG9zdCIsInBhdGNoIiwiaGVhZCIsImRlbGV0ZSJdLGZ1bmN0aW9uKHQpe3NbImRlbGV0ZSI9PT10PyJkZWwiOnRdPWZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gbj1vKGUsbixyKSxuLm1ldGhvZD10LnRvVXBwZXJDYXNlKCksYShuKX19KX0sZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXt9O2UuZGVmYXVsdD1uLG4uZ2V0TWV0YT1mdW5jdGlvbih0KXt2YXIgZSxuLHI9ITEsaT0hMSxvPXt9LHM9e30sYT10LnNwbGl0KCIgIik7aWYoYS5sZW5ndGg+PTE/KHI9YS5zaGlmdCgpLGk9YS5qb2luKCIgIikpOnI9dCxyKXt2YXIgdT1yLnNwbGl0KCJ8Iik7Zm9yKGU9dS5wb3AoKSxzLmVuPWU7MCE9dS5sZW5ndGg7KXt2YXIgbD11LnNoaWZ0KCksYz11LnNoaWZ0KCk7b1tsXT1jfX1lbHNlIGU9cjtpZihpKXt2YXIgaD1pLnNwbGl0KCI9Iik7aWYoaC5sZW5ndGg+MSl7dmFyIGYsZDtoLmxlbmd0aC0xLGguZm9yRWFjaChmdW5jdGlvbih0KXt0PXQudHJpbSgpO3ZhciBlLHI9dC5zcGxpdCgiICIpO3IubGVuZ3RoPjE/KGQ9ci5wb3AoKSxlPXIuam9pbigiICIpKTplPXQsZj9zW2YudG9Mb3dlckNhc2UoKV09ZTpuPWUsZj1kfSl9ZWxzZSBuPWguc2hpZnQoKX12YXIgZz17bmFtZTplLGlkczpvLGRldGFpbHM6c307cmV0dXJuIG4mJihnLmRlc2M9biksZ307dmFyIHI9e3NwOntsaW5rOiJodHRwOi8vd3d3LnVuaXByb3Qub3JnLyVzIixuYW1lOiJVbmlwcm90In0sdHI6e2xpbms6Imh0dHA6Ly93d3cudW5pcHJvdC5vcmcvJXMiLG5hbWU6IlRyZW1ibCJ9LGdiOntsaW5rOiJodHRwOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvbnVjY29yZS8lcyIsbmFtZToiR2VuYmFuayJ9LHBkYjp7bGluazoiaHR0cDovL3d3dy5yY3NiLm9yZy9wZGIvZXhwbG9yZS9leHBsb3JlLmRvP3N0cnVjdHVyZUlkPSVzIixuYW1lOiJQREIifX07bi5idWlsZExpbmtzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiB0PXR8fHt9LE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24obil7aWYobiBpbiByKXt2YXIgaT1yW25dLG89aS5saW5rLnJlcGxhY2UoIiVzIix0W25dKTtlW2kubmFtZV09b319KSxlfSxuLmNvbnRhaW5zPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIiIuaW5kZXhPZi5jYWxsKHQsZSwwKSE9PS0xfSxuLnNwbGl0TkNoYXJzPWZ1bmN0aW9uKHQsZSl7dmFyIG4scjtlPWV8fDgwO3ZhciBpPVtdO2ZvcihuPTAscj10Lmxlbmd0aC0xO248PXI7bis9ZSlpLnB1c2godC5zdWJzdHIobixlKSk7cmV0dXJuIGl9LG4ucmV2ZXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5zcGxpdCgiIikucmV2ZXJzZSgpLmpvaW4oIiIpfSxuLmNvbXBsZW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dCsiIixuPVtbL2cvZywiMCJdLFsvYy9nLCIxIl0sWy8wL2csImMiXSxbLzEvZywiZyJdLFsvRy9nLCIwIl0sWy9DL2csIjEiXSxbLzAvZywiQyJdLFsvMS9nLCJHIl0sWy9hL2csIjAiXSxbL3QvZywiMSJdLFsvMC9nLCJ0Il0sWy8xL2csImEiXSxbL0EvZywiMCJdLFsvVC9nLCIxIl0sWy8wL2csIlQiXSxbLzEvZywiQSJdXTtmb3IodmFyIHIgaW4gbillPWUucmVwbGFjZShuW3JdWzBdLG5bcl1bMV0pO3JldHVybiBlfSxuLnJldmVyc2VDb21wbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiBuLnJldmVyc2Uobi5jb21wbGVtZW50KHQpKX0sbi5tb2RlbD1mdW5jdGlvbih0LGUsbil7dGhpcy5zZXE9dCx0aGlzLm5hbWU9ZSx0aGlzLmlkPW4sdGhpcy5pZHM9e319fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByLGk9bigxKS5Nb2RlbDtuKDg0KSx0LmV4cG9ydHM9cj1pLmV4dGVuZCh7Y29uc3RydWN0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5nPWUuZyxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzfSxkZWZhdWx0czp7Y3VycmVudFNpemU6NSxzdGVwOjEsb3JpZ2luYWxTaXplOiExLHNjYWxlQ2F0ZWdvcmllczpbe2NvbHVtbldpZHRoOjEsbWFya2VyU3RlcFNpemU6MjAsc3RlcFNpemU6MH0se2NvbHVtbldpZHRoOjMsbWFya2VyU3RlcFNpemU6MjAsc3RlcFNpemU6MH0se2NvbHVtbldpZHRoOjUsbWFya2VyU3RlcFNpemU6MTAsc3RlcFNpemU6MH0se2NvbHVtbldpZHRoOjksbWFya2VyU3RlcFNpemU6NSxzdGVwU2l6ZToxfSx7Y29sdW1uV2lkdGg6MTUsbWFya2VyU3RlcFNpemU6MixzdGVwU2l6ZToxfSx7Y29sdW1uV2lkdGg6MjAsbWFya2VyU3RlcFNpemU6MSxzdGVwU2l6ZToxfSx7Y29sdW1uV2lkdGg6MzAsbWFya2VyU3RlcFNpemU6MSxzdGVwU2l6ZToxfSx7Y29sdW1uV2lkdGg6NDUsbWFya2VyU3RlcFNpemU6MSxzdGVwU2l6ZToxfV19LGluaXRpYWxpemU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nZXQoInNjYWxlQ2F0ZWdvcmllcyIpLG49dGhpcy5nLnpvb21lci5nZXQoImNvbHVtbldpZHRoIil8fHRoaXMuX2dldFNjYWxlSW5mbygpLmNvbHVtbldpZHRoLHI9Xy5maW5kKGUse2NvbHVtbldpZHRoOm59KTtpZighcil7dmFyIGk9dGhpcy5faW5zZXJ0U2NhbGVDYXRlZ29yeShuKTtyPWVbaV0sdGhpcy5zZXQoImN1cnJlbnRTaXplIixpKzEpfXZhciBvPXRoaXMuZ2V0KCJjdXJyZW50U2l6ZSIpO3JldHVybiB0aGlzLnNldCgib3JpZ2luYWxTaXplIixvKSx0aGlzLnNldFNpemUobyksdGhpc30sX2luc2VydFNjYWxlQ2F0ZWdvcnk6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nZXQoInNjYWxlQ2F0ZWdvcmllcyIpLG49Xy5maW5kTGFzdEluZGV4KGUsZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29sdW1uV2lkdGg8dH0pLHI9ZVtuXSxpPW4rMSxvPXtjb2x1bW5XaWR0aDp0LG1hcmtlclN0ZXBTaXplOnIubWFya2VyU3RlcFNpemUsc3RlcFNpemU6ci5tYXJrZXJTdGVwU2l6ZX07cmV0dXJuIGUuc3BsaWNlKGksMCxvKSx0aGlzLnNldCgic2NhbGVDYXRlZ29yaWVzIixlKSxpfSxnZXRTaXplUmFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm5bMSx0aGlzLmdldCgic2NhbGVDYXRlZ29yaWVzIikubGVuZ3RoXX0sYmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0U2l6ZSh0aGlzLmdldCgiY3VycmVudFNpemUiKSt0aGlzLmdldCgic3RlcCIpKX0sc21hbGxlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNldFNpemUodGhpcy5nZXQoImN1cnJlbnRTaXplIiktdGhpcy5nZXQoInN0ZXAiKSl9LHJlc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0U2l6ZSh0aGlzLmdldCgib3JpZ2luYWxTaXplIikpfSxzZXRTaXplOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0U2l6ZVJhbmdlKCk7dD1wYXJzZUludCh0KSx0PXQ8ZVswXT9lWzBdOnQ+ZVsxXT9lWzFdOnQsdGhpcy5zZXQoImN1cnJlbnRTaXplIix0KTt2YXIgbj10aGlzLl9nZXRTY2FsZUluZm8oKTtyZXR1cm4gdGhpcy5nLnpvb21lci5zZXQoe2NvbHVtbldpZHRoOm4uY29sdW1uV2lkdGgsc3RlcFNpemU6bi5zdGVwU2l6ZSxtYXJrZXJTdGVwU2l6ZTpuLm1hcmtlclN0ZXBTaXplfSksdGhpc30sZ2V0U2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgiY3VycmVudFNpemUiKX0sX2dldFNjYWxlSW5mbzpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0U2l6ZSgpLGU9dGhpcy5nZXQoInNjYWxlQ2F0ZWdvcmllcyIpO3JldHVybiB0PjAmJnQ8PWUubGVuZ3RoP2VbdC0xXTp2b2lkIGNvbnNvbGUuZXJyb3IoIm91dCBvZiBib3VuZHMiKX19KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixpPW4oOTEpLG89bigxKS5Nb2RlbDt0LmV4cG9ydHM9cj1vLmV4dGVuZCh7ZGVmYXVsdHM6e3NjaGVtZToidGF5bG9yIixjb2xvckJhY2tncm91bmQ6ITAsc2hvd0xvd2VyQ2FzZTohMCxvcGFjaXR5Oi42fSxpbml0aWFsaXplOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5jb2xvcnM9bmV3IGkoe3NlcXM6ZSxjb25zZXJ2YXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gbi5zY2FsZShuLmNvbnNlcnZhdGlvbigpKX19KSxuLm9uKCJyZXNldCIsZnVuY3Rpb24oKXtpZigiZHluIj09PXRoaXMuZ2V0U2VsZWN0ZWRTY2hlbWUoKS50eXBlKXt2YXIgdDtpZih0PSJyZXNldCIsdGhpcy5nZXRTZWxlY3RlZFNjaGVtZSgpLmluZGV4T2YodCk+PTApcmV0dXJuIHRoaXMuZ2V0U2VsZWN0ZWRTY2hlbWUoKS5yZXNldCgpfX0sdGhpcyl9LGFkZFN0YXRpY1NjaGVtZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmNvbG9ycy5hZGRTdGF0aWNTY2hlbWUodCxlKX0sYWRkRHluU2NoZW1lOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY29sb3JzLmFkZER5blNjaGVtZSh0LGUpfSxnZXRTY2hlbWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29sb3JzLmdldFNjaGVtZSh0KX0sZ2V0U2VsZWN0ZWRTY2hlbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2xvcnMuZ2V0U2NoZW1lKHRoaXMuZ2V0KCJzY2hlbWUiKSl9fSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsaT1uKDEpLk1vZGVsO3QuZXhwb3J0cz1yPWkuZXh0ZW5kKHtpbml0aWFsaXplOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXRoaXMuZ2V0KCJoaWRkZW4iKSYmdGhpcy5zZXQoImhpZGRlbiIsW10pLHRoaXMuc3RhdHM9ZX0sY2FsY0hpZGRlbkNvbHVtbnM6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dGhpcy5nZXQoImhpZGRlbiIpLHI9dCxpPTA7aTxuLmxlbmd0aDtpKyspZT1uW2ldLGU8PXImJnIrKztyZXR1cm4gci10fX0pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByLGk9bigxKS5Nb2RlbDt0LmV4cG9ydHM9cj1pLmV4dGVuZCh7ZGVmYXVsdHM6e3JlZ2lzdGVyTW91c2VIb3ZlcjohMSxyZWdpc3Rlck1vdXNlQ2xpY2tzOiEwLGltcG9ydFByb3h5OiJodHRwczovL2NvcnMtYW55d2hlcmUuaGVyb2t1YXBwLmNvbS8iLGltcG9ydFByb3h5U3RyaXBIdHRwOiEwLGV2ZW50QnVzOiEwLGFscGhhYmV0U2l6ZToyMCxkcm9wSW1wb3J0OiExLGRlYnVnOiExLGhhc1JlZjohMSxib290c3RyYXBNZW51OiExLG1hbnVhbFJlbmRlcmluZzohMX19KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixpPW4oMjEpLG89bigxKS5Nb2RlbDt0LmV4cG9ydHM9cj1vLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nPXR9LGRldmVsb3BtZW50OnsibXNhLXRudCI6Ii9ub2RlX21vZHVsZXMvbXNhLXRudC9idWlsZC9idW5kbGUuanMiLCJiaW9qcy1pby1uZXdpY2siOiIvbm9kZV9tb2R1bGVzL2Jpb2pzLWlvLW5ld2ljay9idWlsZC9iaW9qcy1pby1uZXdpY2subWluLmpzIn0sbG9hZFBhY2thZ2U6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIGUobigxNDUpKHQpKX1jYXRjaChuKXtyZXR1cm4gaS5kZWZhdWx0LmxvYWRTY3JpcHQodGhpcy5fcGtnVVJMKHQpLGUpfX0sbG9hZFBhY2thZ2VzOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxyPWkuZGVmYXVsdC5qb2luQ2IoZnVuY3Rpb24oKXtyZXR1cm4gZSgpfSx0Lmxlbmd0aCk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gbi5sb2FkUGFja2FnZSh0LHIpfSl9LF9wa2dVUkw6ZnVuY3Rpb24odCl7aWYodGhpcy5nLmNvbmZpZy5nZXQoImRlYnVnIikpdmFyIGU9dGhpcy5kZXZlbG9wbWVudFt0XTtlbHNlIGU9Imh0dHA6Ly93enJkLmluL2J1bmRsZS8iK3QrIkBsYXRlc3QiO3JldHVybiBlfX0pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByLGk9bigxKS5Nb2RlbDt0LmV4cG9ydHM9cj1pLmV4dGVuZCh7ZGVmYXVsdHM6e3NlYXJjaFRleHQ6IiJ9fSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsaT1uKDEpLk1vZGVsO3QuZXhwb3J0cz1yPWkuZXh0ZW5kKHtkZWZhdWx0czp7c2VhcmNoQm94Oi0xMCxvdmVydmlld0JveDozMCxoZWFkZXJCb3g6LTEsYWxpZ25tZW50Qm9keTowLHNjYWxlU2xpZGVyOjUwfX0pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByLGk9bigxKS5Nb2RlbDt0LmV4cG9ydHM9cj1pLmV4dGVuZCh7ZGVmYXVsdHM6e3NlcXVlbmNlczohMCxtYXJrZXJzOiEwLG1ldGFjZWxsOiExLGNvbnNlcnY6ITEsb3ZlcnZpZXdib3g6ITEsc2VxbG9nbzohMSxnYXBIZWFkZXI6ITEsbGVmdEhlYWRlcjohMCxzY2FsZXNsaWRlcjohMSxsYWJlbHM6ITAsbGFiZWxOYW1lOiEwLGxhYmVsSWQ6ITAsbGFiZWxQYXJ0aXRpb246ITEsbGFiZWxDaGVja2JveDohMSxtZXRhR2FwczohMCxtZXRhSWRlbnRpdHk6ITAsbWV0YUxpbmtzOiEwfSxjb25zdHJ1Y3RvcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmNhbGNEZWZhdWx0cyhlLm1vZGVsKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0saW5pdGlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxpc3RlblRvKHRoaXMsImNoYW5nZTptZXRhTGlua3MgY2hhbmdlOm1ldGFJZGVudGl0eSBjaGFuZ2U6bWV0YUdhcHMiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJpZ2dlcigiY2hhbmdlOm1ldGFjZWxsIil9LHRoaXMpLHRoaXMubGlzdGVuVG8odGhpcywiY2hhbmdlOmxhYmVsTmFtZSBjaGFuZ2U6bGFiZWxJZCBjaGFuZ2U6bGFiZWxQYXJ0aXRpb24gY2hhbmdlOmxhYmVsQ2hlY2tib3giLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJpZ2dlcigiY2hhbmdlOmxhYmVscyIpfSx0aGlzKSx0aGlzLmxpc3RlblRvKHRoaXMsImNoYW5nZTptYXJrZXJzIGNoYW5nZTpjb25zZXJ2IGNoYW5nZTpzZXFsb2dvIGNoYW5nZTpnYXBIZWFkZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJpZ2dlcigiY2hhbmdlOmhlYWRlciIpfSx0aGlzKX0sY2FsY0RlZmF1bHRzOmZ1bmN0aW9uKHQpe2lmKHQubGVuZ3RoPjApe3ZhciBlPXQuYXQoMCksbj1lLmdldCgiaWRzIik7aWYodm9pZCAwIT09biYmMD09PU9iamVjdC5rZXlzKG4pLmxlbmd0aClyZXR1cm4gdGhpcy5kZWZhdWx0cy5tZXRhTGlua3M9ITF9fX0pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByLGk9bigxKS5Nb2RlbDt0LmV4cG9ydHM9cj1pLmV4dGVuZCh7Y29uc3RydWN0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jYWxjRGVmYXVsdHMoZS5tb2RlbCksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5nPWUuZyx0aGlzLmxpc3RlblRvKHRoaXMsImNoYW5nZTpsYWJlbElkTGVuZ3RoIGNoYW5nZTpsYWJlbE5hbWVMZW5ndGggY2hhbmdlOmxhYmVsUGFydExlbmd0aCBjaGFuZ2U6bGFiZWxDaGVja0xlbmd0aCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmlnZ2VyKCJjaGFuZ2U6bGFiZWxXaWR0aCIsdGhpcy5nZXRMYWJlbFdpZHRoKCkpfSx0aGlzKSx0aGlzLmxpc3RlblRvKHRoaXMsImNoYW5nZTptZXRhTGlua3NXaWR0aCBjaGFuZ2U6bWV0YUlkZW50V2lkdGggY2hhbmdlOm1ldGFHYXBXaWR0aCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmlnZ2VyKCJjaGFuZ2U6bWV0YVdpZHRoIix0aGlzLmdldE1ldGFXaWR0aCgpKX0sdGhpcyksdGhpc30sZGVmYXVsdHM6e2FsaWdubWVudFdpZHRoOiJhdXRvIixhbGlnbm1lbnRIZWlnaHQ6MjI1LGNvbHVtbldpZHRoOjE1LHJvd0hlaWdodDoxNSxhdXRvUmVzaXplOiEwLGxhYmVsSWRMZW5ndGg6MjAsbGFiZWxOYW1lTGVuZ3RoOjEwMCxsYWJlbFBhcnRMZW5ndGg6MTUsbGFiZWxDaGVja0xlbmd0aDoxNSxsYWJlbEZvbnRzaXplOjEzLGxhYmVsTGluZUhlaWdodDoiMTNweCIsbWFya2VyRm9udHNpemU6IjEwcHgiLHN0ZXBTaXplOjEsbWFya2VyU3RlcFNpemU6MixtYXJrZXJIZWlnaHQ6MjAscmVzaWR1ZUZvbnQ6IjEzIixjYW52YXNFdmVudFNjYWxlOjEsbWluTGV0dGVyRHJhd1NpemU6MTEsYm94UmVjdEhlaWdodDoyLGJveFJlY3RXaWR0aDoyLG92ZXJ2aWV3Ym94UGFkZGluZ1RvcDoxMCxvdmVydmlld2JveFdpZHRoOiJmaXhlZCIsb3ZlcnZpZXdib3hIZWlnaHQ6ImZpeGVkIixtZXRhR2FwV2lkdGg6MzUsbWV0YUlkZW50V2lkdGg6NDAsX2FsaWdubWVudFNjcm9sbExlZnQ6MCxfYWxpZ25tZW50U2Nyb2xsVG9wOjB9LGNhbGNEZWZhdWx0czpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNYXhMZW5ndGgoKTwyMDAmJnQubGVuZ3RoPDMwJiYodGhpcy5kZWZhdWx0cy5ib3hSZWN0V2lkdGg9dGhpcy5kZWZhdWx0cy5ib3hSZWN0SGVpZ2h0PTUpLHRoaXN9LGdldEFsaWdubWVudFdpZHRoOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmdldCgiYXV0b1Jlc2l6ZSIpJiZ2b2lkIDAhPT10P3RoaXMuZ2V0KCJjb2x1bW5XaWR0aCIpKnQ6dm9pZCAwPT09dGhpcy5nZXQoImFsaWdubWVudFdpZHRoIil8fCJhdXRvIj09PXRoaXMuZ2V0KCJhbGlnbm1lbnRXaWR0aCIpfHwwPT09dGhpcy5nZXQoImFsaWdubWVudFdpZHRoIik/dGhpcy5fYWRqdXN0V2lkdGgoKTp0aGlzLmdldCgiYWxpZ25tZW50V2lkdGgiKX0sc2V0TGVmdE9mZnNldDpmdW5jdGlvbih0KXt2YXIgZT10O3JldHVybiBlPU1hdGgubWF4KDAsZSksZS09dGhpcy5nLmNvbHVtbnMuY2FsY0hpZGRlbkNvbHVtbnMoZSksdGhpcy5zZXQoIl9hbGlnbm1lbnRTY3JvbGxMZWZ0IixlKnRoaXMuZ2V0KCJjb2x1bW5XaWR0aCIpKX0sc2V0VG9wT2Zmc2V0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1NYXRoLm1heCgwLHQtMSksbj0wLHI9MDswPGU/cjw9ZTpyPj1lOzA8ZT9yKys6ci0tKW4rPXRoaXMubW9kZWwuYXQocikuYXR0cmlidXRlcy5oZWlnaHR8fDE7cmV0dXJuIHRoaXMuc2V0KCJfYWxpZ25tZW50U2Nyb2xsVG9wIixuKnRoaXMuZ2V0KCJyb3dIZWlnaHQiKSl9LGdldExlZnRCbG9ja1dpZHRoOmZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy5nLnZpcy5nZXQoImxhYmVscyIpJiYodCs9dGhpcy5nZXRMYWJlbFdpZHRoKCkpLHRoaXMuZy52aXMuZ2V0KCJtZXRhY2VsbCIpJiYodCs9dGhpcy5nZXRNZXRhV2lkdGgoKSksdH0sZ2V0TWV0YVdpZHRoOmZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy5nLnZpcy5nZXQoIm1ldGFHYXBzIikmJih0Kz10aGlzLmdldCgibWV0YUdhcFdpZHRoIikpLHRoaXMuZy52aXMuZ2V0KCJtZXRhSWRlbnRpdHkiKSYmKHQrPXRoaXMuZ2V0KCJtZXRhSWRlbnRXaWR0aCIpKSx0aGlzLmcudmlzLmdldCgibWV0YUxpbmtzIikmJih0Kz10aGlzLmdldCgibWV0YUxpbmtzV2lkdGgiKSksdH0sZ2V0TGFiZWxXaWR0aDpmdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHRoaXMuZy52aXMuZ2V0KCJsYWJlbE5hbWUiKSYmKHQrPXRoaXMuZ2V0KCJsYWJlbE5hbWVMZW5ndGgiKSksdGhpcy5nLnZpcy5nZXQoImxhYmVsSWQiKSYmKHQrPXRoaXMuZ2V0KCJsYWJlbElkTGVuZ3RoIikpLHRoaXMuZy52aXMuZ2V0KCJsYWJlbFBhcnRpdGlvbiIpJiYodCs9dGhpcy5nZXQoImxhYmVsUGFydExlbmd0aCIpKSx0aGlzLmcudmlzLmdldCgibGFiZWxDaGVja2JveCIpJiYodCs9dGhpcy5nZXQoImxhYmVsQ2hlY2tMZW5ndGgiKSksdH0sX2FkanVzdFdpZHRoOmZ1bmN0aW9uKCl7aWYodm9pZCAwIT09dGhpcy5lbCYmdm9pZCAwIT09dGhpcy5tb2RlbCl7aWYobnVsbCE9dGhpcy5lbC5wYXJlbnROb2RlJiYwIT09dGhpcy5lbC5wYXJlbnROb2RlLm9mZnNldFdpZHRoKXZhciB0PXRoaXMuZWwucGFyZW50Tm9kZS5vZmZzZXRXaWR0aDtlbHNlIHQ9ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aC0zNTt2YXIgZT10LXRoaXMuZ2V0TGVmdEJsb2NrV2lkdGgoKSxuPXRoaXMuZ2V0QWxpZ25tZW50V2lkdGgodGhpcy5tb2RlbC5nZXRNYXhMZW5ndGgoKS10aGlzLmcuY29sdW1ucy5nZXQoImhpZGRlbiIpLmxlbmd0aCkscj1NYXRoLm1pbihlLG4pO3JldHVybiByPU1hdGguZmxvb3Ioci90aGlzLmdldCgiY29sdW1uV2lkdGgiKSkqdGhpcy5nZXQoImNvbHVtbldpZHRoIiksdGhpcy5hdHRyaWJ1dGVzLmFsaWdubWVudFdpZHRoPXJ9fSxhdXRvUmVzaXplOmZ1bmN0aW9uKCl7aWYodGhpcy5nZXQoImF1dG9SZXNpemUiKSlyZXR1cm4gdGhpcy5fYWRqdXN0V2lkdGgodGhpcy5lbCx0aGlzLm1vZGVsKX0sYXV0b0hlaWdodDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldE1heEFsaWdubWVudEhlaWdodCgpO3JldHVybiB2b2lkIDAhPT10JiZ0PjAmJihlPU1hdGgubWluKGUsdCkpLHRoaXMuc2V0KCJhbGlnbm1lbnRIZWlnaHQiLGUpfSxzZXRFbDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmVsPXQsdGhpcy5tb2RlbD1lfSxfY2hlY2tTY3JvbGxpbmc6ZnVuY3Rpb24odCxlKXt2YXIgbj10WzBdLHI9dFsxXTtyZXR1cm4gdGhpcy5zZXQoIl9hbGlnbm1lbnRTY3JvbGxMZWZ0IixuLGUpLHRoaXMuc2V0KCJfYWxpZ25tZW50U2Nyb2xsVG9wIixyLGUpfSxnZXRNYXhBbGlnbm1lbnRIZWlnaHQ6ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiB0aGlzLm1vZGVsLmVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQrPWUuYXR0cmlidXRlcy5oZWlnaHR8fDF9KSx0KnRoaXMuZ2V0KCJyb3dIZWlnaHQiKX0sZ2V0TWF4QWxpZ25tZW50V2lkdGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbC5nZXRNYXhMZW5ndGgoKSp0aGlzLmdldCgiY29sdW1uV2lkdGgiKX19KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigzKSxvPW4oNTEpLHM9cihvKSxhPW4oMSkuQ29sbGVjdGlvbix1PWEuZXh0ZW5kKHttb2RlbDpzLmRlZmF1bHQsY29uc3RydWN0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGFydE9uQ2FjaGU9W10sdGhpcy5vbigiYWxsIixmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0T25DYWNoZT1bXX0sdGhpcyksYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHN0YXJ0T246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXRoaXMuc3RhcnRPbkNhY2hlW3RdJiYodGhpcy5zdGFydE9uQ2FjaGVbdF09dGhpcy53aGVyZSh7eFN0YXJ0OnR9KSksdGhpcy5zdGFydE9uQ2FjaGVbdF19LGNvbnRhaW5zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJlZHVjZShmdW5jdGlvbihlLG4pe3JldHVybiBufHxlLmNvbnRhaW5zKHQpfSwhMSl9LGdldEZlYXR1cmVPblJvdzpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXQoInJvdyIpPT09dCYmbi5nZXQoInhTdGFydCIpPD1lJiZlPD1uLmdldCgieEVuZCIpfSl9LGFzc2lnblJvd3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1heChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXQoInhFbmQiKX0pLmF0dHJpYnV0ZXMueEVuZCxlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MDswPHQ/bjw9dDpuPj10OzA8dD9uKys6bi0tKWUucHVzaCgwKTtyZXR1cm4gZX0oKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgbj0wLHI9dC5nZXQoInhTdGFydCIpLGk9dC5nZXQoInhFbmQiKSxvPXI7cjxpP288PWk6bz49aTtyPGk/bysrOm8tLSllW29dPm4mJihuPWVbb10pLGVbb10rKztyZXR1cm4gdC5zZXQoInJvdyIsbil9KSwoMCxpLm1heCkoZSl9LGdldEN1cnJlbnRIZWlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0KCJyb3ciKX0pLmF0dHJpYnV0ZXMucm93KzF9LGdldE1pblJvd3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1heChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXQoInhFbmQiKX0pLmF0dHJpYnV0ZXMueEVuZCxlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MDswPHQ/bjw9dDpuPj10OzA8dD9uKys6bi0tKWUucHVzaCgwKTtyZXR1cm4gZX0oKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbj1bXSxyPXQuZ2V0KCJ4U3RhcnQiKSxpPXQuZ2V0KCJ4RW5kIiksbz1yO3I8aT9vPD1pOm8+PWk7cjxpP28rKzpvKyspbi5wdXNoKGVbb10rKyk7cmV0dXJuIG59KCl9KSwoMCxpLm1heCkoZSl9fSk7ZS5kZWZhdWx0PXV9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMzcpLG89cihpKSxzPW4oMzUpLGE9cihzKSx1PW4oMSkuQ29sbGVjdGlvbixsPXUuZXh0ZW5kKHttb2RlbDpvLmRlZmF1bHQsY29uc3RydWN0b3I6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB1LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmc9ZSx0aGlzLm9uKCJhZGQgcmVzZXQgcmVtb3ZlIixmdW5jdGlvbigpe3JldHVybiBuLmxlbmd0aENhY2hlPW51bGwsbi5fYmluZFNlcXNXaXRoRmVhdHVyZXMoKX0sdGhpcyksdGhpcy5vbigicmVzZXQiLGZ1bmN0aW9uKCl7cmV0dXJuIG4uX2F1dG9TZXRSZWZTZXEoKX0pLHRoaXMuX2F1dG9TZXRSZWZTZXEoKSx0aGlzLmxlbmd0aENhY2hlPW51bGwsdGhpcy5mZWF0dXJlcz17fSx0aGlzfSxnZXRNYXhMZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMubW9kZWxzLmxlbmd0aD8wOihudWxsPT09dGhpcy5sZW5ndGhDYWNoZSYmKHRoaXMubGVuZ3RoQ2FjaGU9dGhpcy5tYXgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0KCJzZXEiKS5sZW5ndGh9KS5nZXQoInNlcSIpLmxlbmd0aCksdGhpcy5sZW5ndGhDYWNoZSl9LHByZXY6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmluZGV4T2YodCktMTtyZXR1cm4gbjwwJiZlJiYobj10aGlzLmxlbmd0aC0xKSx0aGlzLmF0KG4pfSxuZXh0OmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5pbmRleE9mKHQpKzE7cmV0dXJuIG49PT10aGlzLmxlbmd0aCYmZSYmKG49MCksdGhpcy5hdChuKX0sY2FsY0hpZGRlblNlcXM6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQsbj0wOzA8ZT9uPD1lOm4+PWU7MDxlP24rKzpuLS0pdGhpcy5hdChuKS5nZXQoImhpZGRlbiIpJiZlKys7cmV0dXJuIGUtdH0sYWRkRmVhdHVyZXM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihudWxsIT10LmNvbmZpZyl7dmFyIG49dDtpZih0PXQuc2VxcyxudWxsIT1uLmNvbmZpZy5jb2xvcnMpe3ZhciByPW4uY29uZmlnLmNvbG9ycztfLmVhY2godCxmdW5jdGlvbih0KXtyZXR1cm4gXy5lYWNoKHQsZnVuY3Rpb24odCl7aWYobnVsbCE9clt0LmZlYXR1cmVdKXJldHVybiB0LmZpbGxDb2xvcj1yW3QuZmVhdHVyZV19KX0pfX1yZXR1cm4gXy5pc0VtcHR5KHRoaXMuZmVhdHVyZXMpP3RoaXMuZmVhdHVyZXM9dDpfLmVhY2godCxmdW5jdGlvbih0LG4pe3JldHVybiBlLmZlYXR1cmVzLmhhc093blByb3BlcnR5KG4pP2UuZmVhdHVyZXNbbl09Xy51bmlvbihlLmZlYXR1cmVzW25dLHQpOmUuZmVhdHVyZXNbbl09dH0pLHRoaXMuX2JpbmRTZXFzV2l0aEZlYXR1cmVzKCl9LF9iaW5kU2VxV2l0aEZlYXR1cmVzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZmVhdHVyZXNbdC5hdHRyaWJ1dGVzLm5hbWVdO2UmJih0LmF0dHJpYnV0ZXMuZmVhdHVyZXM9bmV3IGEuZGVmYXVsdChlKSx0LmF0dHJpYnV0ZXMuZmVhdHVyZXMuYXNzaWduUm93cygpLHQuYXR0cmlidXRlcy5oZWlnaHQ9dC5hdHRyaWJ1dGVzLmZlYXR1cmVzLmdldEN1cnJlbnRIZWlnaHQoKSsxKX0sX2JpbmRTZXFzV2l0aEZlYXR1cmVzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9iaW5kU2VxV2l0aEZlYXR1cmVzKGUpfSl9LHJlbW92ZUFsbEZlYXR1cmVzOmZ1bmN0aW9uKCl7cmV0dXJuIGRlbGV0ZSB0aGlzLmZlYXR1cmVzfSxfYXV0b1NldFJlZlNlcTpmdW5jdGlvbigpe2lmKHRoaXMubGVuZ3RoPjApcmV0dXJuIHRoaXMuYXQoMCkuc2V0KCJyZWYiLCEwKX0sc2V0UmVmOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0KHQpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24obil7aWYodC5jaWQpcmV0dXJuIGUuY2lkPT09bi5jaWQ/bi5zZXQoInJlZiIsITApOm4uc2V0KCJyZWYiLCExKX0pLHRoaXMuZy5jb25maWcuc2V0KCJoYXNSZWYiLCEwKSx0aGlzLnRyaWdnZXIoImNoYW5nZTpyZWZlcmVuY2UiLHQpfX0pO2UuZGVmYXVsdD1sfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDM1KSxvPXIoaSkscz1uKDEpLk1vZGVsLGE9cy5leHRlbmQoe2RlZmF1bHRzOntuYW1lOiIiLGlkOiIiLHNlcToiIixoZWlnaHQ6MSxyZWY6ITF9LGluaXRpYWxpemU6ZnVuY3Rpb24oKXtpZih0aGlzLnNldCgiZ3JleSIsW10pLG51bGw9PXRoaXMuZ2V0KCJmZWF0dXJlcyIpKXJldHVybiB0aGlzLnNldCgiZmVhdHVyZXMiLG5ldyBvLmRlZmF1bHQpfX0pO2UuZGVmYXVsdD1hfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmV4cG9ydGVyPWUuZmlsZT1lLnNlcWdlbj1lLnByb3h5PWUuYm1hdGg9dm9pZCAwO3ZhciBpPW4oMTgpLG89cihpKSxzPW4oMjIpLGE9cihzKSx1PW4oNDApLGw9cih1KSxjPW4oMjApLGg9cihjKSxmPW4oMTkpLGQ9cihmKTtlLmJtYXRoPW8uZGVmYXVsdCxlLnByb3h5PWEuZGVmYXVsdCxlLnNlcWdlbj1sLmRlZmF1bHQsZS5maWxlPWguZGVmYXVsdCxlLmV4cG9ydGVyPWQuZGVmYXVsdH0sZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1lLm5hbWV8fGUudXJsfHwiIixyPW4uc3BsaXQoIi4iKSxpPXJbci5sZW5ndGgtMV18fCIiLG89MDtvPHMubGVuZ3RoO28rKyl7dmFyIGE9c1tvXSh0LGkpO2lmKGEpcmV0dXJuIGF9cmV0dXJuInVua25vd24ifTt2YXIgbj1mdW5jdGlvbih0LGUpe3JldHVybigiQ0xVU1RBTCI9PT10LnN1YnN0cmluZygwLDcpfHwiY2x1c3RhbCI9PWV8fCJhbG4iPT1lKSYmImNsdXN0YWwifSxyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKCI+Ij09PXQuc3Vic3RyaW5nKDAsMSl8fCJmYXN0YSI9PWV8fCJmYSI9PWUpJiYiZmFzdGEifSxpPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKCIoIj09PXQuc3Vic3RyaW5nKDAsMSl8fCJud2siPT1lKSYmIm5ld2ljayJ9LG89ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aDw9MTApcmV0dXJuITE7dmFyIG49dC5zcGxpdCgiXG4iKTtyZXR1cm4gblswXS5pbmRleE9mKCJnZmYiKT49MHx8ZS5pbmRleE9mKCJnZmYiKT49MD8iZ2ZmIjpuWzBdLmluZGV4T2YoIiMiKTwwJiYyPT09blswXS5zcGxpdCgiXHQiKS5sZW5ndGgmJiJnZmYifSxzPVtuLHIsaSxvXX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxOCksbz1yKGkpLHM9big2NSkuc2VxLGE9big0OSksdT17X2dlbmVyYXRlU2VxdWVuY2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSIiLG49dC0xLHI9MDswPG4/cjw9bjpyPj1uOzA8bj9yKys6ci0tKWUrPXUuZ2V0UmFuZG9tQ2hhcigpO3JldHVybiBlfSxnZXREdW1teVNlcXVlbmNlczpmdW5jdGlvbih0LGUpe3ZhciBuPVtdOyJ1bmRlZmluZWQiIT10eXBlb2YgdCYmbnVsbCE9PXR8fCh0PW8uZGVmYXVsdC5nZXRSYW5kb21JbnQoMyw1KSksInVuZGVmaW5lZCIhPXR5cGVvZiBlJiZudWxsIT09ZXx8KGU9by5kZWZhdWx0LmdldFJhbmRvbUludCg1MCwyMDApKTtmb3IodmFyIHI9MTsxPHQ/cjw9dDpyPj10OzE8dD9yKys6ci0tKW4ucHVzaChuZXcgcyh1Ll9nZW5lcmF0ZVNlcXVlbmNlKGUpLCJzZXEiK3IsInIiK3IpKTtyZXR1cm4gbn0sZ2V0UmFuZG9tQ2hhcjpmdW5jdGlvbih0KXt2YXIgZT10fHwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiO3JldHVybiBlLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqZS5sZW5ndGgpKX0sZ2VuQ29uc2VydmVkU2VxdWVuY2VzOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1bXTsidW5kZWZpbmVkIiE9dHlwZW9mIHQmJm51bGwhPT10fHwodD1vLmRlZmF1bHQuZ2V0UmFuZG9tSW50KDMsNSkpLCJ1bmRlZmluZWQiIT10eXBlb2YgZSYmbnVsbCE9PWV8fChlPW8uZGVmYXVsdC5nZXRSYW5kb21JbnQoNTAsMjAwKSksbj1ufHwiQUNERUZHSElLTE1OUFFSU1RWV1ktLS0iO2Zvcih2YXIgaT0xOzE8dD9pPD10Omk+PXQ7MTx0P2krKzppLS0pcltpLTFdPSIiO2Zvcih2YXIgbD0uMixjPTEsaD1lLTEsZj0wOzA8aD9mPD1oOmY+PWg7MDxoP2YrKzpmLS0pe2YlMz09PTAmJihjPW8uZGVmYXVsdC5nZXRSYW5kb21JbnQoNTAsMTAwKS8xMDApO2Zvcih2YXIgZD1bXSxnPXQtMSxwPTA7MDxnP3A8PWc6cD49ZzswPGc/cCsrOnAtLSl7Zm9yKHZhciBtPTAsdj12b2lkIDA7bTwxMDA7KXt2PXUuZ2V0UmFuZG9tQ2hhcihuKTt2YXIgXz1hKGQpO2lmKF8uYWRkU2VxKHYpLG0rKyxNYXRoLmFicyhjLV8uc2NhbGUoXy5jb25zZXJ2YXRpb24oKSlbMF0pPGwpYnJlYWt9cltwXSs9dixkLnB1c2godil9fWZvcih2YXIgeT1bXSxiPTE7MTx0P2I8PXQ6Yj49dDsxPHQ/YisrOmItLSl5LnB1c2gobmV3IHMocltiLTFdLCJzZXEiK2IsInIiK2IpKTtyZXR1cm4geX19O2UuZGVmYXVsdD11fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDMpLG89bigzNikscz0ocihvKSxmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tc2E9dCx0aGlzfSksYT17bG9hZFRyZWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubXNhLmcucGFja2FnZS5sb2FkUGFja2FnZXMoWyJtc2EtdG50IiwiYmlvanMtaW8tbmV3aWNrIl0sdCl9LHNob3dUcmVlOmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7aWYobnVsbCE9dC5jaGlsZHJlbil0LmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGUodCl9KTtlbHNle3ZhciBuPXUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT10Lm5hbWV9KVswXTtudWxsIT1uJiYoIm51bWJlciI9PXR5cGVvZiBuLmlkPyhuLmlkcz1bInMiKyhuLmlkKzEpXSx0Lm5hbWU9InMiKyhuLmlkKzEpKTp0Lm5hbWU9bi5pZCl9fXZhciByPXdpbmRvdy5yZXF1aXJlKCJiaW9qcy1pby1uZXdpY2siKSxpPXdpbmRvdy5yZXF1aXJlKCJtc2EtdG50Iik7aWYoInN0cmluZyI9PXR5cGVvZiB0KXZhciBvPXIucGFyc2VfbmV3aWNrKHQpO2Vsc2Ugbz10O3ZhciBzLGE9bmV3IGkuc2VsZWN0aW9uczswPT09dGhpcy5tc2EuZWwuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgidG50X2dyb3VwRGl2IikubGVuZ3RoPyhzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMubXNhLmVsLmFwcGVuZENoaWxkKHMpKToocz10aGlzLm1zYS5lbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ0bnRfZ3JvdXBEaXYiKVswXS5wYXJlbnROb2RlLHMuaW5uZXJIVE1MPSIiKTt2YXIgdT10aGlzLm1zYS5zZXFzLnRvSlNPTigpO2Uobyk7dmFyIGw9aS5hcHAoe3NlcXM6dSx0cmVlOm99KTtyZXR1cm4gbmV3IGkuYWRhcHRlcnMudHJlZSh7bW9kZWw6bCxlbDpzLHNlbDphfSksbmV3IGkuYWRhcHRlcnMubXNhKHttb2RlbDpsLHNlbDphLG1zYTp0aGlzLm1zYX0pLGwubW9kZWxzLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGRlbGV0ZSB0LmNvbGxlY3Rpb24sT2JqZWN0LnNldFByb3RvdHlwZU9mKHQsbigxKS5Nb2RlbC5wcm90b3R5cGUpfSksdGhpcy5tc2Euc2Vxcy5yZXNldChsLm1vZGVscyksY29uc29sZS5sb2codGhpcy5tc2Euc2Vxcyl9LHJlcXVpcmU6ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdC50b1N0cmluZygpfSxlfShmdW5jdGlvbih0KXtyZXR1cm4gbigxNDYpKHQpfSl9OygwLGkuZXh0ZW5kKShzLnByb3RvdHlwZSxhKSxlLmRlZmF1bHQ9c30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0saT1uKDExKSxvPW4oMTUpLHM9bigxMCksYT1mdW5jdGlvbih0LGUpe3ZhciBuPXR8fHt9O2V8fChlPXt9KSx0aGlzLmNpZD1zLnVuaXF1ZUlkKCJjIiksdGhpcy5hdHRyaWJ1dGVzPXt9LGUuY29sbGVjdGlvbiYmKHRoaXMuY29sbGVjdGlvbj1lLmNvbGxlY3Rpb24pLGUucGFyc2UmJihuPXRoaXMucGFyc2UobixlKXx8e30pLG49cy5kZWZhdWx0cyh7fSxuLHMucmVzdWx0KHRoaXMsImRlZmF1bHRzIikpLHRoaXMuc2V0KG4sZSksdGhpcy5jaGFuZ2VkPXt9LHRoaXMuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3MuZXh0ZW5kKGEucHJvdG90eXBlLGkse2NoYW5nZWQ6bnVsbCx2YWxpZGF0aW9uRXJyb3I6bnVsbCxpZEF0dHJpYnV0ZToiaWQiLGluaXRpYWxpemU6ZnVuY3Rpb24oKXt9LHRvSlNPTjpmdW5jdGlvbih0KXtyZXR1cm4gcy5jbG9uZSh0aGlzLmF0dHJpYnV0ZXMpfSxzeW5jOmZ1bmN0aW9uKCl7cmV0dXJuIEJhY2tib25lLnN5bmMuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlc1t0XX0sZXNjYXBlOmZ1bmN0aW9uKHQpe3JldHVybiBzLmVzY2FwZSh0aGlzLmdldCh0KSl9LGhhczpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dGhpcy5nZXQodCl9LHNldDpmdW5jdGlvbih0LGUsbil7dmFyIGksbyxhLHUsbCxjLGgsZjtpZihudWxsPT10KXJldHVybiB0aGlzO2lmKCJvYmplY3QiPT09KCJ1bmRlZmluZWQiPT10eXBlb2YgdD8idW5kZWZpbmVkIjpyKHQpKT8obz10LG49ZSk6KG89e30pW3RdPWUsbnx8KG49e30pLCF0aGlzLl92YWxpZGF0ZShvLG4pKXJldHVybiExO2E9bi51bnNldCxsPW4uc2lsZW50LHU9W10sYz10aGlzLl9jaGFuZ2luZyx0aGlzLl9jaGFuZ2luZz0hMCxjfHwodGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzPXMuY2xvbmUodGhpcy5hdHRyaWJ1dGVzKSx0aGlzLmNoYW5nZWQ9e30pLGY9dGhpcy5hdHRyaWJ1dGVzLGg9dGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzLHRoaXMuaWRBdHRyaWJ1dGUgaW4gbyYmKHRoaXMuaWQ9b1t0aGlzLmlkQXR0cmlidXRlXSk7Zm9yKGkgaW4gbyllPW9baV0scy5pc0VxdWFsKGZbaV0sZSl8fHUucHVzaChpKSxzLmlzRXF1YWwoaFtpXSxlKT9kZWxldGUgdGhpcy5jaGFuZ2VkW2ldOnRoaXMuY2hhbmdlZFtpXT1lLGE/ZGVsZXRlIGZbaV06ZltpXT1lO2lmKCFsKXt1Lmxlbmd0aCYmKHRoaXMuX3BlbmRpbmc9bik7Zm9yKHZhciBkPTAsZz11Lmxlbmd0aDtkPGc7ZCsrKXRoaXMudHJpZ2dlcigiY2hhbmdlOiIrdVtkXSx0aGlzLGZbdVtkXV0sbil9aWYoYylyZXR1cm4gdGhpcztpZighbClmb3IoO3RoaXMuX3BlbmRpbmc7KW49dGhpcy5fcGVuZGluZyx0aGlzLl9wZW5kaW5nPSExLHRoaXMudHJpZ2dlcigiY2hhbmdlIix0aGlzLG4pO3JldHVybiB0aGlzLl9wZW5kaW5nPSExLHRoaXMuX2NoYW5naW5nPSExLHRoaXN9LHVuc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2V0KHQsdm9pZCAwLHMuZXh0ZW5kKHt9LGUse3Vuc2V0OiEwfSkpfSxjbGVhcjpmdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIG4gaW4gdGhpcy5hdHRyaWJ1dGVzKWVbbl09dm9pZCAwO3JldHVybiB0aGlzLnNldChlLHMuZXh0ZW5kKHt9LHQse3Vuc2V0OiEwfSkpfSxoYXNDaGFuZ2VkOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10PyFzLmlzRW1wdHkodGhpcy5jaGFuZ2VkKTpzLmhhcyh0aGlzLmNoYW5nZWQsdCl9LGNoYW5nZWRBdHRyaWJ1dGVzOmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiEhdGhpcy5oYXNDaGFuZ2VkKCkmJnMuY2xvbmUodGhpcy5jaGFuZ2VkKTt2YXIgZSxuPSExLHI9dGhpcy5fY2hhbmdpbmc/dGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzOnRoaXMuYXR0cmlidXRlcztmb3IodmFyIGkgaW4gdClzLmlzRXF1YWwocltpXSxlPXRbaV0pfHwoKG58fChuPXt9KSlbaV09ZSk7cmV0dXJuIG59LHByZXZpb3VzOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10JiZ0aGlzLl9wcmV2aW91c0F0dHJpYnV0ZXM/dGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzW3RdOm51bGx9LHByZXZpb3VzQXR0cmlidXRlczpmdW5jdGlvbigpe3JldHVybiBzLmNsb25lKHRoaXMuX3ByZXZpb3VzQXR0cmlidXRlcyl9LGZldGNoOmZ1bmN0aW9uKHQpe3Q9dD9zLmNsb25lKHQpOnt9LHZvaWQgMD09PXQucGFyc2UmJih0LnBhcnNlPSEwKTt2YXIgZT10aGlzLG49dC5zdWNjZXNzO3JldHVybiB0LnN1Y2Nlc3M9ZnVuY3Rpb24ocil7cmV0dXJuISFlLnNldChlLnBhcnNlKHIsdCksdCkmJihuJiZuKGUscix0KSx2b2lkIGUudHJpZ2dlcigic3luYyIsZSxyLHQpKX0sd3JhcEVycm9yKHRoaXMsdCksdGhpcy5zeW5jKCJyZWFkIix0aGlzLHQpfSxzYXZlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxvLGEsdT10aGlzLmF0dHJpYnV0ZXM7aWYobnVsbD09dHx8Im9iamVjdCI9PT0oInVuZGVmaW5lZCI9PXR5cGVvZiB0PyJ1bmRlZmluZWQiOnIodCkpPyhpPXQsbj1lKTooaT17fSlbdF09ZSxuPXMuZXh0ZW5kKHt2YWxpZGF0ZTohMH0sbiksaSYmIW4ud2FpdCl7aWYoIXRoaXMuc2V0KGksbikpcmV0dXJuITF9ZWxzZSBpZighdGhpcy5fdmFsaWRhdGUoaSxuKSlyZXR1cm4hMTtpJiZuLndhaXQmJih0aGlzLmF0dHJpYnV0ZXM9cy5leHRlbmQoe30sdSxpKSksdm9pZCAwPT09bi5wYXJzZSYmKG4ucGFyc2U9ITApO3ZhciBsPXRoaXMsYz1uLnN1Y2Nlc3M7cmV0dXJuIG4uc3VjY2Vzcz1mdW5jdGlvbih0KXsKbC5hdHRyaWJ1dGVzPXU7dmFyIGU9bC5wYXJzZSh0LG4pO3JldHVybiBuLndhaXQmJihlPXMuZXh0ZW5kKGl8fHt9LGUpKSwhKHMuaXNPYmplY3QoZSkmJiFsLnNldChlLG4pKSYmKGMmJmMobCx0LG4pLHZvaWQgbC50cmlnZ2VyKCJzeW5jIixsLHQsbikpfSx3cmFwRXJyb3IodGhpcyxuKSxvPXRoaXMuaXNOZXcoKT8iY3JlYXRlIjpuLnBhdGNoPyJwYXRjaCI6InVwZGF0ZSIsInBhdGNoIiE9PW98fG4uYXR0cnN8fChuLmF0dHJzPWkpLGE9dGhpcy5zeW5jKG8sdGhpcyxuKSxpJiZuLndhaXQmJih0aGlzLmF0dHJpYnV0ZXM9dSksYX0sZGVzdHJveTpmdW5jdGlvbiB0KGUpe2U9ZT9zLmNsb25lKGUpOnt9O3ZhciBuPXRoaXMscj1lLnN1Y2Nlc3MsdD1mdW5jdGlvbigpe24uc3RvcExpc3RlbmluZygpLG4udHJpZ2dlcigiZGVzdHJveSIsbixuLmNvbGxlY3Rpb24sZSl9O2lmKGUuc3VjY2Vzcz1mdW5jdGlvbihpKXsoZS53YWl0fHxuLmlzTmV3KCkpJiZ0KCksciYmcihuLGksZSksbi5pc05ldygpfHxuLnRyaWdnZXIoInN5bmMiLG4saSxlKX0sdGhpcy5pc05ldygpKXJldHVybiBlLnN1Y2Nlc3MoKSwhMTt3cmFwRXJyb3IodGhpcyxlKTt2YXIgaT10aGlzLnN5bmMoImRlbGV0ZSIsdGhpcyxlKTtyZXR1cm4gZS53YWl0fHx0KCksaX0sdXJsOmZ1bmN0aW9uKCl7dmFyIHQ9cy5yZXN1bHQodGhpcywidXJsUm9vdCIpfHxzLnJlc3VsdCh0aGlzLmNvbGxlY3Rpb24sInVybCIpfHx1cmxFcnJvcigpO3JldHVybiB0aGlzLmlzTmV3KCk/dDp0LnJlcGxhY2UoLyhbXlwvXSkkLywiJDEvIikrZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuaWQpfSxwYXJzZTpmdW5jdGlvbih0LGUpe3JldHVybiB0fSxjbG9uZTpmdW5jdGlvbigpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLmF0dHJpYnV0ZXMpfSxpc05ldzpmdW5jdGlvbigpe3JldHVybiF0aGlzLmhhcyh0aGlzLmlkQXR0cmlidXRlKX0saXNWYWxpZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUoe30scy5leHRlbmQodHx8e30se3ZhbGlkYXRlOiEwfSkpfSxfdmFsaWRhdGU6ZnVuY3Rpb24odCxlKXtpZighZS52YWxpZGF0ZXx8IXRoaXMudmFsaWRhdGUpcmV0dXJuITA7dD1zLmV4dGVuZCh7fSx0aGlzLmF0dHJpYnV0ZXMsdCk7dmFyIG49dGhpcy52YWxpZGF0aW9uRXJyb3I9dGhpcy52YWxpZGF0ZSh0LGUpfHxudWxsO3JldHVybiFufHwodGhpcy50cmlnZ2VyKCJpbnZhbGlkIix0aGlzLG4scy5leHRlbmQoZSx7dmFsaWRhdGlvbkVycm9yOm59KSksITEpfX0pO3ZhciB1PVsia2V5cyIsInZhbHVlcyIsInBhaXJzIiwiaW52ZXJ0IiwicGljayIsIm9taXQiLCJjaGFpbiIsImlzRW1wdHkiXTtzLmVhY2godSxmdW5jdGlvbih0KXtzW3RdJiYoYS5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXt2YXIgZT1zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIGUudW5zaGlmdCh0aGlzLmF0dHJpYnV0ZXMpLHNbdF0uYXBwbHkocyxlKX0pfSksYS5leHRlbmQ9byx0LmV4cG9ydHM9YX0sZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT17fTtyZXR1cm4gdC5zcGxpdCgiOyIpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG4scixpO3QuaW5kZXhPZigiPSIpPjA/KG49dC5zcGxpdCgiPSIpLHI9blswXSxpPW5bMV0sZVtyXT1pKTp0LmluZGV4T2YoIiAiKT4wJiYobj10LnNwbGl0KCIgIikscj1uWzBdLGk9blsxXS5yZXBsYWNlKC8iL2csIiIpLGVbcl09aSl9KSxlfWZ1bmN0aW9uIHIodCl7dmFyIGU9dC50b1N0cmluZygxNik7cmV0dXJuIDE9PT1lLmxlbmd0aD8iMCIrZTplfWZ1bmN0aW9uIGkodCxlLG4pe3JldHVybiAzPT09dC5sZW5ndGg/aSh0WzBdLHRbMV0sdFsyXSk6IiMiK3IodCkrcihlKStyKG4pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmV4dHJhY3RLZXlzPW4sZS5yZ2JUb0hleD1pLGUuZGVmYXVsdD17ZXh0cmFjdEtleXM6bixyZ2JUb0hleDppfX0sZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt0LmJlZ2luUGF0aCgpLHQubW92ZVRvKDAsZSksdC5saW5lVG8obixlKSx0LmxpbmVXaWR0aD0xLHQuc3Ryb2tlU3R5bGU9IiM5OTk5OTkiLHQuc3Ryb2tlKCl9fSxmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4scixpLG8scyl7dC5mb250PW8rInB4IEFyaWFsIix0LnRleHRBbGlnbj1zPyJyaWdodCI6ImNlbnRlciIsdC5maWxsU3R5bGU9IiM2NjY2NjYiLHQuZmlsbFRleHQoaSxlK3IvMixuKX19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixyLGkpe2k9aXx8IiM5OTk5OTkiLHQuYmVnaW5QYXRoKCksdC5tb3ZlVG8oZSxuKSx0LmxpbmVUbyhlLG4rciksdC5saW5lV2lkdGg9MSx0LnN0cm9rZVN0eWxlPWksdC5zdHJva2UoKX19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9ci5jYWxsKHQpO3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1lfHwiZnVuY3Rpb24iPT10eXBlb2YgdCYmIltvYmplY3QgUmVnRXhwXSIhPT1lfHwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHQ9PT13aW5kb3cuc2V0VGltZW91dHx8dD09PXdpbmRvdy5hbGVydHx8dD09PXdpbmRvdy5jb25maXJtfHx0PT09d2luZG93LnByb21wdCl9dC5leHBvcnRzPW47dmFyIHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ30sZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7dmFyIG47dC5leHBvcnRzPW49e3JlbDpmdW5jdGlvbih0KXt2YXIgZSxuLHIsaTtyZXR1cm4gZT10Lm9mZnNldFgsbj10Lm9mZnNldFksdm9pZCAwPT1lJiYocj1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9dC50YXJnZXR8fHQuc3JjRWxlbWVudCx2b2lkIDA9PWUmJihlPXQuY2xpZW50WC1yLmxlZnQsbj10LmNsaWVudFktci50b3ApLHZvaWQgMD09ZSYmKGU9dC5wYWdlWC1pLm9mZnNldExlZnQsbj10LnBhZ2VZLWkub2Zmc2V0VG9wKSx2b2lkIDA9PWUpP3ZvaWQgY29uc29sZS5sb2codCwibm8gbW91c2UgZXZlbnQgZGVmaW5lZC4geW91ciBicm93c2VyIHN1Y2tzIik6W2Usbl19LGFiczpmdW5jdGlvbih0KXt2YXIgZSxuO3JldHVybiBlPXQucGFnZVgsbj10LnBhZ2VZLHZvaWQgMD09ZSYmKGU9dC5sYXllclgsbj10LmxheWVyWSksdm9pZCAwPT1lJiYoZT10LmNsaWVudFgsbj10LmNsaWVudFkpLHZvaWQgMD09ZSYmKGU9dC54LG49dC55KSxbZSxuXX0sd2hlZWxEZWx0YTpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gZT1bdC5kZWx0YVgsdC5kZWx0YVldLHZvaWQgMD09ZVswXSYmdC5tb3pNb3ZlbWVudFgmJihlPVswLHQubW96TW92ZW1lbnRYXSksaXNOYU4oZVswXSkmJihlWzBdPTApLGlzTmFOKGVbMV0pJiYoZVsxXT0wKSxlfX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxMCksaT1mdW5jdGlvbiB0KGUsbil7aWYoIXRoaXN8fHRoaXMuY29uc3RydWN0b3IhPT10KXJldHVybiBuZXcgdChlKTtpZih2b2lkIDA9PT1lfHwic3RyaW5nIj09dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigieW91IG5lZWQgdG8gZ2l2ZSB0aGUgc2VxIHN0YXQgYW4gYXJyYXkiKTt0aGlzLnJlc2V0U2VxcyhlKSx0aGlzLmFscGhhYmV0U2l6ZT00LHRoaXMuX3VzZUJhY2tncm91bmQ9ITEsdGhpcy51c2VHYXBzPSExLHRoaXMuaWdub3JlZENoYXJzPVsiLSIsIioiXSxyLmV4dGVuZCh0aGlzLG4pfTtpLnByb3RvdHlwZS5hZGRTZXE9ZnVuY3Rpb24odCl7dGhpcy5zZXFzLnB1c2godCksdGhpcy5fcmVzZXQoKX0saS5wcm90b3R5cGUucmVtb3ZlU2VxPWZ1bmN0aW9uKHQpeyJudW1iZXIiPT10eXBlb2YgdD90aGlzLnNlcXMuc3BsaWNlKHQsMSk6ci5lYWNoKHRoaXMuc2VxcyxmdW5jdGlvbihlLG4pe3Q9PT1lJiZ0aGlzLnNlcXMuc3BsaWNlKG4sMSl9LmJpbmQodGhpcykpLHRoaXMuX3Jlc2V0KCl9LGkucHJvdG90eXBlLmFkZFNlcXM9ZnVuY3Rpb24odCl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RoaXMuYWRkU2VxKHQpfS5iaW5kKHRoaXMpKX0saS5wcm90b3R5cGUucmVzZXRTZXFzPWZ1bmN0aW9uKHQpe2lmKHRoaXMuc2Vxcz1bXSwhdCBpbnN0YW5jZW9mIEFycmF5fHwiYXQiaW4gdCl7dGhpcy5tc2Vxcz10O3ZhciBlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tc2Vxcy5wbHVjaygic2VxIik7dGhpcy5yZXNldFNlcXModCl9O3Qub24oImFkZCBjaGFuZ2UgcmVzZXQgIixlLHRoaXMpLGUuY2FsbCh0aGlzKX1lbHNlIHRoaXMuYWRkU2Vxcyh0KSx0aGlzLl9yZXNldCgpLHRoaXMudHJpZ2dlcigicmVzZXQiKX07dmFyIG89WyJjb25zZW5zdXMiLCJmcmVxdWVuY3kiLCJtYXhMZW5ndGgiLCJpYyIsImdhcHMiXTtpLnByb3RvdHlwZS5fcmVzZXQ9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PG8ubGVuZ3RoO3QrKyl0aGlzWyJfIitvW3RdXT12b2lkIDA7dGhpcy5faWRlbnRpdHk9dm9pZCAwLHRoaXMuX2JhY2tncm91bmQ9dm9pZCAwfSxpLnByb3RvdHlwZS5zZXRCYWNrZ3JvdW5kPWZ1bmN0aW9uKHQpe3RoaXMuX3VzZUJhY2tncm91bmQ9dCx0aGlzLl9yZXNldCgpfSxpLnByb3RvdHlwZS51c2VCYWNrZ3JvdW5kPWZ1bmN0aW9uKCl7dGhpcy5zZXRCYWNrZ3JvdW5kKCEwKX0saS5wcm90b3R5cGUuc2V0RE5BPWZ1bmN0aW9uKCl7dGhpcy5hbHBoYWJldFNpemU9NH0saS5wcm90b3R5cGUuc2V0UHJvdGVpbj1mdW5jdGlvbigpe3RoaXMuYWxwaGFiZXRTaXplPTIwfSxvLmZvckVhY2goZnVuY3Rpb24odCl7aS5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpc1siXyIrdF0mJih0aGlzWyJfIit0XT10aGlzW3QrIkNhbGMiXSgpKSx0aGlzWyJfIit0XX19KSxpLnByb3RvdHlwZS5pZGVudGl0eT1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4odm9pZCAwPT09dGhpcy5faWRlbnRpdHl8fHQpJiYoZT10aGlzLmlkZW50aXR5Q2FsYyh0KSx0aGlzLl9pZGVudGl0eT12b2lkIDApLHRoaXMuX2lkZW50aXR5fHxlfSxpLnByb3RvdHlwZS5iYWNrZ3JvdW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuYmc/dGhpcy5iZzoodm9pZCAwPT09dGhpcy5fYmFja2dyb3VuZCYmdGhpcy5iYWNrZ3JvdW5kQ2FsYygpLHRoaXMuX2JhY2tncm91bmQpfSxpLnByb3RvdHlwZS5mcmVxdWVuY3lDYWxjPWZ1bmN0aW9uKHQpe3ZhciBlLG47ZT1uZXcgQXJyYXkodGhpcy5tYXhMZW5ndGgoKSksbj1uZXcgQXJyYXkodGhpcy5zZXFzLmxlbmd0aCk7dmFyIGk9dGhpcy5pZ25vcmVkQ2hhcnM7cmV0dXJuIHZvaWQgMCE9PXQmJnQuYWxsJiYoaT1bXSksci5lYWNoKHRoaXMuc2VxcyxmdW5jdGlvbih0KXtyLmVhY2godCxmdW5jdGlvbih0LHIpe2kuaW5kZXhPZih0KT49MHx8KHZvaWQgMD09PWVbcl0mJihlW3JdPXt9KSx2b2lkIDA9PT1lW3JdW3RdJiYoZVtyXVt0XT0wKSxlW3JdW3RdKyssdm9pZCAwPT09bltyXSYmKG5bcl09MCksbltyXSsrKX0pfSksci5lYWNoKGUsZnVuY3Rpb24odCxpKXtyZXR1cm4gci5lYWNoKHQsZnVuY3Rpb24odCxyKXtyZXR1cm4gZVtpXVtyXT10L25baV19KX0pLHRoaXMuX2ZyZXF1ZW5jeT1lLGV9LGkucHJvdG90eXBlLmJhY2tncm91bmRDYWxjPWZ1bmN0aW9uKCl7dmFyIHQ9e30sZT0wO3JldHVybiByLmVhY2godGhpcy5zZXFzLGZ1bmN0aW9uKG4pe3IuZWFjaChuLGZ1bmN0aW9uKG4pe3JldHVybiB2b2lkIDA9PT10W25dJiYodFtuXT0wKSx0W25dKyssZSsrfSl9KSx0PXIubWFwVmFsdWVzKHQsZnVuY3Rpb24odCl7cmV0dXJuIHQvZX0pLHRoaXMuX2JhY2tncm91bmQ9dCx0fSxpLnByb3RvdHlwZS5pY0NhbGM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmZyZXF1ZW5jeSgpO2lmKHRoaXMuX3VzZUJhY2tncm91bmQpdmFyIGU9dGhpcy5iYWNrZ3JvdW5kKCk7dmFyIG49dGhpcy5pZ25vcmVkQ2hhcnMsaT10aGlzLl91c2VCYWNrZ3JvdW5kLG89ci5tYXAodCxmdW5jdGlvbih0KXtyZXR1cm4gci5yZWR1Y2UodCxmdW5jdGlvbih0LHIsbyl7cmV0dXJuIG4uaW5kZXhPZihvKT49MD90OihpJiYoci89ZVtvXSksdC1yKihNYXRoLmxvZyhyKS9NYXRoLmxvZygyKSkpfSwwKX0pO3JldHVybiB0aGlzLl9pYz1vLG99LGkucHJvdG90eXBlLmNvbnNlcnZhdGlvbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmljKCksbj10aGlzLmdhcHMoKSxpPXRoaXM7dD10fHx0aGlzLmFscGhhYmV0U2l6ZTt2YXIgbz1NYXRoLmxvZyh0KS9NYXRoLmxvZygyKSxzPTA7cmV0dXJuIHIubWFwKGUsZnVuY3Rpb24odCl7dmFyIGU9by10O3JldHVybiBpLnVzZUdhcHMmJihlKj0xLW5bcysrXSksZX0pfSxpLnByb3RvdHlwZS5jb25zZXJ2UmVzaWR1ZT1mdW5jdGlvbih0KXt2YXIgZSxuPXQ/dC5hbHBoYWJldFNpemU6dm9pZCAwLGk9dGhpcy5pZ25vcmVkQ2hhcnM7ZT12b2lkIDAhPT10JiZ0LnNjYWxlZD90aGlzLnNjYWxlKHRoaXMuY29uc2VydmF0aW9uKG4pKTp0aGlzLmNvbnNlcnZhdGlvbihuKTt2YXIgbyxzPXRoaXMuZnJlcXVlbmN5KCk7cmV0dXJuIHIubWFwKHMsZnVuY3Rpb24odCxuKXtvPXIucmVqZWN0KHIua2V5cyh0KSxmdW5jdGlvbih0KXtyZXR1cm4gaS5pbmRleE9mKHQpPj0wfSk7dmFyIHM9e307cmV0dXJuIHIuZWFjaChvLGZ1bmN0aW9uKHIpe3Nbcl09dFtyXSplW25dfSksc30pfSxpLnByb3RvdHlwZS5jb25zZXJ2UmVzaWR1ZTI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mcmVxdWVuY3koKSxuPXRoaXMuY29uc2VydmF0aW9uKHQpLGk9dGhpcy5iYWNrZ3JvdW5kKCk7cmV0dXJuIHIubWFwKGUsZnVuY3Rpb24odCxvKXtyZXR1cm4gci5tYXAodCxmdW5jdGlvbih0KXt2YXIgcz1yLnJlZHVjZShlW29dLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS9pW29dfSwwKTtyZXR1cm4gdC9pW29dL3MqbltvXX0sMCl9KX0saS5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24odCxlKXtlPWV8fHRoaXMuYWxwaGFiZXRTaXplO3ZhciBuPU1hdGgubG9nKGUpL01hdGgubG9nKDIpO3JldHVybiByLm1hcCh0LGZ1bmN0aW9uKHQpe3JldHVybiB0L259KX0saS5wcm90b3R5cGUubWF4TGVuZ3RoQ2FsYz1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5zZXFzLmxlbmd0aD8wOnIubWF4KHRoaXMuc2VxcyxmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGh9KS5sZW5ndGh9LGkucHJvdG90eXBlLmNvbnNlbnN1c0NhbGM9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgQXJyYXkodGhpcy5tYXhMZW5ndGgoKSk7cmV0dXJuIHIuZWFjaCh0aGlzLnNlcXMsZnVuY3Rpb24oZSl7ci5lYWNoKGUsZnVuY3Rpb24oZSxuKXt2b2lkIDA9PT10W25dJiYodFtuXT17fSksdm9pZCAwPT09dFtuXVtlXSYmKHRbbl1bZV09MCksdFtuXVtlXSsrfSl9KSx0aGlzLl9jb25zZW5zdXM9ci5yZWR1Y2UodCxmdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiBuPXIua2V5cyhlKSx0Kz1yLm1heChuLGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSl9LCIiKSx0aGlzLl9jb25zZW5zdXN9LGkucHJvdG90eXBlLmlkZW50aXR5Q2FsYz1mdW5jdGlvbih0KXt2YXIgZT10fHx0aGlzLmNvbnNlbnN1cygpO3JldHVybiB0aGlzLl9pZGVudGl0eT10aGlzLnNlcXMubWFwKGZ1bmN0aW9uKHQpe2Zvcih2YXIgbj0wLHI9MCxpPTA7aTx0Lmxlbmd0aDtpKyspIi0iIT09dFtpXSYmIi0iIT09ZVtpXSYmKHIrKyx0W2ldPT09ZVtpXSYmbisrKTtyZXR1cm4gbi9yfSksdGhpcy5faWRlbnRpdHl9LGkucHJvdG90eXBlLmdhcHNDYWxjPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tYXhMZW5ndGgoKTtpZih0PD0xfHwidW5kZWZpbmVkIj09dHlwZW9mIHQpcmV0dXJuW107dmFyIGU9bmV3IEFycmF5KHRoaXMubWF4TGVuZ3RoKCkpO3JldHVybiByLmVhY2godGhpcy5zZXFzLGZ1bmN0aW9uKHQpe3IuZWFjaCh0LGZ1bmN0aW9uKHQsbil7dm9pZCAwPT09ZVtuXSYmKGVbbl09e2c6MCx0OjB9KSx0PSItIj09PXQ/ImciOiJ0IixlW25dW3RdKyt9KX0pLHRoaXMuX2dhcHM9ci5tYXAoZSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nLyh0LmcrdC50KX0pLHRoaXMuX2dhcHN9LHIubWl4aW4oe21hcFZhbHVlczpmdW5jdGlvbih0LGUpe3JldHVybiByLm9iamVjdChyLmtleXModCksci5tYXAodCxlKSl9fSksbigxNikubWl4aW4oaS5wcm90b3R5cGUpLHQuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1uKDkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJTZWxlY3Rpb25NYW5hZ2VyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5TZWxlY3Rpb25NYW5hZ2VyfX0pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1uKDEpLk1vZGVsLGk9ci5leHRlbmQoe2RlZmF1bHRzOnt4U3RhcnQ6LTEseEVuZDotMSxoZWlnaHQ6LTEsdGV4dDoiIixmaWxsQ29sb3I6InJlZCIsZmlsbE9wYWNpdHk6LjUsdHlwZToicmVjdGFuZ2xlIixib3JkZXJTaXplOjEsYm9yZGVyQ29sb3I6ImJsYWNrIixib3JkZXJPcGFjaXR5Oi41LHZhbGlkYXRlOiEwLHJvdzowfSxpbml0aWFsaXplOmZ1bmN0aW9uKHQpe2lmKG51bGwhPXQuc3RhcnQmJnRoaXMuc2V0KCJ4U3RhcnQiLHQuc3RhcnQtMSksbnVsbCE9dC5lbmQmJnRoaXMuc2V0KCJ4RW5kIix0LmVuZC0xKSxudWxsIT10LmF0dHJpYnV0ZXMmJihudWxsIT10LmF0dHJpYnV0ZXMuTmFtZSYmdGhpcy5zZXQoInRleHQiLHQuYXR0cmlidXRlcy5OYW1lKSxudWxsIT10LmF0dHJpYnV0ZXMuQ29sb3ImJnRoaXMuc2V0KCJmaWxsQ29sb3IiLHQuYXR0cmlidXRlcy5Db2xvcikpLHRoaXMuYXR0cmlidXRlcy54RW5kPHRoaXMuYXR0cmlidXRlcy54U3RhcnQmJmNvbnNvbGUud2FybigiaW52YWxpZCBmZWF0dXJlIHJhbmdlIGZvciIsdGhpcy5hdHRyaWJ1dGVzKSwhXy5pc051bWJlcih0aGlzLmF0dHJpYnV0ZXMueFN0YXJ0KXx8IV8uaXNOdW1iZXIodGhpcy5hdHRyaWJ1dGVzLnhFbmQpKXJldHVybiBjb25zb2xlLndhcm4oInBsZWFzZSBwcm92aWRlIG51bWVyaWMgZmVhdHVyZSByYW5nZXMiLHQpLHRoaXMuc2V0KCJ4U3RhcnQiLHBhcnNlSW50KHRoaXMuYXR0cmlidXRlcy54U3RhcnQpKSx0aGlzLnNldCgieEVuZCIscGFyc2VJbnQodGhpcy5hdHRyaWJ1dGVzLnhFbmQpKX0sdmFsaWRhdGU6ZnVuY3Rpb24oKXtpZihpc05hTih0aGlzLmF0dHJpYnV0ZXMueFN0YXJ0fHxpc05hTih0aGlzLmF0dHJpYnV0ZXMueEVuZCkpKXJldHVybiJmZWF0dXJlcyBuZWVkIGludGVnZXIgc3RhcnQgYW5kIGVuZC4ifSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLnhTdGFydDw9dCYmdDw9dGhpcy5hdHRyaWJ1dGVzLnhFbmR9fSk7ZS5kZWZhdWx0PWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMzcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJzZXEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByKGkpLmRlZmF1bHR9fSk7dmFyIG89bigzNik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInNlcWNvbCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIobykuZGVmYXVsdH19KTt2YXIgcz1uKDUxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiZmVhdHVyZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIocykuZGVmYXVsdH19KTt2YXIgYT1uKDM1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiZmVhdHVyZWNvbCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIoYSkuZGVmYXVsdH19KX0sZnVuY3Rpb24odCxlKXsoZnVuY3Rpb24oZSl7dC5leHBvcnRzPWV9KS5jYWxsKGUse30pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fTshZnVuY3Rpb24oKXtmdW5jdGlvbiBuKCl7cmV0dXJue2tleXM6T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiIT09KCJ1bmRlZmluZWQiPT10eXBlb2YgdD8idW5kZWZpbmVkIjpyKHQpKSYmImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGw9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoImtleXMoKSBjYWxsZWQgb24gYSBub24tb2JqZWN0Iik7dmFyIGUsbj1bXTtmb3IoZSBpbiB0KXQuaGFzT3duUHJvcGVydHkoZSkmJihuW24ubGVuZ3RoXT1lKTtyZXR1cm4gbn0sdW5pcXVlSWQ6ZnVuY3Rpb24odCl7dmFyIGU9Kyt1KyIiO3JldHVybiB0P3QrZTplfSxoYXM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gcy5jYWxsKHQsZSl9LGVhY2g6ZnVuY3Rpb24odCxlLG4pe2lmKG51bGwhPXQpaWYobyYmdC5mb3JFYWNoPT09byl0LmZvckVhY2goZSxuKTtlbHNlIGlmKHQubGVuZ3RoPT09K3QubGVuZ3RoKWZvcih2YXIgcj0wLGk9dC5sZW5ndGg7cjxpO3IrKyllLmNhbGwobix0W3JdLHIsdCk7ZWxzZSBmb3IodmFyIHMgaW4gdCl0aGlzLmhhcyh0LHMpJiZlLmNhbGwobix0W3NdLHMsdCl9LG9uY2U6ZnVuY3Rpb24odCl7dmFyIGUsbj0hMTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbj9lOihuPSEwLGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdD1udWxsLGUpfX19fXZhciBpLG89QXJyYXkucHJvdG90eXBlLmZvckVhY2gscz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLHU9MCxsPW4oKTtpPXtvbjpmdW5jdGlvbih0LGUsbil7cmV0dXJuIGgodGhpcywib24iLHQsW2Usbl0pJiZlPyh0aGlzLl9ldmVudHN8fCh0aGlzLl9ldmVudHM9e30pLCh0aGlzLl9ldmVudHNbdF18fCh0aGlzLl9ldmVudHNbdF09W10pKS5wdXNoKHtjYWxsYmFjazplLGNvbnRleHQ6bixjdHg6bnx8dGhpc30pLHRoaXMpOnRoaXN9LG9uY2U6ZnVuY3Rpb24gdChlLG4scil7aWYoIWgodGhpcywib25jZSIsZSxbbixyXSl8fCFuKXJldHVybiB0aGlzO3ZhciBpPXRoaXMsdD1sLm9uY2UoZnVuY3Rpb24oKXtpLm9mZihlLHQpLG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfSk7cmV0dXJuIHQuX2NhbGxiYWNrPW4sdGhpcy5vbihlLHQscil9LG9mZjpmdW5jdGlvbih0LGUsbil7dmFyIHIsaSxvLHMsYSx1LGMsZjtpZighdGhpcy5fZXZlbnRzfHwhaCh0aGlzLCJvZmYiLHQsW2Usbl0pKXJldHVybiB0aGlzO2lmKCF0JiYhZSYmIW4pcmV0dXJuIHRoaXMuX2V2ZW50cz17fSx0aGlzO2ZvcihzPXQ/W3RdOmwua2V5cyh0aGlzLl9ldmVudHMpLGE9MCx1PXMubGVuZ3RoO2E8dTthKyspaWYodD1zW2FdLG89dGhpcy5fZXZlbnRzW3RdKXtpZih0aGlzLl9ldmVudHNbdF09cj1bXSxlfHxuKWZvcihjPTAsZj1vLmxlbmd0aDtjPGY7YysrKWk9b1tjXSwoZSYmZSE9PWkuY2FsbGJhY2smJmUhPT1pLmNhbGxiYWNrLl9jYWxsYmFja3x8biYmbiE9PWkuY29udGV4dCkmJnIucHVzaChpKTtyLmxlbmd0aHx8ZGVsZXRlIHRoaXMuX2V2ZW50c1t0XX1yZXR1cm4gdGhpc30sdHJpZ2dlcjpmdW5jdGlvbih0KXtpZighdGhpcy5fZXZlbnRzKXJldHVybiB0aGlzO3ZhciBlPWEuY2FsbChhcmd1bWVudHMsMSk7aWYoIWgodGhpcywidHJpZ2dlciIsdCxlKSlyZXR1cm4gdGhpczt2YXIgbj10aGlzLl9ldmVudHNbdF0scj10aGlzLl9ldmVudHMuYWxsO3JldHVybiBuJiZmKG4sZSksciYmZihyLGFyZ3VtZW50cyksdGhpc30sc3RvcExpc3RlbmluZzpmdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcy5fbGlzdGVuZXJzO2lmKCFpKXJldHVybiB0aGlzO3ZhciBvPSFlJiYhbjsib2JqZWN0Ij09PSgidW5kZWZpbmVkIj09dHlwZW9mIGU/InVuZGVmaW5lZCI6cihlKSkmJihuPXRoaXMpLHQmJigoaT17fSlbdC5fbGlzdGVuZXJJZF09dCk7Zm9yKHZhciBzIGluIGkpaVtzXS5vZmYoZSxuLHRoaXMpLG8mJmRlbGV0ZSB0aGlzLl9saXN0ZW5lcnNbc107cmV0dXJuIHRoaXN9fTt2YXIgYz0vXHMrLyxoPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKCFuKXJldHVybiEwO2lmKCJvYmplY3QiPT09KCJ1bmRlZmluZWQiPT10eXBlb2Ygbj8idW5kZWZpbmVkIjpyKG4pKSl7Zm9yKHZhciBvIGluIG4pdFtlXS5hcHBseSh0LFtvLG5bb11dLmNvbmNhdChpKSk7cmV0dXJuITF9aWYoYy50ZXN0KG4pKXtmb3IodmFyIHM9bi5zcGxpdChjKSxhPTAsdT1zLmxlbmd0aDthPHU7YSsrKXRbZV0uYXBwbHkodCxbc1thXV0uY29uY2F0KGkpKTtyZXR1cm4hMX1yZXR1cm4hMH0sZj1mdW5jdGlvbih0LGUpe3ZhciBuLHI9LTEsaT10Lmxlbmd0aCxvPWVbMF0scz1lWzFdLGE9ZVsyXTtzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpmb3IoOysrcjxpOykobj10W3JdKS5jYWxsYmFjay5jYWxsKG4uY3R4KTtyZXR1cm47Y2FzZSAxOmZvcig7KytyPGk7KShuPXRbcl0pLmNhbGxiYWNrLmNhbGwobi5jdHgsbyk7cmV0dXJuO2Nhc2UgMjpmb3IoOysrcjxpOykobj10W3JdKS5jYWxsYmFjay5jYWxsKG4uY3R4LG8scyk7cmV0dXJuO2Nhc2UgMzpmb3IoOysrcjxpOykobj10W3JdKS5jYWxsYmFjay5jYWxsKG4uY3R4LG8scyxhKTtyZXR1cm47ZGVmYXVsdDpmb3IoOysrcjxpOykobj10W3JdKS5jYWxsYmFjay5hcHBseShuLmN0eCxlKX19LGQ9e2xpc3RlblRvOiJvbiIsbGlzdGVuVG9PbmNlOiJvbmNlIn07bC5lYWNoKGQsZnVuY3Rpb24odCxlKXtpW2VdPWZ1bmN0aW9uKGUsbixpKXtyZXR1cm4odGhpcy5fbGlzdGVuZXJzfHwodGhpcy5fbGlzdGVuZXJzPXt9KSlbZS5fbGlzdGVuZXJJZHx8KGUuX2xpc3RlbmVySWQ9bC51bmlxdWVJZCgibCIpKV09ZSwib2JqZWN0Ij09PSgidW5kZWZpbmVkIj09dHlwZW9mIG4/InVuZGVmaW5lZCI6cihuKSkmJihpPXRoaXMpLGVbdF0obixpLHRoaXMpLHRoaXN9fSksaS5iaW5kPWkub24saS51bmJpbmQ9aS5vZmYsaS5taXhpbj1mdW5jdGlvbih0KXt2YXIgZT1bIm9uIiwib25jZSIsIm9mZiIsInRyaWdnZXIiLCJzdG9wTGlzdGVuaW5nIiwibGlzdGVuVG8iLCJsaXN0ZW5Ub09uY2UiLCJiaW5kIiwidW5iaW5kIl07cmV0dXJuIGwuZWFjaChlLGZ1bmN0aW9uKGUpe3RbZV09dGhpc1tlXX0sdGhpcyksdH0sInVuZGVmaW5lZCIhPXR5cGVvZiB0JiZ0LmV4cG9ydHMmJihlPXQuZXhwb3J0cz1pKSxlLkJhY2tib25lRXZlbnRzPWl9KHZvaWQgMCl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxMSksaT1uKDE1KSxvPW4oMTApLHM9big0MiksYT1bXSx1PWEuc2xpY2UsbD1mdW5jdGlvbih0LGUpe2V8fChlPXt9KSxlLm1vZGVsJiYodGhpcy5tb2RlbD1lLm1vZGVsKSx2b2lkIDAhPT1lLmNvbXBhcmF0b3ImJih0aGlzLmNvbXBhcmF0b3I9ZS5jb21wYXJhdG9yKSx0aGlzLl9yZXNldCgpLHRoaXMuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdCYmdGhpcy5yZXNldCh0LG8uZXh0ZW5kKHtzaWxlbnQ6ITB9LGUpKX0sYz17YWRkOiEwLHJlbW92ZTohMCxtZXJnZTohMH0saD17YWRkOiEwLHJlbW92ZTohMX07by5leHRlbmQobC5wcm90b3R5cGUscix7bW9kZWw6cyxpbml0aWFsaXplOmZ1bmN0aW9uKCl7fSx0b0pTT046ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvSlNPTih0KX0pfSxzeW5jOmZ1bmN0aW9uKCl7cmV0dXJuIEJhY2tib25lLnN5bmMuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxhZGQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5zZXQodCxvLmV4dGVuZCh7bWVyZ2U6ITF9LGUsaCkpfSxyZW1vdmU6ZnVuY3Rpb24odCxlKXt2YXIgbj0hby5pc0FycmF5KHQpO3Q9bj9bdF06by5jbG9uZSh0KSxlfHwoZT17fSk7Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7cisrKXt2YXIgcz10W3JdPXRoaXMuZ2V0KHRbcl0pO2lmKHMpe3ZhciBhPXRoaXMubW9kZWxJZChzLmF0dHJpYnV0ZXMpO251bGwhPWEmJmRlbGV0ZSB0aGlzLl9ieUlkW2FdLGRlbGV0ZSB0aGlzLl9ieUlkW3MuY2lkXTt2YXIgdT10aGlzLmluZGV4T2Yocyk7dGhpcy5tb2RlbHMuc3BsaWNlKHUsMSksdGhpcy5sZW5ndGgtLSxlLnNpbGVudHx8KGUuaW5kZXg9dSxzLnRyaWdnZXIoInJlbW92ZSIscyx0aGlzLGUpKSx0aGlzLl9yZW1vdmVSZWZlcmVuY2UocyxlKX19cmV0dXJuIG4/dFswXTp0fSxzZXQ6ZnVuY3Rpb24odCxlKXtlPW8uZGVmYXVsdHMoe30sZSxjKSxlLnBhcnNlJiYodD10aGlzLnBhcnNlKHQsZSkpO3ZhciBuPSFvLmlzQXJyYXkodCk7dD1uP3Q/W3RdOltdOnQuc2xpY2UoKTtmb3IodmFyIHIsaSxzLGEsdSxsPWUuYXQsaD10aGlzLmNvbXBhcmF0b3ImJm51bGw9PWwmJmUuc29ydCE9PSExLGY9by5pc1N0cmluZyh0aGlzLmNvbXBhcmF0b3IpP3RoaXMuY29tcGFyYXRvcjpudWxsLGQ9W10sZz1bXSxwPXt9LG09ZS5hZGQsdj1lLm1lcmdlLF89ZS5yZW1vdmUseT0hKGh8fCFtfHwhXykmJltdLGI9MCx4PXQubGVuZ3RoO2I8eDtiKyspe2lmKHM9dFtiXSxhPXRoaXMuZ2V0KHMpKV8mJihwW2EuY2lkXT0hMCksdiYmcyE9PWEmJihzPXRoaXMuX2lzTW9kZWwocyk/cy5hdHRyaWJ1dGVzOnMsZS5wYXJzZSYmKHM9YS5wYXJzZShzLGUpKSxhLnNldChzLGUpLGgmJiF1JiZhLmhhc0NoYW5nZWQoZikmJih1PSEwKSksdFtiXT1hO2Vsc2UgaWYobSl7aWYoaT10W2JdPXRoaXMuX3ByZXBhcmVNb2RlbChzLGUpLCFpKWNvbnRpbnVlO2QucHVzaChpKSx0aGlzLl9hZGRSZWZlcmVuY2UoaSxlKX1pPWF8fGksaSYmKHI9dGhpcy5tb2RlbElkKGkuYXR0cmlidXRlcyksIXl8fCFpLmlzTmV3KCkmJnBbcl18fHkucHVzaChpKSxwW3JdPSEwKX1pZihfKXtmb3IodmFyIGI9MCx4PXRoaXMubGVuZ3RoO2I8eDtiKyspcFsoaT10aGlzLm1vZGVsc1tiXSkuY2lkXXx8Zy5wdXNoKGkpO2cubGVuZ3RoJiZ0aGlzLnJlbW92ZShnLGUpfWlmKGQubGVuZ3RofHx5JiZ5Lmxlbmd0aClpZihoJiYodT0hMCksdGhpcy5sZW5ndGgrPWQubGVuZ3RoLG51bGwhPWwpZm9yKHZhciBiPTAseD1kLmxlbmd0aDtiPHg7YisrKXRoaXMubW9kZWxzLnNwbGljZShsK2IsMCxkW2JdKTtlbHNle3kmJih0aGlzLm1vZGVscy5sZW5ndGg9MCk7Zm9yKHZhciB3PXl8fGQsYj0wLHg9dy5sZW5ndGg7Yjx4O2IrKyl0aGlzLm1vZGVscy5wdXNoKHdbYl0pfWlmKHUmJnRoaXMuc29ydCh7c2lsZW50OiEwfSksIWUuc2lsZW50KXtmb3IodmFyIFM9bnVsbCE9bD9vLmNsb25lKGUpOmUsYj0wLHg9ZC5sZW5ndGg7Yjx4O2IrKyludWxsIT1sJiYoUy5pbmRleD1sK2IpLChpPWRbYl0pLnRyaWdnZXIoImFkZCIsaSx0aGlzLFMpOyh1fHx5JiZ5Lmxlbmd0aCkmJnRoaXMudHJpZ2dlcigic29ydCIsdGhpcyxlKX1yZXR1cm4gbj90WzBdOnR9LHJlc2V0OmZ1bmN0aW9uKHQsZSl7ZXx8KGU9e30pO2Zvcih2YXIgbj0wLHI9dGhpcy5tb2RlbHMubGVuZ3RoO248cjtuKyspdGhpcy5fcmVtb3ZlUmVmZXJlbmNlKHRoaXMubW9kZWxzW25dLGUpO3JldHVybiBlLnByZXZpb3VzTW9kZWxzPXRoaXMubW9kZWxzLHRoaXMuX3Jlc2V0KCksdD10aGlzLmFkZCh0LG8uZXh0ZW5kKHtzaWxlbnQ6ITB9LGUpKSxlLnNpbGVudHx8dGhpcy50cmlnZ2VyKCJyZXNldCIsdGhpcyxlKSx0fSxwdXNoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKHQsby5leHRlbmQoe2F0OnRoaXMubGVuZ3RofSxlKSl9LHBvcDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmF0KHRoaXMubGVuZ3RoLTEpO3JldHVybiB0aGlzLnJlbW92ZShlLHQpLGV9LHVuc2hpZnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hZGQodCxvLmV4dGVuZCh7YXQ6MH0sZSkpfSxzaGlmdDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmF0KDApO3JldHVybiB0aGlzLnJlbW92ZShlLHQpLGV9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHUuYXBwbHkodGhpcy5tb2RlbHMsYXJndW1lbnRzKX0sZ2V0OmZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe3ZhciBlPXRoaXMubW9kZWxJZCh0aGlzLl9pc01vZGVsKHQpP3QuYXR0cmlidXRlczp0KTtyZXR1cm4gdGhpcy5fYnlJZFt0XXx8dGhpcy5fYnlJZFtlXXx8dGhpcy5fYnlJZFt0LmNpZF19fSxhdDpmdW5jdGlvbih0KXtyZXR1cm4gdDwwJiYodCs9dGhpcy5sZW5ndGgpLHRoaXMubW9kZWxzW3RdfSx3aGVyZTpmdW5jdGlvbih0LGUpe3JldHVybiBvLmlzRW1wdHkodCk/ZT92b2lkIDA6W106dGhpc1tlPyJmaW5kIjoiZmlsdGVyIl0oZnVuY3Rpb24oZSl7Zm9yKHZhciBuIGluIHQpaWYodFtuXSE9PWUuZ2V0KG4pKXJldHVybiExO3JldHVybiEwfSl9LGZpbmRXaGVyZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53aGVyZSh0LCEwKX0sc29ydDpmdW5jdGlvbih0KXtpZighdGhpcy5jb21wYXJhdG9yKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNvcnQgYSBzZXQgd2l0aG91dCBhIGNvbXBhcmF0b3IiKTtyZXR1cm4gdHx8KHQ9e30pLG8uaXNTdHJpbmcodGhpcy5jb21wYXJhdG9yKXx8MT09PXRoaXMuY29tcGFyYXRvci5sZW5ndGg/dGhpcy5tb2RlbHM9dGhpcy5zb3J0QnkodGhpcy5jb21wYXJhdG9yLHRoaXMpOnRoaXMubW9kZWxzLnNvcnQoby5iaW5kKHRoaXMuY29tcGFyYXRvcix0aGlzKSksdC5zaWxlbnR8fHRoaXMudHJpZ2dlcigic29ydCIsdGhpcyx0KSx0aGlzfSxwbHVjazpmdW5jdGlvbih0KXtyZXR1cm4gby5pbnZva2UodGhpcy5tb2RlbHMsImdldCIsdCl9LGZldGNoOmZ1bmN0aW9uKHQpe3Q9dD9vLmNsb25lKHQpOnt9LHZvaWQgMD09PXQucGFyc2UmJih0LnBhcnNlPSEwKTt2YXIgZT10LnN1Y2Nlc3Msbj10aGlzO3JldHVybiB0LnN1Y2Nlc3M9ZnVuY3Rpb24ocil7blt0LnJlc2V0PyJyZXNldCI6InNldCJdKHIsdCksZSYmZShuLHIsdCksbi50cmlnZ2VyKCJzeW5jIixuLHIsdCl9LHdyYXBFcnJvcih0aGlzLHQpLHRoaXMuc3luYygicmVhZCIsdGhpcyx0KX0sY3JlYXRlOmZ1bmN0aW9uKHQsZSl7aWYoZT1lP28uY2xvbmUoZSk6e30sISh0PXRoaXMuX3ByZXBhcmVNb2RlbCh0LGUpKSlyZXR1cm4hMTtlLndhaXR8fHRoaXMuYWRkKHQsZSk7dmFyIG49dGhpcyxyPWUuc3VjY2VzcztyZXR1cm4gZS5zdWNjZXNzPWZ1bmN0aW9uKHQsaSl7ZS53YWl0JiZuLmFkZCh0LGUpLHImJnIodCxpLGUpfSx0LnNhdmUobnVsbCxlKSx0fSxwYXJzZTpmdW5jdGlvbih0LGUpe3JldHVybiB0fSxjbG9uZTpmdW5jdGlvbigpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLm1vZGVscyx7bW9kZWw6dGhpcy5tb2RlbCxjb21wYXJhdG9yOnRoaXMuY29tcGFyYXRvcn0pfSxtb2RlbElkOmZ1bmN0aW9uKHQpe3JldHVybiB0W3RoaXMubW9kZWwucHJvdG90eXBlLmlkQXR0cmlidXRlfHwiaWQiXX0sX3Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5sZW5ndGg9MCx0aGlzLm1vZGVscz1bXSx0aGlzLl9ieUlkPXt9fSxfcHJlcGFyZU1vZGVsOmZ1bmN0aW9uKHQsZSl7aWYodGhpcy5faXNNb2RlbCh0KSlyZXR1cm4gdC5jb2xsZWN0aW9ufHwodC5jb2xsZWN0aW9uPXRoaXMpLHQ7ZT1lP28uY2xvbmUoZSk6e30sZS5jb2xsZWN0aW9uPXRoaXM7dmFyIG49bmV3IHRoaXMubW9kZWwodCxlKTtyZXR1cm4gbi52YWxpZGF0aW9uRXJyb3I/KHRoaXMudHJpZ2dlcigiaW52YWxpZCIsdGhpcyxuLnZhbGlkYXRpb25FcnJvcixlKSwhMSk6bn0sX2lzTW9kZWw6ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBzfSxfYWRkUmVmZXJlbmNlOmZ1bmN0aW9uKHQsZSl7dGhpcy5fYnlJZFt0LmNpZF09dDt2YXIgbj10aGlzLm1vZGVsSWQodC5hdHRyaWJ1dGVzKTtudWxsIT1uJiYodGhpcy5fYnlJZFtuXT10KSx0Lm9uKCJhbGwiLHRoaXMuX29uTW9kZWxFdmVudCx0aGlzKX0sX3JlbW92ZVJlZmVyZW5jZTpmdW5jdGlvbih0LGUpe3RoaXM9PT10LmNvbGxlY3Rpb24mJmRlbGV0ZSB0LmNvbGxlY3Rpb24sdC5vZmYoImFsbCIsdGhpcy5fb25Nb2RlbEV2ZW50LHRoaXMpfSxfb25Nb2RlbEV2ZW50OmZ1bmN0aW9uKHQsZSxuLHIpe2lmKCJhZGQiIT09dCYmInJlbW92ZSIhPT10fHxuPT09dGhpcyl7aWYoImRlc3Ryb3kiPT09dCYmdGhpcy5yZW1vdmUoZSxyKSwiY2hhbmdlIj09PXQpe3ZhciBpPXRoaXMubW9kZWxJZChlLnByZXZpb3VzQXR0cmlidXRlcygpKSxvPXRoaXMubW9kZWxJZChlLmF0dHJpYnV0ZXMpO2khPT1vJiYobnVsbCE9aSYmZGVsZXRlIHRoaXMuX2J5SWRbaV0sbnVsbCE9byYmKHRoaXMuX2J5SWRbb109ZSkpfXRoaXMudHJpZ2dlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0pO3ZhciBmPVsiZm9yRWFjaCIsImVhY2giLCJtYXAiLCJjb2xsZWN0IiwicmVkdWNlIiwiZm9sZGwiLCJpbmplY3QiLCJyZWR1Y2VSaWdodCIsImZvbGRyIiwiZmluZCIsImRldGVjdCIsImZpbHRlciIsInNlbGVjdCIsInJlamVjdCIsImV2ZXJ5IiwiYWxsIiwic29tZSIsImFueSIsImluY2x1ZGUiLCJjb250YWlucyIsImludm9rZSIsIm1heCIsIm1pbiIsInRvQXJyYXkiLCJzaXplIiwiZmlyc3QiLCJoZWFkIiwidGFrZSIsImluaXRpYWwiLCJyZXN0IiwidGFpbCIsImRyb3AiLCJsYXN0Iiwid2l0aG91dCIsImRpZmZlcmVuY2UiLCJpbmRleE9mIiwic2h1ZmZsZSIsImxhc3RJbmRleE9mIiwiaXNFbXB0eSIsImNoYWluIiwic2FtcGxlIiwicGFydGl0aW9uIl07by5lYWNoKGYsZnVuY3Rpb24odCl7b1t0XSYmKGwucHJvdG90eXBlW3RdPWZ1bmN0aW9uKCl7dmFyIGU9dS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIGUudW5zaGlmdCh0aGlzLm1vZGVscyksb1t0XS5hcHBseShvLGUpfSl9KTt2YXIgZD1bImdyb3VwQnkiLCJjb3VudEJ5Iiwic29ydEJ5IiwiaW5kZXhCeSJdO28uZWFjaChkLGZ1bmN0aW9uKHQpe29bdF0mJihsLnByb3RvdHlwZVt0XT1mdW5jdGlvbihlLG4pe3ZhciByPW8uaXNGdW5jdGlvbihlKT9lOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldChlKX07cmV0dXJuIG9bdF0odGhpcy5tb2RlbHMscixuKX0pfSksbC5leHRlbmQ9aSx0LmV4cG9ydHM9bH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxMyksbz1yKGkpLHM9bigyNSksYT1yKHMpLHU9dm9pZCAwO2UuZGVmYXVsdD11PXtwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1bXTtpZigiW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKXZhciBuPXQ7ZWxzZSB2YXIgbj10LnNwbGl0KCJcbiIpO2lmKG5bMF0uc2xpY2UoMCw2KT09PSExKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBDTFVTVEFMIEhlYWRlciIpO2Zvcih2YXIgcj0wLGk9MSxvPTA7cjxuLmxlbmd0aDspe3IrKzt2YXIgcz1uW3JdO2lmKG51bGwhPXMmJjAhPT1zLmxlbmd0aClpZigwIT09cy50cmltKCkubGVuZ3RoKXtpZighYS5kZWZhdWx0LmNvbnRhaW5zKHMsIioiKSl7MT09PWkmJihvPTAsaT0wKTt2YXIgdT0vXig/OlxzKikoXFMrKSg/OlxzKykoXFMrKSg/OlxzKikoXGQqKSg/OlxzKnwkKS9nLGw9dS5leGVjKHMpO2lmKG51bGwhPWwpe3ZhciBjPWxbMV0udHJpbSgpLGg9bFsyXS50cmltKCk7aWYobz49ZS5sZW5ndGgpe3ZhciBmPWEuZGVmYXVsdC5nZXRNZXRhKGMudHJpbSgpKTtjPWYubmFtZTt2YXIgZD1uZXcgYS5kZWZhdWx0Lm1vZGVsKGgsYyxvKTtkLmlkcz1mLmlkc3x8e30sZC5kZXRhaWxzPWYuZGV0YWlsc3x8e307dmFyIGc9T2JqZWN0LmtleXMoZC5pZHMpO2cubGVuZ3RoPjAmJihkLmlkPWQuaWRzW2dbMF1dKSxlLnB1c2goZCl9ZWxzZSBlW29dLnNlcSs9aDtvKyt9ZWxzZSBjb25zb2xlLmxvZygicGFyc2UgZXJyb3IiLHMpfX1lbHNlIGk9MTtlbHNlIGk9MX1yZXR1cm4gZT1lLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5zZXEuc2VhcmNoKC9bOi4qXS9pKT09PS0xJiZ0Lm5hbWUuc2VhcmNoKC9bOi4qXS9pKT09PS0xfSl9fSxvLmRlZmF1bHQubWl4aW4odSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMjUpLG89cihpKSxzPW4oNjQpLGE9cihzKSx1PW4oMTMpLGw9cih1KSxjPXZvaWQgMDtlLmRlZmF1bHQ9Yz17Z2V0TWV0YTpvLmRlZmF1bHQuZ2V0TWV0YSxleHRlbmQ6ZnVuY3Rpb24odCl7dmFyIGU9KDAsYS5kZWZhdWx0KShjKTtyZXR1cm4gYy5nZXRNZXRhPXQsZX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9W107aWYoIXR8fDA9PT10Lmxlbmd0aClyZXR1cm5bXTsiW29iamVjdCBBcnJheV0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpJiYodD10LnNwbGl0KCJcbiIpKTtmb3IodmFyIG49YyxyPW4uZ2V0TWV0YSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBzPXRbaV07aWYoIj4iPT09c1swXXx8IjsiPT09c1swXSl7dmFyIGE9cy5zbGljZSgxKS50cmltKCksdT1yKGEudHJpbSgpKTthPXUubmFtZTt2YXIgbD11LmlkfHxlLmxlbmd0aCxoPW5ldyBvLmRlZmF1bHQubW9kZWwoIiIsdS5uYW1lLGwpO2guaWRzPXUuaWRzfHx7fSxoLmRldGFpbHM9dS5kZXRhaWxzfHx7fSxlLnB1c2goaCl9ZWxzZSBoLnNlcSs9c31yZXR1cm4gZX0sd3JpdGU6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49IiIscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgaT10W3JdO251bGwhPWUmJihpPWUoaSkpLG4rPSI+IitpLm5hbWUrIlxuIixuKz1vLmRlZmF1bHQuc3BsaXROQ2hhcnMoaS5zZXEsODApLmpvaW4oIlxuIiksbis9IlxuIn1yZXR1cm4gbn19LGwuZGVmYXVsdC5taXhpbihjKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxMyksbz1yKGkpLHM9big0MyksYT1yKHMpLHU9big1OSksbD1yKHUpLGM9ZnVuY3Rpb24oKXt9O28uZGVmYXVsdC5taXhpbihjKSxlLmRlZmF1bHQ9YyxjLnBhcnNlTGluZXM9ZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCgiXG4iKSxuPXt9LHI9W107bi50eXBlPWMuX2d1ZXNzVHlwZShlKTt2YXIgaT0wO2lmKCJqYWx2aWV3Ij09PW4udHlwZSl7dmFyIG89bC5kZWZhdWx0LnJlYWRIZWFkZXIoZSk7aT1vLm9mZnNldCxuLmNvbG9ycz1vLmNvbG9ycyxyPW8uZmVhdHVyZXN9Zm9yKHZhciBzPWk7czxlLmxlbmd0aDtzKyspe3ZhciBhPWVbc107MCE9PWEubGVuZ3RoJiYiIyIhPT1hWzBdJiYoYT1jLnBhcnNlTGluZShhKSx2b2lkIDAhPT1hJiZyLnB1c2goYSkpfXJldHVybntmZWF0dXJlczpyLGNvbmZpZzpufX0sYy5fZ3Vlc3NUeXBlPWZ1bmN0aW9uKHQpe3JldHVybiIjI2dmZi12ZXJzaW9uIDMiPT09dFswXS5zdWJzdHJpbmcoMCwxNSk/ImdmZjMiOnRbMF0uaW5kZXhPZigiIyIpPDAmJjI9PT10WzBdLnNwbGl0KCJcdCIpLmxlbmd0aD8iamFsdmlldyI6ImdmZjMifSxjLnBhcnNlU2Vxcz1jLnBhcnNlPWZ1bmN0aW9uKHQpe3ZhciBlPWMucGFyc2VMaW5lcyh0KSxuPXt9O3JldHVybiBlLmZlYXR1cmVzLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9dC5zZXFuYW1lO3ZvaWQgMD09PW5bZV0mJihuW2VdPVtdKSxkZWxldGUgdC5zZXFuYW1lLG5bZV0ucHVzaCh0KX0pLGRlbGV0ZSBlLmZlYXR1cmVzLGUuc2Vxcz1uLGV9LGMucGFyc2VMaW5lPWZ1bmN0aW9uKHQpe3ZhciBlPXt9LG49dC5zcGxpdCgvXHMrLyk7aWYoMSE9PW4ubGVuZ3RoKXtlLnNlcW5hbWU9blswXSxlLnNvdXJjZT1uWzFdLGUuZmVhdHVyZT1uWzJdLGUuc3RhcnQ9cGFyc2VJbnQoblszXSksZS5lbmQ9cGFyc2VJbnQobls0XSksZS5zY29yZT1uWzVdLGUuc3RyYW5kPW5bNl0sZS5mcmFtZT1uWzddO3ZhciByPW4uc2xpY2UoOCkuam9pbigiICIpO3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgZVt0XSYmKGVbdF09ZVt0XS50cmltKCkpLCIuIj09PWVbdF0mJihlW3RdPXZvaWQgMCl9KSxlLnNjb3JlJiYoZS5zY29yZT1wYXJzZUZsb2F0KGUuc2NvcmUpKSxlLmZyYW1lJiYoZS5mcmFtZT1wYXJzZUludChlLmZyYW1lKSksZS5hdHRyaWJ1dGVzPWEuZGVmYXVsdC5leHRyYWN0S2V5cyhyKSxlfX0sYy5leHBvcnRMaW5lPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdC5rZXlzKHQuYXR0cmlidXRlcykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlKyI9Iit0LmF0dHJpYnV0ZXNbZV19KS5qb2luKCI7Iiksbj1bdC5zZXFuYW1lLHQuc291cmNlLHQuZmVhdHVyZSx0LnN0YXJ0LHQuZW5kLHQuc2NvcmUsdC5zdHJhbmQsdC5mcmFtZSxlXTtyZXR1cm4gbj1uLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dD8iLiI6dH0pLG4uam9pbigiXHQiKX0sYy5leHBvcnRMaW5lcz1mdW5jdGlvbih0KXtyZXR1cm4iIyNnZmYtdmVyc2lvbiAzXG4iK3QubWFwKGMuZXhwb3J0TGluZSkuam9pbigiXG4iKX0sYy5leHBvcnRTZXFzPWMuZXhwb3J0PWZ1bmN0aW9uKHQpe3ZhciBlPVtdLG49ZnVuY3Rpb24odCl7dC5zZXFuYW1lPXIsZS5wdXNoKHQpfTtmb3IodmFyIHIgaW4gdCl0W3JdLmZvckVhY2gobik7cmV0dXJuIGMuZXhwb3J0TGluZXMoZSl9LGMudXRpbHM9YS5kZWZhdWx0fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1uKDQzKSxpPXt9O2UuZGVmYXVsdD1pLGkucmVhZEhlYWRlcj1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj17fSxyPTAsbz1bXTtyPHQubGVuZ3RoO3IrKyl7dmFyIHM9dFtyXTtpZihzLmluZGV4T2YoIiMiKT49MClicmVhazt2YXIgYT1zLnNwbGl0KC9cdC8pLHU9YVswXS50cmltKCk7aWYoIkdGRiI9PT11KWJyZWFrO2lmKDI9PT1hLmxlbmd0aClpZigic3RhcnRncm91cCI9PT11KWU9YVsxXS50cmltKCk7ZWxzZXtpZigiZW5kZ3JvdXAiPT09dSl7ZT0iIjtjb250aW51ZX1uW2FbMF1dPWkucGFyc2VDb2xvcihhWzFdKX1lbHNlIGlmKGEubGVuZ3RoPj01KXt2YXIgbD1pLnBhcnNlTGluZShhKTtlJiYobC5hdHRyaWJ1dGVzLlBhcmVudD1lKSxvLnB1c2gobCl9fXJldHVybntvZmZzZXQ6cixjb2xvcnM6bixmZWF0dXJlczpvfX0saS5wYXJzZUNvbG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0LmluZGV4T2YoIiwiKT49MD8oMCxyLnJnYlRvSGV4KSh0LnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUludCh0KX0pKTo2PT09dC5sZW5ndGgmJnBhcnNlSW50KHQuY2hhckF0KDApLDE2KTw9MTYmJiJiaXNxdWUiIT09dD8iIyIrdDp0fSxpLnBhcnNlTGluZT1mdW5jdGlvbih0KXt2YXIgZT17YXR0cmlidXRlczp7fX07cmV0dXJuIGUuYXR0cmlidXRlcy5OYW1lPXRbMF0udHJpbSgpLGUuc2VxbmFtZT10WzFdLnRyaW0oKSxlLnN0YXJ0PXBhcnNlSW50KHRbM10pLGUuZW5kPXBhcnNlSW50KHRbNF0pLGUuZmVhdHVyZT10WzVdLnRyaW0oKSwiSURfTk9UX1NQRUNJRklFRCI9PT1lLnNlcW5hbWUmJihlLnNlcW5hbWU9dFsyXS50cmltKCkpLGV9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fXZhciBpPW4oMTMpLG89cihpKSxzPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IhPXQ/bmV3IHQoZSk6KHRoaXMubWF0cml4PXt9LHRoaXMucGFyc2luZ09yZGVyPVtdLHZvaWQgMCE9ZSYmdGhpcy5wYXJzZShlKSx0aGlzKX07by5kZWZhdWx0Lm1peGluKHMpLHQuZXhwb3J0cz1zLHMucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKHQpe3JldHVybiB0LnNwbGl0KCJcbiIpLmZvckVhY2goZnVuY3Rpb24odCl7dGhpcy5wYXJzZUxpbmUodCl9LmJpbmQodGhpcykpLHRoaXMuYnVpbGRNYXRyaXgoKSx0aGlzLm1hdHJpeH0scy5yZWFkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKG5ldyBzKS5yZWFkKHQsZSl9LHMucGFyc2U9ZnVuY3Rpb24odCl7cmV0dXJuKG5ldyBzKS5wYXJzZSh0KX0scy5wcm90b3R5cGUucGFyc2VMaW5lPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY2hhckF0KDApO2lmKCIjIiE9PWUpe3RoaXMucGFyc2luZ09yZGVyLnB1c2goZSk7Zm9yKHZhciBuPXQuc3Vic3RyaW5nKDEpLHI9bi5zcGxpdCgvXHMrLykuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aD4wfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUludCh0KX0pLGk9e30sbz0wO288ci5sZW5ndGg7bysrKWlbdGhpcy5wYXJzaW5nT3JkZXJbb11dPXJbb107dGhpcy5tYXRyaXhbZV09aX19LHMucHJvdG90eXBlLmV4cG9ydD1mdW5jdGlvbigpe3JldHVybiBzLmV4cG9ydCh0aGlzLm1hdHJpeCl9LHMuZXhwb3J0PWZ1bmN0aW9uKHQpe3ZhciBlPVtdLG49MTsibWF0cml4ImluIHQmJih0PXQubWF0cml4KTtmb3IodmFyIHIgaW4gdCl7Zm9yKHZhciBpPXIsbz1PYmplY3Qua2V5cyh0W3JdKSxzPTA7czxuO3MrKylpKz0iXHQiK3Rbcl1bb1tzXV07ZS5wdXNoKGkpLG4rK31yZXR1cm4gZS5qb2luKCJcbiIpfSxzLnByb3RvdHlwZS5idWlsZE1hdHJpeD1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnBhcnNpbmdPcmRlci5sZW5ndGgtMTt0Pj0wO3QtLSl7dmFyIGU9dGhpcy5wYXJzaW5nT3JkZXJbdF0sbj10aGlzLm1hdHJpeFtlXTtmb3IodmFyIHIgaW4gbil0aGlzLm1hdHJpeFtyXVtlXT1uW3JdfX19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBlPVtdLG49e30saT10LnNwbGl0KC9ccyooO3xcKHxcKXxcW3xcXXwsfDp8PSlccyovKSxvPTA7bzxpLmxlbmd0aDtvKyspe3ZhciBzPWlbb10sYT12b2lkIDA7c3dpdGNoKHMpe2Nhc2UiKCI6YT17fSxuLmNoaWxkcmVuPVthXSxlLnB1c2gobiksbj1hO2JyZWFrO2Nhc2UiLCI6YT17fSxlW2UubGVuZ3RoLTFdLmNoaWxkcmVuLnB1c2goYSksbj1hO2JyZWFrO2Nhc2UiKSI6bj1lLnBvcCgpO2JyZWFrO2Nhc2UiOiI6YnJlYWs7ZGVmYXVsdDp2YXIgdT1pW28tMV07aWYoIikiPT11fHwiKCI9PXV8fCIsIj09dSluLm5hbWU9cztlbHNlIGlmKCI6Ij09dSkidW5kZWZpbmVkIj09dHlwZW9mIHM/InVuZGVmaW5lZCI6cihzKSxpc05hTihzKXx8KG4uYnJhbmNoX2xlbmd0aD1wYXJzZUZsb2F0KHMpKTtlbHNlIGlmKCI9Ij09dSl7dmFyIGw9aVtvLTJdO3N3aXRjaChsKXtjYXNlIkQiOm4uZHVwbGljYXRpb249czticmVhaztjYXNlIkciOm4uZ2VuZV9pZD1zO2JyZWFrO2Nhc2UiVCI6bi50YXhvbl9pZD1zfX19fXJldHVybiBufU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH07ZS5kZWZhdWx0PW59LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucGFyc2VOaHg9ZS5wYXJzZT12b2lkIDA7dmFyIGk9big2Myksbz1yKGkpLHM9big2MSksYT1yKHMpLHU9e307dS5wYXJzZT1vLmRlZmF1bHQsdS5wYXJzZU5oeD1hLmRlZmF1bHQsZS5kZWZhdWx0PXUsZS5wYXJzZT1vLmRlZmF1bHQsZS5wYXJzZU5oeD1hLmRlZmF1bHR9LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBlPVtdLG49e30scj10LnNwbGl0KC9ccyooO3xcKHxcKXwsfDopXHMqLyksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbz1yW2ldLHM9dm9pZCAwO3N3aXRjaChvKXtjYXNlIigiOnM9e30sbi5jaGlsZHJlbj1bc10sZS5wdXNoKG4pLG49czticmVhaztjYXNlIiwiOnM9e30sZVtlLmxlbmd0aC0xXS5jaGlsZHJlbi5wdXNoKHMpLG49czticmVhaztjYXNlIikiOm49ZS5wb3AoKTticmVhaztjYXNlIjoiOmJyZWFrO2RlZmF1bHQ6dmFyIGE9cltpLTFdOyIpIj09YXx8IigiPT1hfHwiLCI9PWE/bi5uYW1lPW86IjoiPT1hJiYobi5icmFuY2hfbGVuZ3RoPXBhcnNlRmxvYXQobykpfX1yZXR1cm4gbn1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW59LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLG4pe2Zvcih2YXIgcj1bXSxpPXQ8ZSxvPW4/aT9lKzE6ZS0xOmUscz10O2k/czxvOnM+bztpP3MrKzpzLS0pci5wdXNoKHMpO3JldHVybiByfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7dD10fHx7fTtmb3IodmFyIGU9bigwLGFyZ3VtZW50cy5sZW5ndGgsITEpLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk9ZVtyXTtpZihhcmd1bWVudHNbaV0pZm9yKHZhciBvPTA7bzxhcmd1bWVudHNbaV0ubGVuZ3RoO28rKyl7dmFyIHM9YXJndW1lbnRzW2ldW29dO2FyZ3VtZW50c1tpXS5oYXNPd25Qcm9wZXJ0eShzKSYmKHRbc109YXJndW1lbnRzW2ldW3NdKX19cmV0dXJuIHR9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3QuZXhwb3J0cy5zZXE9big2Nil9LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7dGhpcy5zZXE9dCx0aGlzLm5hbWU9ZSx0aGlzLmlkPW4sdGhpcy5tZXRhPXt9fX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9big3Myl9LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz17cmVuZGVyX3hfYXhpc19sYWJlbDpmdW5jdGlvbigpe3ZhciB0PSJNb2RlbCBQb3NpdGlvbiI7dGhpcy5kaXNwbGF5X2FsaV9tYXAmJih0PSJBbGlnbm1lbnQgQ29sdW1uIiksdGhpcy5jYWxsZWRfb24uZmluZCgiLmxvZ29feGF4aXMiKS5yZW1vdmUoKSx0aGlzLmNhbGxlZF9vbi5wcmVwZW5kKCc8ZGl2IGNsYXNzPSJsb2dvX3hheGlzIiBjbGFzcz0iY2VudGVyZWQiIHN0eWxlPSJtYXJnaW4tbGVmdDo0MHB4Ij48cCBjbGFzcz0ieGF4aXNfdGV4dCIgc3R5bGU9IndpZHRoOjEwZW07bWFyZ2luOjFlbSBhdXRvIj4nK3QrIjwvcD48L2Rpdj4iKX0scmVuZGVyX3lfYXhpc19sYWJlbDpmdW5jdGlvbigpe3RoaXMuZG9tX2VsZW1lbnQucGFyZW50KCkuYmVmb3JlKCc8Y2FudmFzIGNsYXNzPSJsb2dvX3lheGlzIiBoZWlnaHQ9IicrdGhpcy5vcHRpb25zLmhlaWdodCsnIiB3aWR0aD0iNTUiPjwvY2FudmFzPicpO3ZhciB0PXRoaXMuY2FsbGVkX29uLmZpbmQoIi5sb2dvX3lheGlzIiksZT0oTWF0aC5hYnModGhpcy5kYXRhLm1heF9oZWlnaHQpLGlzTmFOKHRoaXMuZGF0YS5taW5faGVpZ2h0X29icyk/MDpwYXJzZUludCh0aGlzLmRhdGEubWluX2hlaWdodF9vYnMsMTApLG51bGwpLG49IkluZm9ybWF0aW9uIENvbnRlbnQgKGJpdHMpIjtlPXRbMF0uZ2V0Q29udGV4dCgiMmQiKSxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKDU1LDEpLGUubGluZVRvKDQwLDEpLGUubW92ZVRvKDU1LHRoaXMuaW5mb19jb250ZW50X2hlaWdodCksZS5saW5lVG8oNDAsdGhpcy5pbmZvX2NvbnRlbnRfaGVpZ2h0KSxlLm1vdmVUbyg1NSx0aGlzLmluZm9fY29udGVudF9oZWlnaHQvMiksZS5saW5lVG8oNDAsdGhpcy5pbmZvX2NvbnRlbnRfaGVpZ2h0LzIpLGUubGluZVdpZHRoPTEsZS5zdHJva2VTdHlsZT0iIzY2NjY2NiIsZS5zdHJva2UoKSxlLmZpbGxTdHlsZT0iIzY2NjY2NiIsZS50ZXh0QWxpZ249InJpZ2h0IixlLmZvbnQ9ImJvbGQgMTBweCBBcmlhbCIsZS50ZXh0QmFzZWxpbmU9InRvcCIsZS5maWxsVGV4dChwYXJzZUZsb2F0KHRoaXMuZGF0YS5tYXhfaGVpZ2h0KS50b0ZpeGVkKDEpLDM4LDApLGUudGV4dEJhc2VsaW5lPSJtaWRkbGUiLGUuZmlsbFRleHQocGFyc2VGbG9hdCh0aGlzLmRhdGEubWF4X2hlaWdodC8yKS50b0ZpeGVkKDEpLDM4LHRoaXMuaW5mb19jb250ZW50X2hlaWdodC8yKSxlLmZpbGxUZXh0KCIwIiwzOCx0aGlzLmluZm9fY29udGVudF9oZWlnaHQpLCJzY29yZSI9PT10aGlzLmRhdGEuaGVpZ2h0X2NhbGMmJihuPSJTY29yZSAoYml0cykiKSxlLnNhdmUoKSxlLnRyYW5zbGF0ZSg1LHRoaXMuaGVpZ2h0LzItMjApLGUucm90YXRlKC1NYXRoLlBJLzIpLGUudGV4dEFsaWduPSJjZW50ZXIiLGUuZm9udD0ibm9ybWFsIDEycHggQXJpYWwiLGUuZmlsbFRleHQobiwxLDApLGUucmVzdG9yZSgpLGUuZmlsbFRleHQoIm9jY3VwYW5jeSIsNTUsdGhpcy5pbmZvX2NvbnRlbnRfaGVpZ2h0KzcpLHRoaXMuc2hvd19pbnNlcnRzJiYoZS5maWxsVGV4dCgiaW5zLiBwcm9iLiIsNTAsMjgwKSxlLmZpbGxUZXh0KCJpbnMuIGxlbi4iLDQ2LDI5NikpfX19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3ZhciBuPW51bGw7dC5leHBvcnRzPWZ1bmN0aW9uKCl7aWYoIW4pe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO249ISghdC5nZXRDb250ZXh0fHwhdC5nZXRDb250ZXh0KCIyZCIpKX1yZXR1cm4gbn19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz17QToiI0ZGOTk2NiIsQzoiIzAwOTk5OSIsRDoiI0ZGMDAwMCIsRToiI0NDMDAzMyIsRjoiIzAwRkYwMCIsRzoiI2YyZjIwYyIsSDoiIzY2MDAzMyIsSToiI0NDOTkzMyIsSzoiIzY2MzMwMCIsTDoiI0ZGOTkzMyIsTToiI0NDOTlDQyIsTjoiIzMzNjY2NiIsUDoiIzAwOTlGRiIsUToiIzY2NjZDQyIsUjoiIzk5MDAwMCIsUzoiIzAwMDBGRiIsVDoiIzAwRkZGRiIsVjoiI0ZGQ0MzMyIsVzoiIzY2Q0M2NiIsWToiIzAwNjYwMCJ9fSxmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9e0E6IiNjYmY3NTEiLEM6IiM1ZWMwY2MiLEc6IiNmZmRmNTkiLFQ6IiNiNTFmMTYiLFU6IiNiNTFmMTYifX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDUpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7dC5maW5kKCIubG9nb19zZXR0aW5nc19zd2l0Y2gsIC5sb2dvX3NldHRpbmdzIC5jbG9zZSIpLm9uKCJjbGljayIsZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHIoIi5sb2dvX3NldHRpbmdzIikudG9nZ2xlKCl9KSx0LmZpbmQoIi5sb2dvX3Jlc2V0Iikub24oImNsaWNrIixmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksZS5jaGFuZ2Vab29tKHt0YXJnZXQ6ZS5kZWZhdWx0X3pvb219KX0pLHQuZmluZCgiLmxvZ29fY2hhbmdlIikub24oImNsaWNrIixmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCl9KSx0LmZpbmQoIi5sb2dvX3pvb21pbiIpLm9uKCJjbGljayIsZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLGUuY2hhbmdlWm9vbSh7ZGlzdGFuY2U6LjEsZGlyZWN0aW9uOiIrIn0pfSksdC5maW5kKCIubG9nb196b29tb3V0Iikub24oImNsaWNrIixmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksZS5jaGFuZ2Vab29tKHtkaXN0YW5jZTouMSxkaXJlY3Rpb246Ii0ifSl9KSx0LmZpbmQoIi5sb2dvX3NjYWxlIikub24oImNoYW5nZSIsZnVuY3Rpb24odCl7ZS50b2dnbGVTY2FsZSh0aGlzLnZhbHVlKX0pLHQuZmluZCgiLmxvZ29fY29sb3IiKS5vbigiY2hhbmdlIixmdW5jdGlvbih0KXtlLnRvZ2dsZUNvbG9yc2NoZW1lKHRoaXMudmFsdWUpfSksdC5maW5kKCIubG9nb19hbGlfbWFwIikub24oImNoYW5nZSIsZnVuY3Rpb24odCl7ZS50b2dnbGVBbGlNYXAodGhpcy52YWx1ZSl9KSx0LmZpbmQoIi5sb2dvX3Bvc2l0aW9uIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXt0aGlzLnZhbHVlLm1hdGNoKC9eXGQrJC9tKSYmZS5zY3JvbGxUb0NvbHVtbih0aGlzLnZhbHVlLDEpfSksbi5vbigiZGJsY2xpY2siLGZ1bmN0aW9uKG4pe2NvbnNvbGUubG9nKCJkYmxjbGljayIsZSksb2Zmc2V0PWUubG9nb19ncmFwaGljLm9mZnNldCgpLHg9cGFyc2VJbnQobi5wYWdlWC1vZmZzZXQubGVmdCwxMCksd2luZG93X3Bvc2l0aW9uPW4ucGFnZVgtdC5wYXJlbnQoKS5vZmZzZXQoKS5sZWZ0LGNvbD1lLmNvbHVtbkZyb21Db29yZGluYXRlcyh4KSxjb25zb2xlLmxvZygiY29sIixjb2wpLGN1cnJlbnQ9ZS56b29tLGN1cnJlbnQ8MT9lLmNoYW5nZVpvb20oe3RhcmdldDoxLG9mZnNldDp3aW5kb3dfcG9zaXRpb24sY29sdW1uOmNvbH0pOmUuY2hhbmdlWm9vbSh7dGFyZ2V0Oi4zLG9mZnNldDp3aW5kb3dfcG9zaXRpb24sY29sdW1uOmNvbH0pfSkscihkb2N1bWVudCkub24odC5hdHRyKCJpZCIpKyIuc2Nyb2xsZWRUbyIsZnVuY3Rpb24odCxuLHIsaSl7ZS5yZW5kZXIoe3RhcmdldDpufSl9KSxyKGRvY3VtZW50KS5vbigia2V5ZG93biIsZnVuY3Rpb24odCl7dC5jdHJsS2V5fHwoNjEhPT10LndoaWNoJiYxMDchPT10LndoaWNofHwoem9vbSs9LjEsZS5jaGFuZ2Vab29tKHtkaXN0YW5jZTouMSxkaXJlY3Rpb246IisifSkpLDEwOSE9PXQud2hpY2gmJjAhPT10LndoaWNofHwoem9vbS09LjEsZS5jaGFuZ2Vab29tKHtkaXN0YW5jZTouMSxkaXJlY3Rpb246Ii0ifSkpKX0pfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtfPW4oMTApO3ZhciByPW4oNjkpLGk9big3Niksbz1uKDc1KSxzPW4oMiksYT1uKDY4KSx1PW4oNzIpLGw9big3NCksYz1uKDUpO3QuZXhwb3J0cz1zLmV4dGVuZCh7b3B0aW9uczp7eGF4aXM6ITAseWF4aXM6ITAsaGVpZ2h0OjMwMCxjb2x1bW5fd2lkdGg6MzQsZGVidWc6ITAsc2NhbGVfaGVpZ2h0X2VuYWJsZWQ6ITAsc2NhbGVkX21heDohMCx6b29tX2J1dHRvbnM6ITAsY29sb3JzY2hlbWU6ImRlZmF1bHQiLGRhdGE6dm9pZCAwLHN0YXJ0OjEsZW5kOnZvaWQgMCx6b29tOi40LGNvbG9yczp2b2lkIDAsZGl2aWRlcjohMSxzaG93X3Byb2JzOiExLGRpdmlkZXJfc3RlcDo1LHNob3dfZGl2aWRlcjohMSxib3JkZXI6ITEsc2V0dGluZ3M6ITEsc2Nyb2xsZXI6ITAscG9zaXRpb25NYXJrZXI6ITB9LGxvYWREZWZhdWx0OmZ1bmN0aW9uKHQpe3RoaXMuZGF0YT10LmRhdGEsdGhpcy5kaXNwbGF5X2FsaV9tYXA9MCx0aGlzLmFscGhhYmV0PXQuZGF0YS5hbHBoYWJldHx8ImRuYSIsdGhpcy5zdGFydD10LnN0YXJ0LHRoaXMuem9vbT1wYXJzZUZsb2F0KHQuem9vbSl8fC40LHRoaXMuZGVmYXVsdF96b29tPXRoaXMuem9vbSx0aGlzLmNvbHVtbl93aWR0aD10LmNvbHVtbl93aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodCx0aGlzLmNhbnZhc193aWR0aD01ZTMsdGhpcy5zY2FsZV9oZWlnaHRfZW5hYmxlZD10LnNjYWxlX2hlaWdodF9lbmFibGVkLHRoaXMuc2Nyb2xsbWU9bnVsbCx0aGlzLnByZXZpb3VzX3RhcmdldD0wLHRoaXMucmVuZGVyZWQ9W10sdGhpcy5wcmV2aW91c196b29tPTAsdm9pZCAwPT10aGlzLmRhdGEubWF4X2hlaWdodCYmKHRoaXMuZGF0YS5tYXhfaGVpZ2h0PXRoaXMuY2FsY01heEhlaWdodCh0aGlzLmRhdGEuaGVpZ2h0QXJyKSksdGhpcy5kYXRhLmluc2VydF9wcm9icyYmdGhpcy5kYXRhLmRlbGV0ZV9wcm9ic3x8KHRoaXMub3B0aW9ucy5zaG93X3Byb2JzPSExKSx0LnNjYWxlZF9tYXg/dGhpcy5kYXRhLm1heF9oZWlnaHQ9dC5kYXRhLm1heF9oZWlnaHRfb2JzfHx0aGlzLmRhdGEubWF4X2hlaWdodHx8Mjp0aGlzLmRhdGEubWF4X2hlaWdodD10LmRhdGEubWF4X2hlaWdodF90aGVvcnl8fHRoaXMuZGF0YS5tYXhfaGVpZ2h0fHwyLHQuY29sb3JzP3RoaXMuY2hhbmdlQ29sb3JzKHQuY29sb3JzKToiYWEiPT09dGhpcy5hbHBoYWJldD8odGhpcy5hYV9jb2xvcnM9big3MCksdGhpcy5jaGFuZ2VDb2xvcnModGhpcy5hYV9jb2xvcnMpKToodGhpcy5kbmFfY29sb3JzPW4oNzEpLHRoaXMuY2hhbmdlQ29sb3JzKHRoaXMuZG5hX2NvbG9ycykpOwp9LGluaXRpYWxpemU6ZnVuY3Rpb24odCl7aWYoIXIoKSlyZXR1cm4gdm9pZCh0aGlzLmVsLnRleHRDb250ZW50PSJZb3VyIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IGNhbnZhcy4iKTt2b2lkIDA9PXQuZGF0YSYmKHRoaXMuZWwudGV4dENvbnRlbnQ9Ik5vIGRhdGEgYWRkZWQuIiksXy5leHRlbmQodGhpcy5vcHRpb25zLHQpO3ZhciBlPXRoaXMub3B0aW9ucztpZih0aGlzLmxvYWREZWZhdWx0KGUpLHRoaXMub3B0aW9ucy5zaG93X3Byb2JzP3RoaXMuZGF0YS5wcm9jZXNzaW5nJiYvXm9ic2VydmVkfHdlaWdodGVkLy50ZXN0KHRoaXMuZGF0YS5wcm9jZXNzaW5nKT8odGhpcy5zaG93X2luc2VydHM9MCx0aGlzLmluZm9fY29udGVudF9oZWlnaHQ9dGhpcy5oZWlnaHQtMTQpOih0aGlzLnNob3dfaW5zZXJ0cz0xLHRoaXMuaW5mb19jb250ZW50X2hlaWdodD10aGlzLmhlaWdodC00NCk6dGhpcy5pbmZvX2NvbnRlbnRfaGVpZ2h0PXRoaXMuaGVpZ2h0LHRoaXMuJGVsPWModGhpcy5lbCksdGhpcy5pbml0RGl2cygpLHRoaXMub3B0aW9ucy5zZXR0aW5ncyl7dmFyIG49bCh0aGlzLGUpO3RoaXMuJGVsLmFwcGVuZChuKX11KHRoaXMuJGVsLHRoaXMsdGhpcy5sb2dvX2dyYXBoaWMpfSxpbml0RGl2czpmdW5jdGlvbigpe3ZhciB0PWgoImRpdiIpO3QuY2xhc3NOYW1lPSJsb2dvX2dyYXBoaWMiLHRoaXMubG9nb19ncmFwaGljPWModCk7dmFyIGU9aCgiZGl2Iik7aWYoZS5jbGFzc05hbWU9ImxvZ29fY29udGFpbmVyIixlLnN0eWxlLmhlaWdodD10aGlzLmhlaWdodCx0aGlzLmNvbnRhaW5lcj1jKGUpLHRoaXMuY29udGFpbmVyLmFwcGVuZCh0KSx0aGlzLiRlbC5hcHBlbmQoZSksdGhpcy5vcHRpb25zLmRpdmlkZXIpe3ZhciBuPWgoImRpdiIpO24uY2xhc3NOYW1lPSJsb2dvX2RpdmlkZXIiLHRoaXMuJGVsLmFwcGVuZChuKX10aGlzLmRvbV9lbGVtZW50PWModCksdGhpcy5jYWxsZWRfb249dGhpcy4kZWwsdGhpcy5vcHRpb25zLnhheGlzJiZhLnJlbmRlcl94X2F4aXNfbGFiZWwuY2FsbCh0aGlzKSx0aGlzLm9wdGlvbnMueWF4aXM/YS5yZW5kZXJfeV9heGlzX2xhYmVsLmNhbGwodGhpcyk6dGhpcy5jb250YWluZXJbMF0uc3R5bGUubWFyZ2luTGVmdD0iMHB4In0scmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIGkuY2FsbCh0aGlzKSx0aGlzfSxjaGFuZ2VDb2xvcnM6ZnVuY3Rpb24odCl7dGhpcy5jb2xvcnM9dCx2b2lkIDAhPXQmJnZvaWQgMCE9dC50eXBlJiYodGhpcy5jb2xvcnNjaGVtZT0iZHluYW1pYyIpLHRoaXMuYnVpbGRBbHBoYWJldCgpfSxidWlsZEFscGhhYmV0OmZ1bmN0aW9uKCl7dGhpcy5sZXR0ZXJzPXt9O3ZhciB0PXRoaXMuY29sb3JzO2lmKCJkeW5hbWljIj09dGhpcy5jb2xvcnNjaGVtZSl7dmFyIGU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIi5zcGxpdCgiIik7dD17fSxlLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlXT0iIn0pfWZvcih2YXIgbiBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkobikpe3ZhciByPXtjb2xvcjp0W25dfTt0aGlzLmxldHRlcnNbbl09bmV3IG8obixyKX19LHRvZ2dsZUNvbG9yc2NoZW1lOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3VycmVudENvbHVtbigpO3Q/ImRlZmF1bHQiPT09dD90aGlzLmNvbG9yc2NoZW1lPSJkZWZhdWx0Ijp0aGlzLmNvbG9yc2NoZW1lPSJjb25zZW5zdXMiOiJkZWZhdWx0Ij09PXRoaXMuY29sb3JzY2hlbWU/dGhpcy5jb2xvcnNjaGVtZT0iY29uc2Vuc3VzIjp0aGlzLmNvbG9yc2NoZW1lPSJkZWZhdWx0Iix0aGlzLnJlbmRlcmVkPVtdLHRoaXMuc2Nyb2xsbWUucmVmbG93KCksdGhpcy5zY3JvbGxUb0NvbHVtbihlKzEpLHRoaXMuc2Nyb2xsVG9Db2x1bW4oZSl9LHRvZ2dsZVNjYWxlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3VycmVudENvbHVtbigpO3Q/Im9icyI9PT10P3RoaXMuZGF0YS5tYXhfaGVpZ2h0PXRoaXMuZGF0YS5tYXhfaGVpZ2h0X29iczp0aGlzLmRhdGEubWF4X2hlaWdodD10aGlzLmRhdGEubWF4X2hlaWdodF90aGVvcnk6dGhpcy5kYXRhLm1heF9oZWlnaHQ9PT10aGlzLmRhdGEubWF4X2hlaWdodF9vYnM/dGhpcy5kYXRhLm1heF9oZWlnaHQ9dGhpcy5kYXRhLm1heF9oZWlnaHRfdGhlb3J5OnRoaXMuZGF0YS5tYXhfaGVpZ2h0PXRoaXMuZGF0YS5tYXhfaGVpZ2h0X29icyx0aGlzLnJlbmRlcmVkPVtdLHRoaXMubG9nb1lBeGlzJiZ0aGlzLmxvZ29ZQXhpcy5yZW1vdmUoKSxhLnJlbmRlcl95X2F4aXNfbGFiZWwuY2FsbCh0aGlzKSx0aGlzLnNjcm9sbG1lLnJlZmxvdygpLHRoaXMuc2Nyb2xsVG9Db2x1bW4oZSsxKSx0aGlzLnNjcm9sbFRvQ29sdW1uKGUpfSx0b2dnbGVBbGlNYXA6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50Q29sdW1uKCk7dD8ibW9kZWwiPT09dD90aGlzLmRpc3BsYXlfYWxpX21hcD0wOnRoaXMuZGlzcGxheV9hbGlfbWFwPTE6MT09PXRoaXMuZGlzcGxheV9hbGlfbWFwP3RoaXMuZGlzcGxheV9hbGlfbWFwPTA6dGhpcy5kaXNwbGF5X2FsaV9tYXA9MSxhLnJlbmRlcl94X2F4aXNfbGFiZWwodGhpcyksdGhpcy5yZW5kZXJlZD1bXSx0aGlzLnNjcm9sbG1lLnJlZmxvdygpLHRoaXMuc2Nyb2xsVG9Db2x1bW4oZSsxKSx0aGlzLnNjcm9sbFRvQ29sdW1uKGUpfSxjdXJyZW50Q29sdW1uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zY3JvbGxtZS5zY3JvbGxlci5nZXRWYWx1ZXMoKS5sZWZ0LGU9dGhpcy5jb2x1bW5fd2lkdGgqdGhpcy56b29tLG49dC9lLHI9dGhpcy5jb250YWluZXIud2lkdGgoKS9lLzI7cmV0dXJuIE1hdGguY2VpbChuK3IpfSxjaGFuZ2Vab29tOmZ1bmN0aW9uKHQpe3ZhciBlPS4zLG49bnVsbDtpZih0LnRhcmdldD9lPXQudGFyZ2V0OnQuZGlzdGFuY2UmJihlPShwYXJzZUZsb2F0KHRoaXMuem9vbSktcGFyc2VGbG9hdCh0LmRpc3RhbmNlKSkudG9GaXhlZCgxKSwiKyI9PT10LmRpcmVjdGlvbiYmKGU9KHBhcnNlRmxvYXQodGhpcy56b29tKStwYXJzZUZsb2F0KHQuZGlzdGFuY2UpKS50b0ZpeGVkKDEpKSksZT4xP2U9MTplPC4xJiYoZT0uMSksbj10aGlzLmxvZ29fZ3JhcGhpYy53aWR0aCgpKmUvdGhpcy56b29tLG4+dGhpcy5jb250YWluZXIud2lkdGgoKSlpZih0LmNvbHVtbil7dGhpcy56b29tPWUsdGhpcy5yZW5kZXIoe3pvb206dGhpcy56b29tfSksdGhpcy5zY3JvbGxtZS5yZWZsb3coKTt2YXIgcj10aGlzLmNvb3JkaW5hdGVzRnJvbUNvbHVtbih0LmNvbHVtbik7dGhpcy5zY3JvbGxtZS5zY3JvbGxlci5zY3JvbGxUbyhyLXQub2Zmc2V0KX1lbHNle3ZhciBpPXRoaXMuY3VycmVudENvbHVtbigpO3RoaXMuem9vbT1lLHRoaXMucmVuZGVyKHt6b29tOnRoaXMuem9vbX0pLHRoaXMuc2Nyb2xsbWUucmVmbG93KCksdGhpcy5zY3JvbGxUb0NvbHVtbihpKX1yZXR1cm4gdGhpcy56b29tfSxjb2x1bW5Gcm9tQ29vcmRpbmF0ZXM6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguY2VpbCh0Lyh0aGlzLmNvbHVtbl93aWR0aCp0aGlzLnpvb20pKX0sY29vcmRpbmF0ZXNGcm9tQ29sdW1uOmZ1bmN0aW9uKHQpe3JldHVybih0LTEpKih0aGlzLmNvbHVtbl93aWR0aCp0aGlzLnpvb20pK3RoaXMuY29sdW1uX3dpZHRoKnRoaXMuem9vbS8yfSxzY3JvbGxUb0NvbHVtbjpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMubG9nb19jb250YWluZXIud2lkdGgoKS8yLHI9dGhpcy5jb29yZGluYXRlc0Zyb21Db2x1bW4odCk7dGhpcy5zY3JvbGxtZS5zY3JvbGxlci5zY3JvbGxUbyhyLW4sMCxlKX0sY2FsY01heEhlaWdodDpmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWR1Y2UoZnVuY3Rpb24odCxlKXt2YXIgbj0wO2Zvcih2YXIgciBpbiBlKW4rPWVbcl07cmV0dXJuIG4+dD9uOnR9LDApfX0pO3ZhciBoPWZ1bmN0aW9uKHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDUpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXIoJzxmb3JtIGNsYXNzPSJsb2dvX2Zvcm0iPjxmaWVsZHNldD48bGFiZWwgZm9yPSJwb3NpdGlvbiI+Q29sdW1uIG51bWJlcjwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InBvc2l0aW9uIiBjbGFzcz0ibG9nb19wb3NpdGlvbiI+PC9pbnB1dD48YnV0dG9uIGNsYXNzPSJidXR0b24gbG9nb19jaGFuZ2UiPkdvPC9idXR0b24+PC9maWVsZHNldD48L2Zvcm0+JyksaT1yKCc8ZGl2IGNsYXNzPSJsb2dvX3NldHRpbmdzIj48L2Rpdj4nKTtpZihpLmFwcGVuZCgnPHNwYW4gY2xhc3M9ImNsb3NlIj54PC9zcGFuPicpLHQuc2NhbGVfaGVpZ2h0X2VuYWJsZWQmJnQuZGF0YS5tYXhfaGVpZ2h0X29iczx0LmRhdGEubWF4X2hlaWdodF90aGVvcnkpe3ZhciBvPSIiLHM9IiIsYT0iIix1PSIiO3QuZGF0YS5tYXhfaGVpZ2h0X29icz09PXQuZGF0YS5tYXhfaGVpZ2h0P289ImNoZWNrZWQiOnM9ImNoZWNrZWQifXZhciBsPSc8ZmllbGRzZXQ+PGxlZ2VuZD5TY2FsZTwvbGVnZW5kPjxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InNjYWxlIiBjbGFzcz0ibG9nb19zY2FsZSIgdmFsdWU9Im9icyIgJytvKyIvPk1heGltdW0gT2JzZXJ2ZWQgIit1Kyc8L2xhYmVsPjwvYnI+PGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ic2NhbGUiIGNsYXNzPSJsb2dvX3NjYWxlIiB2YWx1ZT0idGhlb3J5IiAnK3MrIi8+TWF4aW11bSBUaGVvcmV0aWNhbCAiK2ErIjwvbGFiZWw+PC9maWVsZHNldD4iO2lmKGkuYXBwZW5kKGwpLCJzY29yZSIhPT10LmRhdGEuaGVpZ2h0X2NhbGMmJiJhYSI9PT10LmRhdGEuYWxwaGFiZXQmJnQuZGF0YS5wcm9ic19hcnIpe3ZhciBjPW51bGwsaD1udWxsLGY9IiIsZD0iIjsiZGVmYXVsdCI9PT10LmNvbG9yc2NoZW1lP2M9ImNoZWNrZWQiOmg9ImNoZWNrZWQiLGUuaGVscCYmKGY9JzxhIGNsYXNzPSJoZWxwIiBocmVmPSIvaGVscCNjb2xvcnNfZGVmYXVsdCIgdGl0bGU9IkVhY2ggbGV0dGVyIHJlY2VpdmVzIGl0cyBvd24gY29sb3IuIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1pY29uPSI/Ij48L3NwYW4+PHNwYW4gY2xhc3M9InJlYWRlci10ZXh0Ij5oZWxwPC9zcGFuPjwvYT4nLGQ9JzxhIGNsYXNzPSJoZWxwIiBocmVmPSIvaGVscCNjb2xvcnNfY29uc2Vuc3VzIiB0aXRsZT0iTGV0dGVycyBhcmUgY29sb3JlZCBhcyBpbiBDbHVzdGFseCBhbmQgSmFsdmlldywgd2l0aCBjb2xvcnMgZGVwZW5kaW5nIG9uIGNvbXBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1pY29uPSI/Ij48L3NwYW4+PHNwYW4gY2xhc3M9InJlYWRlci10ZXh0Ij5oZWxwPC9zcGFuPjwvYT4nKTt2YXIgZz0nPGZpZWxkc2V0PjxsZWdlbmQ+Q29sb3IgU2NoZW1lPC9sZWdlbmQ+PGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iY29sb3IiIGNsYXNzPSJsb2dvX2NvbG9yIiB2YWx1ZT0iZGVmYXVsdCIgJytjKyIvPkRlZmF1bHQgIitmKyc8L2xhYmVsPjwvYnI+PGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iY29sb3IiIGNsYXNzPSJsb2dvX2NvbG9yIiB2YWx1ZT0iY29uc2Vuc3VzIiAnK2grIi8+Q29uc2Vuc3VzIENvbG9ycyAiK2QrIjwvbGFiZWw+PC9maWVsZHNldD4iO2kuYXBwZW5kKGcpfWlmKHQuZGF0YS5hbGlfbWFwKXt2YXIgcD1udWxsLG09bnVsbCx2PSIiLF89IiI7MD09PXQuZGlzcGxheV9hbGlfbWFwP3A9ImNoZWNrZWQiOm09ImNoZWNrZWQiLGUuaGVscCYmKHY9JzxhIGNsYXNzPSJoZWxwIiBocmVmPSIvaGVscCNjb29yZHNfbW9kZWwiIHRpdGxlPSJUaGUgY29vcmRpbmF0ZXMgYWxvbmcgdGhlIHRvcCBvZiB0aGUgcGxvdCBzaG93IHRoZSBtb2RlbCBwb3NpdGlvbi4iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBkYXRhLWljb249Ij8iPjwvc3Bhbj48c3BhbiBjbGFzcz0icmVhZGVyLXRleHQiPmhlbHA8L3NwYW4+PC9hPicsXz0nPGEgY2xhc3M9ImhlbHAiIGhyZWY9Ii9oZWxwI2Nvb3Jkc19hbGkiIHRpdGxlPSJUaGUgY29vcmRpbmF0ZXMgYWxvbmcgdGhlIHRvcCBvZiB0aGUgcGxvdCBzaG93IHRoZSBjb2x1bW4gaW4gdGhlIGFsaWdubWVudCBhc3NvY2lhdGVkIHdpdGggdGhlIG1vZGVsIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1pY29uPSI/Ij48L3NwYW4+PHNwYW4gY2xhc3M9InJlYWRlci10ZXh0Ij5oZWxwPC9zcGFuPjwvYT4nKTt2YXIgeT0nPGZpZWxkc2V0PjxsZWdlbmQ+Q29vcmRpbmF0ZXM8L2xlZ2VuZD48bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJjb29yZHMiIGNsYXNzPSJsb2dvX2FsaV9tYXAiIHZhbHVlPSJtb2RlbCIgJytwKyIvPk1vZGVsICIrdisnPC9sYWJlbD48L2JyPjxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImNvb3JkcyIgY2xhc3M9ImxvZ29fYWxpX21hcCIgdmFsdWU9ImFsaWdubWVudCIgJyttKyIvPkFsaWdubWVudCAiK18rIjwvbGFiZWw+PC9maWVsZHNldD4iO2kuYXBwZW5kKHkpfXZhciBiPXIoJzxkaXYgY2xhc3M9ImxvZ29fY29udHJvbHMiPjwvZGl2PicpO3JldHVybiB0Lnpvb21fZW5hYmxlZCYmYi5hcHBlbmQoJzxidXR0b24gY2xhc3M9ImxvZ29fem9vbW91dCBidXR0b24iPi08L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJsb2dvX3pvb21pbiBidXR0b24iPis8L2J1dHRvbj4nKSxpLmNoaWxkcmVuKCkubGVuZ3RoPjAmJihiLmFwcGVuZCgnPGJ1dHRvbiBjbGFzcz0ibG9nb19zZXR0aW5nc19zd2l0Y2ggYnV0dG9uIj5TZXR0aW5nczwvYnV0dG9uPicpLGIuYXBwZW5kKGkpKSxuLmFwcGVuZChiKSxufX0sZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZT1lfHx7fSx0aGlzLnZhbHVlPXQsdGhpcy53aWR0aD1wYXJzZUludChlLndpZHRoLDEwKXx8MTAwLCJXIj09PXRoaXMudmFsdWUmJih0aGlzLndpZHRoKz0zMCp0aGlzLndpZHRoLzEwMCksdGhpcy5oZWlnaHQ9cGFyc2VJbnQoZS5oZWlnaHQsMTApfHwxMDAsdGhpcy5jb2xvcj1lLmNvbG9yfHwiIzAwMDAwMCIsdGhpcy5mb250U2l6ZT1lLmZvbnRTaXplfHwxMzgsdGhpcy5zY2FsZWQ9ZnVuY3Rpb24oKXt9LHRoaXMuZHJhdz1mdW5jdGlvbih0LGUsbixyLGksbyl7dmFyIHM9ZS90aGlzLmhlaWdodCxhPW4vdGhpcy53aWR0aCx1PXQuZm9udDt0LnRyYW5zZm9ybShhLDAsMCxzLHIsaSksdC5maWxsU3R5bGU9b3x8dGhpcy5jb2xvcix0LnRleHRBbGlnbj0iY2VudGVyIix0LmZvbnQ9ImJvbGQgIit0aGlzLmZvbnRTaXplKyJweCBBcmlhbCIsdC5maWxsVGV4dCh0aGlzLnZhbHVlLDAsMCksdC5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHQuZmlsbFN0eWxlPSIjMDAwMDAwIix0LmZvbnQ9dX19fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlLG4scixpKXt2YXIgbz1zKHQpLmZpbmQoIiNjYW52XyIrcik7cmV0dXJuIG8ubGVuZ3RofHwocyh0KS5hcHBlbmQoJzxjYW52YXMgY2xhc3M9ImNhbnZhc19sb2dvIiBpZD0iY2Fudl8nK3IrJyIgIGhlaWdodD0iJytlKyciIHdpZHRoPSInK24rJyIgc3R5bGU9ImxlZnQ6JytpKnIrJ3B4Ij48L2NhbnZhcz4nKSxvPXModCkuZmluZCgiI2NhbnZfIityKSkscyhvKS5hdHRyKCJ3aWR0aCIsbikuYXR0cigiaGVpZ2h0IixlKSxvWzBdfXZhciBpPW4oNzgpLG89big3Nykscz1uKDUpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZih0aGlzLmRhdGEpe3Q9dHx8e307dmFyIGU9dC56b29tfHx0aGlzLnpvb20sbj10LnRhcmdldHx8MSxzPSh0LnNjYWxlZHx8bnVsbCx0aGlzLmRvbV9lbGVtZW50LnBhcmVudCgpLmF0dHIoIndpZHRoIikpLGE9MSx1PW51bGwsbD1udWxsLGM9MDtpZih0aGlzLnByZXZpb3VzX3RhcmdldD1uLHQuc3RhcnQmJih0aGlzLnN0YXJ0PXQuc3RhcnQpLHQuZW5kJiYodGhpcy5lbmQ9dC5lbmQpLGU8PS4xP2U9LjE6ZT49MSYmKGU9MSksdGhpcy56b29tPWUsdT10aGlzLmVuZHx8dGhpcy5kYXRhLmhlaWdodEFyci5sZW5ndGgsbD10aGlzLnN0YXJ0fHwxLHU9dT50aGlzLmRhdGEuaGVpZ2h0QXJyLmxlbmd0aD90aGlzLmRhdGEuaGVpZ2h0QXJyLmxlbmd0aDp1LHU9dTxsP2w6dSxsPWw+dT91OmwsbD1sPjE/bDoxLHRoaXMueT10aGlzLmhlaWdodC0yMCx0aGlzLm1heF93aWR0aD10aGlzLmNvbHVtbl93aWR0aCoodS1sKzEpLHM+dGhpcy5tYXhfd2lkdGgmJihlPTEsdGhpcy56b29tX2VuYWJsZWQ9ITEpLHRoaXMuem9vbT1lLHRoaXMuem9vbWVkX2NvbHVtbj10aGlzLmNvbHVtbl93aWR0aCplLHRoaXMudG90YWxfd2lkdGg9dGhpcy56b29tZWRfY29sdW1uKih1LWwrMSksZTwxKWZvcig7dGhpcy50b3RhbF93aWR0aDxzJiYodGhpcy56b29tKz0uMSx0aGlzLnpvb21lZF9jb2x1bW49dGhpcy5jb2x1bW5fd2lkdGgqdGhpcy56b29tLHRoaXMudG90YWxfd2lkdGg9dGhpcy56b29tZWRfY29sdW1uKih1LWwrMSksdGhpcy56b29tX2VuYWJsZWQ9ITEsIShlPj0xKSk7KTtuPnRoaXMudG90YWxfd2lkdGgmJihuPXRoaXMudG90YWxfd2lkdGgpLHRoaXMuZG9tX2VsZW1lbnQuYXR0cih7d2lkdGg6dGhpcy50b3RhbF93aWR0aCsicHgifSkuY3NzKHt3aWR0aDp0aGlzLnRvdGFsX3dpZHRoKyJweCJ9KSx0aGlzLmNhbnZhc193aWR0aD10aGlzLnRvdGFsX3dpZHRoO3ZhciBoPU1hdGguY2VpbCh0aGlzLnRvdGFsX3dpZHRoL3RoaXMuY2FudmFzX3dpZHRoKTtmb3IodGhpcy5jb2x1bW5zX3Blcl9jYW52YXM9TWF0aC5jZWlsKHRoaXMuY2FudmFzX3dpZHRoL3RoaXMuem9vbWVkX2NvbHVtbiksdGhpcy5wcmV2aW91c196b29tIT09dGhpcy56b29tJiYodGhpcy5kb21fZWxlbWVudC5maW5kKCJjYW52YXMiKS5yZW1vdmUoKSx0aGlzLnByZXZpb3VzX3pvb209dGhpcy56b29tLHRoaXMucmVuZGVyZWQ9W10pLHRoaXMuY2FudmFzZXM9W10sdGhpcy5jb250ZXh0cz1bXSxjPTA7YzxoO2MrKyl7dmFyIGY9dGhpcy5jb2x1bW5zX3Blcl9jYW52YXMqYytsLGQ9Zit0aGlzLmNvbHVtbnNfcGVyX2NhbnZhcy0xO2Q+dSYmKGQ9dSk7dmFyIGc9KGQtZisxKSp0aGlzLnpvb21lZF9jb2x1bW47Zz5hJiYoYT1nKTt2YXIgcD1hKmMsbT1wK2c7aWYobjxtK20vMiYmbj5wLXAvMilpZih0aGlzLmNhbnZhc2VzW2NdPXIodGhpcy5kb21fZWxlbWVudCx0aGlzLmhlaWdodCxnLGMsYSksdGhpcy5jb250ZXh0c1tjXT10aGlzLmNhbnZhc2VzW2NdLmdldENvbnRleHQoIjJkIiksdGhpcy5jb250ZXh0c1tjXS5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHRoaXMuY29udGV4dHNbY10uY2xlYXJSZWN0KDAsMCxnLHRoaXMuaGVpZ2h0KSx0aGlzLmNvbnRleHRzW2NdLmZpbGxTdHlsZT0iI2ZmZmZmZiIsdGhpcy5jb250ZXh0c1tjXS5maWxsUmVjdCgwLDAsbSx0aGlzLmhlaWdodCksdGhpcy56b29tZWRfY29sdW1uPjEyKXt2YXIgdj1wYXJzZUludCgxMCplLDEwKTt2PXY+MTA/MTA6dix0aGlzLmRlYnVnJiZvLmNhbGwodGhpcyxmLGQsYywxKSxpLmNhbGwodGhpcyxmLGQsYyx2KX1lbHNlIG8uY2FsbCh0aGlzLGYsZCxjKX0hdGhpcy5zY3JvbGxtZSYmdGhpcy5vcHRpb25zLnNjcm9sbGVyJiYodGhpcy5zY3JvbGxtZT1uZXcgRWFzeVNjcm9sbGVyKHRoaXMuZG9tX2VsZW1lbnRbMF0se3Njcm9sbGluZ1g6MSxzY3JvbGxpbmdZOjAsZXZlbnRUYXJnZXQ6dGhpcy5jYWxsZWRfb259KSksMSE9PW4mJnRoaXMuc2Nyb2xsbWUucmVmbG93KCl9fX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSxuLHIsaSxvLHMsYSl7dmFyIHU9IiNmZmZmZmYiO2E/KGk+LjE/dT0iI2Q3MzAxZiI6aT4uMDU/dT0iI2ZjOGQ1OSI6aT4uMDMmJih1PSIjZmRjYzhhIiksdC5maWxsU3R5bGU9dSx0LmZpbGxSZWN0KGUsbisxNSxyLDEwKSx1PSIjZmZmZmZmIixvPjk/dT0iI2Q3MzAxZiI6bz43P3U9IiNmYzhkNTkiOm8+NCYmKHU9IiNmZGNjOGEiKSx0LmZpbGxTdHlsZT11LHQuZmlsbFJlY3QoZSxuKzMwLHIsMTApKTpuKz0zMCx1PSIjZmZmZmZmIixzPC43NT91PSIjMjE3MWI1IjpzPC44NT91PSIjNmJhZWQ2IjpzPC45NSYmKHU9IiNiZGQ3ZTciKSx0LmZpbGxTdHlsZT11LHQuZmlsbFJlY3QoZSxuLHIsMTApfXZhciBpPW4oNDQpLG89big0Nikscz1uKDQ1KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sYSl7dmFyIHU9MCxsPXQsYz1udWxsLGg9MCxmPU1hdGguYWJzKHRoaXMuZGF0YS5tYXhfaGVpZ2h0KSxkPU1hdGguYWJzKHRoaXMuZGF0YS5taW5faGVpZ2h0X29icyksZz1mK2QscD1NYXRoLnJvdW5kKDEwMCpNYXRoLmFicyh0aGlzLmRhdGEubWF4X2hlaWdodCkvZyksbT1NYXRoLnJvdW5kKHRoaXMuaW5mb19jb250ZW50X2hlaWdodCpwLzEwMCksdj0odGhpcy5pbmZvX2NvbnRlbnRfaGVpZ2h0LW0sMTApO2ZvcihoPXQ7aDw9ZTtoKyspe2lmKHRoaXMuZGF0YS5tbWxpbmUmJjE9PT10aGlzLmRhdGEubW1saW5lW2gtMV0pdGhpcy5jb250ZXh0c1tuXS5maWxsU3R5bGU9IiNjY2NjY2MiLHRoaXMuY29udGV4dHNbbl0uZmlsbFJlY3QodSwxMCx0aGlzLnpvb21lZF9jb2x1bW4sdGhpcy5oZWlnaHQtNDApO2Vsc2V7dmFyIF89dGhpcy5kYXRhLmhlaWdodEFycltoLTFdLHk9MCxiPShfLmxlbmd0aCwwKTtmb3IodmFyIGIgaW4gXyl7dmFyIHg9W2IsX1tiXV07aWYoeFsxXT4uMDEpe3ZhciB3PXBhcnNlRmxvYXQoeFsxXSkvdGhpcy5kYXRhLm1heF9oZWlnaHQsUz11LGs9KHRoaXMuaW5mb19jb250ZW50X2hlaWdodC0yKSp3LHo9dGhpcy5pbmZvX2NvbnRlbnRfaGVpZ2h0LTIteS1rLEM9bnVsbDtDPSJkeW5hbWljIj09PXRoaXMuY29sb3JzY2hlbWU/dGhpcy5jb2xvcnMuZ2V0Q29sb3IoeFswXSx7cG9zOmgtMX0pOiJjb25zZW5zdXMiPT09dGhpcy5jb2xvcnNjaGVtZT90aGlzLmNtYXBbaC0xXVt4WzBdXXx8IiM3YTdhN2EiOnRoaXMuY29sb3JzW3hbMF1dLGE/KHRoaXMuY29udGV4dHNbbl0uc3Ryb2tlU3R5bGU9Qyx0aGlzLmNvbnRleHRzW25dLnN0cm9rZVJlY3QoUyx6LHRoaXMuem9vbWVkX2NvbHVtbixrKSk6KHRoaXMuY29udGV4dHNbbl0uZmlsbFN0eWxlPUMsdGhpcy5jb250ZXh0c1tuXS5maWxsUmVjdChTLHosdGhpcy56b29tZWRfY29sdW1uLGspKSx5Kz1rfX19dGhpcy56b29tPC4yP3Y9MjA6dGhpcy56b29tPC4zJiYodj0xMCksdGhpcy5vcHRpb25zLnBvc2l0aW9uTWFya2VyJiZoJXY9PT0wJiYodGhpcy5vcHRpb25zLnNob3dfcHJvYnMmJm8odGhpcy5jb250ZXh0c1tuXSx1K3RoaXMuem9vbWVkX2NvbHVtbix0aGlzLmhlaWdodC0zMCxwYXJzZUZsb2F0KHRoaXMuaGVpZ2h0KSwiI2RkZGRkZCIpLG8odGhpcy5jb250ZXh0c1tuXSx1K3RoaXMuem9vbWVkX2NvbHVtbiwwLDUpLGM9dGhpcy5kaXNwbGF5X2FsaV9tYXA/dGhpcy5kYXRhLmFsaV9tYXBbaC0xXTpsLHModGhpcy5jb250ZXh0c1tuXSx1LTIsMTAsdGhpcy56b29tZWRfY29sdW1uLGMsMTAsITApKSx0aGlzLm9wdGlvbnMuc2hvd19wcm9icyYmcih0aGlzLmNvbnRleHRzW25dLHUsdGhpcy5oZWlnaHQtNDIsdGhpcy56b29tZWRfY29sdW1uLHRoaXMuZGF0YS5pbnNlcnRfcHJvYnNbaC0xXSx0aGlzLmRhdGEuaW5zZXJ0X2xlbmd0aHNbaC0xXSx0aGlzLmRhdGEuZGVsZXRlX3Byb2JzW2gtMV0sdGhpcy5zaG93X2luc2VydHMpLHRoaXMub3B0aW9ucy5zaG93X3Byb2JzJiYodGhpcy5zaG93X2luc2VydHM/aSh0aGlzLmNvbnRleHRzW25dLHRoaXMuaGVpZ2h0LTQ1LHRoaXMudG90YWxfd2lkdGgpOmkodGhpcy5jb250ZXh0c1tuXSx0aGlzLmhlaWdodC0xNSx0aGlzLnRvdGFsX3dpZHRoKSksdGhpcy5vcHRpb25zLmJvcmRlciYmaSh0aGlzLmNvbnRleHRzW25dLDAsdGhpcy50b3RhbF93aWR0aCksdSs9dGhpcy56b29tZWRfY29sdW1uLGwrK319fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlLG4scixvLHMsYSl7dmFyIHU9bi00LGw9IiNmZmZmZmYiLGM9IiM1NTU1NTUiO2EmJih1PW4tMzUpLG88Ljc1PyhsPSIjMjE3MWI1IixjPSIjZmZmZmZmIik6bzwuODU/bD0iIzZiYWVkNiI6bzwuOTUmJihsPSIjYmRkN2U3IiksaSh0LGUsdSxvLHMscixsLGMpfWZ1bmN0aW9uIGkodCxlLG4scixpLG8scyxhKXt0LmZvbnQ9aSsicHggQXJpYWwiLHQuZmlsbFN0eWxlPXMsdC5maWxsUmVjdChlLG4tMTAsbywxNCksdC50ZXh0QWxpZ249ImNlbnRlciIsdC5maWxsU3R5bGU9YSx0LmZpbGxUZXh0KHIsZStvLzIsbil9ZnVuY3Rpb24gbyh0LGUpe3ZhciBuPWUucmFsaWduP2UueCt0Lnpvb21lZF9jb2x1bW46ZS54LHI9ZS5yYWxpZ24/ZS54KzI6ZS54O2wodC5jb250ZXh0c1tlLmNvbnRleHRfbnVtXSxuLHQuaGVpZ2h0LTMwLC0zMC10LmhlaWdodCwiI2RkZGRkZCIpLGwodC5jb250ZXh0c1tlLmNvbnRleHRfbnVtXSxuLDAsNSksYyh0LmNvbnRleHRzW2UuY29udGV4dF9udW1dLHIsMTAsdC56b29tZWRfY29sdW1uLGUuY29sdW1uX251bSxlLmZvbnRzaXplLGUucmFsaWduKX1mdW5jdGlvbiBzKHQsZSxuLHIsbyxzKXt2YXIgYT1uLTIwLHU9IiNmZmZmZmYiLGM9IiM1NTU1NTUiO28+LjE/KHU9IiNkNzMwMWYiLGM9IiNmZmZmZmYiKTpvPi4wNT91PSIjZmM4ZDU5IjpvPi4wMyYmKHU9IiNmZGNjOGEiKSxpKHQsZSxhLG8scyxyLHUsYyksbz4uMDMmJmwodCxlK3Isbi0zMCwtMzAtbix1KX1mdW5jdGlvbiBhKHQsZSxuLHIsbyxzKXt2YXIgYT0iI2ZmZmZmZiIsdT0iIzU1NTU1NSI7bz45PyhhPSIjZDczMDFmIix1PSIjZmZmZmZmIik6bz43P2E9IiNmYzhkNTkiOm8+NCYmKGE9IiNmZGNjOGEiKSxpKHQsZSxuLG8scyxyLGEsdSl9dmFyIHU9big0NCksbD1uKDQ2KSxjPW4oNDUpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixpKXt2YXIgYz0wLGg9dCxmPW51bGwsZD0wLGc9TWF0aC5hYnModGhpcy5kYXRhLm1heF9oZWlnaHQpLHA9aXNOYU4odGhpcy5kYXRhLm1pbl9oZWlnaHRfb2JzKT8wOnBhcnNlSW50KHRoaXMuZGF0YS5taW5faGVpZ2h0X29icywxMCksbT1nK01hdGguYWJzKHApLHY9TWF0aC5yb3VuZCgxMDAqTWF0aC5hYnModGhpcy5kYXRhLm1heF9oZWlnaHQpL20pLF89TWF0aC5yb3VuZCh0aGlzLmluZm9fY29udGVudF9oZWlnaHQqdi8xMDApLHk9dGhpcy5pbmZvX2NvbnRlbnRfaGVpZ2h0LV87Zm9yKF8vdGhpcy5pbmZvX2NvbnRlbnRfaGVpZ2h0LHkvdGhpcy5pbmZvX2NvbnRlbnRfaGVpZ2h0LGUrMzw9dGhpcy5lbmQmJihlKz0zKSxkPXQ7ZDw9ZTtkKyspe2lmKHRoaXMuZGF0YS5tbWxpbmUmJjE9PT10aGlzLmRhdGEubW1saW5lW2QtMV0pdGhpcy5jb250ZXh0c1tuXS5maWxsU3R5bGU9IiNjY2NjY2MiLHRoaXMuY29udGV4dHNbbl0uZmlsbFJlY3QoYywxMCx0aGlzLnpvb21lZF9jb2x1bW4sdGhpcy5oZWlnaHQtNDApO2Vsc2V7dmFyIGI9dGhpcy5kYXRhLmhlaWdodEFycltkLTFdLHg9W107aWYoYil7dmFyIHc9MCxTPShiLmxlbmd0aCwwKSxrPW51bGw7Zm9yKHZhciBTIGluIGIpe3ZhciB6PWJbU10sQz1bUyx6XSxNPWMrdGhpcy56b29tZWRfY29sdW1uLzIsaj1udWxsO2lmKENbMV0+LjAxKXtqPXBhcnNlRmxvYXQoQ1sxXSkvdGhpcy5kYXRhLm1heF9oZWlnaHQ7dmFyIEU9dGhpcy5pbmZvX2NvbnRlbnRfaGVpZ2h0LTItdyxPPSh0aGlzLmluZm9fY29udGVudF9oZWlnaHQtMikqajt4W1NdPVtPLHRoaXMuem9vbWVkX2NvbHVtbixNLEVdLHcrPU99fWZvcih2YXIgUyBpbiBiKXhbU10mJnRoaXMubGV0dGVyc1tTXSYmKGs9ImR5bmFtaWMiPT09dGhpcy5jb2xvcnNjaGVtZT90aGlzLmNvbG9ycy5nZXRDb2xvcihTLHtwb3M6ZC0xfSk6ImNvbnNlbnN1cyI9PT10aGlzLmNvbG9yc2NoZW1lP3RoaXMuY21hcFtkLTFdW1NdfHwiIzdhN2E3YSI6bnVsbCx0aGlzLmxldHRlcnNbU10uZHJhdyh0aGlzLmNvbnRleHRzW25dLHhbU11bMF0seFtTXVsxXSx4W1NdWzJdLHhbU11bM10saykpfX1mPXRoaXMuZGlzcGxheV9hbGlfbWFwP3RoaXMuZGF0YS5hbGlfbWFwW2QtMV06aCx0aGlzLm9wdGlvbnMuc2hvd19kaXZpZGVyJiYodGhpcy56b29tPC43P2QldGhpcy5vcHRpb25zLmRpdmlkZXJfc3RlcD09PTAmJm8odGhpcyx7Y29udGV4dF9udW06bix4OmMsZm9udHNpemU6MTAsY29sdW1uX251bTpmLHJhbGlnbjohMH0pOm8odGhpcyx7Y29udGV4dF9udW06bix4OmMsZm9udHNpemU6aSxjb2x1bW5fbnVtOmZ9KSksdGhpcy5vcHRpb25zLnNob3dfcHJvYnMmJihyKHRoaXMuY29udGV4dHNbbl0sYyx0aGlzLmhlaWdodCx0aGlzLnpvb21lZF9jb2x1bW4sdGhpcy5kYXRhLmRlbGV0ZV9wcm9ic1tkLTFdLGksdGhpcy5zaG93X2luc2VydHMpLGwodGhpcy5jb250ZXh0c1tuXSxjLHRoaXMuaGVpZ2h0LTE1LDUpLHRoaXMuc2hvd19pbnNlcnRzJiYocyh0aGlzLmNvbnRleHRzW25dLGMsdGhpcy5oZWlnaHQsdGhpcy56b29tZWRfY29sdW1uLHRoaXMuZGF0YS5pbnNlcnRfcHJvYnNbZC0xXSxpKSxhKHRoaXMuY29udGV4dHNbbl0sYyx0aGlzLmhlaWdodC01LHRoaXMuem9vbWVkX2NvbHVtbix0aGlzLmRhdGEuaW5zZXJ0X2xlbmd0aHNbZC0xXSxpKSxsKHRoaXMuY29udGV4dHNbbl0sYyx0aGlzLmhlaWdodC00NSw1KSxsKHRoaXMuY29udGV4dHNbbl0sYyx0aGlzLmhlaWdodC0zMCw1KSkpLGMrPXRoaXMuem9vbWVkX2NvbHVtbixoKyt9dGhpcy5vcHRpb25zLnNob3dfcHJvYnMmJih0aGlzLnNob3dfaW5zZXJ0cyYmKHUodGhpcy5jb250ZXh0c1tuXSx0aGlzLmhlaWdodC0zMCx0aGlzLnRvdGFsX3dpZHRoKSx1KHRoaXMuY29udGV4dHNbbl0sdGhpcy5oZWlnaHQtNDUsdGhpcy50b3RhbF93aWR0aCkpLHUodGhpcy5jb250ZXh0c1tuXSx0aGlzLmhlaWdodC0xNSx0aGlzLnRvdGFsX3dpZHRoKSksdGhpcy5vcHRpb25zLmJvcmRlciYmdSh0aGlzLmNvbnRleHRzW25dLDAsdGhpcy50b3RhbF93aWR0aCl9fSxmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj13aW5kb3cuSFRNTENhbnZhc0VsZW1lbnQmJndpbmRvdy5IVE1MQ2FudmFzRWxlbWVudC5wcm90b3R5cGUscj13aW5kb3cuQmxvYiYmZnVuY3Rpb24oKXt0cnl7cmV0dXJuIEJvb2xlYW4obmV3IEJsb2IpfWNhdGNoKHQpe3JldHVybiExfX0oKSxpPXImJndpbmRvdy5VaW50OEFycmF5JiZmdW5jdGlvbigpe3RyeXtyZXR1cm4gMTAwPT09bmV3IEJsb2IoW25ldyBVaW50OEFycmF5KDEwMCldKS5zaXplfWNhdGNoKHQpe3JldHVybiExfX0oKSxvPXdpbmRvdy5CbG9iQnVpbGRlcnx8d2luZG93LldlYktpdEJsb2JCdWlsZGVyfHx3aW5kb3cuTW96QmxvYkJ1aWxkZXJ8fHdpbmRvdy5NU0Jsb2JCdWlsZGVyLHM9KHJ8fG8pJiZ3aW5kb3cuYXRvYiYmd2luZG93LkFycmF5QnVmZmVyJiZ3aW5kb3cuVWludDhBcnJheSYmZnVuY3Rpb24odCl7dmFyIGUsbixzLGEsdSxsO2ZvcihlPXQuc3BsaXQoIiwiKVswXS5pbmRleE9mKCJiYXNlNjQiKT49MD9hdG9iKHQuc3BsaXQoIiwiKVsxXSk6ZGVjb2RlVVJJQ29tcG9uZW50KHQuc3BsaXQoIiwiKVsxXSksbj1uZXcgQXJyYXlCdWZmZXIoZS5sZW5ndGgpLHM9bmV3IFVpbnQ4QXJyYXkobiksYT0wO2E8ZS5sZW5ndGg7YSs9MSlzW2FdPWUuY2hhckNvZGVBdChhKTtyZXR1cm4gdT10LnNwbGl0KCIsIilbMF0uc3BsaXQoIjoiKVsxXS5zcGxpdCgiOyIpWzBdLHI/bmV3IEJsb2IoW2k/czpuXSx7dHlwZTp1fSk6KGw9bmV3IG8sbC5hcHBlbmQobiksbC5nZXRCbG9iKHUpKX07d2luZG93LkhUTUxDYW52YXNFbGVtZW50JiYhbi50b0Jsb2ImJihuLm1vekdldEFzRmlsZT9uLnRvQmxvYj1mdW5jdGlvbih0LGUscil7dChyJiZuLnRvRGF0YVVSTCYmcz9zKHRoaXMudG9EYXRhVVJMKGUscikpOnRoaXMubW96R2V0QXNGaWxlKCJibG9iIixlKSl9Om4udG9EYXRhVVJMJiZzJiYobi50b0Jsb2I9ZnVuY3Rpb24odCxlLG4pe3Qocyh0aGlzLnRvRGF0YVVSTChlLG4pKSl9KSksdC5leHBvcnRzPXN9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiOy8qISBAc291cmNlIGh0dHA6Ly9wdXJsLmVsaWdyZXkuY29tL2dpdGh1Yi9GaWxlU2F2ZXIuanMvYmxvYi9tYXN0ZXIvRmlsZVNhdmVyLmpzICovCnZhciBlPWV8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYiYmbmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IuYmluZChuYXZpZ2F0b3IpfHxmdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8IS9NU0lFIFsxLTldXC4vLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe3ZhciBlPXQuZG9jdW1lbnQsbj1mdW5jdGlvbigpe3JldHVybiB0LlVSTHx8dC53ZWJraXRVUkx8fHR9LHI9ZS5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJhIiksaT0hdC5leHRlcm5hbEhvc3QmJiJkb3dubG9hZCJpbiByLG89ZnVuY3Rpb24obil7dmFyIHI9ZS5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTtyLmluaXRNb3VzZUV2ZW50KCJjbGljayIsITAsITEsdCwwLDAsMCwwLDAsITEsITEsITEsITEsMCxudWxsKSxuLmRpc3BhdGNoRXZlbnQocil9LHM9dC53ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbSxhPXQucmVxdWVzdEZpbGVTeXN0ZW18fHN8fHQubW96UmVxdWVzdEZpbGVTeXN0ZW0sdT1mdW5jdGlvbihlKXsodC5zZXRJbW1lZGlhdGV8fHQuc2V0VGltZW91dCkoZnVuY3Rpb24oKXt0aHJvdyBlfSwwKX0sbD0iYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixjPTAsaD1bXSxmPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWgubGVuZ3RoO3QtLTspe3ZhciBlPWhbdF07InN0cmluZyI9PXR5cGVvZiBlP24oKS5yZXZva2VPYmplY3RVUkwoZSk6ZS5yZW1vdmUoKX1oLmxlbmd0aD0wfSxkPWZ1bmN0aW9uKHQsZSxuKXtlPVtdLmNvbmNhdChlKTtmb3IodmFyIHI9ZS5sZW5ndGg7ci0tOyl7dmFyIGk9dFsib24iK2Vbcl1dO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBpKXRyeXtpLmNhbGwodCxufHx0KX1jYXRjaCh0KXt1KHQpfX19LGc9ZnVuY3Rpb24oZSx1KXt2YXIgZixnLHAsbT10aGlzLHY9ZS50eXBlLF89ITEseT1mdW5jdGlvbigpe3ZhciB0PW4oKS5jcmVhdGVPYmplY3RVUkwoZSk7cmV0dXJuIGgucHVzaCh0KSx0fSxiPWZ1bmN0aW9uKCl7ZChtLCJ3cml0ZXN0YXJ0IHByb2dyZXNzIHdyaXRlIHdyaXRlZW5kIi5zcGxpdCgiICIpKX0seD1mdW5jdGlvbigpeyFfJiZmfHwoZj15KGUpKSxnP2cubG9jYXRpb24uaHJlZj1mOndpbmRvdy5vcGVuKGYsIl9ibGFuayIpLG0ucmVhZHlTdGF0ZT1tLkRPTkUsYigpfSx3PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2lmKG0ucmVhZHlTdGF0ZSE9PW0uRE9ORSlyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxTPXtjcmVhdGU6ITAsZXhjbHVzaXZlOiExfTtyZXR1cm4gbS5yZWFkeVN0YXRlPW0uSU5JVCx1fHwodT0iZG93bmxvYWQiKSxpPyhmPXkoZSksci5ocmVmPWYsci5kb3dubG9hZD11LG8ociksbS5yZWFkeVN0YXRlPW0uRE9ORSx2b2lkIGIoKSk6KHQuY2hyb21lJiZ2JiZ2IT09bCYmKHA9ZS5zbGljZXx8ZS53ZWJraXRTbGljZSxlPXAuY2FsbChlLDAsZS5zaXplLGwpLF89ITApLHMmJiJkb3dubG9hZCIhPT11JiYodSs9Ii5kb3dubG9hZCIpLCh2PT09bHx8cykmJihnPXQpLGE/KGMrPWUuc2l6ZSx2b2lkIGEodC5URU1QT1JBUlksYyx3KGZ1bmN0aW9uKHQpe3Qucm9vdC5nZXREaXJlY3RvcnkoInNhdmVkIixTLHcoZnVuY3Rpb24odCl7dmFyIG49ZnVuY3Rpb24oKXt0LmdldEZpbGUodSxTLHcoZnVuY3Rpb24odCl7dC5jcmVhdGVXcml0ZXIodyhmdW5jdGlvbihuKXtuLm9ud3JpdGVlbmQ9ZnVuY3Rpb24oZSl7Zy5sb2NhdGlvbi5ocmVmPXQudG9VUkwoKSxoLnB1c2godCksbS5yZWFkeVN0YXRlPW0uRE9ORSxkKG0sIndyaXRlZW5kIixlKX0sbi5vbmVycm9yPWZ1bmN0aW9uKCl7dmFyIHQ9bi5lcnJvcjt0LmNvZGUhPT10LkFCT1JUX0VSUiYmeCgpfSwid3JpdGVzdGFydCBwcm9ncmVzcyB3cml0ZSBhYm9ydCIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe25bIm9uIit0XT1tWyJvbiIrdF19KSxuLndyaXRlKGUpLG0uYWJvcnQ9ZnVuY3Rpb24oKXtuLmFib3J0KCksbS5yZWFkeVN0YXRlPW0uRE9ORX0sbS5yZWFkeVN0YXRlPW0uV1JJVElOR30pLHgpfSkseCl9O3QuZ2V0RmlsZSh1LHtjcmVhdGU6ITF9LHcoZnVuY3Rpb24odCl7dC5yZW1vdmUoKSxuKCl9KSx3KGZ1bmN0aW9uKHQpe3QuY29kZT09PXQuTk9UX0ZPVU5EX0VSUj9uKCk6eCgpfSkpfSkseCl9KSx4KSk6dm9pZCB4KCkpfSxwPWcucHJvdG90eXBlLG09ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGcodCxlKX07cmV0dXJuIHAuYWJvcnQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3QucmVhZHlTdGF0ZT10LkRPTkUsZCh0LCJhYm9ydCIpfSxwLnJlYWR5U3RhdGU9cC5JTklUPTAscC5XUklUSU5HPTEscC5ET05FPTIscC5lcnJvcj1wLm9ud3JpdGVzdGFydD1wLm9ucHJvZ3Jlc3M9cC5vbndyaXRlPXAub25hYm9ydD1wLm9uZXJyb3I9cC5vbndyaXRlZW5kPW51bGwsdC5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGYsITEpLG0udW5sb2FkPWZ1bmN0aW9uKCl7ZigpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidW5sb2FkIixmLCExKX0sbX19KCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvd3x8KHZvaWQgMCkuY29udGVudCksbj13aW5kb3cuZGVmaW5lOyJ1bmRlZmluZWQiPT10eXBlb2YgbiYmInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuYWxtb25kJiYiZGVmaW5lImluIHdpbmRvdy5hbG1vbmQmJihuPXdpbmRvdy5hbG1vbmQuZGVmaW5lKSwidW5kZWZpbmVkIiE9dHlwZW9mIHQmJm51bGwhPT10P3QuZXhwb3J0cz1lOiJ1bmRlZmluZWQiIT10eXBlb2YgbiYmbnVsbCE9PW4mJm51bGwhPW4uYW1kJiZuKCJzYXZlQXMiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIGV9KX0pLmNhbGwoZSxuKDIzKSh0KSl9LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPHRoaXMubGVuZ3RoO2UrKyl7dmFyIG49dGhpc1tlXTtuWzJdP3QucHVzaCgiQG1lZGlhICIrblsyXSsieyIrblsxXSsifSIpOnQucHVzaChuWzFdKX1yZXR1cm4gdC5qb2luKCIiKX0sdC5pPWZ1bmN0aW9uKGUsbil7InN0cmluZyI9PXR5cGVvZiBlJiYoZT1bW251bGwsZSwiIl1dKTtmb3IodmFyIHI9e30saT0wO2k8dGhpcy5sZW5ndGg7aSsrKXt2YXIgbz10aGlzW2ldWzBdOyJudW1iZXIiPT10eXBlb2YgbyYmKHJbb109ITApfWZvcihpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBzPWVbaV07Im51bWJlciI9PXR5cGVvZiBzWzBdJiZyW3NbMF1dfHwobiYmIXNbMl0/c1syXT1uOm4mJihzWzJdPSIoIitzWzJdKyIpIGFuZCAoIituKyIpIiksdC5wdXNoKHMpKX19LHR9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlLG4pe2lmKCFhKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2FyZ3VtZW50cy5sZW5ndGg8MyYmKG49dGhpcyksIltvYmplY3QgQXJyYXldIj09PXUuY2FsbCh0KT9pKHQsZSxuKToic3RyaW5nIj09dHlwZW9mIHQ/byh0LGUsbik6cyh0LGUsbil9ZnVuY3Rpb24gaSh0LGUsbil7Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7cisrKWwuY2FsbCh0LHIpJiZlLmNhbGwobix0W3JdLHIsdCl9ZnVuY3Rpb24gbyh0LGUsbil7Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7cisrKWUuY2FsbChuLHQuY2hhckF0KHIpLHIsdCl9ZnVuY3Rpb24gcyh0LGUsbil7Zm9yKHZhciByIGluIHQpbC5jYWxsKHQscikmJmUuY2FsbChuLHRbcl0scix0KX12YXIgYT1uKDQ3KTt0LmV4cG9ydHM9cjt2YXIgdT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGw9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eX0sZnVuY3Rpb24odCxlKXsoZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3QuZXhwb3J0cz13aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBlP3QuZXhwb3J0cz1lOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj90LmV4cG9ydHM9c2VsZjp0LmV4cG9ydHM9e319KS5jYWxsKGUsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7IWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHIodCxlKXtpZighKHRoaXMgaW5zdGFuY2VvZiByKSlyZXR1cm4gbmV3IHIodCxlKTt0aGlzLmRvbWFpbj1bXSx0aGlzLnJhbmdlPVtdLEFycmF5LmlzQXJyYXkodCkmJih0aGlzLmRvbWFpbj10KSxBcnJheS5pc0FycmF5KGUpJiYodGhpcy5yYW5nZT1lKTt2YXIgbj1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpcmV0dXJuIG51bGw7dmFyIGU9dGhpcy5kb21haW5bMF0sbj10aGlzLmRvbWFpblsxXSxyPXRoaXMucmFuZ2VbMF0saT10aGlzLnJhbmdlWzFdO3JldHVybiJudW1iZXIiIT09ciYmIm51bWJlciIhPXR5cGVvZiBpJiYocj1lLGk9bikscisoaS1yKS8obi1lKSoodC1lKX0uYmluZCh0aGlzKTtyZXR1cm4gbi5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJih0aGlzLmRvbWFpbj10KSxufS5iaW5kKHRoaXMpLG4ucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJih0aGlzLnJhbmdlPXQpLG59LmJpbmQodGhpcyksbn0idW5kZWZpbmVkIiE9dHlwZW9mIHQmJnQuZXhwb3J0cyYmKGU9dC5leHBvcnRzPXIpLGUuTGluZWFyU2NhbGU9cn0odm9pZCAwKX0sZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPXtBOiIjMDBhMzVjIixSOiIjMDBmYzAzIixOOiIjMDBlYjE0IixEOiIjMDBlYjE0IixDOiIjMDAwMGZmIixROiIjMDBmMTBlIixFOiIjMDBmMTBlIixHOiIjMDA5ZDYyIixIOiIjMDBkNTJhIixJOiIjMDA1NGFiIixMOiIjMDA3Yjg0IixLOiIjMDBmZjAwIixNOiIjMDA5NzY4IixGOiIjMDA4Nzc4IixQOiIjMDBlMDFmIixTOiIjMDBkNTJhIixUOiIjMDBkYjI0IixXOiIjMDBhODU3IixZOiIjMDBlNjE5IixWOiIjMDA1ZmEwIixCOiIjMDBlYjE0IixYOiIjMDBiNjQ5IixaOiIjMDBmMTBlIn19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz17QToiI0JCQkJCQiIsQjoiZ3JleSIsQzoieWVsbG93IixEOiJyZWQiLEU6InJlZCIsRjoibWFnZW50YSIsRzoiYnJvd24iLEg6IiMwMEZGRkYiLEk6IiNCQkJCQkIiLEo6IiNmZmYiLEs6IiMwMEZGRkYiLEw6IiNCQkJCQkIiLE06IiNCQkJCQkIiLE46ImdyZWVuIixPOiIjZmZmIixQOiJicm93biIsUToiZ3JlZW4iLFI6IiMwMEZGRkYiLFM6ImdyZWVuIixUOiJncmVlbiIsVToiI2ZmZiIsVjoiI0JCQkJCQiIsVzoibWFnZW50YSIsWDoiZ3JleSIsWToibWFnZW50YSIsWjoiZ3JleSIsR2FwOiJncmV5In19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz17QToib3JhbmdlIixCOiIjZmZmIixDOiJncmVlbiIsRDoicmVkIixFOiJyZWQiLEY6ImJsdWUiLEc6Im9yYW5nZSIsSDoicmVkIixJOiJncmVlbiIsSjoiI2ZmZiIsSzoicmVkIixMOiJncmVlbiIsTToiZ3JlZW4iLE46IiNmZmYiLE86IiNmZmYiLFA6Im9yYW5nZSIsUToiI2ZmZiIsUjoicmVkIixTOiJvcmFuZ2UiLFQ6Im9yYW5nZSIsVToiI2ZmZiIsVjoiZ3JlZW4iLFc6ImJsdWUiLFg6IiNmZmYiLFk6ImJsdWUiLFo6IiNmZmYiLEdhcDoiI2ZmZiJ9fSxmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9e0E6IiM4MGEwZjAiLFI6IiNmMDE1MDUiLE46IiMwMGZmMDAiLEQ6IiNjMDQ4YzAiLEM6IiNmMDgwODAiLFE6IiMwMGZmMDAiLEU6IiNjMDQ4YzAiLEc6IiNmMDkwNDgiLEg6IiMxNWE0YTQiLEk6IiM4MGEwZjAiLEw6IiM4MGEwZjAiLEs6IiNmMDE1MDUiLE06IiM4MGEwZjAiLEY6IiM4MGEwZjAiLFA6IiNmZmZmMDAiLFM6IiMwMGZmMDAiLFQ6IiMwMGZmMDAiLFc6IiM4MGEwZjAiLFk6IiMxNWE0YTQiLFY6IiM4MGEwZjAiLEI6IiNmZmYiLFg6IiNmZmYiLFo6IiNmZmYifX0sZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPXtBOiIjZTcxOGU3IixSOiIjNmY5MDZmIixOOiIjMWJlNDFiIixEOiIjNzc4ODc3IixDOiIjMjNkYzIzIixROiIjOTI2ZDkyIixFOiIjZmYwMGZmIixHOiIjMDBmZjAwIixIOiIjNzU4YTc1IixJOiIjOGE3NThhIixMOiIjYWU1MWFlIixLOiIjYTA1ZmEwIixNOiIjZWYxMGVmIixGOiIjOTg2Nzk4IixQOiIjMDBmZjAwIixTOiIjMzZjOTM2IixUOiIjNDdiODQ3IixXOiIjOGE3NThhIixZOiIjMjFkZTIxIixWOiIjODU3YTg1IixCOiIjNDliNjQ5IixYOiIjNzU4YTc1IixaOiIjYzkzNmM5In19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz17QToiI2FkMDA1MiIsQjoiIzBjMDBmMyIsQzoiI2MyMDAzZCIsRDoiIzBjMDBmMyIsRToiIzBjMDBmMyIsRjoiI2NiMDAzNCIsRzoiIzZhMDA5NSIsSDoiIzE1MDBlYSIsSToiI2ZmMDAwMCIsSjoiI2ZmZiIsSzoiIzAwMDBmZiIsTDoiI2VhMDAxNSIsTToiI2IwMDA0ZiIsTjoiIzBjMDBmMyIsTzoiI2ZmZiIsUDoiIzQ2MDBiOSIsUToiIzBjMDBmMyIsUjoiIzAwMDBmZiIsUzoiIzVlMDBhMSIsVDoiIzYxMDA5ZSIsVToiI2ZmZiIsVjoiI2Y2MDAwOSIsVzoiIzViMDBhNCIsWDoiIzY4MDA5NyIsWToiIzRmMDBiMCIsWjoiIzBjMDBmMyJ9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7aWYobnVsbD09dHx8Im9iamVjdCIhPSgidW5kZWZpbmVkIj09dHlwZW9mIHQ/InVuZGVmaW5lZCI6aSh0KSkpcmV0dXJuIHQ7dmFyIGU9dC5jb25zdHJ1Y3RvcigpO2Zvcih2YXIgbiBpbiB0KXQuaGFzT3duUHJvcGVydHkobikmJihlW25dPXRbbl0pO3JldHVybiBlfXZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxvPW4oOTcpLHM9by5zdGF0LGE9by5keW4sdT1uKDg1KSxsPW4oODYpLGM9big4NyksaD1uKDg4KSxmPW4oODkpLGQ9big5MCksZz1uKDkyKSxwPW4oOTMpLG09big5NCksdj1uKDk2KSxfPW4oOTgpLHk9big5OSksYj1uKDEwMCkseD1uKDEwMSksdz17YnVyaWVkOnUsYnVyaWVkX2luZGV4OnUsY2luZW1hOmwsY2x1c3RhbDI6aCxjbHVzdGFsOmMsaGVsaXg6ZixoZWxpeF9wcm9wZW5zaXR5OmYsaHlkcm86ZCxsZXNrOmcsbWFlOnAsbnVjbGVvdGlkZTptLHB1cmluZTp2LHB1cmluZV9weXJpbWlkaW5lOnYsc3RyYW5kOl8sc3RyYW5kX3Byb3BlbnNpdHk6Xyx0YXlsb3I6eSx0dXJuOmIsdHVybl9wcm9wZW5zaXR5OmIsemFwcG86eH0sUz1uKDk1KSxrPXtwaWQ6U30sej1mdW5jdGlvbih0KXt0aGlzLm1hcHM9cih3KSx0aGlzLmR5bj1yKGspLHRoaXMub3B0PXR9O3QuZXhwb3J0cz16LHouZ2V0U2NoZW1lPWZ1bmN0aW9uKHQpe3JldHVybiB3W3RdfSx6LnByb3RvdHlwZS5nZXRTY2hlbWU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5tYXBzW3RdO3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSx2b2lkIDAhPXRoaXMuZHluW3RdKT9uZXcgYSh0aGlzLmR5blt0XSx0aGlzLm9wdCk6bmV3IHMoZSl9LHoucHJvdG90eXBlLmFkZFN0YXRpY1NjaGVtZT1mdW5jdGlvbih0LGUpe3RoaXMubWFwc1t0XT1lfSx6LnByb3RvdHlwZS5hZGREeW5TY2hlbWU9ZnVuY3Rpb24odCxlKXt0aGlzLmR5blt0XT1lfX0sZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPXtBOiIgb3JhbmdlIixCOiIgI2ZmZiIsQzoiIGdyZWVuIixEOiIgcmVkIixFOiIgcmVkIixGOiIgZ3JlZW4iLEc6IiBvcmFuZ2UiLEg6IiBtYWdlbnRhIixJOiIgZ3JlZW4iLEo6IiAjZmZmIixLOiIgcmVkIixMOiIgZ3JlZW4iLE06IiBncmVlbiIsTjoiIG1hZ2VudGEiLE86IiAjZmZmIixQOiIgZ3JlZW4iLFE6IiBtYWdlbnRhIixSOiIgcmVkIixTOiIgb3JhbmdlIixUOiIgb3JhbmdlIixVOiIgI2ZmZiIsVjoiIGdyZWVuIixXOiIgZ3JlZW4iLFg6IiAjZmZmIixZOiIgZ3JlZW4iLFo6IiAjZmZmIixHYXA6IiAjZmZmIn19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz17QToiICM3N2RkODgiLEI6IiAjZmZmIixDOiIgIzk5ZWU2NiIsRDoiICM1NWJiMzMiLEU6IiAjNTViYjMzIixGOiIgIzk5OTlmZiIsRzoiICM3N2RkODgiLEg6IiAjNTU1NWZmIixJOiIgIzY2YmJmZiIsSjoiICNmZmYiLEs6IiAjZmZjYzc3IixMOiIgIzY2YmJmZiIsTToiICM2NmJiZmYiLE46IiAjNTViYjMzIixPOiIgI2ZmZiIsUDoiICNlZWFhYWEiLFE6IiAjNTViYjMzIixSOiIgI2ZmY2M3NyIsUzoiICNmZjQ0NTUiLFQ6IiAjZmY0NDU1IixVOiIgI2ZmZiIsVjoiICM2NmJiZmYiLFc6IiAjOTk5OWZmIixYOiIgI2ZmZiIsWToiICM5OTk5ZmYiLFo6IiAjZmZmIixHYXA6IiAjZmZmIn19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz17QToiICM2NEY3M0YiLEM6IiAjRkZCMzQwIixHOiIgI0VCNDEzQyIsVDoiICMzQzg4RUUiLFU6IiAjM0M4OEVFIn19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3ZhciBuO3QuZXhwb3J0cz1uPXt9LG4uaW5pdD1mdW5jdGlvbigpe3RoaXMuY29ucz10aGlzLm9wdC5jb25zZXJ2YXRpb24oKX0sbi5ydW49ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbnNbZS5wb3NdO3JldHVybiBuPi44PyIjNjQ2NGZmIjpuPi42PyIjOWRhNWZmIjpuPi40PyIjY2NjY2NjIjoiI2ZmZmZmZiJ9fSxmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9e0E6IiAjRkY4M0ZBIixDOiIgIzQwRTBEMCIsRzoiICNGRjgzRkEiLFI6IiAjRkY4M0ZBIixUOiIgIzQwRTBEMCIsVToiICM0MEUwRDAiLFk6IiAjNDBFMEQwIn19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3ZhciBuPWZ1bmN0aW9uKHQpe3RoaXMuZGVmYXVsdENvbG9yPSIjZmZmZmZmIix0aGlzLnR5cGU9InN0YXRpYyIsdGhpcy5tYXA9dCx0aGlzLmdldENvbG9yPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10aGlzLm1hcFt0XT90aGlzLm1hcFt0XTp0aGlzLmRlZmF1bHRDb2xvcn19LHI9ZnVuY3Rpb24odCxlKXt0aGlzLnR5cGU9ImR5biIsdGhpcy5vcHQ9ZSx2b2lkIDAhPT10LmluaXQ/KHQuaW5pdC5jYWxsKHRoaXMpLHRoaXMuZ2V0Q29sb3I9dC5ydW4sdGhpcy5yZXNldD10LmluaXQpOnRoaXMuZ2V0Q29sb3I9dH07dC5leHBvcnRzLnN0YXQ9bix0LmV4cG9ydHMuZHluPXJ9LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz17QToiIzU4NThhNyIsUjoiIzZiNmI5NCIsTjoiIzY0NjQ5YiIsRDoiIzIxMjFkZSIsQzoiIzlkOWQ2MiIsUToiIzhjOGM3MyIsRToiIzAwMDBmZiIsRzoiIzQ5NDliNiIsSDoiIzYwNjA5ZiIsSToiI2VjZWMxMyIsTDoiI2IyYjI0ZCIsSzoiIzQ3NDdiOCIsTToiIzgyODI3ZCIsRjoiI2MyYzIzZCIsUDoiIzIzMjNkYyIsUzoiIzQ5NDliNiIsVDoiIzlkOWQ2MiIsVzoiI2MwYzAzZiIsWToiI2QzZDMyYyIsVjoiI2ZmZmYwMCIsQjoiIzQzNDNiYyIsWDoiIzc5Nzk4NiIsWjoiIzQ3NDdiOCJ9fSxmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9e0E6IiNjY2ZmMDAiLFI6IiMwMDAwZmYiLE46IiNjYzAwZmYiLEQ6IiNmZjAwMDAiLEM6IiNmZmZmMDAiLFE6IiNmZjAwY2MiLEU6IiNmZjAwNjYiLEc6IiNmZjk5MDAiLEg6IiMwMDY2ZmYiLEk6IiM2NmZmMDAiLEw6IiMzM2ZmMDAiLEs6IiM2NjAwZmYiLE06IiMwMGZmMDAiLEY6IiMwMGZmNjYiLFA6IiNmZmNjMDAiLFM6IiNmZjMzMDAiLFQ6IiNmZjY2MDAiLFc6IiMwMGNjZmYiLFk6IiMwMGZmY2MiLFY6IiM5OWZmMDAiLEI6IiNmZmYiLFg6IiNmZmYiLFo6IiNmZmYifX0sZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPXtBOiIjMmNkM2QzIixSOiIjNzA4ZjhmIixOOiIjZmYwMDAwIixEOiIjZTgxNzE3IixDOiIjYTg1NzU3IixROiIjM2ZjMGMwIixFOiIjNzc4ODg4IixHOiIjZmYwMDAwIixIOiIjNzA4ZjhmIixJOiIjMDBmZmZmIixMOiIjMWNlM2UzIixLOiIjN2U4MTgxIixNOiIjMWVlMWUxIixGOiIjMWVlMWUxIixQOiIjZjYwOTA5IixTOiIjZTExZTFlIixUOiIjNzM4YzhjIixXOiIjNzM4YzhjIixZOiIjOWQ2MjYyIixWOiIjMDdmOGY4IixCOiIjZjMwYzBjIixYOiIjN2M4MzgzIixaOiIjNWJhNGE0In19LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz17QToiI2ZmYWZhZiIsUjoiIzY0NjRmZiIsTjoiIzAwZmYwMCIsRDoiI2ZmMDAwMCIsQzoiI2ZmZmYwMCIsUToiIzAwZmYwMCIsRToiI2ZmMDAwMCIsRzoiI2ZmMDBmZiIsSDoiIzY0NjRmZiIsSToiI2ZmYWZhZiIsTDoiI2ZmYWZhZiIsSzoiIzY0NjRmZiIsTToiI2ZmYWZhZiIsRjoiI2ZmYzgwMCIsUDoiI2ZmMDBmZiIsUzoiIzAwZmYwMCIsVDoiIzAwZmYwMCIsVzoiI2ZmYzgwMCIsWToiI2ZmYzgwMCIsVjoiI2ZmYWZhZiIsQjoiI2ZmZiIsWDoiI2ZmZiIsWjoiI2ZmZiJ9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMTQwKSxpPW4oODIpLG89ZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX07dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybnt9O3ZhciBlPXt9O3JldHVybiBpKHIodCkuc3BsaXQoIlxuIiksZnVuY3Rpb24odCl7dmFyIG49dC5pbmRleE9mKCI6IiksaT1yKHQuc2xpY2UoMCxuKSkudG9Mb3dlckNhc2UoKSxzPXIodC5zbGljZShuKzEpKTsidW5kZWZpbmVkIj09dHlwZW9mIGVbaV0/ZVtpXT1zOm8oZVtpXSk/ZVtpXS5wdXNoKHMpOmVbaV09W2VbaV0sc119KSxlfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZihudWxsIT10KWZvcih2YXIgbiBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKTtyZXR1cm4gZS5kZWZhdWx0PXQsZX1mdW5jdGlvbiBpKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS52ZXJzaW9uPWUuaW89ZS4kPWUuYm9uZVZpZXc9ZS52aWV3PWUuc2VsY29sPWUuc2VsZWN0aW9uPWUudXRpbHM9ZS5tZW51PWUubW9kZWw9ZS5tc2E9dm9pZCAwO3ZhciBvPW4oOCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInNlbGVjdGlvbiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkobykuZGVmYXVsdH19KTt2YXIgcz1uKDkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJzZWxjb2wiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpKHMpLmRlZmF1bHR9fSk7dmFyIGE9bigyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidmlldyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkoYSkuZGVmYXVsdH19KTt2YXIgdT1uKDQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJib25lVmlldyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkodSkuZGVmYXVsdH19KTt2YXIgbD1uKDUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCIkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaShsKS5kZWZhdWx0fX0pO3ZhciBjPW4oMTE4KSxoPWkoYyksZj1uKDUyKSxkPXIoZiksZz1uKDEwNSkscD1yKGcpLG09bigzOCksdj1yKG0pLF89bigxMikseT1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKHQpe3JldHVybiBoLmRlZmF1bHQuYXBwbHkodGhpcyx0KX07cmV0dXJuIHQucHJvdG90eXBlPWguZGVmYXVsdC5wcm90b3R5cGUsbmV3IHQoYXJndW1lbnRzKX07ZS5kZWZhdWx0PXksZS5tc2E9aC5kZWZhdWx0LGUubW9kZWw9ZCxlLm1lbnU9cCxlLnV0aWxzPXY7dmFyIGI9e3hocjpuKDI0KSxmYXN0YTpfLmZhc3RhLGNsdXN0YWw6Xy5jbHVzdGFsLGdmZjpfLmdmZn07ZS5pbz1iO3ZhciB4PSJpbXBvcnRlZCI7eD0iMC4wLjAiLGUudmVyc2lvbj14fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDExNCksbz1yKGkpLHM9bigxMTIpLGE9cihzKSx1PW4oMTE2KSxsPXIodSksYz1uKDExNyksaD1yKGMpLGY9bigxMDgpLGQ9cihmKSxnPW4oMTE1KSxwPXIoZyksbT1uKDExMSksdj1yKG0pLF89bigxMTApLHk9cihfKSxiPW4oMTEzKSx4PXIoYiksdz1uKDEwOSksUz1yKHcpLGs9bigxMDcpLHo9cihrKSxDPW4oNCksTT1DLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXtpZighdC5tc2EpdGhyb3cgbmV3IEVycm9yKCJObyBtc2EgaW5zdGFuY2UgcHJvdmlkZWQuIFBsZWFzZSBwcm92aWRlIC5tc2EiKTtpZih0aGlzLm1zYT10Lm1zYSx0aGlzLm1zYS5nLm1lbnVjb25maWc9bmV3IHouZGVmYXVsdCh0Lm1lbnUpLHRoaXMuYWRkVmlldygiMTBfaW1wb3J0IixuZXcgby5kZWZhdWx0KHttb2RlbDp0aGlzLm1zYS5zZXFzLGc6dGhpcy5tc2EuZyxtc2E6dGhpcy5tc2F9KSksdGhpcy5hZGRWaWV3KCIxNV9vcmRlcmluZyIsbmV3IHAuZGVmYXVsdCh7bW9kZWw6dGhpcy5tc2Euc2VxcyxnOnRoaXMubXNhLmd9KSksdGhpcy5hZGRWaWV3KCIyMF9maWx0ZXIiLG5ldyBhLmRlZmF1bHQoe21vZGVsOnRoaXMubXNhLnNlcXMsZzp0aGlzLm1zYS5nfSkpLHRoaXMuYWRkVmlldygiMzBfc2VsZWN0aW9uIixuZXcgbC5kZWZhdWx0KHttb2RlbDp0aGlzLm1zYS5zZXFzLGc6dGhpcy5tc2EuZ30pKSx0aGlzLmFkZFZpZXcoIjQwX3ZpcyIsbmV3IGguZGVmYXVsdCh7bW9kZWw6dGhpcy5tc2Euc2VxcyxnOnRoaXMubXNhLmd9KSksdGhpcy5hZGRWaWV3KCI1MF9jb2xvciIsbmV3IGQuZGVmYXVsdCh7bW9kZWw6dGhpcy5tc2Euc2VxcyxnOnRoaXMubXNhLmd9KSksdGhpcy5hZGRWaWV3KCI3MF9leHRyYSIsbmV3IHYuZGVmYXVsdCh7bW9kZWw6dGhpcy5tc2Euc2VxcyxnOnRoaXMubXNhLmcsbXNhOnRoaXMubXNhfSkpLHRoaXMuYWRkVmlldygiODBfZXhwb3J0IixuZXcgeS5kZWZhdWx0KHttb2RlbDp0aGlzLm1zYS5zZXFzLGc6dGhpcy5tc2EuZyxtc2E6dGhpcy5tc2F9KSksdGhpcy5hZGRWaWV3KCI5MF9oZWxwIixuZXcgeC5kZWZhdWx0KHtnOnRoaXMubXNhLmd9KSksdGhpcy5tc2EuZy5jb25maWcuZ2V0KCJkZWJ1ZyIpKXJldHVybiB0aGlzLmFkZFZpZXcoIjk1X2RlYnVnIixuZXcgUy5kZWZhdWx0KHtnOnRoaXMubXNhLmd9KSl9LHJlbmRlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlbmRlclN1YnZpZXdzKCksdGhpcy5lbC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwic21lbnViYXIiKSx0aGlzLmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKSl9fSk7ZS5kZWZhdWx0PU19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTA0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiZGVmYXVsdG1lbnUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByKGkpLmRlZmF1bHR9fSk7dmFyIG89big2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwibWVudWJ1aWxkZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByKG8pLmRlZmF1bHR9fSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPW4oNSksaT1uKDIpLG89aS5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24odCl7dGhpcy5fbm9kZXM9W10sdGhpcy5uYW1lPXQubmFtZXx8IiIsdGhpcy5lbC5jbGFzc05hbWUrPSJzbWVudWJhciJ9LHJlbmRlcjpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmVsLmZpcnN0Q2hpbGQ7dDspdGhpcy5lbC5yZW1vdmVDaGlsZCh0KSx0PXRoaXMuZWwuZmlyc3RDaGlsZDt0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMuYnVpbGRET00oKSl9LHNldE5hbWU6ZnVuY3Rpb24odCl7dGhpcy5uYW1lPXR9LGFkZE5vZGU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPXZvaWQgMDtudWxsIT1uJiYocj1uLnN0eWxlKSxudWxsPT10aGlzLl9ub2RlcyYmKHRoaXMuX25vZGVzPVtdKSx0aGlzLl9ub2Rlcy5wdXNoKHtsYWJlbDp0LGNhbGxiYWNrOmUsc3R5bGU6cn0pfSxnZXROb2RlOmZ1bmN0aW9uKHQpe3ZhciBlPXZvaWQgMDtyZXR1cm4gdGhpcy5fbm9kZXMuZm9yRWFjaChmdW5jdGlvbihuKXtuLmxhYmVsPT09dCYmKGU9bil9KSxlfSxtb2RpZnlOb2RlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLmdldE5vZGUodCk7ci5jYWxsYmFjaz1lfHxyLmNhbGxiYWNrLG49bnx8e30sci5zdHlsZT1uLnN0eWxlfHxyLnN0eWxlfSxyZW5hbWVOb2RlOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5nZXROb2RlKHQpO24ubGFiZWw9ZXx8bi5sYWJlbH0scmVtb3ZlTm9kZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldE5vZGUodCk7dGhpcy5fbm9kZXMuc3BsaWNlKHRoaXMuX25vZGVzLmluZGV4T2YoZSksMSl9LHJlbW92ZUFsbE5vZGVzOmZ1bmN0aW9uKCl7dGhpcy5fbm9kZXM9W119LGJ1aWxkRE9NOmZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3JldHVybiB0LmFwcGVuZENoaWxkKHRoaXMuX2J1aWxkTSh7bm9kZXM6dGhpcy5fbm9kZXMsbmFtZTp0aGlzLm5hbWV9KSksdH0sX2J1aWxkTTpmdW5jdGlvbih0KXt2YXIgZT12b2lkIDAsbj12b2lkIDAsaT12b2lkIDAsbz12b2lkIDAscz12b2lkIDAsYT12b2lkIDAsdT12b2lkIDAsbD10Lm5vZGVzLGM9dC5uYW1lLGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5jbGFzc05hbWU9InNtZW51LWRyb3Bkb3duIHNtZW51LWRyb3Bkb3duLXRpcCIsaC5zdHlsZS5kaXNwbGF5PSJub25lIjt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpO2YuY2xhc3NOYW1lPSJzbWVudS1kcm9wZG93bi1tZW51Ijtmb3IodmFyIGQ9MCxnPWwubGVuZ3RoO2Q8ZztkKyspe3M9bFtkXSxvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIiksby50ZXh0Q29udGVudD1zLmxhYmVsLHU9cy5zdHlsZTtmb3IoaSBpbiB1KWE9dVtpXSxvLnN0eWxlW2ldPWE7by5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscy5jYWxsYmFjayksdGhpcy50cmlnZ2VyKCJuZXc6bm9kZSIsbyksZi5hcHBlbmRDaGlsZChvKX1yZXR1cm4gdGhpcy50cmlnZ2VyKCJuZXc6bWVudSIsZiksaC5hcHBlbmRDaGlsZChmKSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxlLnRleHRDb250ZW50PWMsZS5jbGFzc05hbWU9InNtZW51YmFyX2FsaW5rIix0aGlzLnRyaWdnZXIoIm5ldzpidXR0b24iLGUpLHIoZSkub24oImNsaWNrIixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQuX3Nob3dNZW51KG4saCxlKSx3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiByKGRvY3VtZW50LmJvZHkpLm9uZSgiY2xpY2siLGZ1bmN0aW9uKHQpe3JldHVybiBoLnN0eWxlLmRpc3BsYXk9Im5vbmUifSl9LDUpfX0odGhpcykpLG49ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLG4uYXBwZW5kQ2hpbGQoaCksbi5hcHBlbmRDaGlsZChlKSxufSxfc2hvd01lbnU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPXZvaWQgMDtlLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixlLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIscj1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfX0pO2UuZGVmYXVsdD1vfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1uKDEpLk1vZGVsLGk9ci5leHRlbmQoe2NvbnN0cnVjdG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuInNtYWxsIj09dCYmKHQ9dGhpcy5zbWFsbCksci5hcHBseSh0aGlzLFt0XSl9LHNtYWxsOnttZW51Rm9udHNpemU6IjEycHgifSxkZWZhdWx0czp7bWVudUZvbnRzaXplOiIxNHB4IixtZW51SXRlbUZvbnRzaXplOiIxNHB4IixtZW51SXRlbUxpbmVIZWlnaHQ6IjE0cHgiLG1lbnVNYXJnaW5MZWZ0OiIzcHgiLG1lbnVQYWRkaW5nOiIzcHggNHB4IDNweCA0cHgifX0pO2UuZGVmYXVsdD1pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDYpLG89cihpKSxzPW4oNyksYT1vLmRlZmF1bHQuZXh0ZW5kKHtpbml0aWFsaXplOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmc9dC5nLHRoaXMuZWwuc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIix0aGlzLmxpc3RlblRvKHRoaXMuZy5jb2xvcnNjaGVtZSwiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlbmRlcigpfSl9LHJlbmRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuc2V0TmFtZSgiQ29sb3Igc2NoZW1lIik7dGhpcy5yZW1vdmVBbGxOb2RlcygpO2Zvcih2YXIgZSxuPXRoaXMuZ2V0Q29sb3JzY2hlbWVzKCkscj0wO3I8bi5sZW5ndGg7cisrKWU9bltyXSx0aGlzLmFkZFNjaGVtZSh0LGUpO3JldHVybiB0aGlzLmdyZXkodCkscy5yZW1vdmVBbGxDaGlsZHModGhpcy5lbCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmJ1aWxkRE9NKCkpLHRoaXN9LGFkZFNjaGVtZTpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMscj17fTtyZXR1cm4gdGhpcy5nLmNvbG9yc2NoZW1lLmdldCgic2NoZW1lIik9PT1lLmlkJiYoci5iYWNrZ3JvdW5kQ29sb3I9IiM3N0VEODAiKSx0aGlzLmFkZE5vZGUoZS5uYW1lLGZ1bmN0aW9uKCl7bi5nLmNvbG9yc2NoZW1lLnNldCgic2NoZW1lIixlLmlkKX0se3N0eWxlOnJ9KX0sZ2V0Q29sb3JzY2hlbWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHQucHVzaCh7bmFtZToiVGF5bG9yIixpZDoidGF5bG9yIn0pLHQucHVzaCh7bmFtZToiQnVyaWVkIixpZDoiYnVyaWVkIn0pLHQucHVzaCh7bmFtZToiQ2luZW1hIixpZDoiY2luZW1hIn0pLHQucHVzaCh7bmFtZToiQ2x1c3RhbCIsaWQ6ImNsdXN0YWwifSksdC5wdXNoKHtuYW1lOiJDbHVzdGFsMiIsaWQ6ImNsdXN0YWwyIn0pLHQucHVzaCh7bmFtZToiSGVsaXgiLGlkOiJoZWxpeCJ9KSx0LnB1c2goe25hbWU6Ikh5ZHJvcGhvYmljaXR5IixpZDoiaHlkcm8ifSksdC5wdXNoKHtuYW1lOiJMZXNrIixpZDoibGVzayJ9KSx0LnB1c2goe25hbWU6Ik1BRSIsaWQ6Im1hZSJ9KSx0LnB1c2goe25hbWU6Ik51Y2xlb3RpZGUiLGlkOiJudWNsZW90aWRlIn0pLHQucHVzaCh7bmFtZToiUHVyaW5lIixpZDoicHVyaW5lIn0pLHQucHVzaCh7bmFtZToiUElEIixpZDoicGlkIn0pLHQucHVzaCh7bmFtZToiU3RyYW5kIixpZDoic3RyYW5kIn0pLHQucHVzaCh7bmFtZToiVHVybiIsaWQ6InR1cm4ifSksdC5wdXNoKHtuYW1lOiJaYXBwbyIsaWQ6InphcHBvIn0pLHQucHVzaCh7bmFtZToiTm8gY29sb3IiLGlkOiJmb28ifSksdH0sZ3JleTpmdW5jdGlvbih0KXt9fSk7ZS5kZWZhdWx0PWF9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oNiksbz1yKGkpLHM9by5kZWZhdWx0LmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nPXQuZyx0aGlzLmVsLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayJ9LHJlbmRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuc2V0TmFtZSgiRGVidWciKSx0aGlzLmFkZE5vZGUoIkdldCB0aGUgY29kZSIsZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93Lm9wZW4oImh0dHBzOi8vZ2l0aHViLmNvbS93aWx6YmFjaC9tc2EiKX0pLHRoaXMuYWRkTm9kZSgiVG9nZ2xlIG1vdXNlb3ZlciBldmVudHMiLGZ1bmN0aW9uKCl7cmV0dXJuIHQuZy5jb25maWcuc2V0KCJyZWdpc3Rlck1vdXNlSG92ZXIiLCF0LmcuY29uZmlnLmdldCgicmVnaXN0ZXJNb3VzZUhvdmVyIikpLHQuZy5vbkFsbChmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLmxvZyhhcmd1bWVudHMpfSl9KSx0aGlzLmFkZE5vZGUoIk1pbmltaXplZCB3aWR0aCIsZnVuY3Rpb24oKXtyZXR1cm4gdC5nLnpvb21lci5zZXQoImFsaWdubWVudFdpZHRoIiw2MDApfSksdGhpcy5hZGROb2RlKCJNaW5pbWl6ZWQgaGVpZ2h0IixmdW5jdGlvbigpe3JldHVybiB0Lmcuem9vbWVyLnNldCgiYWxpZ25tZW50SGVpZ2h0IiwxMjApfSksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmJ1aWxkRE9NKCkpLHRoaXN9fSk7ZS5kZWZhdWx0PXN9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oNiksbz1yKGkpLHM9bigxOSksYT1yKHMpLHU9bigxMiksbD0odS5mYXN0YS53cml0ZSwi4oaqIiksYz1vLmRlZmF1bHQuZXh0ZW5kKHtpbml0aWFsaXplOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmc9dC5nLHRoaXMubXNhPXQubXNhLHRoaXMuZWwuc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIn0scmVuZGVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5zZXROYW1lKCJFeHBvcnQiKSx0aGlzLmFkZE5vZGUoIlNoYXJlIHZpZXcgKFVSTCkiK2wsZnVuY3Rpb24oKXtyZXR1cm4gYS5kZWZhdWx0LnNoYXJlTGluayh0Lm1zYSxmdW5jdGlvbih0KXtyZXR1cm4gd2luZG93Lm9wZW4odCwiX2JsYW5rIil9KX0pLHRoaXMuYWRkTm9kZSgiVmlldyBpbiBKYWx2aWV3IixmdW5jdGlvbigpe3ZhciBlPXQuZy5jb25maWcuZ2V0KCJ1cmwiKTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGV8fG51bGw9PT1lP2FsZXJ0KCJTZXF1ZW5jZSB3ZXJlbid0IGltcG9ydGVkIHZpYSBhbiBVUkwiKTplLmluZGV4T2YoImxvY2FsaG9zdCIpP2EuZGVmYXVsdC5wdWJsaXNoV2ViKHQubXNhLGZ1bmN0aW9uKGUpe3JldHVybiBhLmRlZmF1bHQub3BlbkluSmFsdmlldyhlLHQuZy5jb2xvcnNjaGVtZS5nZXQoInNjaGVtZSIpKX0pOmEuZGVmYXVsdC5vcGVuSW5KYWx2aWV3KGUsdC5nLmNvbG9yc2NoZW1lLmdldCgic2NoZW1lIikpfSksdGhpcy5hZGROb2RlKCJFeHBvcnQgYWxpZ25tZW50IChGQVNUQSkiLGZ1bmN0aW9uKCl7cmV0dXJuIGEuZGVmYXVsdC5zYXZlQXNGaWxlKHQubXNhLCJhbGwuZmFzdGEiKX0pLHRoaXMuYWRkTm9kZSgiRXhwb3J0IGFsaWdubWVudCAoVVJMKSIsZnVuY3Rpb24oKXtyZXR1cm4gYS5kZWZhdWx0LnB1Ymxpc2hXZWIodC5tc2EsZnVuY3Rpb24odCl7cmV0dXJuIHdpbmRvdy5vcGVuKHQsIl9ibGFuayIpfSl9KSx0aGlzLmFkZE5vZGUoIkV4cG9ydCBzZWxlY3RlZCBzZXF1ZW5jZXMgKEZBU1RBKSIsZnVuY3Rpb24oKXtyZXR1cm4gYS5kZWZhdWx0LnNhdmVTZWxlY3Rpb24odC5tc2EsInNlbGVjdGlvbi5mYXN0YSIpfSksdGhpcy5hZGROb2RlKCJFeHBvcnQgZmVhdHVyZXMgKEdGRikiLGZ1bmN0aW9uKCl7cmV0dXJuIGEuZGVmYXVsdC5zYXZlQW5ub3RzKHQubXNhLCJmZWF0dXJlcy5nZmYzIil9KSx0aGlzLmFkZE5vZGUoIkV4cG9ydCBNU0EgaW1hZ2UgKFBORykiLGZ1bmN0aW9uKCl7cmV0dXJuIGEuZGVmYXVsdC5zYXZlQXNJbWcodC5tc2EsImJpb2pzLW1zYS5wbmciKX0pLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5idWlsZERPTSgpKSx0aGlzfX0pO2UuZGVmYXVsdD1jfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDYpLG89cihpKSxzPW4oMzcpLGE9cihzKSx1PW4oMjEpLGw9KHIodSksbigyNCksby5kZWZhdWx0LmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nPXQuZyx0aGlzLmVsLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayIsdGhpcy5tc2E9dC5tc2F9LHJlbmRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXROYW1lKCJFeHRyYXMiKTt2YXIgZT10aGlzLmcuc3RhdHM7cmV0dXJuIHRoaXMubXNhLHRoaXMuYWRkTm9kZSgiQWRkIGNvbnNlbnN1cyBzZXEiLGZ1bmN0aW9uKCl7dmFyIG49ZS5jb25zZW5zdXMoKSxyPW5ldyBhLmRlZmF1bHQoe3NlcTpuLGlkOiIwYyIsbmFtZToiQ29uc2VudXMifSk7cmV0dXJuIHQubW9kZWwuYWRkKHIpLHQubW9kZWwuc2V0UmVmKHIpLHQubW9kZWwuY29tcGFyYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4hdC5nZXQoInJlZiIpfSx0Lm1vZGVsLnNvcnQoKX0pLHRoaXMuYWRkTm9kZSgiSnVtcCB0byBhIGNvbHVtbiIsZnVuY3Rpb24oKXt2YXIgZT1wcm9tcHQoIkNvbHVtbiIsIjIwIik7cmV0dXJuIGU8MHx8ZT50Lm1vZGVsLmdldE1heExlbmd0aCgpfHxpc05hTihlKT92b2lkIGFsZXJ0KCJpbnZhbGlkIGNvbHVtbiIpOnQuZy56b29tZXIuc2V0TGVmdE9mZnNldChlKX0pLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5idWlsZERPTSgpKSx0aGlzfX0pKTtlLmRlZmF1bHQ9bH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9big2KSxvPXIoaSkscz1vLmRlZmF1bHQuZXh0ZW5kKHtpbml0aWFsaXplOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmc9dC5nLHRoaXMuZWwuc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIn0scmVuZGVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5zZXROYW1lKCJGaWx0ZXIiKSx0aGlzLmFkZE5vZGUoIkhpZGUgY29sdW1ucyBieSB0aHJlc2hvbGQiLGZ1bmN0aW9uKGUpe3ZhciBuPXByb21wdCgiRW50ZXIgdGhyZXNob2xkIChpbiBwZXJjZW50KSIsMjApO24vPTEwMDtmb3IodmFyIHI9dC5tb2RlbC5nZXRNYXhMZW5ndGgoKSxpPVtdLG89dC5nLnN0YXRzLnNjYWxlKHQuZy5zdGF0cy5jb25zZXJ2YXRpb24oKSkscz1yLTEsYT0wO2E8PXM7YSsrKW9bYV08biYmaS5wdXNoKGEpO3JldHVybiB0LmcuY29sdW1ucy5zZXQoImhpZGRlbiIsaSl9KSx0aGlzLmFkZE5vZGUoIkhpZGUgY29sdW1ucyBieSBzZWxlY3Rpb24iLGZ1bmN0aW9uKCl7dmFyIGU9dC5nLmNvbHVtbnMuZ2V0KCJoaWRkZW4iKSxuPWUuY29uY2F0KHQuZy5zZWxjb2wuZ2V0QWxsQ29sdW1uQmxvY2tzKHttYXhMZW46dC5tb2RlbC5nZXRNYXhMZW5ndGgoKSx3aXRoUG9zOiEwfSkpO3JldHVybiB0Lmcuc2VsY29sLnJlc2V0KFtdKSx0LmcuY29sdW1ucy5zZXQoImhpZGRlbiIsbil9KSx0aGlzLmFkZE5vZGUoIkhpZGUgY29sdW1ucyBieSBnYXBzIixmdW5jdGlvbigpe3ZhciBlPXByb21wdCgiRW50ZXIgdGhyZXNob2xkIChpbiBwZXJjZW50KSIsMjApO2UvPTEwMDtmb3IodmFyIG49dC5tb2RlbC5nZXRNYXhMZW5ndGgoKSxyPVtdLGk9bi0xLG89ZnVuY3Rpb24obil7dmFyIGk9MCxvPTA7dC5tb2RlbC5lYWNoKGZ1bmN0aW9uKHQpe3JldHVybiItIj09PXQuZ2V0KCJzZXEiKVtuXSYmaSsrLG8rK30pLGkvbz5lJiZyLnB1c2gobil9LHM9MDtzPD1pO3MrKylvKHMpO3JldHVybiB0LmcuY29sdW1ucy5zZXQoImhpZGRlbiIscil9KSx0aGlzLmFkZE5vZGUoIkhpZGUgc2VxcyBieSBpZGVudGl0eSIsZnVuY3Rpb24oKXt2YXIgZT1wcm9tcHQoIkVudGVyIHRocmVzaG9sZCAoaW4gcGVyY2VudCkiLDIwKTtyZXR1cm4gZS89MTAwLHQubW9kZWwuZWFjaChmdW5jdGlvbih0KXtpZih0LmdldCgiaWRlbnRpdHkiKTxlKXJldHVybiB0LnNldCgiaGlkZGVuIiwhMCl9KX0pLHRoaXMuYWRkTm9kZSgiSGlkZSBzZXFzIGJ5IHNlbGVjdGlvbiIsZnVuY3Rpb24oKXt2YXIgZT10Lmcuc2VsY29sLndoZXJlKHt0eXBlOiJyb3cifSksbj1lLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXQoInNlcUlkIil9KTtyZXR1cm4gdC5nLnNlbGNvbC5yZXNldChbXSksdC5tb2RlbC5lYWNoKGZ1bmN0aW9uKHQpe2lmKG4uaW5kZXhPZih0LmdldCgiaWQiKSk+PTApcmV0dXJuIHQuc2V0KCJoaWRkZW4iLCEwKX0pfSksdGhpcy5hZGROb2RlKCJIaWRlIHNlcXMgYnkgZ2FwcyIsZnVuY3Rpb24oKXt2YXIgZT1wcm9tcHQoIkVudGVyIHRocmVzaG9sZCAoaW4gcGVyY2VudCkiLDQwKTtyZXR1cm4gdC5tb2RlbC5lYWNoKGZ1bmN0aW9uKHQsbil7aWYodC5nZXQoInNlcSIpLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiItIj09PWU/Kyt0OnZvaWQgMH0sMCk+ZSlyZXR1cm4gdC5zZXQoImhpZGRlbiIsITApfSl9KSx0aGlzLmFkZE5vZGUoIlJlc2V0IixmdW5jdGlvbigpe3JldHVybiB0LmcuY29sdW1ucy5zZXQoImhpZGRlbiIsW10pLHQubW9kZWwuZWFjaChmdW5jdGlvbih0KXtpZih0LmdldCgiaGlkZGVuIikpcmV0dXJuIHQuc2V0KCJoaWRkZW4iLCExKX0pfSksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmJ1aWxkRE9NKCkpLHRoaXN9fSk7ZS5kZWZhdWx0PXN9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oNiksbz1yKGkpLHM9by5kZWZhdWx0LmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nPXQuZ30scmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0TmFtZSgiSGVscCIpLHRoaXMuYWRkTm9kZSgiQWJvdXQgdGhlIHByb2plY3QiLGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5vcGVuKCJodHRwczovL2dpdGh1Yi5jb20vd2lsemJhY2gvbXNhIil9KSx0aGlzLmFkZE5vZGUoIlJlcG9ydCBpc3N1ZXMiLGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5vcGVuKCJodHRwczovL2dpdGh1Yi5jb20vd2lsemJhY2gvbXNhL2lzc3VlcyIpfSksdGhpcy5hZGROb2RlKCJVc2VyIG1hbnVhbCIsZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93Lm9wZW4oImh0dHBzOi8vZ2l0aHViLmNvbS93aWx6YmFjaC9tc2Evd2lraS9Vc2VyLW1hbnVhbCIpfSksdGhpcy5lbC5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2siLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5idWlsZERPTSgpKSx0aGlzfX0pO2UuZGVmYXVsdD1zfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDYpLG89cihpKSxzPW4oMTcpLGE9by5kZWZhdWx0LmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nPXQuZyx0aGlzLmVsLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayIsdGhpcy5tc2E9dC5tc2F9LHJlbmRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLm1zYSxuPXMubWsoImlucHV0Iik7bi50eXBlPSJmaWxlIixuLnN0eWxlLmRpc3BsYXk9Im5vbmUiLG4ubXVsdGlwbGU9ITAsbi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIHQ9bi5maWxlc3x8W107cmV0dXJuIGUudS5maWxlLmltcG9ydEZpbGVzKHQpfSksdGhpcy5lbC5hcHBlbmRDaGlsZChuKTt2YXIgcj0iKEZhc3RhLCBDbHVzdGFsLCBHRkYsIEphbHZpZXcgZmVhdHVyZXMsIE5ld2ljaykiO3JldHVybiB0aGlzLnNldE5hbWUoIkltcG9ydCIpLHRoaXMuYWRkTm9kZSgiVVJMIixmdW5jdGlvbihlKXt2YXIgbj1wcm9tcHQoIlVSTCAiK3IsImh0dHA6Ly9yb3N0bGFiLm9yZy9+Z29sZGJlcmcvY2x1c3RhbHcyLUkyMDE0MDgxOC0yMTUyNDktMDU1Ni01MzY5OTg3OC1wZy5jbHVzdGFsdyIpO2lmKG4ubGVuZ3RoPjUpcmV0dXJuIHQubXNhLnUuZmlsZS5pbXBvcnRVUkwobixmdW5jdGlvbigpe30pfSksdGhpcy5hZGROb2RlKCJGcm9tIGZpbGUgIityLGZ1bmN0aW9uKCl7cmV0dXJuIG4uY2xpY2soKX0pLHRoaXMuYWRkTm9kZSgiRHJhZyAmIERyb3AiLGZ1bmN0aW9uKCl7cmV0dXJuIGFsZXJ0KCJZZXAuIEp1c3QgZHJhZyAmIGRyb3AgeW91ciBmaWxlICIrcil9KSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMuYnVpbGRET00oKSksdGhpc319KTtlLmRlZmF1bHQ9YX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9big2KSxvPXIoaSkscz1uKDcpLGE9IuKGkSIsdT0i4oaTIixsPW8uZGVmYXVsdC5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZz10LmcsdGhpcy5vcmRlcj0iSUQiLHRoaXMuZWwuc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIn0sc2V0T3JkZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub3JkZXI9dCx0aGlzLnJlbmRlcigpfSxyZW5kZXI6ZnVuY3Rpb24oKXt0aGlzLnNldE5hbWUoIlNvcnRpbmciKSx0aGlzLnJlbW92ZUFsbE5vZGVzKCk7Zm9yKHZhciB0LGU9dGhpcy5nZXRDb21wYXJhdG9ycygpLG49MDtuPGUubGVuZ3RoO24rKyl0PWVbbl0sdGhpcy5fYWRkTm9kZSh0KTt2YXIgcj10aGlzLmJ1aWxkRE9NKCk7cmV0dXJuIHMucmVtb3ZlQWxsQ2hpbGRzKHRoaXMuZWwpLHRoaXMuZWwuYXBwZW5kQ2hpbGQociksdGhpc30sX2FkZE5vZGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXQudGV4dCxyPXt9O3JldHVybiBuPT09dGhpcy5vcmRlciYmKHIuYmFja2dyb3VuZENvbG9yPSIjNzdFRDgwIiksdGhpcy5hZGROb2RlKG4sZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9dC5wcmVjb2RlJiZ0LnByZWNvZGUoKSxlLm1vZGVsLmNvbXBhcmF0b3I9dC5jb21wYXJhdG9yLGUubW9kZWwuc29ydCgpLGUuc2V0T3JkZXIodC50ZXh0KX0se3N0eWxlOnJ9KX0sZ2V0Q29tcGFyYXRvcnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9W107ZS5wdXNoKHt0ZXh0OiJJRCAiK2EsY29tcGFyYXRvcjoiaWQifSksZS5wdXNoKHt0ZXh0OiJJRCAiK3UsY29tcGFyYXRvcjpmdW5jdGlvbih0LGUpe3JldHVybi0oIiIrdC5nZXQoImlkIikpLmxvY2FsZUNvbXBhcmUoIiIrZS5nZXQoImlkIiksW10se251bWVyaWM6ITB9KX19KSxlLnB1c2goe3RleHQ6IkxhYmVsICIrYSxjb21wYXJhdG9yOiJuYW1lIn0pLGUucHVzaCh7dGV4dDoiTGFiZWwgIit1LGNvbXBhcmF0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4tdC5nZXQoIm5hbWUiKS5sb2NhbGVDb21wYXJlKGUuZ2V0KCJuYW1lIikpfX0pLGUucHVzaCh7dGV4dDoiU2VxICIrYSxjb21wYXJhdG9yOiJzZXEifSksZS5wdXNoKHt0ZXh0OiJTZXEgIit1LGNvbXBhcmF0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4tdC5nZXQoInNlcSIpLmxvY2FsZUNvbXBhcmUoZS5nZXQoInNlcSIpKX19KTt2YXIgbj1mdW5jdGlvbigpe3JldHVybiB0LmlkZW50PXQuZy5zdGF0cy5pZGVudGl0eSgpfSxyPWZ1bmN0aW9uKCl7cmV0dXJuIHQuZ2Fwcz17fSx0Lm1vZGVsLmVhY2goZnVuY3Rpb24oZSl7dmFyIG49ZS5hdHRyaWJ1dGVzLnNlcTtyZXR1cm4gdC5nYXBzW2UuaWRdPShuLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiItIj09PWU/Kyt0OnZvaWQgMH0pLDAvbi5sZW5ndGgpfSl9O3JldHVybiBlLnB1c2goe3RleHQ6IklkZW50aXR5ICIrYSxjb21wYXJhdG9yOmZ1bmN0aW9uKGUsbil7dmFyIHI9dC5pZGVudFtlLmlkXS10LmlkZW50W24uaWRdO3JldHVybiByPjA/MTpyPDA/LTE6MH0scHJlY29kZTpufSksZS5wdXNoKHt0ZXh0OiJJZGVudGl0eSAiK3UsY29tcGFyYXRvcjpmdW5jdGlvbihlLG4pe3ZhciByPXQuaWRlbnRbZS5pZF0tdC5pZGVudFtuLmlkXTtyZXR1cm4gcj4wPy0xOnI8MD8xOjB9LHByZWNvZGU6bn0pLGUucHVzaCh7dGV4dDoiR2FwcyAiK2EsY29tcGFyYXRvcjpmdW5jdGlvbihlLG4pe3ZhciByPXQuZ2Fwc1tlLmlkXS10LmdhcHNbbi5pZF07cmV0dXJuIHI+MD8xOnI8MD8tMTowfSxwcmVjb2RlOnJ9KSxlLnB1c2goe3RleHQ6IkdhcHMgIit1LGNvbXBhcmF0b3I6ZnVuY3Rpb24oZSxuKXt2YXIgcj10LmdhcHNbZS5pZF0tdC5nYXBzW24uaWRdO3JldHVybiByPDA/MTpyPjA/LTE6MH0scHJlY29kZTpyfSksZS5wdXNoKHt0ZXh0OiJDb25zZW5zdXMgdG8gdG9wIixjb21wYXJhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiF0LmdldCgicmVmIil9fSksZX19KTtlLmRlZmF1bHQ9bH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9big2KSxvPXIoaSkscz1vLmRlZmF1bHQuZXh0ZW5kKHtpbml0aWFsaXplOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmc9dC5nLHRoaXMuZWwuc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIn0scmVuZGVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5zZXROYW1lKCJTZWxlY3Rpb24iKSx0aGlzLmFkZE5vZGUoIkZpbmQgTW90aWYgKHN1cHBvcnRzIFJlZ0V4KSIsZnVuY3Rpb24oKXt2YXIgZT1wcm9tcHQoInlvdXIgc2VhcmNoIiwiRCIpO3JldHVybiB0LmcudXNlci5zZXQoInNlYXJjaFRleHQiLGUpfSksdGhpcy5hZGROb2RlKCJJbnZlcnQgY29sdW1ucyIsZnVuY3Rpb24oKXtyZXR1cm4gdC5nLnNlbGNvbC5pbnZlcnRDb2woZnVuY3Rpb24oKXt2YXIgZT1bXSxuPXQubW9kZWwuZ2V0TWF4TGVuZ3RoKCkscj0wO2lmKDA8PW4pZm9yKDtyPD1uOyllLnB1c2gocisrKTtlbHNlIGZvcig7cj49bjspZS5wdXNoKHItLSk7cmV0dXJuIGV9KCkpfSksdGhpcy5hZGROb2RlKCJJbnZlcnQgcm93cyIsZnVuY3Rpb24oKXtyZXR1cm4gdC5nLnNlbGNvbC5pbnZlcnRSb3codC5tb2RlbC5wbHVjaygiaWQiKSl9KSx0aGlzLmFkZE5vZGUoIlJlc2V0IixmdW5jdGlvbigpe3JldHVybiB0Lmcuc2VsY29sLnJlc2V0KCl9KSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMuYnVpbGRET00oKSksdGhpc319KTtlLmRlZmF1bHQ9c30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9big2KSxvPXIoaSkscz1uKDcpLGE9by5kZWZhdWx0LmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nPXQuZyx0aGlzLmVsLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayIsdGhpcy5saXN0ZW5Ubyh0aGlzLmcudmlzLCJjaGFuZ2UiLHRoaXMucmVuZGVyKX0scmVuZGVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnJlbW92ZUFsbE5vZGVzKCksdGhpcy5zZXROYW1lKCJWaXMuZWxlbWVudHMiKTtmb3IodmFyIGUsbj10aGlzLmdldFZpc0VsZW1lbnRzKCkscj0wO3I8bi5sZW5ndGg7cisrKWU9bltyXSx0aGlzLl9hZGRWaXNFbChlKTtyZXR1cm4gdGhpcy5hZGROb2RlKCJSZXNldCIsZnVuY3Rpb24oKXtyZXR1cm4gdC5nLnZpcy5zZXQoImxhYmVscyIsITApLHQuZy52aXMuc2V0KCJzZXF1ZW5jZXMiLCEwKSx0LmcudmlzLnNldCgibWV0YWNlbGwiLCEwKSx0LmcudmlzLnNldCgiY29uc2VydiIsITApLHQuZy52aXMuc2V0KCJsYWJlbElkIiwhMCksdC5nLnZpcy5zZXQoImxhYmVsTmFtZSIsITApLHQuZy52aXMuc2V0KCJsYWJlbENoZWNrYm94IiwhMSksdC5nLnZpcy5zZXQoInNlcWxvZ28iLCExKSx0LmcudmlzLnNldCgiZ2FwSGVhZGVyIiwhMSksdC5nLnZpcy5zZXQoImxlZnRIZWFkZXIiLCEwKSx0LmcudmlzLnNldCgibWV0YUdhcHMiLCEwKSx0LmcudmlzLnNldCgibWV0YUlkZW50aXR5IiwhMCksdC5nLnZpcy5zZXQoIm1ldGFMaW5rcyIsITApfSkscy5yZW1vdmVBbGxDaGlsZHModGhpcy5lbCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmJ1aWxkRE9NKCkpLHRoaXN9LF9hZGRWaXNFbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLG49e307aWYodGhpcy5nLnZpcy5nZXQodC5pZCkpe3ZhciByPSJIaWRlICI7bi5jb2xvcj0icmVkIn1lbHNlIHI9IlNob3cgIixuLmNvbG9yPSJncmVlbiI7cmV0dXJuIHRoaXMuYWRkTm9kZShyK3QubmFtZSxmdW5jdGlvbigpe3JldHVybiBlLmcudmlzLnNldCh0LmlkLCFlLmcudmlzLmdldCh0LmlkKSl9LHtzdHlsZTpufSl9LGdldFZpc0VsZW1lbnRzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHQucHVzaCh7bmFtZToicmVzaWR1ZXMgaW5kaWNlcyIsaWQ6Im1hcmtlcnMifSksdC5wdXNoKHtuYW1lOiJJRC9MYWJlbCIsaWQ6ImxhYmVscyJ9KSx0LnB1c2goe25hbWU6Im1ldGEgaW5mbyAoR2Fwcy9JZGVudCkiLGlkOiJtZXRhY2VsbCJ9KSx0LnB1c2goe25hbWU6Im92ZXJ2aWV3IHBhbmVsIixpZDoib3ZlcnZpZXdib3gifSksdC5wdXNoKHtuYW1lOiJzZXF1ZW5jZSBsb2dvIixpZDoic2VxbG9nbyJ9KSx0LnB1c2goe25hbWU6ImdhcCB3ZWlnaHRzIixpZDoiZ2FwSGVhZGVyIn0pLHQucHVzaCh7bmFtZToiY29uc2VydmF0aW9uIHdlaWdodHMiLGlkOiJjb25zZXJ2In0pLHQucHVzaCh7bmFtZToic2NhbGUgc2xpZGVyIixpZDoic2NhbGVzbGlkZXIifSksdC5wdXNoKHtuYW1lOiJMYWJlbCIsaWQ6ImxhYmVsTmFtZSJ9KSx0LnB1c2goe25hbWU6IklEIixpZDoibGFiZWxJZCJ9KSx0LnB1c2goe25hbWU6ImdhcHMgJSIsaWQ6Im1ldGFHYXBzIn0pLHQucHVzaCh7bmFtZToiaWRlbnRpdHkgc2NvcmUiLGlkOiJtZXRhSWRlbnRpdHkifSksdH19KTtlLmRlZmF1bHQ9YX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigzNiksbz1yKGkpLHM9bigyNyksYT1yKHMpLHU9bigyOCksbD1yKHUpLGM9bigyOSksaD1yKGMpLGY9bigzMCksZD1yKGYpLGc9big5KSxwPXIoZyksbT1uKDMxKSx2PXIobSksXz1uKDMzKSx5PXIoXyksYj1uKDMyKSx4PXIoYiksdz1uKDM0KSxTPXIodyksaz1uKDI2KSx6PXIoayksQz1uKDEyMyksTT1yKEMpLGo9bigyMCksRT1yKGopLE89big0MSksVD1yKE8pLEE9bigyMiksTD1yKEEpLFI9big0KSxxPW4oMTYpLE49big0OSksST1uKDUpLFA9Ui5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZigidW5kZWZpbmVkIiE9dHlwZW9mIHQmJm51bGwhPT10fHwodD17fSksbnVsbD09dC5jb2xvcnNjaGVtZSYmKHQuY29sb3JzY2hlbWU9e30pLG51bGw9PXQuY29sdW1ucyYmKHQuY29sdW1ucz17fSksbnVsbD09dC5jb25mJiYodC5jb25mPXt9KSxudWxsPT10LnZpcyYmKHQudmlzPXt9KSxudWxsPT10LnZpc29yZGVyJiYodC52aXNvcmRlcj17fSksbnVsbD09dC56b29tZXImJih0Lnpvb21lcj17fSksbnVsbD09dC5jb25zZXJ2JiYodC5jb25zZXJ2PXt9KSxudWxsPT10LnNjYWxlJiYodC5zY2FsZT17fSksdGhpcy5nPXEubWl4aW4oe30pLHRoaXMuc2Vxcz10aGlzLmcuc2Vxcz1uZXcgby5kZWZhdWx0KHQuc2Vxcyx0aGlzLmcpLHRoaXMuZy5jb25maWc9bmV3IGguZGVmYXVsdCh0LmNvbmYpLHRoaXMuZy5wYWNrYWdlPW5ldyBkLmRlZmF1bHQodGhpcy5nKSx0aGlzLmcuc2VsY29sPW5ldyBwLmRlZmF1bHQoW10se2c6dGhpcy5nfSksdGhpcy5nLnVzZXI9bmV3IHYuZGVmYXVsdCx0aGlzLmcudmlzPW5ldyB5LmRlZmF1bHQodC52aXMse21vZGVsOnRoaXMuc2Vxc30pLHRoaXMuZy52aXNvcmRlcj1uZXcgeC5kZWZhdWx0KHQudmlzb3JkZXIpLHRoaXMuZy56b29tZXI9bmV3IFMuZGVmYXVsdCh0Lnpvb21lcix7Zzp0aGlzLmcsbW9kZWw6dGhpcy5zZXFzfSksdGhpcy5nLnNjYWxlPW5ldyB6LmRlZmF1bHQodC5zY2FsZSx7Zzp0aGlzLmd9KSx0aGlzLmcuY29uc2VydmF0aW9uQ29uZmlnPXQuY29uc2VydiwibG9jYWxob3N0Ij09PXdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSYmdGhpcy5nLmNvbmZpZy5zZXQoImRlYnVnIiwhMCksdGhpcy5fbG9hZFNlcXModCksdGhpcy51PXt9LHRoaXMudS5maWxlPW5ldyBFLmRlZmF1bHQodGhpcyksdGhpcy51LnByb3h5PW5ldyBMLmRlZmF1bHQoe2c6dGhpcy5nfSksdGhpcy51LnRyZWU9bmV3IFQuZGVmYXVsdCh0aGlzKSx0aGlzLmcuY29uZmlnLmdldCgiZXZlbnRCdXMiKT09PSEwJiZ0aGlzLnN0YXJ0RXZlbnRCdXMoKSx0aGlzLmcuY29uZmlnLmdldCgiZHJvcEltcG9ydCIpKXt2YXIgbj17ZHJhZ292ZXI6dGhpcy5kcmFnT3Zlcixkcm9wOnRoaXMuZHJvcEZpbGV9O3RoaXMuZGVsZWdhdGVFdmVudHMobil9cmV0dXJuIHQuaW1wb3J0VVJMJiZ0aGlzLnUuZmlsZS5pbXBvcnRVUkwodC5pbXBvcnRVUkwsZnVuY3Rpb24oKXtyZXR1cm4gZS5yZW5kZXIoKX0pLHQuYm9vdHN0cmFwTWVudSYmKHQubWVudSYmKHRoaXMubWVudUNvbmZpZz10Lm1lbnUpLHRoaXMuZy5jb25maWcuc2V0KCJib290c3RyYXBNZW51IiwhMCkpLHRoaXMuZHJhdygpLHRoaXMubSgpfSxfbG9hZFNlcXM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zZXFzLnBsdWNrKCJzZXEiKTtyZXR1cm4gdGhpcy5nLnN0YXRzPW5ldyBOKHRoaXMuc2Vxcyx7dXNlR2FwczohMH0pLHRoaXMuZy5zdGF0cy5hbHBoYWJldFNpemU9dGhpcy5nLmNvbmZpZy5nZXQoImFscGhhYmV0U2l6ZSIpLHRoaXMuZy5jb2x1bW5zPW5ldyBsLmRlZmF1bHQodC5jb2x1bW5zLHRoaXMuZy5zdGF0cyksdGhpcy5nLmNvbG9yc2NoZW1lPW5ldyBhLmRlZmF1bHQodC5jb2xvcnNjaGVtZSxlLHRoaXMuZy5zdGF0cyksdGhpcy5nLnpvb21lci5zZXRFbCh0aGlzLmVsLHRoaXMuc2Vxcyl9LGltcG9ydFVSTDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnUuZmlsZS5pbXBvcnRVUkwuYXBwbHkodGhpcy51LmZpbGUsYXJndW1lbnRzKX0sbTpmdW5jdGlvbiB0KCl7dmFyIHQ9e307cmV0dXJuIHQubW9kZWw9big1MiksdC5zZWxlY3Rpb249big4KSx0LnNlbGNvbD1uKDkpLHQudmlldz1uKDIpLHQuYm9uZVZpZXc9big0KSx0aGlzLm09dH0sZHJhdzpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5yZW1vdmVWaWV3cygpLHRoaXMuYWRkVmlldygic3RhZ2UiLG5ldyBNLmRlZmF1bHQoe21vZGVsOnRoaXMuc2VxcyxnOnRoaXMuZ30pKSx0aGlzLiRlbC5hZGRDbGFzcygiYmlvanNfbXNhX2RpdiIpLHRoaXMuZy5jb25maWcuZ2V0KCJib290c3RyYXBNZW51Iikpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dGhpcy5lbC5wYXJlbnROb2RlPyh0aGlzLmVsLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKG4sdGhpcy5lbCksbi5hcHBlbmRDaGlsZChlKSxuLmFwcGVuZENoaWxkKHRoaXMuZWwpKToobi5hcHBlbmRDaGlsZChlKSxuLmFwcGVuZENoaWxkKHRoaXMuZWwpKTt2YXIgcj17ZWw6ZSxtc2E6dGhpc307dGhpcy5tZW51Q29uZmlnJiYoci5tZW51PXRoaXMubWVudUNvbmZpZyksbmV3IG1zYS5tZW51LmRlZmF1bHRtZW51KHIpLnJlbmRlcigpfXJldHVybiBJKHdpbmRvdykub24oInJlc2l6ZSIsZnVuY3Rpb24oZSl7dmFyIG49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLnpvb21lci5hdXRvUmVzaXplKCl9O3JldHVybiBzZXRUaW1lb3V0KG4uYmluZCh0KSw1KX0pfSxkcmFnT3ZlcjpmdW5jdGlvbih0KXsKcmV0dXJuIHQucHJldmVudERlZmF1bHQoKSx0LnRhcmdldC5jbGFzc05hbWU9ImhvdmVyIiwhMX0sZHJvcEZpbGU6ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBlPXQudGFyZ2V0LmZpbGVzfHx0LmRhdGFUcmFuc2Zlci5maWxlcztyZXR1cm4gdGhpcy51LmZpbGUuaW1wb3J0RmlsZXMoZSksITF9LHN0YXJ0RXZlbnRCdXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9WyJjb25maWciLCJjb2x1bW5zIiwiY29sb3JzY2hlbWUiLCJzZWxjb2wiLCJ2aXMiLCJ2aXNvcmRlciIsInpvb21lciJdO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbixyPVtdLGk9MDtpPGUubGVuZ3RoO2krKyluPWVbaV0sci5wdXNoKHQuX3Byb3h5VG9HKG4pKTtyZXR1cm4gcn0oKX0sX3Byb3h5VG9HOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxpc3RlblRvKHRoaXMuZ1t0XSwiYWxsIixmdW5jdGlvbihlLG4scixpKXtpZigiY2hhbmdlIiE9PWUpcmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBpJiZudWxsIT09aT90aGlzLmcudHJpZ2dlcih0KyI6IitlLHIsbixpKTp0aGlzLmcudHJpZ2dlcih0KyI6IitlLHIsbil9KX0scmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuc2Vxc3x8MD09PXRoaXMuc2Vxcy5sZW5ndGgsdGhpcy5yZW5kZXJTdWJ2aWV3cygpLHRoaXMuZy52aXMuc2V0KCJsb2FkZWQiLCEwKSx0aGlzfX0pO2UuZGVmYXVsdD1QfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDEyNyksbz1yKGkpLHM9bigxMzYpLGE9cihzKSx1PW4oNCksbD11LmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXt0aGlzLmc9dC5nO3ZhciBlPW5ldyBhLmRlZmF1bHQoe21vZGVsOnRoaXMubW9kZWwsZzp0aGlzLmd9KTtpZihlLm9yZGVyaW5nPS0xLHRoaXMuYWRkVmlldygibGFiZWxibG9jayIsZSksdGhpcy5nLnZpcy5nZXQoInNlcXVlbmNlcyIpKXt2YXIgbj1uZXcgby5kZWZhdWx0KHttb2RlbDp0aGlzLm1vZGVsLGc6dGhpcy5nfSk7bi5vcmRlcmluZz0wLHRoaXMuYWRkVmlldygic2VxYmxvY2siLG4pfXJldHVybiB0aGlzLmxpc3RlblRvKHRoaXMuZy56b29tZXIsImNoYW5nZTphbGlnbm1lbnRIZWlnaHQiLHRoaXMuYWRqdXN0SGVpZ2h0KSx0aGlzLmxpc3RlblRvKHRoaXMuZy56b29tZXIsImNoYW5nZTphbGlnbm1lbnRXaWR0aCIsdGhpcy5hZGp1c3RXaWR0aCksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuY29sdW1ucywiY2hhbmdlOmhpZGRlbiIsdGhpcy5hZGp1c3RIZWlnaHQpLHRoaXN9LHJlbmRlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlbmRlclN1YnZpZXdzKCksdGhpcy5lbC5jbGFzc05hbWU9ImJpb2pzX21zYV9hbGJvZHkiLHRoaXMuZWwuc3R5bGUud2hpdGVTcGFjZT0ibm93cmFwIix0aGlzLmFkanVzdEhlaWdodCgpLHRoaXMuYWRqdXN0V2lkdGgoKSx0aGlzfSxhZGp1c3RIZWlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4iYXV0byI9PT10aGlzLmcuem9vbWVyLmdldCgiYWxpZ25tZW50SGVpZ2h0Iik/dGhpcy5lbC5zdHlsZS5oZWlnaHQ9dGhpcy5nLnpvb21lci5nZXQoInJvd0hlaWdodCIpKnRoaXMubW9kZWwubGVuZ3RoKzU6dGhpcy5lbC5zdHlsZS5oZWlnaHQ9dGhpcy5nLnpvb21lci5nZXQoImFsaWdubWVudEhlaWdodCIpfSxhZGp1c3RXaWR0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsLnN0eWxlLndpZHRoPXRoaXMuZ2V0V2lkdGgoKX0sZ2V0V2lkdGg6ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiB0Kz10aGlzLmcuem9vbWVyLmdldExlZnRCbG9ja1dpZHRoKCksdGhpcy5nLnZpcy5nZXQoInNlcXVlbmNlcyIpJiYodCs9dGhpcy5nLnpvb21lci5nZXQoImFsaWdubWVudFdpZHRoIikpLHR9fSk7ZS5kZWZhdWx0PWx9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPW4oOCksaT1uKDIpLG89big0OCkscz1uKDUpLGE9aS5leHRlbmQoe2NsYXNzTmFtZToiYmlvanNfbXNhX292ZXJ2aWV3Ym94Iix0YWdOYW1lOiJjYW52YXMiLGluaXRpYWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZz10LmcsdGhpcy5saXN0ZW5Ubyh0aGlzLmcuem9vbWVyLCJjaGFuZ2U6Ym94UmVjdFdpZHRoIGNoYW5nZTpib3hSZWN0SGVpZ2h0IGNoYW5nZTpvdmVydmlld2JveFBhZGRpbmdUb3AiLHRoaXMucmVyZW5kZXIpLHRoaXMubGlzdGVuVG8odGhpcy5nLnpvb21lciwiY2hhbmdlOmFsaWdubWVudEhlaWdodCBjaGFuZ2U6YWxpZ25tZW50V2lkdGgiLHRoaXMucmVyZW5kZXIpLHRoaXMubGlzdGVuVG8odGhpcy5nLnpvb21lciwiY2hhbmdlOm92ZXJ2aWV3Ym94V2lkdGggY2hhbmdlOm92ZXJ2aWV3Ym94SGVpZ3RoIix0aGlzLnJlcmVuZGVyKSx0aGlzLmxpc3RlblRvKHRoaXMuZy5zZWxjb2wsImFkZCByZXNldCBjaGFuZ2UiLHRoaXMucmVyZW5kZXIpLHRoaXMubGlzdGVuVG8odGhpcy5nLmNvbHVtbnMsImNoYW5nZTpoaWRkZW4iLHRoaXMucmVyZW5kZXIpLHRoaXMubGlzdGVuVG8odGhpcy5nLmNvbG9yc2NoZW1lLCJjaGFuZ2U6c2hvd0xvd2VyQ2FzZSIsdGhpcy5yZXJlbmRlciksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2UiLF8uZGVib3VuY2UodGhpcy5yZXJlbmRlciw1KSksdGhpcy5jb2xvcj10aGlzLmcuY29sb3JzY2hlbWUuZ2V0U2VsZWN0ZWRTY2hlbWUoKSx0aGlzLmxpc3RlblRvKHRoaXMuZy5jb2xvcnNjaGVtZSwiY2hhbmdlOnNjaGVtZSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2xvcj10aGlzLmcuY29sb3JzY2hlbWUuZ2V0U2VsZWN0ZWRTY2hlbWUoKSx0aGlzLnJlcmVuZGVyKCl9KSx0aGlzLmRyYWdTdGFydD1bXX0sZXZlbnRzOntjbGljazoiX29uY2xpY2siLG1vdXNlZG93bjoiX29ubW91c2Vkb3duIn0scmVyZW5kZXI6ZnVuY3Rpb24oKXtpZighdGhpcy5nLmNvbmZpZy5nZXQoIm1hbnVhbFJlbmRlcmluZyIpKXJldHVybiB0aGlzLnJlbmRlcigpfSxyZW5kZXI6ZnVuY3Rpb24oKXt0aGlzLl9jcmVhdGVDYW52YXMoKSx0aGlzLmVsLnRleHRDb250ZW50PSJvdmVydmlldyIsdGhpcy5lbC5zdHlsZS5tYXJnaW5Ub3A9dGhpcy5nLnpvb21lci5nZXQoIm92ZXJ2aWV3Ym94UGFkZGluZ1RvcCIpLHRoaXMuY3R4LmZpbGxTdHlsZT0iIzk5OTk5OSIsdGhpcy5jdHguZmlsbFJlY3QoMCwwLHRoaXMuZWwud2lkdGgsdGhpcy5lbC5oZWlnaHQpO2Zvcih2YXIgdD10aGlzLm1vZGVsLmxlbmd0aCxlPXRoaXMuZy5jb2x1bW5zLmdldCgiaGlkZGVuIiksbj10aGlzLmcuY29sb3JzY2hlbWUuZ2V0KCJzaG93TG93ZXJDYXNlIikscj0tdGhpcy5jb29yZHMuYm94ZXNfc2l6ZS55LGk9MDtpPHRoaXMuY29vcmRzLmJveGVzLnk7aSsrKXtmb3IodmFyIG89W10scz1bXSxhPU1hdGguZmxvb3IoaSp0aGlzLmNvb3Jkcy5yZXNpZF9wZXJfYm94LnkpO2E8TWF0aC5mbG9vcigoaSsxKSp0aGlzLmNvb3Jkcy5yZXNpZF9wZXJfYm94LnkpJiZhPHQ7YSsrKXRoaXMubW9kZWwuYXQoYSkmJihvLnB1c2godGhpcy5tb2RlbC5hdChhKS5nZXQoInNlcSIpKSxzLnB1c2godGhpcy5tb2RlbC5hdChhKS5nZXQoImhpZGRlbiIpKSk7dmFyIHU9MDtyKz10aGlzLmNvb3Jkcy5ib3hlc19zaXplLnk7Zm9yKHZhciBsPTA7bDx0aGlzLmNvb3Jkcy5ib3hlcy54O2wrKyl7Zm9yKHZhciBjPVtdLGg9MDtoPG8ubGVuZ3RoO2grKylmb3IodmFyIGY9TWF0aC5mbG9vcihsKnRoaXMuY29vcmRzLnJlc2lkX3Blcl9ib3gueCk7ZjxNYXRoLmZsb29yKChsKzEpKnRoaXMuY29vcmRzLnJlc2lkX3Blcl9ib3gueCkmJmY8b1toXS5sZW5ndGg7ZisrKWlmKHNbaF0pYy5wdXNoKCJncmV5Iik7ZWxzZXt2YXIgZD1vW2hdW2ZdO24mJihkPWQudG9VcHBlckNhc2UoKSk7dmFyIGc9dGhpcy5jb2xvci5nZXRDb2xvcihkLHtwb3M6Zn0pO2UuaW5kZXhPZihmKT49MCYmKGc9ImdyZXkiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGcmJm51bGwhPT1nJiZjLnB1c2goZyl9MCE9PWMubGVuZ3RoJiYodGhpcy5jdHguZmlsbFN0eWxlPXRoaXMuX21vZGUoYyksdGhpcy5jdHguZmlsbFJlY3QodSxyLHRoaXMuY29vcmRzLmJveGVzX3NpemUueCx0aGlzLmNvb3Jkcy5ib3hlc19zaXplLnkpKSx1Kz10aGlzLmNvb3Jkcy5ib3hlc19zaXplLnh9fXJldHVybiB0aGlzLl9kcmF3U2VsZWN0aW9uKCl9LGNvb3Jkczp7c2NyZWVuX3RvX21vZGVsOmZ1bmN0aW9uKHQsZSl7dmFyIG49dCp0aGlzLnJlc2lkX3Blcl9ib3hbZV0vdGhpcy5ib3hlc19zaXplW2VdO3JldHVybiBNYXRoLmZsb29yKG4pfSxtb2RlbF90b19zY3JlZW46ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5mbG9vcih0KnRoaXMuYm94ZXNfc2l6ZVtlXS90aGlzLnJlc2lkX3Blcl9ib3hbZV0pfSx1cGRhdGVjb29yZHNfdHJhbnNmb3JtOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZy56b29tZXIuZ2V0KCJib3hSZWN0SGVpZ2h0Iiksbj10Lmcuem9vbWVyLmdldCgiYm94UmVjdFdpZHRoIikscj10Lmcuem9vbWVyLmdldCgib3ZlcnZpZXdib3hXaWR0aCIpLGk9dC5nLnpvb21lci5nZXQoIm92ZXJ2aWV3Ym94SGVpZ2h0Iiksbz0iZml4ZWQiPT09cj90Lm1vZGVsLmdldE1heExlbmd0aCgpKm46TWF0aC5taW4odC5nLnpvb21lci5nZXQoImFsaWdubWVudFdpZHRoIikrdC5nLnpvb21lci5nZXRMZWZ0QmxvY2tXaWR0aCgpLHQubW9kZWwuZ2V0TWF4TGVuZ3RoKCkqbikscz0iZml4ZWQiPT09aT90Lm1vZGVsLmxlbmd0aCplOk1hdGgubWluKGlzTmFOKHBhcnNlSW50KGksMTApKT8xZTEwOnBhcnNlSW50KGksMTApLHQubW9kZWwubGVuZ3RoKmUpO3RoaXMuY29udGFpbmVyX3NpemU9e3g6byx5OnN9LHRoaXMuYm94ZXNfc2l6ZT17eDpuLHk6ZX0sdGhpcy5yZXNpZF9wZXJfYm94PXt4Ok1hdGgubWF4KDEsdC5tb2RlbC5nZXRNYXhMZW5ndGgoKS9vKm4pLHk6TWF0aC5tYXgoMSx0Lm1vZGVsLmxlbmd0aC9zKmUpfSx0aGlzLmJveGVzPXt4Ok1hdGguY2VpbChvL24pLHk6TWF0aC5jZWlsKHMvZSl9fX0sX21vZGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuc29ydChmdW5jdGlvbihlLG4pe3JldHVybiB0LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdD09PWV9KS5sZW5ndGgtdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1ufSkubGVuZ3RofSkucG9wKCl9LF9kcmF3U2VsZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZighKHRoaXMuZHJhZ1N0YXJ0Lmxlbmd0aD4wKXx8dGhpcy5wcm9sb25nU2VsZWN0aW9uKXt0aGlzLmN0eC5maWxsU3R5bGU9IiM2NjY2NjYiLHRoaXMuY3R4Lmdsb2JhbEFscGhhPS45O2Zvcih2YXIgZT10aGlzLmcuc2VsY29sLmxlbmd0aCxuPWZ1bmN0aW9uKGUpe3ZhciBuPXQuZy5zZWxjb2wuYXQoZSk7aWYoIW4pcmV0dXJuImNvbnRpbnVlIjt2YXIgcj12b2lkIDAsaT12b2lkIDA7ImNvbHVtbiI9PT1uLmdldCgidHlwZSIpP3QuY3R4LmZpbGxSZWN0KHQuY29vcmRzLmJveGVzX3NpemUueCpuLmdldCgieFN0YXJ0IiksMCx0LmNvb3Jkcy5ib3hlc19zaXplLngqKG4uZ2V0KCJ4RW5kIiktbi5nZXQoInhTdGFydCIpKzEpLHQuY29vcmRzLmNvbnRhaW5lcl9zaXplLnkpOiJyb3ciPT09bi5nZXQoInR5cGUiKT8ocj10Lm1vZGVsLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXQoImlkIik9PT1uLmdldCgic2VxSWQiKX0pWzBdLGk9dC5tb2RlbC5pbmRleE9mKHIpLHQuY3R4LmZpbGxSZWN0KDAsdC5jb29yZHMubW9kZWxfdG9fc2NyZWVuKGksInkiKSx0LmNvb3Jkcy5tb2RlbF90b19zY3JlZW4oci5nZXQoInNlcSIpLmxlbmd0aCwieCIpLHQuY29vcmRzLmJveGVzX3NpemUueSkpOiJwb3MiPT09bi5nZXQoInR5cGUiKSYmKHI9dC5tb2RlbC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0KCJpZCIpPT09bi5nZXQoInNlcUlkIil9KVswXSxpPXQubW9kZWwuaW5kZXhPZihyKSx0LmN0eC5maWxsUmVjdCh0LmNvb3Jkcy5tb2RlbF90b19zY3JlZW4obi5nZXQoInhTdGFydCIpLCJ4IiksdC5jb29yZHMubW9kZWxfdG9fc2NyZWVuKGksInkiKSx0LmNvb3Jkcy5tb2RlbF90b19zY3JlZW4obi5nZXQoInhFbmQiKS1uLmdldCgieFN0YXJ0IikrMSwieCIpLHQuY29vcmRzLmJveGVzX3NpemUueSkpfSxyPTA7cjxlO3IrKyluKHIpO3JldHVybiB0aGlzLmN0eC5nbG9iYWxBbHBoYT0xfX0sX29uY2xpY2s6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZy50cmlnZ2VyKCJtZXRhOmNsaWNrIix7c2VxSWQ6dGhpcy5tb2RlbC5nZXQoImlkIix7ZXZ0OnR9KX0pfSxfb25tb3VzZW1vdmU6ZnVuY3Rpb24odCl7aWYoMCE9PXRoaXMuZHJhZ1N0YXJ0Lmxlbmd0aCl7dGhpcy5yZW5kZXIoKSx0aGlzLmN0eC5maWxsU3R5bGU9IiM2NjY2NjYiLHRoaXMuY3R4Lmdsb2JhbEFscGhhPS45O3ZhciBlPXRoaXMuX2NhbGNTZWxlY3Rpb24oby5hYnModCkpO3JldHVybiB0aGlzLmN0eC5maWxsUmVjdChlWzBdWzBdLGVbMV1bMF0sZVswXVsxXS1lWzBdWzBdLGVbMV1bMV0tZVsxXVswXSksdC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9fSxfb25tb3VzZWRvd246ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5kcmFnU3RhcnQ9by5hYnModCksdGhpcy5kcmFnU3RhcnRSZWw9by5yZWwodCksdC5jdHJsS2V5fHx0Lm1ldGFLZXk/dGhpcy5wcm9sb25nU2VsZWN0aW9uPSEwOnRoaXMucHJvbG9uZ1NlbGVjdGlvbj0hMSxzKGRvY3VtZW50LmJvZHkpLm9uKCJtb3VzZW1vdmUub3Zlcm1vdmUiLGZ1bmN0aW9uKHQpe3JldHVybiBlLl9vbm1vdXNlbW92ZSh0KX0pLHMoZG9jdW1lbnQuYm9keSkub24oIm1vdXNldXAub3ZlcnVwIixmdW5jdGlvbih0KXtyZXR1cm4gZS5fb25tb3VzZXVwKHQpfSksdGhpcy5kcmFnU3RhcnR9LF9jYWxjU2VsZWN0aW9uOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bdFswXS10aGlzLmRyYWdTdGFydFswXSx0WzFdLXRoaXMuZHJhZ1N0YXJ0WzFdXSxuPTA7bjw9MTtuKyspZVtuXT10aGlzLmRyYWdTdGFydFJlbFtuXStlW25dO2Zvcih2YXIgcj1bW3RoaXMuZHJhZ1N0YXJ0UmVsWzBdLGVbMF1dLFt0aGlzLmRyYWdTdGFydFJlbFsxXSxlWzFdXV0saT0wO2k8PTE7aSsrKXJbaV1bMV08cltpXVswXSYmKHJbaV09W3JbaV1bMV0scltpXVswXV0pLHJbaV1bMF09TWF0aC5tYXgocltpXVswXSwwKTtyZXR1cm4gcn0sX2VuZFNlbGVjdGlvbjpmdW5jdGlvbih0KXtpZihzKGRvY3VtZW50LmJvZHkpLm9mZigiLm92ZXJtb3ZlIikscyhkb2N1bWVudC5ib2R5KS5vZmYoIi5vdmVydXAiKSwwIT09dGhpcy5kcmFnU3RhcnQubGVuZ3RoKXtmb3IodmFyIGU9dGhpcy5fY2FsY1NlbGVjdGlvbih0KSxuPTA7bjw9MTtuKyspZVswXVtuXT10aGlzLmNvb3Jkcy5zY3JlZW5fdG9fbW9kZWwoZVswXVtuXSwieCIpO2Zvcih2YXIgbj0wO248PTE7bisrKWVbMV1bbl09dGhpcy5jb29yZHMuc2NyZWVuX3RvX21vZGVsKGVbMV1bbl0sInkiKTtlWzBdWzFdPU1hdGgubWluKHRoaXMubW9kZWwuZ2V0TWF4TGVuZ3RoKCktMSxlWzBdWzFdKSxlWzFdWzFdPU1hdGgubWluKHRoaXMubW9kZWwubGVuZ3RoLTEsZVsxXVsxXSk7Zm9yKHZhciBpPVtdLG89ZVsxXVswXTtvPD1lWzFdWzFdO28rKyl7dmFyIGE9e3NlcUlkOnRoaXMubW9kZWwuYXQobykuZ2V0KCJpZCIpLHhTdGFydDplWzBdWzBdLHhFbmQ6ZVswXVsxXX07aS5wdXNoKG5ldyByLnBvc3NlbChhKSl9cmV0dXJuIHRoaXMuZHJhZ1N0YXJ0PVtdLHRoaXMucHJvbG9uZ1NlbGVjdGlvbj90aGlzLmcuc2VsY29sLmFkZChpKTp0aGlzLmcuc2VsY29sLnJlc2V0KGkpLHRoaXMuZy56b29tZXIuc2V0TGVmdE9mZnNldChlWzBdWzBdKSx0aGlzLmcuem9vbWVyLnNldFRvcE9mZnNldChlWzFdWzBdKX19LF9vbm1vdXNldXA6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2VuZFNlbGVjdGlvbihvLmFicyh0KSl9LF9vbm1vdXNlb3V0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9lbmRTZWxlY3Rpb24oby5hYnModCkpfSxfY3JlYXRlQ2FudmFzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29vcmRzLnVwZGF0ZWNvb3Jkc190cmFuc2Zvcm0odGhpcyksdGhpcy5lbC5oZWlnaHQ9dGhpcy5jb29yZHMuY29udGFpbmVyX3NpemUueSx0aGlzLmVsLndpZHRoPXRoaXMuY29vcmRzLmNvbnRhaW5lcl9zaXplLngsdGhpcy5jdHg9dGhpcy5lbC5nZXRDb250ZXh0KCIyZCIpLHRoaXMuZWwuc3R5bGUub3ZlcmZsb3c9ImF1dG8iLHRoaXMuZWwuc3R5bGUuY3Vyc29yPSJjcm9zc2hhaXIifX0pO2UuZGVmYXVsdD1hfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1uKDMpLGk9bigyKSxvPW4oNSkscz1pLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nPXQuZyx0aGlzLmxpc3RlblRvKHRoaXMuZy56b29tZXIsImNoYW5nZTpjb2x1bW5XaWR0aCIsdGhpcy5yZW5kZXIpLHRoaXMudG9nZ2xlQ2xhc3M9Im1zYS1oaWRlIix0aGlzLmlzVmlzaWJsZT0hMCx0aGlzfSxhdHRyaWJ1dGVzOntjbGFzczoiYmlvanNfbXNhX3NjYWxlIn0sZXZlbnRzOnsiY2hhbmdlIGlucHV0IjoidXBkYXRlU2xpZGVyIiwiY2xpY2sgYnV0dG9uLm1zYS1idG4tY2xvc2UiOiJoaWRlIiwiY2xpY2sgYnV0dG9uLm1zYS1idG4tb3BlbiI6InNob3ciLCJjbGljayBidXR0b25bZGF0YS1hY3Rpb25dIjoiY2xpY2tCdXR0b24ifSx0ZW1wbGF0ZTooMCxyLnRlbXBsYXRlKSgnXHQ8ZGl2IGNsYXNzPSJtc2Etc2NhbGUtbWluaW1pc2VkIj5cdCAgPGJ1dHRvbiBjbGFzcz0iYnRuIG1zYS1idG4gbXNhLWJ0bi1vcGVuIj5ab29tPC9idXR0b24+XHQ8L2Rpdj5cdDxkaXYgY2xhc3M9Im1zYS1zY2FsZS1tYXhpbWlzZWQiPlx0ICA8YnV0dG9uIGNsYXNzPSJidG4gbXNhLWJ0biBtc2EtYnRuLWNsb3NlIiBzdHlsZT0iZmxvYXQ6cmlnaHQiPiZ0aW1lczsgY2xvc2U8L2J1dHRvbj5cdCAgPGRpdj5cdCAgPGlucHV0IHR5cGU9InJhbmdlIiBcdCAgICBkYXRhLXByb3ZpZGU9InNsaWRlciIgXHQgICAgbWluPSI8JT0gbWluICU+IiBcdCAgICBtYXg9IjwlPSBtYXggJT4iIFx0ICAgIHN0ZXA9IjwlPSBzdGVwICU+IiBcdCAgICB2YWx1ZT0iPCU9IHZhbHVlICU+IiBcdCAgPlx0ICA8L2Rpdj5cdCAgPGRpdiBjbGFzcz0iYnRuZ3JvdXAgbXNhLWJ0bmdyb3VwIj5cdCAgICA8YnV0dG9uIGNsYXNzPSJidG4gbXNhLWJ0biIgZGF0YS1hY3Rpb249InNtYWxsZXIiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24tem9vbS1vdXQiPjwvc3Bhbj4tPC9idXR0b24+XHQgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIG1zYS1idG4iIGRhdGEtYWN0aW9uPSJiaWdnZXIiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24tem9vbS1pbiI+PC9zcGFuPis8L2J1dHRvbj5cdCAgICA8YnV0dG9uIGNsYXNzPSJidG4gbXNhLWJ0biIgZGF0YS1hY3Rpb249InJlc2V0Ij48c3BhbiBjbGFzcz0iZ2x5cGhpY29uLXJlcGVhdCI+PC9zcGFuPnJlc2V0PC9idXR0b24+XHQgIDwvZGl2Plx0PC9kaXY+XHQnKSxyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldFNpemVSYW5nZSgpLGU9e3ZhbHVlOnRoaXMubW9kZWwuZ2V0U2l6ZSgpLG1pbjp0WzBdLG1heDp0WzFdLHN0ZXA6dGhpcy5tb2RlbC5zdGVwfHwxfTtyZXR1cm4gdGhpcy4kZWwuaHRtbCh0aGlzLnRlbXBsYXRlKGUpKSx0aGlzLmlzVmlzaWJsZT90aGlzLnNob3coKTp0aGlzLmhpZGUoKSx0aGlzfSx1cGRhdGVTbGlkZXI6ZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQsbj1wYXJzZUludChvKGUpLnZhbCgpKTt0aGlzLm1vZGVsLnNldFNpemUobil9LGNsaWNrQnV0dG9uOmZ1bmN0aW9uKHQpe3ZhciBlPXQudGFyZ2V0LG49byhlKS5kYXRhKCJhY3Rpb24iKTtyZXR1cm4gdGhpcy5tb2RlbFtuXSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5tb2RlbFtuXSYmdGhpcy5tb2RlbFtuXSgpLHRoaXN9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLmlzVmlzaWJsZT0hMSx0aGlzLiRlbC5maW5kKCIubXNhLXNjYWxlLW1pbmltaXNlZCIpLnJlbW92ZUNsYXNzKHRoaXMudG9nZ2xlQ2xhc3MpLHRoaXMuJGVsLmZpbmQoIi5tc2Etc2NhbGUtbWF4aW1pc2VkIikuYWRkQ2xhc3ModGhpcy50b2dnbGVDbGFzcyl9LHNob3c6ZnVuY3Rpb24oKXt0aGlzLmlzVmlzaWJsZT0hMSx0aGlzLiRlbC5maW5kKCIubXNhLXNjYWxlLW1pbmltaXNlZCIpLmFkZENsYXNzKHRoaXMudG9nZ2xlQ2xhc3MpLHRoaXMuJGVsLmZpbmQoIi5tc2Etc2NhbGUtbWF4aW1pc2VkIikucmVtb3ZlQ2xhc3ModGhpcy50b2dnbGVDbGFzcyl9fSk7ZS5kZWZhdWx0PXN9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPW4oOCksaT1uKDQpLG89bigxNykscz0obig3KSxpLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nPXQuZyx0aGlzLmxpc3RlblRvKHRoaXMuZy51c2VyLCJjaGFuZ2U6c2VhcmNoVGV4dCIsZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5zZWFyY2goZSksdGhpcy5yZW5kZXIoKX0pLHRoaXMuc2VsPVtdLHRoaXMuc2VsUG9zPTB9LGV2ZW50czp7c2Nyb2xsOiJfc2VuZFNjcm9sbEV2ZW50In0scmVuZGVyOmZ1bmN0aW9uKCl7dGhpcy5yZW5kZXJTdWJ2aWV3cygpLHRoaXMuZWwuY2xhc3NOYW1lPSJiaW9qc19tc2Ffc2VhcmNocmVzdWx0Ijt2YXIgdD10aGlzLmcudXNlci5nZXQoInNlYXJjaFRleHQiKTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHQmJm51bGwhPT10JiZ0Lmxlbmd0aD4wJiYoMD09PXRoaXMuc2VsLmxlbmd0aD90aGlzLmVsLnRleHRDb250ZW50PSJubyBzZWxlY3Rpb24gZm91bmQiOih0aGlzLnJlc3VsdEJveD1vLm1rKCJkaXYiKSx0aGlzLnJlc3VsdEJveC5jbGFzc05hbWU9ImJpb2pzX21zYV9zZWFyY2hyZXN1bHRfb3Zib3giLHRoaXMudXBkYXRlUmVzdWx0KCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnJlc3VsdEJveCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmJ1aWxkQnRucygpKSkpLHRoaXN9LHVwZGF0ZVJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PSJzZWFyY2ggcGF0dGVybjogIit0aGlzLmcudXNlci5nZXQoInNlYXJjaFRleHQiKTt0Kz0iLCBzZWxlY3Rpb246ICIrKHRoaXMuc2VsUG9zKzEpO3ZhciBlPXRoaXMuc2VsW3RoaXMuc2VsUG9zXTtyZXR1cm4gdCs9IiAoIix0Kz1lLmdldCgieFN0YXJ0IikrIiAtICIrZS5nZXQoInhFbmQiKSx0Kz0iLCBpZDogIitlLmdldCgic2VxSWQiKSx0Kz0iKSIsdGhpcy5yZXN1bHRCb3gudGV4dENvbnRlbnQ9dH0sYnVpbGRCdG5zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPW8ubWsoImJ1dHRvbiIpO2UudGV4dENvbnRlbnQ9IlByZXYiLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHQubW92ZVNlbCgtMSl9KTt2YXIgbj1vLm1rKCJidXR0b24iKTtuLnRleHRDb250ZW50PSJOZXh0IixuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB0Lm1vdmVTZWwoMSl9KTt2YXIgcj1vLm1rKCJidXR0b24iKTtyLnRleHRDb250ZW50PSJBbGwiLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHQuZy5zZWxjb2wucmVzZXQodC5zZWwpfSk7dmFyIGk9by5taygiZGl2Iik7cmV0dXJuIGkuYXBwZW5kQ2hpbGQoZSksaS5hcHBlbmRDaGlsZChuKSxpLmFwcGVuZENoaWxkKHIpLGkuY2xhc3NOYW1lPSJiaW9qc19tc2Ffc2VhcmNocmVzdWx0X3JvdyIsaX0sbW92ZVNlbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnNlbFBvcyt0O3JldHVybiBlPDB8fGU+PXRoaXMuc2VsLmxlbmd0aD8tMToodGhpcy5mb2N1cyhlKSx0aGlzLnNlbFBvcz1lLHRoaXMudXBkYXRlUmVzdWx0KCkpfSxmb2N1czpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnNlbFt0XSxuPWUuZ2V0KCJ4U3RhcnQiKTtyZXR1cm4gdGhpcy5nLnpvb21lci5zZXRMZWZ0T2Zmc2V0KG4pLHRoaXMuZy5zZWxjb2wucmVzZXQoW2VdKX0sc2VhcmNoOmZ1bmN0aW9uIHQoZSl7dmFyIG4sdD1uZXcgUmVnRXhwKGUsImdpIiksaT1bXSxvPW49MTAwMDQyO3JldHVybiB0aGlzLm1vZGVsLmVhY2goZnVuY3Rpb24oZSl7dmFyIG49ZS5nZXQoInNlcSIpO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgcyxhPVtdO3M9dC5leGVjKG4pOyl7dmFyIHU9cy5pbmRleCxsPXt4U3RhcnQ6dSx4RW5kOnUrc1swXS5sZW5ndGgtMSxzZXFJZDplLmdldCgiaWQiKX07aS5wdXNoKG5ldyByLnBvc3NlbChsKSksYS5wdXNoKG89TWF0aC5taW4odSxvKSl9cmV0dXJuIGF9KCl9KSx0aGlzLmcuc2VsY29sLnJlc2V0KGkpLG89PT1uJiYobz0wKSx0aGlzLmcuem9vbWVyLnNldExlZnRPZmZzZXQobyksdGhpcy5zZWw9aX19KSk7ZS5kZWZhdWx0PXN9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMyksbz1uKDExOSkscz1yKG8pLGE9bigxMzEpLHU9cihhKSxsPW4oMTIwKSxjPXIobCksaD1uKDEyMiksZj1yKGgpLGQ9bigxMjEpLGc9cihkKSxwPW4oNCksbT1wLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nPXQuZyx0aGlzLmRyYXcoKSx0aGlzLmxpc3RlblRvKHRoaXMuZy5zdGF0cywicmVzZXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVyZW5kZXIoKX0pLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmhpZGRlbiIsKDAsaS5kZWJvdW5jZSkodGhpcy5yZXJlbmRlciwxMCkpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwic29ydCIsdGhpcy5yZXJlbmRlciksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJhZGQiLGZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUubG9nKCJzZXEgYWRkIil9KSx0aGlzLmxpc3RlblRvKHRoaXMuZy52aXMsImNoYW5nZTpzZXF1ZW5jZXMiLHRoaXMucmVyZW5kZXIpLHRoaXMubGlzdGVuVG8odGhpcy5nLnZpcywiY2hhbmdlOm92ZXJ2aWV3Ym94Iix0aGlzLnJlcmVuZGVyKSx0aGlzLmxpc3RlblRvKHRoaXMuZy52aXNvcmRlciwiY2hhbmdlIix0aGlzLnJlcmVuZGVyKSx0aGlzLmxpc3RlblRvKHRoaXMuZy56b29tZXIsImNoYW5nZTpjb2x1bW5XaWR0aCIsdGhpcy5yZXJlbmRlciksdGhpcy5saXN0ZW5Ubyh0aGlzLmcudmlzLCJjaGFuZ2U6c2NhbGVzbGlkZXIiLHRoaXMucmVyZW5kZXIpLHRoaXN9LGRyYXc6ZnVuY3Rpb24oKXtpZih0aGlzLnJlbW92ZVZpZXdzKCksdGhpcy5nLnZpcy5nZXQoIm92ZXJ2aWV3Ym94Iikpe3ZhciB0PW5ldyBjLmRlZmF1bHQoe21vZGVsOnRoaXMubW9kZWwsZzp0aGlzLmd9KTt0Lm9yZGVyaW5nPXRoaXMuZy52aXNvcmRlci5nZXQoIm92ZXJ2aWV3Qm94IiksdGhpcy5hZGRWaWV3KCJvdmVydmlld0JveCIsdCl9dmFyIGU9bmV3IHUuZGVmYXVsdCh7bW9kZWw6dGhpcy5tb2RlbCxnOnRoaXMuZ30pO2Uub3JkZXJpbmc9dGhpcy5nLnZpc29yZGVyLmdldCgiaGVhZGVyQm94IiksdGhpcy5hZGRWaWV3KCJoZWFkZXJCb3giLGUpO3ZhciBuPW5ldyBmLmRlZmF1bHQoe21vZGVsOnRoaXMubW9kZWwsZzp0aGlzLmd9KTtuLm9yZGVyaW5nPXRoaXMuZy52aXNvcmRlci5nZXQoInNlYXJjaEJveCIpLHRoaXMuYWRkVmlldygic2VhcmNoYm94IixuKTt2YXIgcj1uZXcgcy5kZWZhdWx0KHttb2RlbDp0aGlzLm1vZGVsLGc6dGhpcy5nfSk7aWYoci5vcmRlcmluZz10aGlzLmcudmlzb3JkZXIuZ2V0KCJhbGlnbm1lbnRCb2R5IiksdGhpcy5hZGRWaWV3KCJib2R5IixyKSx0aGlzLmcudmlzLmdldCgic2NhbGVzbGlkZXIiKSl7dmFyIGk9bmV3IGcuZGVmYXVsdCh7bW9kZWw6dGhpcy5nLnNjYWxlLGc6dGhpcy5nfSk7aS5vcmRlcmluZz10aGlzLmcudmlzb3JkZXIuZ2V0KCJzY2FsZVNsaWRlciIpLHRoaXMuYWRkVmlldygic2NhbGVTbGlkZXIiLGkpfXJldHVybiB0aGlzfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmVuZGVyU3Vidmlld3MoKSx0aGlzLmVsLmNsYXNzTmFtZT0iYmlvanNfbXNhX3N0YWdlIix0aGlzfSxyZXJlbmRlcjpmdW5jdGlvbigpe2lmKCF0aGlzLmcuY29uZmlnLmdldCgibWFudWFsUmVuZGVyaW5nIikpcmV0dXJuIHRoaXMuZHJhdygpLHRoaXMucmVuZGVyKCl9fSk7ZS5kZWZhdWx0PW19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSxuLHIpe3JldHVybiBuJiZ0KGUucHJvdG90eXBlLG4pLHImJnQoZSxyKSxlfX0oKSxvPShuKDE2KSxmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7cih0aGlzLHQpLHRoaXMuZz1lLHRoaXMuY2FjaGU9e30sdGhpcy5jYWNoZUhlaWdodD0wLHRoaXMuY2FjaGVXaWR0aD0wfXJldHVybiBpKHQsW3trZXk6ImdldEZvbnRUaWxlIix2YWx1ZTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIGU9PT10aGlzLmNhY2hlV2lkdGgmJm49PT10aGlzLmNhY2hlSGVpZ2h0fHwodGhpcy5jYWNoZUhlaWdodD1uLHRoaXMuY2FjaGVXaWR0aD1lLHRoaXMuY2FjaGU9e30pLHZvaWQgMD09PXRoaXMuY2FjaGVbdF0mJnRoaXMuY3JlYXRlVGlsZSh0LGUsbiksdGhpcy5jYWNoZVt0XX19LHtrZXk6ImNyZWF0ZVRpbGUiLHZhbHVlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLmNhY2hlW3RdPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3JldHVybiByLndpZHRoPWUsci5oZWlnaHQ9bix0aGlzLmN0eD1yLmdldENvbnRleHQoIjJkIiksdGhpcy5jdHguZm9udD10aGlzLmcuem9vbWVyLmdldCgicmVzaWR1ZUZvbnQiKSsicHggbW9ubyIsdGhpcy5jdHgudGV4dEJhc2VsaW5lPSJtaWRkbGUiLHRoaXMuY3R4LnRleHRBbGlnbj0iY2VudGVyIix0aGlzLmN0eC5maWxsVGV4dCh0LGUvMixuLzIsZSl9fV0pLHR9KCkpO2UuZGVmYXVsdD1vfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1uKDMpLGk9bigxNiksbz17c2V0TWF4U2Nyb2xsSGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4U2Nyb2xsSGVpZ2h0PXRoaXMuZy56b29tZXIuZ2V0TWF4QWxpZ25tZW50SGVpZ2h0KCktdGhpcy5nLnpvb21lci5nZXQoImFsaWdubWVudEhlaWdodCIpfSxzZXRNYXhTY3JvbGxXaWR0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heFNjcm9sbFdpZHRoPXRoaXMuZy56b29tZXIuZ2V0TWF4QWxpZ25tZW50V2lkdGgoKS10aGlzLmcuem9vbWVyLmdldEFsaWdubWVudFdpZHRoKCl9fSxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZz10LHRoaXMubW9kZWw9ZSx0aGlzLm1heFNjcm9sbFdpZHRoPTAsdGhpcy5tYXhTY3JvbGxIZWlnaHQ9MCx0aGlzLnNldE1heFNjcm9sbEhlaWdodCgpLHRoaXMuc2V0TWF4U2Nyb2xsV2lkdGgoKSx0aGlzLmxpc3RlblRvKHRoaXMuZy56b29tZXIsImNoYW5nZTpyb3dIZWlnaHQiLHRoaXMuc2V0TWF4U2Nyb2xsSGVpZ2h0KSx0aGlzLmxpc3RlblRvKHRoaXMuZy56b29tZXIsImNoYW5nZTpjb2x1bW5XaWR0aCIsdGhpcy5zZXRNYXhTY3JvbGxXaWR0aCksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuem9vbWVyLCJjaGFuZ2U6YWxpZ25tZW50V2lkdGgiLHRoaXMuc2V0TWF4U2Nyb2xsV2lkdGgpLHRoaXMubGlzdGVuVG8odGhpcy5nLnpvb21lciwiY2hhbmdlOmFsaWdubWVudEhlaWdodCIsdGhpcy5zZXRNYXhTY3JvbGxIZWlnaHQpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiYWRkIGNoYW5nZSByZXNldCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRNYXhTY3JvbGxIZWlnaHQoKSx0aGlzLnNldE1heFNjcm9sbFdpZHRoKCl9LHRoaXMpLHRoaXN9OygwLHIuZXh0ZW5kKShzLnByb3RvdHlwZSxvKSxpLm1peGluKHMucHJvdG90eXBlKSxlLmRlZmF1bHQ9c30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9bigzKSxpPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZz10LHRoaXMuY3R4PWUsdGhpc307Xy5leHRlbmQoaS5wcm90b3R5cGUse19nZXRTZWxlY3Rpb246ZnVuY3Rpb24odCl7dmFyIGU9dC5nZXQoInNlcSIpLmxlbmd0aCxuPVtdLGk9dGhpcy5nLnNlbGNvbC5nZXRTZWxGb3JSb3codC5nZXQoImlkIikpLG89KDAsci5maW5kKShpLGZ1bmN0aW9uKHQpe3JldHVybiJyb3ciPT09dC5nZXQoInR5cGUiKX0pO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbyYmbnVsbCE9PW8pZm9yKHZhciBzPWUtMSxhPTA7YTw9czthKyspbi5wdXNoKGEpO2Vsc2UgaWYoaS5sZW5ndGg+MClmb3IodmFyIHUsbD0wO2w8aS5sZW5ndGg7bCsrKXt1PWlbbF07Zm9yKHZhciBjPXUuZ2V0KCJ4U3RhcnQiKSxoPXUuZ2V0KCJ4RW5kIiksZj1jO2Y8PWg7ZisrKW4ucHVzaChmKX1yZXR1cm4gbn0sX2FwcGVuZFNlbGVjdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dC5tb2RlbC5nZXQoInNlcSIpLHI9dGhpcy5fZ2V0U2VsZWN0aW9uKHQubW9kZWwpLGk9dGhpcy5fZ2V0UHJldk5leHRTZWxlY3Rpb24odC5tb2RlbCksbz1pWzBdLHM9aVsxXTtpZih0aGlzLmcuem9vbWVyLmdldCgiY29sdW1uV2lkdGgiKSx0aGlzLmcuem9vbWVyLmdldCgicm93SGVpZ2h0IiksMCE9PXIubGVuZ3RoKXt2YXIgYT0wO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgaT1bXSx1PW4ubGVuZ3RoLTEsbD1mdW5jdGlvbihuKXtpLnB1c2goZnVuY3Rpb24oKXtpZih0LmhpZGRlbi5pbmRleE9mKG4pPj0wKXJldHVybiBhKys7dmFyIGk9bi1hO3JldHVybiByLmluZGV4T2Yobik+PTAmJigwPT09aXx8ci5pbmRleE9mKG4tMSk8MCk/ZS5fcmVuZGVyU2VsZWN0aW9uKHtuOm4sazppLHNlbGVjdGlvbjpyLG1QcmV2U2VsOm8sbU5leHRTZWw6cyx4WmVybzp0LnhaZXJvLHlaZXJvOnQueVplcm8sbW9kZWw6dC5tb2RlbH0pOnZvaWQgMH0oKSl9LGM9MDtjPD11O2MrKylsKGMpO3JldHVybiBpfSgpfX0sX3JlbmRlclNlbGVjdGlvbjpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC54WmVybyxuPXQueVplcm8scj10Lm4saT10Lmssbz10LnNlbGVjdGlvbixzPXQubVByZXZTZWwsYT10Lm1OZXh0U2VsLHU9MCxsPXQubW9kZWwuZ2V0KCJzZXEiKS5sZW5ndGgtMSxjPXI7Yzw9bCYmby5pbmRleE9mKGMpPj0wO2MrKyl1Kys7dmFyIGg9dGhpcy5nLnpvb21lci5nZXQoImNvbHVtbldpZHRoIiksZj10aGlzLmcuem9vbWVyLmdldCgicm93SGVpZ2h0IiksZD1oKnUrMSxnPXRoaXMuZy5jb2x1bW5zLmdldCgiaGlkZGVuIik7dGhpcy5jdHguYmVnaW5QYXRoKCk7dmFyIHA9dGhpcy5jdHgubGluZVdpZHRoO3RoaXMuY3R4LmxpbmVXaWR0aD0zO3ZhciBtPXRoaXMuY3R4LnN0cm9rZVN0eWxlO3RoaXMuY3R4LnN0cm9rZVN0eWxlPSIjRkYwMDAwIixlKz1pKmg7Zm9yKHZhciB2PTAsXz11LTEseT0wO3k8PV87eSsrKXt2YXIgYj1yK3k7Zy5pbmRleE9mKGIpPj0wfHwoInVuZGVmaW5lZCIhPXR5cGVvZiBzJiZudWxsIT09cyYmcy5pbmRleE9mKGIpPj0wfHwodGhpcy5jdHgubW92ZVRvKGUrdixuKSx0aGlzLmN0eC5saW5lVG8oditoK2UsbikpLCJ1bmRlZmluZWQiIT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuaW5kZXhPZihiKT49MHx8KHRoaXMuY3R4Lm1vdmVUbyh2K2UsZituKSx0aGlzLmN0eC5saW5lVG8oditoK2UsZituKSksdis9aCl9cmV0dXJuIHRoaXMuY3R4Lm1vdmVUbyhlLG4pLHRoaXMuY3R4LmxpbmVUbyhlLGYrbiksdGhpcy5jdHgubW92ZVRvKGUrZCxuKSx0aGlzLmN0eC5saW5lVG8oZStkLGYrbiksdGhpcy5jdHguc3Ryb2tlKCksdGhpcy5jdHguc3Ryb2tlU3R5bGU9bSx0aGlzLmN0eC5saW5lV2lkdGg9cH0sX2dldFByZXZOZXh0U2VsZWN0aW9uOmZ1bmN0aW9uKHQpe3ZhciBlPXQuY29sbGVjdGlvbi5wcmV2KHQpLG49dC5jb2xsZWN0aW9uLm5leHQodCkscj12b2lkIDAsaT12b2lkIDA7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBlJiZudWxsIT09ZSYmKHI9dGhpcy5fZ2V0U2VsZWN0aW9uKGUpKSwidW5kZWZpbmVkIiE9dHlwZW9mIG4mJm51bGwhPT1uJiYoaT10aGlzLl9nZXRTZWxlY3Rpb24obikpLFtyLGldfX0pLGUuZGVmYXVsdD1pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXt2YXIgbj1bXSxyPSEwLGk9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcyxhPXRbU3ltYm9sLml0ZXJhdG9yXSgpOyEocj0ocz1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2gocy52YWx1ZSksIWV8fG4ubGVuZ3RoIT09ZSk7cj0hMCk7fWNhdGNoKHQpe2k9ITAsbz10fWZpbmFsbHl7dHJ5eyFyJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgb319cmV0dXJuIG59cmV0dXJuIGZ1bmN0aW9uKGUsbil7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZTtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKXJldHVybiB0KGUsbik7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfX0oKSxvPW4oMykscz1uKDEyNCksYT1yKHMpLHU9bigxMjYpLGw9cih1KSxjPW4oMTI4KSxoPXIoYyksZj1uKDEyNSksZD1yKGYpLGc9big0KSxwPW4oNDgpLG09big1KSx2PWcuZXh0ZW5kKHt0YWdOYW1lOiJjYW52YXMiLGluaXRpYWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZz10LmcsdGhpcy5saXN0ZW5Ubyh0aGlzLmcuem9vbWVyLCJjaGFuZ2U6X2FsaWdubWVudFNjcm9sbExlZnQgY2hhbmdlOl9hbGlnbm1lbnRTY3JvbGxUb3AiLGZ1bmN0aW9uKHQsZSxuKXtpZihudWxsPT0oInVuZGVmaW5lZCIhPXR5cGVvZiBuJiZudWxsIT09bj9uLm9yaWdpbjp2b2lkIDApfHwiY2FudmFzc2VxIiE9PW4ub3JpZ2luKXJldHVybiB0aGlzLnJlbmRlcigpfSksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuY29sdW1ucywiY2hhbmdlOmhpZGRlbiIsdGhpcy5yZW5kZXIpLHRoaXMubGlzdGVuVG8odGhpcy5nLnpvb21lciwiY2hhbmdlOmFsaWdubWVudFdpZHRoIGNoYW5nZTphbGlnbm1lbnRIZWlnaHQiLHRoaXMucmVuZGVyKSx0aGlzLmxpc3RlblRvKHRoaXMuZy5jb2xvcnNjaGVtZSwiY2hhbmdlIix0aGlzLnJlbmRlciksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuc2VsY29sLCJyZXNldCBhZGQiLHRoaXMucmVuZGVyKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsInJlc2V0IGFkZCIsdGhpcy5yZW5kZXIpLHRoaXMuZWwuc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIix0aGlzLmVsLnN0eWxlLm92ZXJmbG93WD0iaGlkZGVuIix0aGlzLmVsLnN0eWxlLm92ZXJmbG93WT0iaGlkZGVuIix0aGlzLmVsLmNsYXNzTmFtZT0iYmlvanNfbXNhX3NlcWJsb2NrIix0aGlzLmN0eD10aGlzLmVsLmdldENvbnRleHQoIjJkIiksdGhpcy5jYWNoZT1uZXcgYS5kZWZhdWx0KHRoaXMuZyksdGhpcy5jb29yZHNDYWNoZT1uZXcgZC5kZWZhdWx0KHRoaXMuZyx0aGlzLm1vZGVsKSx0aGlzLmxpc3RlblRvKHRoaXMuZy56b29tZXIsImNoYW5nZTpyZXNpZHVlRm9udCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYWNoZT1uZXcgYS5kZWZhdWx0KHRoaXMuZyksdGhpcy5yZW5kZXIoKX0pLHRoaXMuc2VsPW5ldyBsLmRlZmF1bHQodGhpcy5nLHRoaXMuY3R4KSx0aGlzLl9zZXRDb2xvcigpLHRoaXMudGhyb3R0bGVUaW1lPTAsdGhpcy50aHJvdHRsZUNvdW50cz0wLG51bGwhPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS53ZWJraXRBcHBlYXJhbmNlP3RoaXMudGhyb3R0bGVkRHJhdz1mdW5jdGlvbigpe3ZhciB0PStuZXcgRGF0ZTtpZih0aGlzLmRyYXcoKSx0aGlzLnRocm90dGxlVGltZSs9K25ldyBEYXRlLXQsdGhpcy50aHJvdHRsZUNvdW50cysrLHRoaXMudGhyb3R0bGVDb3VudHM+MTUpcmV0dXJuIE1hdGguY2VpbCh0aGlzLnRocm90dGxlVGltZS90aGlzLnRocm90dGxlQ291bnRzKSx0aGlzLnRocm90dGxlZERyYXc9dGhpcy5kcmF3fTp0aGlzLnRocm90dGxlZERyYXc9KDAsby50aHJvdHRsZSkodGhpcy50aHJvdHRsZWREcmF3LDMwKSx0aGlzLm1hbmFnZUV2ZW50cygpfSx0aHJvdHRsZWREcmF3OmZ1bmN0aW9uKCl7dmFyIHQ9K25ldyBEYXRlO2lmKHRoaXMuZHJhdygpLHRoaXMudGhyb3R0bGVUaW1lKz0rbmV3IERhdGUtdCx0aGlzLnRocm90dGxlQ291bnRzKyssdGhpcy50aHJvdHRsZUNvdW50cz4xNSl7dmFyIGU9TWF0aC5jZWlsKHRoaXMudGhyb3R0bGVUaW1lL3RoaXMudGhyb3R0bGVDb3VudHMpO3JldHVybiBlKj0xLjIsZT1NYXRoLm1heCgyMCxlKSx0aGlzLnRocm90dGxlZERyYXc9Xy50aHJvdHRsZSh0aGlzLmRyYXcsZSl9fSxtYW5hZ2VFdmVudHM6ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdC5tb3VzZWRvd249Il9vbm1vdXNlZG93biIsdC50b3VjaHN0YXJ0PSJfb250b3VjaHN0YXJ0Iix0aGlzLmcuY29uZmlnLmdldCgicmVnaXN0ZXJNb3VzZUNsaWNrcyIpJiYodC5kYmxjbGljaz0iX29uY2xpY2siKSx0aGlzLmcuY29uZmlnLmdldCgicmVnaXN0ZXJNb3VzZUhvdmVyIikmJih0Lm1vdXNlaW49Il9vbm1vdXNlaW4iLHQubW91c2VvdXQ9Il9vbm1vdXNlb3V0IiksdC5tb3VzZXdoZWVsPSJfb25tb3VzZXdoZWVsIix0LkRPTU1vdXNlU2Nyb2xsPSJfb25tb3VzZXdoZWVsIix0aGlzLmRlbGVnYXRlRXZlbnRzKHQpLHRoaXMubGlzdGVuVG8odGhpcy5nLmNvbmZpZywiY2hhbmdlOnJlZ2lzdGVyTW91c2VIb3ZlciIsdGhpcy5tYW5hZ2VFdmVudHMpLHRoaXMubGlzdGVuVG8odGhpcy5nLmNvbmZpZywiY2hhbmdlOnJlZ2lzdGVyTW91c2VDbGljayIsdGhpcy5tYW5hZ2VFdmVudHMpLHRoaXMuZHJhZ1N0YXJ0PVtdfSxfc2V0Q29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2xvcj10aGlzLmcuY29sb3JzY2hlbWUuZ2V0U2VsZWN0ZWRTY2hlbWUoKX0sZHJhdzpmdW5jdGlvbigpe2lmKHRoaXMuZWwud2lkdGg9dGhpcy5lbC53aWR0aCxudWxsIT10aGlzLnNlcURyYXdlciYmdGhpcy5tb2RlbC5sZW5ndGg+MClyZXR1cm4gdGhpcy5zZXFEcmF3ZXIuZHJhd0xldHRlcnMoKSx0aGlzLnNlcURyYXdlci5kcmF3Um93cyh0aGlzLnNlbC5fYXBwZW5kU2VsZWN0aW9uLHRoaXMuc2VsKSx0aGlzLnNlcURyYXdlci5kcmF3Um93cyh0aGlzLmRyYXdGZWF0dXJlcyx0aGlzKX0sZHJhd0ZlYXR1cmVzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZy56b29tZXIuZ2V0KCJjb2x1bW5XaWR0aCIpLG49dGhpcy5nLnpvb21lci5nZXQoInJvd0hlaWdodCIpO2lmKHQubW9kZWwuYXR0cmlidXRlcy5oZWlnaHQ+MSl7dmFyIHI9dGhpcy5jdHg7cmV0dXJuIHQubW9kZWwuYXR0cmlidXRlcy5mZWF0dXJlcy5lYWNoKGZ1bmN0aW9uKGkpe3IuZmlsbFN0eWxlPWkuYXR0cmlidXRlcy5maWxsQ29sb3J8fCJyZWQiO3ZhciBvPWkuYXR0cmlidXRlcy54RW5kLWkuYXR0cmlidXRlcy54U3RhcnQrMSxzPShpLmF0dHJpYnV0ZXMucm93KzEpKm47cmV0dXJuIHIuZmlsbFJlY3QoaS5hdHRyaWJ1dGVzLnhTdGFydCplK3QueFplcm8scyt0LnlaZXJvLGUqbyxuKX0pLHIuZmlsbFN0eWxlPSJibGFjayIsci5mb250PXRoaXMuZy56b29tZXIuZ2V0KCJyZXNpZHVlRm9udCIpKyJweCBtb25vIixyLnRleHRCYXNlbGluZT0ibWlkZGxlIixyLnRleHRBbGlnbj0iY2VudGVyIix0Lm1vZGVsLmF0dHJpYnV0ZXMuZmVhdHVyZXMuZWFjaChmdW5jdGlvbihpKXt2YXIgbz1pLmF0dHJpYnV0ZXMueEVuZC1pLmF0dHJpYnV0ZXMueFN0YXJ0KzEscz0oaS5hdHRyaWJ1dGVzLnJvdysxKSpuO3JldHVybiByLmZpbGxUZXh0KGkuYXR0cmlidXRlcy50ZXh0LHQueFplcm8raS5hdHRyaWJ1dGVzLnhTdGFydCplK28vMiplLHQueVplcm8rLjUqbitzKX0pfX0scmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWwuc2V0QXR0cmlidXRlKCJoZWlnaHQiLHRoaXMuZy56b29tZXIuZ2V0KCJhbGlnbm1lbnRIZWlnaHQiKSsicHgiKSx0aGlzLmVsLnNldEF0dHJpYnV0ZSgid2lkdGgiLHRoaXMuZy56b29tZXIuZ2V0QWxpZ25tZW50V2lkdGgoKSsicHgiKSx0aGlzLmcuem9vbWVyLl9jaGVja1Njcm9sbGluZyh0aGlzLl9jaGVja1Njcm9sbGluZyhbdGhpcy5nLnpvb21lci5nZXQoIl9hbGlnbm1lbnRTY3JvbGxMZWZ0IiksdGhpcy5nLnpvb21lci5nZXQoIl9hbGlnbm1lbnRTY3JvbGxUb3AiKV0pLHtoZWFkZXI6ImNhbnZhc3NlcSJ9KSx0aGlzLl9zZXRDb2xvcigpLHRoaXMuc2VxRHJhd2VyPW5ldyBoLmRlZmF1bHQodGhpcy5nLHRoaXMuY3R4LHRoaXMubW9kZWwse3dpZHRoOnRoaXMuZWwud2lkdGgsaGVpZ2h0OnRoaXMuZWwuaGVpZ2h0LGNvbG9yOnRoaXMuY29sb3IsY2FjaGU6dGhpcy5jYWNoZX0pLHRoaXMudGhyb3R0bGVkRHJhdygpLHRoaXN9LF9vbm1vdXNlbW92ZTpmdW5jdGlvbih0LGUpe2lmKDAhPT10aGlzLmRyYWdTdGFydC5sZW5ndGgpe3ZhciBuPXAuYWJzKHQpLHI9W25bMF0tdGhpcy5kcmFnU3RhcnRbMF0sblsxXS10aGlzLmRyYWdTdGFydFsxXV0saT10aGlzLmcuem9vbWVyLmdldCgiY2FudmFzRXZlbnRTY2FsZSIpO2UmJihpPTMpO2Zvcih2YXIgbz0wO288PTE7bysrKXJbb109cltvXSppO2Zvcih2YXIgcz1bdGhpcy5kcmFnU3RhcnRTY3JvbGxbMF0tclswXSx0aGlzLmRyYWdTdGFydFNjcm9sbFsxXS1yWzFdXSxhPTA7YTw9MTthKyspc1thXT1NYXRoLnJvdW5kKHNbYV0pO3ZhciB1PXRoaXMuX2NoZWNrU2Nyb2xsaW5nKHMpO3RoaXMuZy56b29tZXIuX2NoZWNrU2Nyb2xsaW5nKHUse29yaWdpbjoiY2FudmFzc2VxIn0pO2Zvcih2YXIgbD0wO2w8PTE7bCsrKXVbbF0hPT1zW2xdJiYoMD09PXVbbF0/KHRoaXMuZHJhZ1N0YXJ0W2xdPW5bbF0sdGhpcy5kcmFnU3RhcnRTY3JvbGxbbF09MCk6dGhpcy5kcmFnU3RhcnRbbF09bltsXS11W2xdKTtyZXR1cm4gdGhpcy50aHJvdHRsZWREcmF3KCksbnVsbCE9dC5wcmV2ZW50RGVmYXVsdD8odC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpOnZvaWQgMH19LF9vbnRvdWNobW92ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fb25tb3VzZW1vdmUodC5jaGFuZ2VkVG91Y2hlc1swXSwhMCksdC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9LF9vbm1vdXNlZG93bjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLmRyYWdTdGFydD1wLmFicyh0KSx0aGlzLmRyYWdTdGFydFNjcm9sbD1bdGhpcy5nLnpvb21lci5nZXQoIl9hbGlnbm1lbnRTY3JvbGxMZWZ0IiksdGhpcy5nLnpvb21lci5nZXQoIl9hbGlnbm1lbnRTY3JvbGxUb3AiKV0sbShkb2N1bWVudC5ib2R5KS5vbigibW91c2Vtb3ZlLm92ZXJtb3ZlIixmdW5jdGlvbih0KXtyZXR1cm4gZS5fb25tb3VzZW1vdmUodCl9KSxtKGRvY3VtZW50LmJvZHkpLm9uKCJtb3VzZXVwLm92ZXJ1cCIsZnVuY3Rpb24oKXtyZXR1cm4gZS5fY2xlYW51cCgpfSksdC5wcmV2ZW50RGVmYXVsdCgpfSxfb250b3VjaHN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuZHJhZ1N0YXJ0PXAuYWJzKHQuY2hhbmdlZFRvdWNoZXNbMF0pLHRoaXMuZHJhZ1N0YXJ0U2Nyb2xsPVt0aGlzLmcuem9vbWVyLmdldCgiX2FsaWdubWVudFNjcm9sbExlZnQiKSx0aGlzLmcuem9vbWVyLmdldCgiX2FsaWdubWVudFNjcm9sbFRvcCIpXSxtKGRvY3VtZW50LmJvZHkpLm9uKCJ0b3VjaG1vdmUub3ZlcnRtb3ZlIixmdW5jdGlvbih0KXtyZXR1cm4gZS5fb250b3VjaG1vdmUodCl9KSxtKGRvY3VtZW50LmJvZHkpLm9uKCJ0b3VjaGVuZC5vdmVydGVuZCB0b3VjaGxlYXZlLm92ZXJ0bGVhdmUgdG91Y2hjYW5jZWwub3ZlcnRjYW5lbCIsZnVuY3Rpb24odCl7cmV0dXJuIGUuX3RvdWNoQ2xlYW51cCh0KX0pfSxfb25tb3VzZXdpbm91dDpmdW5jdGlvbih0KXtpZih0LnRvRWxlbWVudD09PWRvY3VtZW50LmJvZHkucGFyZW50Tm9kZSlyZXR1cm4gdGhpcy5fY2xlYW51cCgpfSxfY2xlYW51cDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRyYWdTdGFydD1bXSxtKGRvY3VtZW50LmJvZHkpLm9mZigiLm92ZXJtb3ZlIiksbShkb2N1bWVudC5ib2R5KS5vZmYoIi5vdmVydXAiKSxtKGRvY3VtZW50LmJvZHkpLm9mZigiLm92ZXJvdXQiKX0sX3RvdWNoQ2xlYW51cDpmdW5jdGlvbih0KXtyZXR1cm4gdC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg+MCYmdGhpcy5fb25tb3VzZW1vdmUodC5jaGFuZ2VkVG91Y2hlc1swXSwhMCksdGhpcy5kcmFnU3RhcnQ9W10sbShkb2N1bWVudC5ib2R5KS5vZmYoIi5vdmVydG1vdmUiKSxtKGRvY3VtZW50LmJvZHkpLm9mZigiLm92ZXJ0ZW5kIiksbShkb2N1bWVudC5ib2R5KS5vZmYoIi5vdmVydGxlYXZlIiksbShkb2N1bWVudC5ib2R5KS5vZmYoIi5vdmVydGNhbmNlbCIpfSxfb25tb3VzZXdoZWVsOmZ1bmN0aW9uKHQpe3ZhciBlPXAud2hlZWxEZWx0YSh0KTtyZXR1cm4gdGhpcy5nLnpvb21lci5zZXQoIl9hbGlnbm1lbnRTY3JvbGxMZWZ0Iix0aGlzLmcuem9vbWVyLmdldCgiX2FsaWdubWVudFNjcm9sbExlZnQiKStlWzBdKSx0aGlzLmcuem9vbWVyLnNldCgiX2FsaWdubWVudFNjcm9sbFRvcCIsdGhpcy5nLnpvb21lci5nZXQoIl9hbGlnbm1lbnRTY3JvbGxUb3AiKStlWzFdKSx0LnByZXZlbnREZWZhdWx0KCl9LF9vbmNsaWNrOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2dldENsaWNrUG9zKHQpO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZSYmbnVsbCE9PWUmJihudWxsIT1lLmZlYXR1cmU/dGhpcy5nLnRyaWdnZXIoImZlYXR1cmU6Y2xpY2siLGUpOnRoaXMuZy50cmlnZ2VyKCJyZXNpZHVlOmNsaWNrIixlKSksdGhpcy50aHJvdHRsZWREcmF3KCl9LF9vbm1vdXNlaW46ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fZ2V0Q2xpY2tQb3ModCk7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBlJiZudWxsIT09ZSYmKG51bGwhPWUuZmVhdHVyZT90aGlzLmcudHJpZ2dlcigiZmVhdHVyZTptb3VzZWluIixlKTp0aGlzLmcudHJpZ2dlcigicmVzaWR1ZTptb3VzZWluIixlKSksdGhpcy50aHJvdHRsZWREcmF3KCl9LF9vbm1vdXNlb3V0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2dldENsaWNrUG9zKHQpO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZSYmbnVsbCE9PWUmJihudWxsIT1lLmZlYXR1cmU/dGhpcy5nLnRyaWdnZXIoImZlYXR1cmU6bW91c2VvdXQiLGUpOnRoaXMuZy50cmlnZ2VyKCJyZXNpZHVlOm1vdXNlb3V0IixlKSksdGhpcy50aHJvdHRsZWREcmF3KCl9LF9nZXRDbGlja1BvczpmdW5jdGlvbih0KXt2YXIgZT1wLnJlbCh0KTtlWzBdKz10aGlzLmcuem9vbWVyLmdldCgiX2FsaWdubWVudFNjcm9sbExlZnQiKTt2YXIgbj1NYXRoLmZsb29yKGVbMF0vdGhpcy5nLnpvb21lci5nZXQoImNvbHVtbldpZHRoIikpLHI9dGhpcy5zZXFEcmF3ZXIuX2dldFNlcUZvcllDbGljayhlWzFdKSxvPWkociwyKSxzPW9bMF0sYT1vWzFdO24rPXRoaXMuZy5jb2x1bW5zLmNhbGNIaWRkZW5Db2x1bW5zKG4pLHMrPXRoaXMubW9kZWwuY2FsY0hpZGRlblNlcXMocyksbj1NYXRoLm1heCgwLG4pLHM9TWF0aC5tYXgoMCxzKTt2YXIgdT10aGlzLm1vZGVsLmF0KHMpLmdldCgiaWQiKTtpZighKGE+MCkpcmV0dXJue3NlcUlkOnUscm93UG9zOm4sZXZ0OnR9O3ZhciBsPXRoaXMubW9kZWwuYXQocykuZ2V0KCJmZWF0dXJlcyIpLmdldEZlYXR1cmVPblJvdyhhLTEsbik7cmV0dXJuIDAhPT1sLmxlbmd0aD97c2VxSWQ6dSxmZWF0dXJlOmxbMF0scm93UG9zOm4sZXZ0OnR9OnZvaWQgMH0sX2NoZWNrU2Nyb2xsaW5nOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bdGhpcy5jb29yZHNDYWNoZS5tYXhTY3JvbGxXaWR0aCx0aGlzLmNvb3Jkc0NhY2hlLm1heFNjcm9sbEhlaWdodF0sbj0wO248PTE7bisrKXRbbl0+ZVtuXSYmKHRbbl09ZVtuXSksdFtuXTwwJiYodFtuXT0wKTtyZXR1cm4gdH19KTtlLmRlZmF1bHQ9dn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dmFyIG49W10scj0hMCxpPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIHMsYT10W1N5bWJvbC5pdGVyYXRvcl0oKTshKHI9KHM9YS5uZXh0KCkpLmRvbmUpJiYobi5wdXNoKHMudmFsdWUpLCFlfHxuLmxlbmd0aCE9PWUpO3I9ITApO31jYXRjaCh0KXtpPSEwLG89dH1maW5hbGx5e3RyeXshciYmYS5yZXR1cm4mJmEucmV0dXJuKCl9ZmluYWxseXtpZihpKXRocm93IG99fXJldHVybiBufXJldHVybiBmdW5jdGlvbihlLG4pe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gdChlLG4pO3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX19KCksaT1uKDMpLG89e3VwZGF0ZUNvbmZpZzpmdW5jdGlvbigpe3RoaXMucmVjdFdpZHRoPXRoaXMuZy56b29tZXIuZ2V0KCJjb2x1bW5XaWR0aCIpLHRoaXMucmVjdEhlaWdodD10aGlzLmcuem9vbWVyLmdldCgicm93SGVpZ2h0Iil9LGRyYXdMZXR0ZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXBkYXRlQ29uZmlnKCksdGhpcy5jdHguZ2xvYmFsQWxwaGE9dGhpcy5nLmNvbG9yc2NoZW1lLmdldCgib3BhY2l0eSIpLHRoaXMuZHJhd1NlcXMoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZHJhd1NlcSh0LHRoaXMuX2RyYXdSZWN0KX0pLHRoaXMuY3R4Lmdsb2JhbEFscGhhPTEsdGhpcy5yZWN0V2lkdGg+PXRoaXMuZy56b29tZXIuZ2V0KCJtaW5MZXR0ZXJEcmF3U2l6ZSIpJiZ0aGlzLmRyYXdTZXFzKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRyYXdTZXEodCx0aGlzLl9kcmF3TGV0dGVyKX0pLHRoaXN9LGRyYXdTZXFzOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5nLmNvbHVtbnMuZ2V0KCJoaWRkZW4iKTtlPWV8fHRoaXM7Zm9yKHZhciBpPXRoaXMuZ2V0U3RhcnRTZXEoKSxvPXIoaSwyKSxzPW9bMF0sYT1vWzFdLHU9czt1PHRoaXMubW9kZWwubGVuZ3RoO3UrKyl7dmFyIGw9dGhpcy5tb2RlbC5hdCh1KTtpZighbC5nZXQoImhpZGRlbiIpJiYodC5jYWxsKGUse21vZGVsOmwseVBvczphLHk6dSxoaWRkZW46bn0pLGErPShsLmF0dHJpYnV0ZXMuaGVpZ2h0fHwxKSp0aGlzLnJlY3RIZWlnaHQsYT50aGlzLmhlaWdodCkpYnJlYWt9fSxkcmF3Um93czpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmRyYXdTZXFzKGZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmRyYXdSb3cobix0LGUpfSl9LGRyYXdSb3c6ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXMuZy56b29tZXIuZ2V0KCJjb2x1bW5XaWR0aCIpLGk9TWF0aC5tYXgoMCxNYXRoLmFicyhNYXRoLmNlaWwoLXRoaXMuZy56b29tZXIuZ2V0KCJfYWxpZ25tZW50U2Nyb2xsTGVmdCIpL3IpKSksbz0tTWF0aC5hYnMoLXRoaXMuZy56b29tZXIuZ2V0KCJfYWxpZ25tZW50U2Nyb2xsTGVmdCIpJXIpLHM9by1pKnIsYT10LnlQb3M7cmV0dXJuIGUuY2FsbChuLHttb2RlbDp0Lm1vZGVsLHhaZXJvOnMseVplcm86YSxoaWRkZW46dC5oaWRkZW59KX0sZ2V0U3RhcnRTZXE6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9TWF0aC5tYXgoMCxNYXRoLmZsb29yKHRoaXMuZy56b29tZXIuZ2V0KCJfYWxpZ25tZW50U2Nyb2xsVG9wIikvdGhpcy5yZWN0SGVpZ2h0KSkrMSxlPTAsbj0wO2U8dCYmbjx0aGlzLm1vZGVsLmxlbmd0aDspZSs9dGhpcy5tb2RlbC5hdChuKS5hdHRyaWJ1dGVzLmhlaWdodHx8MSxuKys7cmV0dXJuW24tMSwtTWF0aC5tYXgoMCx0aGlzLmcuem9vbWVyLmdldCgiX2FsaWdubWVudFNjcm9sbFRvcCIpLWUqdGhpcy5yZWN0SGVpZ2h0Kyh0aGlzLm1vZGVsLmF0KG4tMSkuYXR0cmlidXRlcy5oZWlnaHR8fDEpKnRoaXMucmVjdEhlaWdodCldfSxfZ2V0U2VxRm9yWUNsaWNrOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmdldFN0YXJ0U2VxKCksbj1yKGUsMiksaT1uWzBdLG89blsxXSxzPW8ldGhpcy5yZWN0SGVpZ2h0LGE9TWF0aC5tYXgoMCxNYXRoLmZsb29yKCh0LXMpL3RoaXMucmVjdEhlaWdodCkpKzEsdT0wLGw9aTt1PGEmJmw8dGhpcy5tb2RlbC5sZW5ndGg7KXUrPXRoaXMubW9kZWwuYXQobCkuYXR0cmlidXRlcy5oZWlnaHR8fDEsbCsrO3JldHVybltsLTEsTWF0aC5tYXgoMCxNYXRoLmZsb29yKHQvdGhpcy5yZWN0SGVpZ2h0KS11Kyh0aGlzLm1vZGVsLmF0KGwtMSkuZ2V0KCJoZWlnaHQiKXx8MSkpXX0sZHJhd1NlcTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10Lm1vZGVsLmdldCgic2VxIikscj10LnlQb3MsaT10aGlzLnJlY3RXaWR0aCxvPXRoaXMucmVjdEhlaWdodCxzPU1hdGgubWF4KDAsTWF0aC5hYnMoTWF0aC5jZWlsKC10aGlzLmcuem9vbWVyLmdldCgiX2FsaWdubWVudFNjcm9sbExlZnQiKS9pKSkpLGE9LU1hdGguYWJzKC10aGlzLmcuem9vbWVyLmdldCgiX2FsaWdubWVudFNjcm9sbExlZnQiKSVpKSx1PXtyZWN0V2lkdGg6aSxyZWN0SGVpZ2h0Om8seVBvczpyLHk6dC55fSxsPXRoaXMud2lkdGgsYz1zO2M8bi5sZW5ndGg7YysrKXt2YXIgaD1uW2NdO2lmKGg9aC50b1VwcGVyQ2FzZSgpLHUueD1jLHUuYz1oLHUueFBvcz1hLHQuaGlkZGVuLmluZGV4T2YoYyk8MCYmKGUodGhpcyx1KSxhKz1pLGE+bCkpYnJlYWt9fSxfZHJhd1JlY3Q6ZnVuY3Rpb24odCxlKXt2YXIgbj10LmNvbG9yLmdldENvbG9yKGUuYyx7cG9zOmUueCx5OmUueX0pO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbiYmbnVsbCE9PW4pcmV0dXJuIHQuY3R4LmZpbGxTdHlsZT1uLHQuY3R4LmZpbGxSZWN0KGUueFBvcyxlLnlQb3MsZS5yZWN0V2lkdGgsZS5yZWN0SGVpZ2h0KX0sX2RyYXdMZXR0ZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jdHguZHJhd0ltYWdlKHQuY2FjaGUuZ2V0Rm9udFRpbGUoZS5jLGUucmVjdFdpZHRoLGUucmVjdEhlaWdodCksZS54UG9zLGUueVBvcyxlLnJlY3RXaWR0aCxlLnJlY3RIZWlnaHQpfX0scz1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdGhpcy5nPXQsdGhpcy5jdHg9ZSx0aGlzLm1vZGVsPW4sdGhpcy53aWR0aD1yLndpZHRoLHRoaXMuaGVpZ2h0PXIuaGVpZ2h0LHRoaXMuY29sb3I9ci5jb2xvcix0aGlzLmNhY2hlPXIuY2FjaGUsdGhpcy5yZWN0SGVpZ2h0PXRoaXMuZy56b29tZXIuZ2V0KCJyb3dIZWlnaHQiKSx0aGlzLnJlY3RXaWR0aD10aGlzLmcuem9vbWVyLmdldCgiY29sdW1uV2lkdGgiKSx0aGlzfTsoMCxpLmV4dGVuZCkocy5wcm90b3R5cGUsbyksZS5kZWZhdWx0PXN9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYobnVsbCE9dClmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSk7cmV0dXJuIGUuZGVmYXVsdD10LGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxvPW4oMTQpLHM9cihvKSxhPW4oMiksdT1uKDcpLGw9YS5leHRlbmQoe2NsYXNzTmFtZToiYmlvanNfbXNhX2NvbnNlcnYiLGluaXRpYWxpemU6ZnVuY3Rpb24odCl7dGhpcy5nPXQuZyx0aGlzLmxpc3RlblRvKHRoaXMuZy56b29tZXIsImNoYW5nZTpzdGVwU2l6ZSBjaGFuZ2U6bGFiZWxXaWR0aCBjaGFuZ2U6Y29sdW1uV2lkdGgiLHRoaXMucmVuZGVyKSx0aGlzLmxpc3RlblRvKHRoaXMuZy52aXMsImNoYW5nZTpsYWJlbHMgY2hhbmdlOm1ldGFjZWxsIix0aGlzLnJlbmRlciksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuY29sdW1ucywiY2hhbmdlOnNjYWxpbmciLHRoaXMucmVuZGVyKSx0aGlzLmxpc3RlblRvKHRoaXMuZy5zdGF0cywicmVzZXQiLHRoaXMucmVuZGVyKTt2YXIgZT1fLmV4dGVuZCh7fSx7ZmlsbENvbG9yOlsiIzY2MCIsIiNmZjAiXSxzdHJva2VDb2xvcjoiIzMzMCIsbWF4SGVpZ2h0OjIwLHJlY3RTdHlsZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdH19LHRoaXMuZy5jb25zZXJ2YXRpb25Db25maWcpO3JldHVybiB0aGlzLmZpbGxDb2xvcj1lLmZpbGxDb2xvcix0aGlzLnN0cm9rZUNvbG9yPWUuc3Ryb2tlQ29sb3IsdGhpcy5tYXhIZWlnaHQ9ZS5tYXhIZWlnaHQsdGhpcy5yZWN0U3R5bGVyPWUucmVjdFN0eWxlcix0aGlzLm1hbmFnZUV2ZW50cygpfSxjb2xvcmVyOmZ1bmN0aW9uIHQoZSl7dmFyIHQ9ZnVuY3Rpb24oKXtyZXR1cm4ibm9uZSJ9O2lmKCJzdHJpbmciPT10eXBlb2YgZSl0PWZ1bmN0aW9uKCl7cmV0dXJuIGV9O2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlKSl7MiE9ZS5sZW5ndGgmJmNvbnNvbGUuZXJyb3IoIkVSUk9SOiBjb2xvclJhbmdlIGFycmF5IHNob3VsZCBoYXZlIGV4YWN0bHkgdHdvIGVsZW1lbnRzIixlKTt2YXIgbj0idW5kZWZpbmVkIiE9dHlwZW9mIGQzJiYhIWQzLnNjYWxlLHI9InVuZGVmaW5lZCIhPXR5cGVvZiBkM19zY2FsZTtpZihufHxyKXt2YXIgbz1uP2QzLnNjYWxlLmxpbmVhcigpOmQzX3NjYWxlLnNjYWxlTGluZWFyKCkscz1vLmRvbWFpbihbMCx0aGlzLm1heEhlaWdodF0pLnJhbmdlKGUpO3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHModC5oZWlnaHQpfX1lbHNlIGNvbnNvbGUud2FybigicHJvdmlkaW5nIGEgW21pbi9tYXhdIHJhbmdlIGFzIGlucHV0IHJlcXVpcmVzIGQzIHRvIGJlIGluY2x1ZGVkIC0gb25seSB1c2luZyB0aGUgZmlyc3QgY29sb3IiKSx0PWZ1bmN0aW9uKHQpe3JldHVybiBlWzBdfX1lbHNlIGNvbnNvbGUud2FybigiZXhwZWN0ZWQgY29sb3JSYW5nZSB0byBiZSAnI3JnYicgb3IgWycjcmdiJywgJyNyZ2InXSIsZSwiKCIrKCJ1bmRlZmluZWQiPT10eXBlb2YgZT8idW5kZWZpbmVkIjppKGUpKSsiKSIpO3JldHVybiB0fSxyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmcuc3RhdHMuc2NhbGUodGhpcy5nLnN0YXRzLmNvbnNlcnZhdGlvbigpKTt1LnJlbW92ZUFsbENoaWxkcyh0aGlzLmVsKTt2YXIgZT10aGlzLm1vZGVsLmdldE1heExlbmd0aCgpLG49dGhpcy5nLnpvb21lci5nZXQoImNvbHVtbldpZHRoIikscj10aGlzLm1heEhlaWdodCxpPW4qKGUtdGhpcy5nLmNvbHVtbnMuZ2V0KCJoaWRkZW4iKS5sZW5ndGgpLG89cy5iYXNlKHtoZWlnaHQ6cix3aWR0aDppfSk7by5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2siLG8uc3R5bGUuY3Vyc29yPSJwb2ludGVyIjtmb3IodmFyIGE9KHRoaXMucmVjdERhdGEsdGhpcy5jb2xvcmVyKHRoaXMuZmlsbENvbG9yKSksbD10aGlzLmNvbG9yZXIodGhpcy5zdHJva2VDb2xvciksYz10aGlzLnJlY3RTdHlsZXIsaD10aGlzLmcuem9vbWVyLmdldCgic3RlcFNpemUiKSxmPXRoaXMuZy5jb2x1bW5zLmdldCgiaGlkZGVuIiksZD0wLGc9MDtnPGU7KWlmKGYuaW5kZXhPZihnKT49MClnKz1oO2Vsc2V7aT1uKmg7Zm9yKHZhciBwPTAsbT1oLTEsdj0wOzA8bT92PD1tOnY+PW07MDxtP3YrKzp2LS0pcCs9dFtnXTt2YXIgXz1yKihwL2gpLHk9ewp4OmQseTpyLV8sbWF4aGVpZ2h0OnIsd2lkdGg6aS1uLzQsaGVpZ2h0Ol8scm93UG9zOmd9LGI9cy5yZWN0KHkpO2Iuc3R5bGUuc3Ryb2tlPWwoeSksYi5zdHlsZS5maWxsPWEoeSksImZ1bmN0aW9uIj09dHlwZW9mIGMmJmMoYix5KSxiLnJvd1Bvcz1nLG8uYXBwZW5kQ2hpbGQoYiksZCs9aSxnKz1ofXJldHVybiB0aGlzLmVsLmFwcGVuZENoaWxkKG8pLHRoaXN9LF9vbmNsaWNrOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10LnRhcmdldC5yb3dQb3Mscj10aGlzLmcuem9vbWVyLmdldCgic3RlcFNpemUiKTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGk9W10sbz1yLTEscz0wOzA8bz9zPD1vOnM+PW87MDxvP3MrKzpzLS0paS5wdXNoKGUuZy50cmlnZ2VyKCJiYXI6Y2xpY2siLHtyb3dQb3M6bitzLGV2dDp0fSkpO3JldHVybiBpfSgpfSxtYW5hZ2VFdmVudHM6ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdGhpcy5nLmNvbmZpZy5nZXQoInJlZ2lzdGVyTW91c2VDbGlja3MiKSYmKHQuY2xpY2s9Il9vbmNsaWNrIiksdGhpcy5nLmNvbmZpZy5nZXQoInJlZ2lzdGVyTW91c2VIb3ZlciIpJiYodC5tb3VzZWluPSJfb25tb3VzZWluIix0Lm1vdXNlb3V0PSJfb25tb3VzZW91dCIpLHRoaXMuZGVsZWdhdGVFdmVudHModCksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuY29uZmlnLCJjaGFuZ2U6cmVnaXN0ZXJNb3VzZUhvdmVyIix0aGlzLm1hbmFnZUV2ZW50cyksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuY29uZmlnLCJjaGFuZ2U6cmVnaXN0ZXJNb3VzZUNsaWNrIix0aGlzLm1hbmFnZUV2ZW50cyl9LF9vbm1vdXNlaW46ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nLnpvb21lci5nZXQoInN0ZXBTaXplIip0LnJvd1Bvcyk7cmV0dXJuIHRoaXMuZy50cmlnZ2VyKCJiYXI6bW91c2VpbiIse3Jvd1BvczplLGV2dDp0fSl9LF9vbm1vdXNlb3V0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZy56b29tZXIuZ2V0KCJzdGVwU2l6ZSIqdC5yb3dQb3MpO3JldHVybiB0aGlzLmcudHJpZ2dlcigiYmFyOm1vdXNlb3V0Iix7cm93UG9zOmUsZXZ0OnR9KX19KTtlLmRlZmF1bHQ9bH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZihudWxsIT10KWZvcih2YXIgbiBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKTtyZXR1cm4gZS5kZWZhdWx0PXQsZX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxNCksbz1yKGkpLHM9bigyKSxhPW4oNyksdT1zLmV4dGVuZCh7Y2xhc3NOYW1lOiJiaW9qc19tc2FfZ2FwdmlldyIsaW5pdGlhbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nPXQuZyx0aGlzLmxpc3RlblRvKHRoaXMuZy56b29tZXIsImNoYW5nZTpzdGVwU2l6ZSBjaGFuZ2U6bGFiZWxXaWR0aCBjaGFuZ2U6Y29sdW1uV2lkdGgiLHRoaXMucmVuZGVyKSx0aGlzLmxpc3RlblRvKHRoaXMuZy52aXMsImNoYW5nZTpsYWJlbHMgY2hhbmdlOm1ldGFjZWxsIix0aGlzLnJlbmRlciksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuY29sdW1ucywiY2hhbmdlOnNjYWxpbmciLHRoaXMucmVuZGVyKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsInJlc2V0Iix0aGlzLnJlbmRlciksdGhpcy5tYW5hZ2VFdmVudHMoKX0scmVuZGVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nLnN0YXRzLmdhcHMoKTthLnJlbW92ZUFsbENoaWxkcyh0aGlzLmVsKTt2YXIgZT10aGlzLm1vZGVsLmdldE1heExlbmd0aCgpLG49dGhpcy5nLnpvb21lci5nZXQoImNvbHVtbldpZHRoIikscj0yMCxpPW4qKGUtdGhpcy5nLmNvbHVtbnMuZ2V0KCJoaWRkZW4iKS5sZW5ndGgpLHM9by5iYXNlKHtoZWlnaHQ6cix3aWR0aDppfSk7cy5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2siLHMuc3R5bGUuY3Vyc29yPSJwb2ludGVyIjtmb3IodmFyIHU9dGhpcy5nLnpvb21lci5nZXQoInN0ZXBTaXplIiksbD10aGlzLmcuY29sdW1ucy5nZXQoImhpZGRlbiIpLGM9MCxoPTA7aDxlOylpZihsLmluZGV4T2YoaCk+PTApaCs9dTtlbHNle2k9bip1O2Zvcih2YXIgZj0wLGQ9dS0xLGc9MDswPGQ/Zzw9ZDpnPj1kOzA8ZD9nKys6Zy0tKWYrPXRbaF07dmFyIHA9ciooZi91KSxtPW8ucmVjdCh7eDpjLHk6ci1wLHdpZHRoOmktbi80LGhlaWdodDpwLHN0eWxlOiJzdHJva2U6cmVkO3N0cm9rZS13aWR0aDoxOyJ9KTttLnJvd1Bvcz1oLHMuYXBwZW5kQ2hpbGQobSksYys9aSxoKz11fXJldHVybiB0aGlzLmVsLmFwcGVuZENoaWxkKHMpLHRoaXN9LF9vbmNsaWNrOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10LnRhcmdldC5yb3dQb3Mscj10aGlzLmcuem9vbWVyLmdldCgic3RlcFNpemUiKTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGk9W10sbz1yLTEscz0wOzA8bz9zPD1vOnM+PW87MDxvP3MrKzpzLS0paS5wdXNoKGUuZy50cmlnZ2VyKCJnYXA6Y2xpY2siLHtyb3dQb3M6bitzLGV2dDp0fSkpO3JldHVybiBpfSgpfSxtYW5hZ2VFdmVudHM6ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdGhpcy5nLmNvbmZpZy5nZXQoInJlZ2lzdGVyTW91c2VDbGlja3MiKSYmKHQuY2xpY2s9Il9vbmNsaWNrIiksdGhpcy5nLmNvbmZpZy5nZXQoInJlZ2lzdGVyTW91c2VIb3ZlciIpJiYodC5tb3VzZWluPSJfb25tb3VzZWluIix0Lm1vdXNlb3V0PSJfb25tb3VzZW91dCIpLHRoaXMuZGVsZWdhdGVFdmVudHModCksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuY29uZmlnLCJjaGFuZ2U6cmVnaXN0ZXJNb3VzZUhvdmVyIix0aGlzLm1hbmFnZUV2ZW50cyksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuY29uZmlnLCJjaGFuZ2U6cmVnaXN0ZXJNb3VzZUNsaWNrIix0aGlzLm1hbmFnZUV2ZW50cyl9LF9vbm1vdXNlaW46ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nLnpvb21lci5nZXQoInN0ZXBTaXplIip0LnJvd1Bvcyk7cmV0dXJuIHRoaXMuZy50cmlnZ2VyKCJnYXA6bW91c2VpbiIse3Jvd1BvczplLGV2dDp0fSl9LF9vbm1vdXNlb3V0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZy56b29tZXIuZ2V0KCJzdGVwU2l6ZSIqdC5yb3dQb3MpO3JldHVybiB0aGlzLmcudHJpZ2dlcigiZ2FwOm1vdXNlb3V0Iix7cm93UG9zOmUsZXZ0OnR9KX19KTtlLmRlZmF1bHQ9dX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxMzIpLG89cihpKSxzPW4oMTM0KSxhPXIocyksdT1uKDQpLGw9dS5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5nPXQuZyx0aGlzLmRyYXcoKSx0aGlzLmxpc3RlblRvKHRoaXMuZy52aXMsImNoYW5nZTpsYWJlbHMgY2hhbmdlOm1ldGFjZWxsIGNoYW5nZTpsZWZ0SGVhZGVyIixmdW5jdGlvbigpe3JldHVybiBlLmRyYXcoKSxlLnJlbmRlcigpfSl9LGRyYXc6ZnVuY3Rpb24oKXtpZih0aGlzLnJlbW92ZVZpZXdzKCksdGhpcy5nLnZpcy5nZXQoImxlZnRIZWFkZXIiKSYmKHRoaXMuZy52aXMuZ2V0KCJsYWJlbHMiKXx8dGhpcy5nLnZpcy5nZXQoIm1ldGFjZWxsIikpKXt2YXIgdD1uZXcgby5kZWZhdWx0KHttb2RlbDp0aGlzLm1vZGVsLGc6dGhpcy5nfSk7dC5vcmRlcmluZz0tNTAsdGhpcy5hZGRWaWV3KCJsSGVhZGVyIix0KX12YXIgZT1uZXcgYS5kZWZhdWx0KHttb2RlbDp0aGlzLm1vZGVsLGc6dGhpcy5nfSk7cmV0dXJuIGUub3JkZXJpbmc9MCx0aGlzLmFkZFZpZXcoInJIZWFkZXIiLGUpfSxyZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZW5kZXJTdWJ2aWV3cygpLHRoaXMuZWwuY2xhc3NOYW1lPSJiaW9qc19tc2FfaGVhZGVyIn19KTtlLmRlZmF1bHQ9bH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9bigxNyksaT1uKDIpLG89big3KSxzPWkuZXh0ZW5kKHtjbGFzc05hbWU6ImJpb2pzX21zYV9oZWFkZXJzIixpbml0aWFsaXplOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmc9dC5nLHRoaXMubGlzdGVuVG8odGhpcy5nLnZpcywiY2hhbmdlOm1ldGFjZWxsIGNoYW5nZTpsYWJlbHMiLHRoaXMucmVuZGVyKSx0aGlzLmxpc3RlblRvKHRoaXMuZy56b29tZXIsImNoYW5nZTpsYWJlbFdpZHRoIGNoYW5nZTptZXRhV2lkdGgiLHRoaXMucmVuZGVyKX0scmVuZGVyOmZ1bmN0aW9uKCl7by5yZW1vdmVBbGxDaGlsZHModGhpcy5lbCk7dmFyIHQ9MDtyZXR1cm4gdCs9dGhpcy5nLnpvb21lci5nZXRMZWZ0QmxvY2tXaWR0aCgpLHRoaXMuZWwuc3R5bGUud2lkdGg9dCsicHgiLHRoaXMuZy52aXMuZ2V0KCJsYWJlbHMiKSYmdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmxhYmVsRE9NKCkpLHRoaXMuZy52aXMuZ2V0KCJtZXRhY2VsbCIpJiZ0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMubWV0YURPTSgpKSx0aGlzLmVsLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayIsdGhpcy5lbC5zdHlsZS5mb250U2l6ZT10aGlzLmcuem9vbWVyLmdldCgibWFya2VyRm9udHNpemUiKSx0aGlzfSxsYWJlbERPTTpmdW5jdGlvbigpe3ZhciB0PXIubWsoImRpdiIpO2lmKHQuc3R5bGUud2lkdGg9dGhpcy5nLnpvb21lci5nZXRMYWJlbFdpZHRoKCksdC5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2siLHRoaXMuZy52aXMuZ2V0KCJsYWJlbENoZWNrYm94IikmJnQuYXBwZW5kQ2hpbGQodGhpcy5hZGRFbCgiLiIsMTApKSx0aGlzLmcudmlzLmdldCgibGFiZWxJZCIpJiZ0LmFwcGVuZENoaWxkKHRoaXMuYWRkRWwoIklEIix0aGlzLmcuem9vbWVyLmdldCgibGFiZWxJZExlbmd0aCIpKSksdGhpcy5nLnZpcy5nZXQoImxhYmVsUGFydGl0aW9uIikmJnQuYXBwZW5kQ2hpbGQodGhpcy5hZGRFbCgicGFydCIsMTUpKSx0aGlzLmcudmlzLmdldCgibGFiZWxOYW1lIikpe3ZhciBlPXRoaXMuYWRkRWwoIkxhYmVsIik7dC5hcHBlbmRDaGlsZChlKX1yZXR1cm4gdH0sYWRkRWw6ZnVuY3Rpb24odCxlKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7cmV0dXJuIG4udGV4dENvbnRlbnQ9dCwidW5kZWZpbmVkIiE9dHlwZW9mIGUmJm51bGwhPT1lJiYobi5zdHlsZS53aWR0aD1lKyJweCIpLG4uc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIixufSxtZXRhRE9NOmZ1bmN0aW9uKCl7dmFyIHQ9ci5taygiZGl2Iik7cmV0dXJuIHQuc3R5bGUud2lkdGg9dGhpcy5nLnpvb21lci5nZXRNZXRhV2lkdGgoKSx0LnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayIsdGhpcy5nLnZpcy5nZXQoIm1ldGFHYXBzIikmJnQuYXBwZW5kQ2hpbGQodGhpcy5hZGRFbCgiR2FwcyIsdGhpcy5nLnpvb21lci5nZXQoIm1ldGFHYXBXaWR0aCIpKSksdGhpcy5nLnZpcy5nZXQoIm1ldGFJZGVudGl0eSIpJiZ0LmFwcGVuZENoaWxkKHRoaXMuYWRkRWwoIklkZW50Iix0aGlzLmcuem9vbWVyLmdldCgibWV0YUlkZW50V2lkdGgiKSkpLHR9fSk7ZS5kZWZhdWx0PXN9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYobnVsbCE9dClmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSk7cmV0dXJuIGUuZGVmYXVsdD10LGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTQpLG89cihpKSxzPW4oMiksYT1uKDcpLHU9big1KSxsPXMuZXh0ZW5kKHtjbGFzc05hbWU6ImJpb2pzX21zYV9tYXJrZXIiLGluaXRpYWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZz10LmcsdGhpcy5saXN0ZW5Ubyh0aGlzLmcuem9vbWVyLCJjaGFuZ2U6c3RlcFNpemUgY2hhbmdlOmxhYmVsV2lkdGggY2hhbmdlOmNvbHVtbldpZHRoIGNoYW5nZTptYXJrZXJTdGVwU2l6ZSBjaGFuZ2U6bWFya2VyRm9udHNpemUiLHRoaXMucmVuZGVyKSx0aGlzLmxpc3RlblRvKHRoaXMuZy52aXMsImNoYW5nZTpsYWJlbHMgY2hhbmdlOm1ldGFjZWxsIix0aGlzLnJlbmRlciksdGhpcy5tYW5hZ2VFdmVudHMoKX0scmVuZGVyOmZ1bmN0aW9uKCl7YS5yZW1vdmVBbGxDaGlsZHModGhpcy5lbCk7dmFyIHQ9dGhpcy5nLnpvb21lci5nZXQoIm1hcmtlckZvbnRzaXplIiksZT10aGlzLmcuem9vbWVyLmdldCgiY29sdW1uV2lkdGgiKSxuPXRoaXMuZy56b29tZXIuZ2V0KCJzdGVwU2l6ZSIpLHI9dGhpcy5nLnpvb21lci5nZXQoIm1hcmtlclN0ZXBTaXplIiksaT10aGlzLmcuY29sdW1ucy5nZXQoImhpZGRlbiIpO3RoaXMuZWwuc3R5bGUuZm9udFNpemU9dDtmb3IodmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHM9dGhpcy5tb2RlbC5nZXRNYXhMZW5ndGgoKSx1PTA7dTxzO3UrKylpZihpLmluZGV4T2YodSk+PTApe3ZhciBsPXRoaXMubWFya2VySGlkZGVuKHUsbik7bCYmby5hcHBlbmRDaGlsZChsKSx1Kz1ufWVsc2V7dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2MuY2xhc3NOYW1lPSJtc2EtY29sLWhlYWRlciIsYy5zdHlsZS53aWR0aD1lKyJweCIsYy5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2siLCh1KzEpJXI9PT0wP2MudGV4dENvbnRlbnQ9dSsxOih1KzEpJW49PT0wP2MudGV4dENvbnRlbnQ9Ii4iOmMudGV4dENvbnRlbnQ9IiAiLGMucm93UG9zPXUsby5hcHBlbmRDaGlsZChjKX1yZXR1cm4gdGhpcy5lbC5hcHBlbmRDaGlsZChvKSx0aGlzfSxtYXJrZXJIaWRkZW46ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcyxyPXRoaXMuZy5jb2x1bW5zLmdldCgiaGlkZGVuIikuc2xpY2UoMCksaT1NYXRoLm1heCgwLHQtZSkscz0hMCxhPWk7YTw9dDthKyspcyY9ci5pbmRleE9mKGEpPj0wO2lmKCFzKXtmb3IodmFyIGw9dGhpcy5tb2RlbC5nZXRNYXhMZW5ndGgoKSxjPTAsaD0tMSxmPXQ7Zjw9bCYmKGg+PTB8fChoPXIuaW5kZXhPZihmKSksci5pbmRleE9mKGYpPj0wKTtmKyspYysrO3ZhciBkPW8uYmFzZSh7aGVpZ2h0OjEwLHdpZHRoOjEwfSk7ZC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3ZhciBnPW8ucG9seWdvbih7cG9pbnRzOiIwLDAgNSw1IDEwLDAiLHN0eWxlOiJmaWxsOmxpbWU7c3Ryb2tlOnB1cnBsZTtzdHJva2Utd2lkdGg6MSJ9KTtyZXR1cm4gdShnKS5vbigiY2xpY2siLGZ1bmN0aW9uKHQpe3JldHVybiByLnNwbGljZShoLGMpLG4uZy5jb2x1bW5zLnNldCgiaGlkZGVuIixyKX0pLGQuYXBwZW5kQ2hpbGQoZyksZH19LG1hbmFnZUV2ZW50czpmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiB0aGlzLmcuY29uZmlnLmdldCgicmVnaXN0ZXJNb3VzZUNsaWNrcyIpJiYodC5jbGljaz0iX29uY2xpY2siKSx0aGlzLmcuY29uZmlnLmdldCgicmVnaXN0ZXJNb3VzZUhvdmVyIikmJih0Lm1vdXNlaW49Il9vbm1vdXNlaW4iLHQubW91c2VvdXQ9Il9vbm1vdXNlb3V0IiksdGhpcy5kZWxlZ2F0ZUV2ZW50cyh0KSx0aGlzLmxpc3RlblRvKHRoaXMuZy5jb25maWcsImNoYW5nZTpyZWdpc3Rlck1vdXNlSG92ZXIiLHRoaXMubWFuYWdlRXZlbnRzKSx0aGlzLmxpc3RlblRvKHRoaXMuZy5jb25maWcsImNoYW5nZTpyZWdpc3Rlck1vdXNlQ2xpY2siLHRoaXMubWFuYWdlRXZlbnRzKX0sX29uY2xpY2s6ZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQucm93UG9zLG49dGhpcy5nLnpvb21lci5nZXQoInN0ZXBTaXplIik7cmV0dXJuIHRoaXMuZy50cmlnZ2VyKCJjb2x1bW46Y2xpY2siLHtyb3dQb3M6ZSxzdGVwU2l6ZTpuLGV2dDp0fSl9LF9vbm1vdXNlaW46ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nLnpvb21lci5nZXQoInN0ZXBTaXplIip0LnJvd1Bvcyksbj10aGlzLmcuem9vbWVyLmdldCgic3RlcFNpemUiKTtyZXR1cm4gdGhpcy5nLnRyaWdnZXIoImNvbHVtbjptb3VzZWluIix7cm93UG9zOmUsc3RlcFNpemU6bixldnQ6dH0pfSxfb25tb3VzZW91dDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmcuem9vbWVyLmdldCgic3RlcFNpemUiKnQucm93UG9zKSxuPXRoaXMuZy56b29tZXIuZ2V0KCJzdGVwU2l6ZSIpO3JldHVybiB0aGlzLmcudHJpZ2dlcigiY29sdW1uOm1vdXNlb3V0Iix7cm93UG9zOmUsc3RlcFNpemU6bixldnQ6dH0pfX0pO2UuZGVmYXVsdD1sfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDEzMyksbz1yKGkpLHM9bigxMjkpLGE9cihzKSx1PW4oMTM1KSxsPXIodSksYz1uKDEzMCksaD1yKGMpLGY9big0KSxkPWYuZXh0ZW5kKHtpbml0aWFsaXplOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmc9dC5nLHRoaXMuYmxvY2tFdmVudHM9ITEsdGhpcy5saXN0ZW5Ubyh0aGlzLmcudmlzLCJjaGFuZ2U6aGVhZGVyIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmRyYXcoKSx0aGlzLnJlbmRlcigpfSksdGhpcy5saXN0ZW5Ubyh0aGlzLmcudmlzLCJjaGFuZ2UiLHRoaXMuX3NldFNwYWNlciksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuem9vbWVyLCJjaGFuZ2U6YWxpZ25tZW50V2lkdGgiLHRoaXMuX3NldFdpZHRoKSx0aGlzLmxpc3RlblRvKHRoaXMuZy56b29tZXIsImNoYW5nZTpfYWxpZ25tZW50U2Nyb2xsTGVmdCIsdGhpcy5fYWRqdXN0U2Nyb2xsaW5nTGVmdCksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuY29sdW1ucywiY2hhbmdlOmhpZGRlbiIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kcmF3KCksdGhpcy5yZW5kZXIoKX0pLHRoaXMuZHJhdygpLHRoaXMuZy52aXMub25jZSgiY2hhbmdlOmxvYWRlZCIsdGhpcy5fYWRqdXN0U2Nyb2xsaW5nTGVmdCx0aGlzKX0sZXZlbnRzOntzY3JvbGw6Il9zZW5kU2Nyb2xsRXZlbnQifSxkcmF3OmZ1bmN0aW9uKCl7aWYodGhpcy5yZW1vdmVWaWV3cygpLHRoaXMuZy52aXMuZ2V0KCJjb25zZXJ2Iikpe3ZhciB0PW5ldyBhLmRlZmF1bHQoe21vZGVsOnRoaXMubW9kZWwsZzp0aGlzLmd9KTt0Lm9yZGVyaW5nPS0yMCx0aGlzLmFkZFZpZXcoImNvbnNlcnYiLHQpfWlmKHRoaXMuZy52aXMuZ2V0KCJtYXJrZXJzIikpe3ZhciBlPW5ldyBvLmRlZmF1bHQoe21vZGVsOnRoaXMubW9kZWwsZzp0aGlzLmd9KTtlLm9yZGVyaW5nPS0xMCx0aGlzLmFkZFZpZXcoIm1hcmtlciIsZSl9aWYodGhpcy5nLnZpcy5nZXQoInNlcWxvZ28iKSl7dmFyIG49bmV3IGwuZGVmYXVsdCh7bW9kZWw6dGhpcy5tb2RlbCxnOnRoaXMuZ30pO24ub3JkZXJpbmc9LTMwLHRoaXMuYWRkVmlldygic2VxbG9nbyIsbil9aWYodGhpcy5nLnZpcy5nZXQoImdhcEhlYWRlciIpKXt2YXIgcj1uZXcgaC5kZWZhdWx0KHttb2RlbDp0aGlzLm1vZGVsLGc6dGhpcy5nfSk7cmV0dXJuIHIub3JkZXJpbmc9LTI1LHRoaXMuYWRkVmlldygiZ2FwdmlldyIscil9fSxyZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZW5kZXJTdWJ2aWV3cygpLHRoaXMuX3NldFNwYWNlcigpLHRoaXMuZWwuY2xhc3NOYW1lPSJiaW9qc19tc2FfcmhlYWRlciIsdGhpcy5lbC5zdHlsZS5vdmVyZmxvd1g9ImF1dG8iLHRoaXMuZWwuc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIix0aGlzLl9zZXRXaWR0aCgpLHRoaXMuX2FkanVzdFNjcm9sbGluZ0xlZnQoKSx0aGlzfSxfc2VuZFNjcm9sbEV2ZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYmxvY2tFdmVudHN8fHRoaXMuZy56b29tZXIuc2V0KCJfYWxpZ25tZW50U2Nyb2xsTGVmdCIsdGhpcy5lbC5zY3JvbGxMZWZ0LHtvcmlnaW46ImhlYWRlciJ9KSx0aGlzLmJsb2NrRXZlbnRzPSExfSxfYWRqdXN0U2Nyb2xsaW5nTGVmdDpmdW5jdGlvbih0LGUsbil7aWYobnVsbD09KCJ1bmRlZmluZWQiIT10eXBlb2YgbiYmbnVsbCE9PW4/bi5vcmlnaW46dm9pZCAwKXx8ImhlYWRlciIhPT1uLm9yaWdpbil7dmFyIHI9dGhpcy5nLnpvb21lci5nZXQoIl9hbGlnbm1lbnRTY3JvbGxMZWZ0Iik7cmV0dXJuIHRoaXMuYmxvY2tFdmVudHM9ITAsdGhpcy5lbC5zY3JvbGxMZWZ0PXJ9fSxfc2V0U3BhY2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWwuc3R5bGUubWFyZ2luTGVmdD10aGlzLl9nZXRMYWJlbFdpZHRoKCkrInB4In0sX2dldExhYmVsV2lkdGg6ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiB0aGlzLmcudmlzLmdldCgibGVmdEhlYWRlciIpfHwodCs9dGhpcy5nLnpvb21lci5nZXRMZWZ0QmxvY2tXaWR0aCgpKSx0fSxfc2V0V2lkdGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbC5zdHlsZS53aWR0aD10aGlzLmcuem9vbWVyLmdldEFsaWdubWVudFdpZHRoKCkrInB4In19KTtlLmRlZmF1bHQ9ZH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9big2NyksaT1uKDIpLG89big3KSxzPWkuZXh0ZW5kKHtpbml0aWFsaXplOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmc9dC5nLHRoaXMubGlzdGVuVG8odGhpcy5nLnpvb21lciwiY2hhbmdlOmFsaWdubWVudFdpZHRoIix0aGlzLnJlbmRlciksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuY29sb3JzY2hlbWUsImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgdD10aGlzLmcuY29sb3JzY2hlbWUuZ2V0U2VsZWN0ZWRTY2hlbWUoKTtyZXR1cm4gdGhpcy5zZXFsb2dvLmNoYW5nZUNvbG9ycyh0KSx0aGlzLnJlbmRlcigpfSksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuem9vbWVyLCJjaGFuZ2U6Y29sdW1uV2lkdGgiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VxbG9nby5jb2x1bW5fd2lkdGg9dGhpcy5nLnpvb21lci5nZXQoImNvbHVtbldpZHRoIiksdGhpcy5yZW5kZXIoKX0pLHRoaXMubGlzdGVuVG8odGhpcy5nLnN0YXRzLCJyZXNldCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kcmF3KCksdGhpcy5yZW5kZXIoKX0pLHRoaXMuZHJhdygpfSxkcmF3OmZ1bmN0aW9uKCl7by5yZW1vdmVBbGxDaGlsZHModGhpcy5lbCk7dmFyIHQ9dGhpcy5nLnN0YXRzLmNvbnNlcnZSZXNpZHVlKHtzY2FsZWQ6ITB9KTt0PV8ubWFwKHQsZnVuY3Rpb24odCl7cmV0dXJuIF8ucGljayh0LGZ1bmN0aW9uKHQsZSl7cmV0dXJuIi0iIT09ZX0pfSk7dmFyIGU9e2FscGhhYmV0OiJhYSIsaGVpZ2h0QXJyOnR9LG49dGhpcy5nLmNvbG9yc2NoZW1lLmdldFNlbGVjdGVkU2NoZW1lKCk7cmV0dXJuIHRoaXMuc2VxbG9nbz1uZXcgcih7bW9kZWw6dGhpcy5tb2RlbCxnOnRoaXMuZyxkYXRhOmUseWF4aXM6ITEsc2Nyb2xsZXI6ITEseGF4aXM6ITEsaGVpZ2h0OjEwMCxjb2x1bW5fd2lkdGg6dGhpcy5nLnpvb21lci5nZXQoImNvbHVtbldpZHRoIikscG9zaXRpb25NYXJrZXI6ITEsem9vbToxLGVsOnRoaXMuZWwsY29sb3JzOm59KX0scmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VxbG9nby5yZW5kZXIoKX19KTtlLmRlZmF1bHQ9c30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxMzcpLG89cihpKSxzPW4oNCksYT1zLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLmc9dC5nLHRoaXMuZHJhdygpLHRoaXMubGlzdGVuVG8odGhpcy5nLnpvb21lciwiY2hhbmdlOl9hbGlnbm1lbnRTY3JvbGxUb3AiLHRoaXMuX2FkanVzdFNjcm9sbGluZ1RvcCksdGhpcy5nLnZpcy5vbmNlKCJjaGFuZ2U6bG9hZGVkIix0aGlzLl9hZGp1c3RTY3JvbGxpbmdUb3AsdGhpcyksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuem9vbWVyLCJjaGFuZ2U6YWxpZ25tZW50SGVpZ2h0Iix0aGlzLl9zZXRIZWlnaHQpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOnJlZmVyZW5jZSIsdGhpcy5kcmF3KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsInJlc2V0IGFkZCByZW1vdmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuZHJhdygpLGUucmVuZGVyKCl9KX0sZHJhdzpmdW5jdGlvbigpe3RoaXMucmVtb3ZlVmlld3MoKTtmb3IodmFyIHQ9MDt0PHRoaXMubW9kZWwubGVuZ3RoO3QrKylpZighdGhpcy5tb2RlbC5hdCh0KS5nZXQoImhpZGRlbiIpKXt2YXIgZT1uZXcgby5kZWZhdWx0KHttb2RlbDp0aGlzLm1vZGVsLmF0KHQpLGc6dGhpcy5nfSk7ZS5vcmRlcmluZz10LHRoaXMuYWRkVmlldygicm93XyIrdCxlKX19LGV2ZW50czp7c2Nyb2xsOiJfc2VuZFNjcm9sbEV2ZW50In0sX3NlbmRTY3JvbGxFdmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmcuem9vbWVyLnNldCgiX2FsaWdubWVudFNjcm9sbFRvcCIsdGhpcy5lbC5zY3JvbGxUb3Ase29yaWdpbjoibGFiZWwifSl9LF9hZGp1c3RTY3JvbGxpbmdUb3A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbC5zY3JvbGxUb3A9dGhpcy5nLnpvb21lci5nZXQoIl9hbGlnbm1lbnRTY3JvbGxUb3AiKX0scmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVuZGVyU3Vidmlld3MoKSx0aGlzLmVsLmNsYXNzTmFtZT0iYmlvanNfbXNhX2xhYmVsYmxvY2siLHRoaXMuZWwuc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIix0aGlzLmVsLnN0eWxlLnZlcnRpY2FsQWxpZ249InRvcCIsdGhpcy5lbC5zdHlsZS5vdmVyZmxvd1k9ImF1dG8iLHRoaXMuZWwuc3R5bGUub3ZlcmZsb3dYPSJoaWRkZW4iLHRoaXMuZWwuc3R5bGUuZm9udFNpemU9dGhpcy5nLnpvb21lci5nZXQoImxhYmVsRm9udHNpemUiKSsicHgiLHRoaXMuZWwuc3R5bGUubGluZUhlaWdodD0iIit0aGlzLmcuem9vbWVyLmdldCgibGFiZWxMaW5lSGVpZ2h0IiksdGhpcy5fc2V0SGVpZ2h0KCksdGhpc30sX3NldEhlaWdodDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsLnN0eWxlLmhlaWdodD10aGlzLmcuem9vbWVyLmdldCgiYWxpZ25tZW50SGVpZ2h0IikrInB4In19KTtlLmRlZmF1bHQ9YX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxMzgpLG89cihpKSxzPW4oMTM5KSxhPXIocyksdT1uKDQpLGw9dS5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZz10LmcsdGhpcy5kcmF3KCksdGhpcy5saXN0ZW5Ubyh0aGlzLmcudmlzLCJjaGFuZ2U6bGFiZWxzIix0aGlzLmRyYXdSKSx0aGlzLmxpc3RlblRvKHRoaXMuZy52aXMsImNoYW5nZTptZXRhY2VsbCIsdGhpcy5kcmF3UiksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuem9vbWVyLCJjaGFuZ2U6cm93SGVpZ2h0IixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsLnN0eWxlLmhlaWdodD10aGlzLmcuem9vbWVyLmdldCgicm93SGVpZ2h0IikrInB4In0pLHRoaXMubGlzdGVuVG8odGhpcy5nLnNlbGNvbCwiY2hhbmdlIHJlc2V0IGFkZCIsdGhpcy5zZXRTZWxlY3Rpb24pfSxkcmF3OmZ1bmN0aW9uKCl7aWYodGhpcy5yZW1vdmVWaWV3cygpLHRoaXMuZy52aXMuZ2V0KCJsYWJlbHMiKSYmdGhpcy5hZGRWaWV3KCJsYWJlbHMiLG5ldyBvLmRlZmF1bHQoe21vZGVsOnRoaXMubW9kZWwsZzp0aGlzLmd9KSksdGhpcy5nLnZpcy5nZXQoIm1ldGFjZWxsIikpe3ZhciB0PW5ldyBhLmRlZmF1bHQoe21vZGVsOnRoaXMubW9kZWwsZzp0aGlzLmd9KTtyZXR1cm4gdGhpcy5hZGRWaWV3KCJtZXRhY2VsbCIsdCl9fSxkcmF3UjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRyYXcoKSx0aGlzLnJlbmRlcigpfSxyZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZW5kZXJTdWJ2aWV3cygpLHRoaXMuZWwuc2V0QXR0cmlidXRlKCJjbGFzcyIsImJpb2pzX21zYV9sYWJlbHJvdyIpLHRoaXMuZWwuc3R5bGUuaGVpZ2h0PXRoaXMuZy56b29tZXIuZ2V0KCJyb3dIZWlnaHQiKSoodGhpcy5tb2RlbC5hdHRyaWJ1dGVzLmhlaWdodHx8MSkrInB4Iix0aGlzLnNldFNlbGVjdGlvbigpLHRoaXN9LHNldFNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmcuc2VsY29sLmdldFNlbEZvclJvdyh0aGlzLm1vZGVsLmlkKS5sZW5ndGg+MD90aGlzLmVsLnN0eWxlLmZvbnRXZWlnaHQ9ImJvbGQiOnRoaXMuZWwuc3R5bGUuZm9udFdlaWdodD0ibm9ybWFsIn19KTtlLmRlZmF1bHQ9bH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9bigyKSxpPW4oNyksbz1yLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zZXE9dC5zZXEsdGhpcy5nPXQuZyx0aGlzLm1hbmFnZUV2ZW50cygpfSxtYW5hZ2VFdmVudHM6ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdGhpcy5nLmNvbmZpZy5nZXQoInJlZ2lzdGVyTW91c2VDbGlja3MiKSYmKHQuY2xpY2s9Il9vbmNsaWNrIiksdGhpcy5nLmNvbmZpZy5nZXQoInJlZ2lzdGVyTW91c2VIb3ZlciIpJiYodC5tb3VzZWluPSJfb25tb3VzZWluIix0Lm1vdXNlb3V0PSJfb25tb3VzZW91dCIpLHRoaXMuZGVsZWdhdGVFdmVudHModCksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuY29uZmlnLCJjaGFuZ2U6cmVnaXN0ZXJNb3VzZUhvdmVyIix0aGlzLm1hbmFnZUV2ZW50cyksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuY29uZmlnLCJjaGFuZ2U6cmVnaXN0ZXJNb3VzZUNsaWNrIix0aGlzLm1hbmFnZUV2ZW50cyksdGhpcy5saXN0ZW5Ubyh0aGlzLmcudmlzLCJjaGFuZ2U6bGFiZWxOYW1lIGNoYW5nZTpsYWJlbElkIGNoYW5nZTpsYWJlbFBhcnRpdGlvbiBjaGFuZ2U6bGFiZWxDaGVja2JveCIsdGhpcy5yZW5kZXIpLHRoaXMubGlzdGVuVG8odGhpcy5nLnpvb21lciwiY2hhbmdlOmxhYmVsSWRMZW5ndGggY2hhbmdlOmxhYmVsTmFtZUxlbmd0aCBjaGFuZ2U6bGFiZWxQYXJ0TGVuZ3RoIGNoYW5nZTpsYWJlbENoZWNrTGVuZ3RoIix0aGlzLnJlbmRlciksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuem9vbWVyLCJjaGFuZ2U6bGFiZWxGb250U2l6ZSBjaGFuZ2U6bGFiZWxMaW5lSGVpZ2h0IGNoYW5nZTpsYWJlbFdpZHRoIGNoYW5nZTpyb3dIZWlnaHQiLHRoaXMucmVuZGVyKX0scmVuZGVyOmZ1bmN0aW9uKCl7aWYoaS5yZW1vdmVBbGxDaGlsZHModGhpcy5lbCksdGhpcy5lbC5zdHlsZS53aWR0aD10aGlzLmcuem9vbWVyLmdldExhYmVsV2lkdGgoKSsicHgiLHRoaXMuZWwuc2V0QXR0cmlidXRlKCJjbGFzcyIsImJpb2pzX21zYV9sYWJlbHMiKSx0aGlzLmcudmlzLmdldCgibGFiZWxDaGVja2JveCIpKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3Quc2V0QXR0cmlidXRlKCJ0eXBlIiwiY2hlY2tib3giKSx0LnZhbHVlPXRoaXMubW9kZWwuZ2V0KCJpZCIpLHQubmFtZT0ic2VxIix0LnN0eWxlLndpZHRoPXRoaXMuZy56b29tZXIuZ2V0KCJsYWJlbENoZWNrTGVuZ3RoIikrInB4Iix0aGlzLmVsLmFwcGVuZENoaWxkKHQpfWlmKHRoaXMuZy52aXMuZ2V0KCJsYWJlbElkIikpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSxuPXRoaXMubW9kZWwuZ2V0KCJpZCIpO2lzTmFOKG4pfHxuKyssZS50ZXh0Q29udGVudD1uLGUuc3R5bGUud2lkdGg9dGhpcy5nLnpvb21lci5nZXQoImxhYmVsSWRMZW5ndGgiKSsicHgiLGUuc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIix0aGlzLmVsLmFwcGVuZENoaWxkKGUpfWlmKHRoaXMuZy52aXMuZ2V0KCJsYWJlbFBhcnRpdGlvbiIpKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7ci5zdHlsZS53aWR0aD10aGlzLmcuem9vbWVyLmdldCgibGFiZWxQYXJ0TGVuZ3RoIikrInB4IixyLnRleHRDb250ZW50PXRoaXMubW9kZWwuZ2V0KCJwYXJ0aXRpb24iKSxyLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayIsdGhpcy5lbC5hcHBlbmRDaGlsZChlKSx0aGlzLmVsLmFwcGVuZENoaWxkKHIpfWlmKHRoaXMuZy52aXMuZ2V0KCJsYWJlbE5hbWUiKSl7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO28udGV4dENvbnRlbnQ9dGhpcy5tb2RlbC5nZXQoIm5hbWUiKSx0aGlzLm1vZGVsLmdldCgicmVmIikmJnRoaXMuZy5jb25maWcuZ2V0KCJoYXNSZWYiKSYmKG8uc3R5bGUuZm9udFdlaWdodD0iYm9sZCIpLG8uc3R5bGUud2lkdGg9dGhpcy5nLnpvb21lci5nZXQoImxhYmVsTmFtZUxlbmd0aCIpKyJweCIsdGhpcy5lbC5hcHBlbmRDaGlsZChvKX1yZXR1cm4gdGhpcy5lbC5zdHlsZS5vdmVyZmxvdz1zY3JvbGwsdGhpcy5lbC5zdHlsZS5mb250U2l6ZT10aGlzLmcuem9vbWVyLmdldCgibGFiZWxGb250c2l6ZSIpKyJweCIsdGhpc30sX29uY2xpY2s6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5tb2RlbC5nZXQoImlkIik7cmV0dXJuIHRoaXMuZy50cmlnZ2VyKCJyb3c6Y2xpY2siLHtzZXFJZDplLGV2dDp0fSl9LF9vbm1vdXNlaW46ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5tb2RlbC5nZXQoImlkIik7cmV0dXJuIHRoaXMuZy50cmlnZ2VyKCJyb3c6bW91c2VvdXQiLHtzZXFJZDplLGV2dDp0fSl9LF9vbm1vdXNlb3V0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubW9kZWwuZ2V0KCJpZCIpO3JldHVybiB0aGlzLmcudHJpZ2dlcigicm93Om1vdXNlb3V0Iix7c2VxSWQ6ZSxldnQ6dH0pfX0pO2UuZGVmYXVsdD1vfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDEyKSxvPW4oNikscz1yKG8pLGE9bigzKSx1PW4oMiksbD1uKDcpLGM9dS5leHRlbmQoe2NsYXNzTmFtZToiYmlvanNfbXNhX21ldGF2aWV3Iixpbml0aWFsaXplOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmc9dC5nLHRoaXMubGlzdGVuVG8odGhpcy5nLnZpcywiY2hhbmdlOm1ldGFjZWxsIix0aGlzLnJlbmRlciksdGhpcy5saXN0ZW5Ubyh0aGlzLmcuem9vbWVyLCJjaGFuZ2U6bWV0YVdpZHRoIix0aGlzLnJlbmRlcil9LGV2ZW50czp7Y2xpY2s6Il9vbmNsaWNrIixtb3VzZWluOiJfb25tb3VzZWluIixtb3VzZW91dDoiX29ubW91c2VvdXQifSxyZW5kZXI6ZnVuY3Rpb24oKXtsLnJlbW92ZUFsbENoaWxkcyh0aGlzLmVsKSx0aGlzLmVsLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayI7dmFyIHQ9dGhpcy5nLnpvb21lci5nZXRNZXRhV2lkdGgoKTtpZih0aGlzLmVsLnN0eWxlLndpZHRoPXQtMTAsdGhpcy5lbC5zdHlsZS5wYWRkaW5nUmlnaHQ9NSx0aGlzLmVsLnN0eWxlLnBhZGRpbmdMZWZ0PTUsdGhpcy5lbC5zdHlsZS5mb250U2l6ZT10aGlzLmcuem9vbWVyLmdldCgibGFiZWxGb250c2l6ZSIpLTIrInB4Iix0aGlzLmcudmlzLmdldCgibWV0YUdhcHMiKSl7dmFyIGU9dGhpcy5tb2RlbC5nZXQoInNlcSIpLG49KDAsYS5yZWR1Y2UpKGUsZnVuY3Rpb24odCxlKXtyZXR1cm4iLSI9PT1lPysrdDp2b2lkIDB9LDApO249KDEwMCpuL2UubGVuZ3RoKS50b0ZpeGVkKDApKyIlIjt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7ci50ZXh0Q29udGVudD1uLHIuc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIixyLnN0eWxlLndpZHRoPTM1LHRoaXMuZWwuYXBwZW5kQ2hpbGQocil9aWYodGhpcy5nLnZpcy5nZXQoIm1ldGFJZGVudGl0eSIpKXt2YXIgbz10aGlzLmcuc3RhdHMuaWRlbnRpdHkoKVt0aGlzLm1vZGVsLmlkXSx1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTt0aGlzLm1vZGVsLmdldCgicmVmIikmJnRoaXMuZy5jb25maWcuZ2V0KCJoYXNSZWYiKT91LnRleHRDb250ZW50PSJyZWYuIjoidW5kZWZpbmVkIiE9dHlwZW9mIG8mJm51bGwhPT1vJiYodS50ZXh0Q29udGVudD1vLnRvRml4ZWQoMikpLHUuc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIix1LnN0eWxlLndpZHRoPTQwLHRoaXMuZWwuYXBwZW5kQ2hpbGQodSl9aWYodGhpcy5nLnZpcy5nZXQoIm1ldGFMaW5rcyIpJiZ0aGlzLm1vZGVsLmF0dHJpYnV0ZXMuaWRzKXt2YXIgYz1pLnNlcXMuYnVpbGRMaW5rcyh0aGlzLm1vZGVsLmF0dHJpYnV0ZXMuaWRzKTtpZihPYmplY3Qua2V5cyhjKS5sZW5ndGg+MCl7dmFyIGg9bmV3IHMuZGVmYXVsdCh7bmFtZToi4oaXIn0pO2MuZm9yRWFjaChmdW5jdGlvbih0LGUpe3JldHVybiBoLmFkZE5vZGUoZSxmdW5jdGlvbihlKXtyZXR1cm4gd2luZG93Lm9wZW4odCl9KX0pO3ZhciBmPWguYnVpbGRET00oKTtyZXR1cm4gZi5zdHlsZS5jdXJzb3I9InBvaW50ZXIiLHRoaXMuZWwuYXBwZW5kQ2hpbGQoZil9fX0sX29uY2xpY2s6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZy50cmlnZ2VyKCJtZXRhOmNsaWNrIix7c2VxSWQ6dGhpcy5tb2RlbC5nZXQoImlkIix7ZXZ0OnR9KX0pfSxfb25tb3VzZWluOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmcudHJpZ2dlcigibWV0YTptb3VzZWluIix7c2VxSWQ6dGhpcy5tb2RlbC5nZXQoImlkIix7ZXZ0OnR9KX0pfSxfb25tb3VzZW91dDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nLnRyaWdnZXIoIm1ldGE6bW91c2VvdXQiLHtzZXFJZDp0aGlzLm1vZGVsLmdldCgiaWQiLHtldnQ6dH0pfSl9fSk7ZS5kZWZhdWx0PWN9LGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHQucmVwbGFjZSgvXlxzKnxccyokL2csIiIpfWU9dC5leHBvcnRzPW4sZS5sZWZ0PWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL15ccyovLCIiKX0sZS5yaWdodD1mdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKC9ccyokLywiIil9fSxmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7Zm9yKHZhciB0PXt9LGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciBpIGluIG4pci5jYWxsKG4saSkmJih0W2ldPW5baV0pfXJldHVybiB0fXQuZXhwb3J0cz1uO3ZhciByPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHl9LGZ1bmN0aW9uKHQsZSxuKXtlPXQuZXhwb3J0cz1uKDgxKSgpLGUucHVzaChbdC5pZCwnLmJpb2pzX21zYV9zdGFnZXtjdXJzb3I6ZGVmYXVsdDtsaW5lLWhlaWdodDpub3JtYWw7Zm9udC1mYW1pbHk6SGVsdmV0aWNhfS5iaW9qc19tc2Ffc2VxYmxvY2t7Y3Vyc29yOm1vdmV9LmJpb2pzX21zYV9sYXllcntkaXNwbGF5OmJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcH0uYmlvanNfbXNhX2xhYmVsc3tjb2xvcjojMDAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2N1cnNvcjpwb2ludGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzpjbGlwfS5iaW9qc19tc2FfaGVhZGVyLC5iaW9qc19tc2FfbGFiZWxze3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWFsaWduOmxlZnR9LmJpb2pzX21zYV9sYWJlbHJvdzpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDowO2hlaWdodDoxMDAlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uYmlvanNfbXNhX2xhYmVscm93e2hlaWdodDoxMDAlfS5iaW9qc19tc2FfbGFiZWxibG9jazo6LXdlYmtpdC1zY3JvbGxiYXIsLmJpb2pzX21zYV9yaGVhZGVyOjotd2Via2l0LXNjcm9sbGJhcnsvLzpub25lO3dpZHRoOjdweDtoZWlnaHQ6N3B4fS5iaW9qc19tc2FfbGFiZWxibG9jazo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsLmJpb2pzX21zYV9yaGVhZGVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntib3JkZXItcmFkaXVzOjRweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjUpO2JveC1zaGFkb3c6MCAwIDFweCBoc2xhKDAsMCUsMTAwJSwuNSl9LmJpb2pzX21zYV9tYXJrZXJ7Y29sb3I6Izk5OTt3aGl0ZS1zcGFjZTpub3dyYXB9LmJpb2pzX21zYV9tYXJrZXIgLm1zYS1jb2wtaGVhZGVye2N1cnNvcjpwb2ludGVyO3RleHQtYWxpZ246Y2VudGVyfS5iaW9qc19tc2FfbWFya2VyIC5tc2EtY29sLWhlYWRlcjpob3Zlcntjb2xvcjpyZWR9LnNtZW51YmFyIC5zbWVudWJhcl9hbGlua3tiYWNrZ3JvdW5kOiMzNDk4ZGI7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzM0OThkYiwjMjk4MGI5KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxODBkZWcsIzM0OThkYiwjMjk4MGI5KTtib3JkZXItcmFkaXVzOjI4cHg7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6I2ZmZjtwYWRkaW5nOjNweCAxMHB4O21hcmdpbi1sZWZ0OjEwcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnNtZW51YmFye2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5zbWVudWJhciAuc21lbnViYXJfYWxpbms6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LnNtZW51LWRyb3Bkb3due3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6OTtkaXNwbGF5Om5vbmU7bWFyZ2luLWxlZnQ6NXB4O21hcmdpbi10b3A6MjJweH0uc21lbnUtZHJvcGRvd24gLnNtZW51LWRyb3Bkb3duLW1lbnUsLnNtZW51LWRyb3Bkb3duIC5zbWVudS1kcm9wZG93bi1wYW5lbHttaW4td2lkdGg6MTYwcHg7bWF4LXdpZHRoOjM2MHB4O2xpc3Qtc3R5bGU6bm9uZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMik7Ym9yZGVyLXJhZGl1czo2cHg7Ym94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEoMCwwLDAsLjIpO292ZXJmbG93OnZpc2libGU7cGFkZGluZzo0cHggMDttYXJnaW46MH0uc21lbnUtZHJvcGRvd24gLnNtZW51LWRyb3Bkb3duLXBhbmVse3BhZGRpbmc6MTBweH0uc21lbnUtZHJvcGRvd24uc21lbnUtZHJvcGRvd24tc2Nyb2xsIC5zbWVudS1kcm9wZG93bi1tZW51LC5zbWVudS1kcm9wZG93bi5zbWVudS1kcm9wZG93bi1zY3JvbGwgLnNtZW51LWRyb3Bkb3duLXBhbmVse21heC1oZWlnaHQ6MzU4cHg7b3ZlcmZsb3c6YXV0b30uc21lbnUtZHJvcGRvd24gLnNtZW51LWRyb3Bkb3duLW1lbnUgbGl7ZGlzcGxheTpibG9jaztjb2xvcjojNTU1O3RleHQtZGVjb3JhdGlvbjpub25lO2xpbmUtaGVpZ2h0OjE4cHg7cGFkZGluZzozcHggMTVweDt3aGl0ZS1zcGFjZTpub3dyYXB9LnNtZW51LWRyb3Bkb3duIC5zbWVudS1kcm9wZG93bi1tZW51IGxpOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzA4Yztjb2xvcjojZmZmO2N1cnNvcjpwb2ludGVyfS5zbWVudS1kcm9wZG93biAuc21lbnUtZHJvcGRvd24tbWVudSAuc21lbnUtZHJvcGRvd24tZGl2aWRlcntmb250LXNpemU6MXB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNlNWU1ZTU7cGFkZGluZzowO21hcmdpbjo1cHggMH0uYmlvanNfbXNhX2Rpdntwb3NpdGlvbjpyZWxhdGl2ZX0uYmlvanNfbXNhX3NjYWxle3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3JpZ2h0OjA7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JveC1zaGFkb3c6MCAycHggM3B4ICM5OTk7Ym9yZGVyLXJhZGl1czozcHg7bWFyZ2luOjVweCAwIDAgYXV0bztwYWRkaW5nOjVweDt0ZXh0LWFsaWduOmNlbnRlcn0uYmlvanNfbXNhX3NjYWxlIC5tc2EtYnRuZ3JvdXB7bWFyZ2luOjVweCBhdXRvIDB9LmJpb2pzX21zYV9zY2FsZSBbdHlwZT1yYW5nZV17Y3Vyc29yOnBvaW50ZXJ9LmJpb2pzX21zYV9zY2FsZSAubXNhLWJ0bi1jbG9zZXt0ZXh0LWFsaWduOnJpZ2h0O2ZvbnQtc2l6ZTouOGVtO3BhZGRpbmc6MnB4fS5iaW9qc19tc2Ffc2NhbGUgLm1zYS1idG4tb3BlbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmJpb2pzX21zYV9zY2FsZSAubXNhLWhpZGV7ZGlzcGxheTpub25lfS5tc2EtYnRue2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxLjFlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjJweCA4cHg7bWFyZ2luLWJvdHRvbTowO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNpemluZzpib3JkZXItYm94fS5tc2EtYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2RkZH0nLCIiXSl9LGZ1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl0saT1kW3IuaWRdO2lmKGkpe2kucmVmcysrO2Zvcih2YXIgbz0wO288aS5wYXJ0cy5sZW5ndGg7bysrKWkucGFydHNbb10oci5wYXJ0c1tvXSk7Zm9yKDtvPHIucGFydHMubGVuZ3RoO28rKylpLnBhcnRzLnB1c2gobChyLnBhcnRzW29dLGUpKX1lbHNle2Zvcih2YXIgcz1bXSxvPTA7bzxyLnBhcnRzLmxlbmd0aDtvKyspcy5wdXNoKGwoci5wYXJ0c1tvXSxlKSk7ZFtyLmlkXT17aWQ6ci5pZCxyZWZzOjEscGFydHM6c319fX1mdW5jdGlvbiBpKHQpe2Zvcih2YXIgZT1bXSxuPXt9LHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGk9dFtyXSxvPWlbMF0scz1pWzFdLGE9aVsyXSx1PWlbM10sbD17Y3NzOnMsbWVkaWE6YSxzb3VyY2VNYXA6dX07bltvXT9uW29dLnBhcnRzLnB1c2gobCk6ZS5wdXNoKG5bb109e2lkOm8scGFydHM6W2xdfSl9cmV0dXJuIGV9ZnVuY3Rpb24gbyh0LGUpe3ZhciBuPW0oKSxyPXlbeS5sZW5ndGgtMV07aWYoInRvcCI9PT10Lmluc2VydEF0KXI/ci5uZXh0U2libGluZz9uLmluc2VydEJlZm9yZShlLHIubmV4dFNpYmxpbmcpOm4uYXBwZW5kQ2hpbGQoZSk6bi5pbnNlcnRCZWZvcmUoZSxuLmZpcnN0Q2hpbGQpLHkucHVzaChlKTtlbHNle2lmKCJib3R0b20iIT09dC5pbnNlcnRBdCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciAnaW5zZXJ0QXQnLiBNdXN0IGJlICd0b3AnIG9yICdib3R0b20nLiIpO24uYXBwZW5kQ2hpbGQoZSl9fWZ1bmN0aW9uIHModCl7dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpO3ZhciBlPXkuaW5kZXhPZih0KTtlPj0wJiZ5LnNwbGljZShlLDEpfWZ1bmN0aW9uIGEodCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gZS50eXBlPSJ0ZXh0L2NzcyIsbyh0LGUpLGV9ZnVuY3Rpb24gdSh0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7cmV0dXJuIGUucmVsPSJzdHlsZXNoZWV0IixvKHQsZSksZX1mdW5jdGlvbiBsKHQsZSl7dmFyIG4scixpO2lmKGUuc2luZ2xldG9uKXt2YXIgbz1fKys7bj12fHwodj1hKGUpKSxyPWMuYmluZChudWxsLG4sbywhMSksaT1jLmJpbmQobnVsbCxuLG8sITApfWVsc2UgdC5zb3VyY2VNYXAmJiJmdW5jdGlvbiI9PXR5cGVvZiBVUkwmJiJmdW5jdGlvbiI9PXR5cGVvZiBVUkwuY3JlYXRlT2JqZWN0VVJMJiYiZnVuY3Rpb24iPT10eXBlb2YgVVJMLnJldm9rZU9iamVjdFVSTCYmImZ1bmN0aW9uIj09dHlwZW9mIEJsb2ImJiJmdW5jdGlvbiI9PXR5cGVvZiBidG9hPyhuPXUoZSkscj1mLmJpbmQobnVsbCxuKSxpPWZ1bmN0aW9uKCl7cyhuKSxuLmhyZWYmJlVSTC5yZXZva2VPYmplY3RVUkwobi5ocmVmKX0pOihuPWEoZSkscj1oLmJpbmQobnVsbCxuKSxpPWZ1bmN0aW9uKCl7cyhuKX0pO3JldHVybiByKHQpLGZ1bmN0aW9uKGUpe2lmKGUpe2lmKGUuY3NzPT09dC5jc3MmJmUubWVkaWE9PT10Lm1lZGlhJiZlLnNvdXJjZU1hcD09PXQuc291cmNlTWFwKXJldHVybjtyKHQ9ZSl9ZWxzZSBpKCl9fWZ1bmN0aW9uIGModCxlLG4scil7dmFyIGk9bj8iIjpyLmNzcztpZih0LnN0eWxlU2hlZXQpdC5zdHlsZVNoZWV0LmNzc1RleHQ9YihlLGkpO2Vsc2V7dmFyIG89ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoaSkscz10LmNoaWxkTm9kZXM7c1tlXSYmdC5yZW1vdmVDaGlsZChzW2VdKSxzLmxlbmd0aD90Lmluc2VydEJlZm9yZShvLHNbZV0pOnQuYXBwZW5kQ2hpbGQobyl9fWZ1bmN0aW9uIGgodCxlKXt2YXIgbj1lLmNzcyxyPWUubWVkaWE7aWYociYmdC5zZXRBdHRyaWJ1dGUoIm1lZGlhIixyKSx0LnN0eWxlU2hlZXQpdC5zdHlsZVNoZWV0LmNzc1RleHQ9bjtlbHNle2Zvcig7dC5maXJzdENoaWxkOyl0LnJlbW92ZUNoaWxkKHQuZmlyc3RDaGlsZCk7dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShuKSl9fWZ1bmN0aW9uIGYodCxlKXt2YXIgbj1lLmNzcyxyPWUuc291cmNlTWFwO3ImJihuKz0iXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCIrYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkocikpKSkrIiAqLyIpO3ZhciBpPW5ldyBCbG9iKFtuXSx7dHlwZToidGV4dC9jc3MifSksbz10LmhyZWY7dC5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwoaSksbyYmVVJMLnJldm9rZU9iamVjdFVSTChvKX12YXIgZD17fSxnPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBmdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGV9fSxwPWcoZnVuY3Rpb24oKXtyZXR1cm4vbXNpZSBbNi05XVxiLy50ZXN0KHNlbGYubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKX0pLG09ZyhmdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5oZWFkfHxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdfSksdj1udWxsLF89MCx5PVtdO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2U9ZXx8e30sInVuZGVmaW5lZCI9PXR5cGVvZiBlLnNpbmdsZXRvbiYmKGUuc2luZ2xldG9uPXAoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlLmluc2VydEF0JiYoZS5pbnNlcnRBdD0iYm90dG9tIik7dmFyIG49aSh0KTtyZXR1cm4gcihuLGUpLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbz1bXSxzPTA7czxuLmxlbmd0aDtzKyspe3ZhciBhPW5bc10sdT1kW2EuaWRdO3UucmVmcy0tLG8ucHVzaCh1KX10JiZyKGkodCksZSk7Zm9yKHZhciBzPTA7czxvLmxlbmd0aDtzKyspe3ZhciB1PW9bc107aWYoMD09PXUucmVmcyl7Zm9yKHZhciBsPTA7bDx1LnBhcnRzLmxlbmd0aDtsKyspdS5wYXJ0c1tsXSgpO2RlbGV0ZSBkW3UuaWRdfX19fTt2YXIgYj1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB0W2VdPW4sdC5maWx0ZXIoQm9vbGVhbikuam9pbigiXG4iKX19KCl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDE0Mik7InN0cmluZyI9PXR5cGVvZiByJiYocj1bW3QuaWQsciwiIl1dKSxuKDE0Mykocix7fSksci5sb2NhbHMmJih0LmV4cG9ydHM9ci5sb2NhbHMpfSxmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0KXtyZXR1cm4gbihpKHQpKX1mdW5jdGlvbiBpKHQpe3JldHVybiBvW3RdfHxmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK3QrIicuIil9KCl9dmFyIG89eyIuL1N0YWdlU2NhbGUiOjI2LCIuL1N0YWdlU2NhbGUuanMiOjI2LCIuL2NvbG9yc2NoZW1lIjoyNywiLi9jb2xvcnNjaGVtZS5qcyI6MjcsIi4vY29sdW1ucyI6MjgsIi4vY29sdW1ucy5qcyI6MjgsIi4vY29uZmlnIjoyOSwiLi9jb25maWcuanMiOjI5LCIuL3BhY2thZ2UiOjMwLCIuL3BhY2thZ2UuanMiOjMwLCIuL3NlbGVjdGlvbi9TZWxlY3Rpb24iOjgsIi4vc2VsZWN0aW9uL1NlbGVjdGlvbi5qcyI6OCwiLi9zZWxlY3Rpb24vU2VsZWN0aW9uQ29sIjo5LCIuL3NlbGVjdGlvbi9TZWxlY3Rpb25Db2wuanMiOjksIi4vc2VsZWN0aW9uL2luZGV4Ijo1MCwiLi9zZWxlY3Rpb24vaW5kZXguanMiOjUwLCIuL3VzZXIiOjMxLCIuL3VzZXIuanMiOjMxLCIuL3Zpc09yZGVyaW5nIjozMiwiLi92aXNPcmRlcmluZy5qcyI6MzIsIi4vdmlzaWJpbGl0eSI6MzMsIi4vdmlzaWJpbGl0eS5qcyI6MzMsIi4vem9vbWVyIjozNCwiLi96b29tZXIuanMiOjM0fTtyLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMobyl9LHIucmVzb2x2ZT1pLHQuZXhwb3J0cz1yLHIuaWQ9MTQ1fSxmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0KXtyZXR1cm4gbihpKHQpKX1mdW5jdGlvbiBpKHQpe3JldHVybiBvW3RdfHxmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK3QrIicuIil9KCl9dmFyIG89eyIuL2JtYXRoIjoxOCwiLi9ibWF0aC5qcyI6MTgsIi4vZXhwb3J0ZXIiOjE5LCIuL2V4cG9ydGVyLmpzIjoxOSwiLi9maWxlIjoyMCwiLi9maWxlLmpzIjoyMCwiLi9pbmRleCI6MzgsIi4vaW5kZXguanMiOjM4LCIuL2xvYWRlciI6MjEsIi4vbG9hZGVyLmpzIjoyMSwiLi9wcm94eSI6MjIsIi4vcHJveHkuanMiOjIyLCIuL3JlY29nbml6ZSI6MzksIi4vcmVjb2duaXplLmpzIjozOSwiLi9zZXFnZW4iOjQwLCIuL3NlcWdlbi5qcyI6NDAsIi4vc3ZnIjoxNCwiLi9zdmcuanMiOjE0LCIuL3RyZWUiOjQxLCIuL3RyZWUuanMiOjQxfTtyLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMobyl9LHIucmVzb2x2ZT1pLHQuZXhwb3J0cz1yLHIuaWQ9MTQ2fV0pOwovLyMgc291cmNlTWFwcGluZ1VSTD1tc2EuanMubWFw"></script>
<script src="data:application/x-javascript;base64,cmVxdWlyZT0oZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PSJmdW5jdGlvbiImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitvKyInIik7dGhyb3cgZi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PSJmdW5jdGlvbiImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pKHsxOltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyCgp2YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307Cgpwcm9jZXNzLm5leHRUaWNrID0gKGZ1bmN0aW9uICgpIHsKICAgIHZhciBjYW5TZXRJbW1lZGlhdGUgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJwogICAgJiYgd2luZG93LnNldEltbWVkaWF0ZTsKICAgIHZhciBjYW5NdXRhdGlvbk9ic2VydmVyID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcKICAgICYmIHdpbmRvdy5NdXRhdGlvbk9ic2VydmVyOwogICAgdmFyIGNhblBvc3QgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJwogICAgJiYgd2luZG93LnBvc3RNZXNzYWdlICYmIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyCiAgICA7CgogICAgaWYgKGNhblNldEltbWVkaWF0ZSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbiAoZikgeyByZXR1cm4gd2luZG93LnNldEltbWVkaWF0ZShmKSB9OwogICAgfQoKICAgIHZhciBxdWV1ZSA9IFtdOwoKICAgIGlmIChjYW5NdXRhdGlvbk9ic2VydmVyKSB7CiAgICAgICAgdmFyIGhpZGRlbkRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIHZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIHF1ZXVlTGlzdCA9IHF1ZXVlLnNsaWNlKCk7CiAgICAgICAgICAgIHF1ZXVlLmxlbmd0aCA9IDA7CiAgICAgICAgICAgIHF1ZXVlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChmbikgewogICAgICAgICAgICAgICAgZm4oKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CgogICAgICAgIG9ic2VydmVyLm9ic2VydmUoaGlkZGVuRGl2LCB7IGF0dHJpYnV0ZXM6IHRydWUgfSk7CgogICAgICAgIHJldHVybiBmdW5jdGlvbiBuZXh0VGljayhmbikgewogICAgICAgICAgICBpZiAoIXF1ZXVlLmxlbmd0aCkgewogICAgICAgICAgICAgICAgaGlkZGVuRGl2LnNldEF0dHJpYnV0ZSgneWVzJywgJ25vJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcXVldWUucHVzaChmbik7CiAgICAgICAgfTsKICAgIH0KCiAgICBpZiAoY2FuUG9zdCkgewogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2KSB7CiAgICAgICAgICAgIHZhciBzb3VyY2UgPSBldi5zb3VyY2U7CiAgICAgICAgICAgIGlmICgoc291cmNlID09PSB3aW5kb3cgfHwgc291cmNlID09PSBudWxsKSAmJiBldi5kYXRhID09PSAncHJvY2Vzcy10aWNrJykgewogICAgICAgICAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgICAgICBpZiAocXVldWUubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgICAgIHZhciBmbiA9IHF1ZXVlLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgICAgZm4oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0sIHRydWUpOwoKICAgICAgICByZXR1cm4gZnVuY3Rpb24gbmV4dFRpY2soZm4pIHsKICAgICAgICAgICAgcXVldWUucHVzaChmbik7CiAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZSgncHJvY2Vzcy10aWNrJywgJyonKTsKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiBmdW5jdGlvbiBuZXh0VGljayhmbikgewogICAgICAgIHNldFRpbWVvdXQoZm4sIDApOwogICAgfTsKfSkoKTsKCnByb2Nlc3MudGl0bGUgPSAnYnJvd3Nlcic7CnByb2Nlc3MuYnJvd3NlciA9IHRydWU7CnByb2Nlc3MuZW52ID0ge307CnByb2Nlc3MuYXJndiA9IFtdOwoKZnVuY3Rpb24gbm9vcCgpIHt9Cgpwcm9jZXNzLm9uID0gbm9vcDsKcHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7CnByb2Nlc3Mub25jZSA9IG5vb3A7CnByb2Nlc3Mub2ZmID0gbm9vcDsKcHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7CnByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDsKcHJvY2Vzcy5lbWl0ID0gbm9vcDsKCnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkJyk7Cn07CgovLyBUT0RPKHNodHlsbWFuKQpwcm9jZXNzLmN3ZCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuICcvJyB9Owpwcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikgewogICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTsKfTsKCn0se31dLDI6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpewp2YXIgR2VuZXJpY1JlYWRlcjsKCnZhciB4aHIgPSByZXF1aXJlKCdyZXF1ZXN0Jyk7CnZhciB2b3cgPSByZXF1aXJlKCd2b3cnKTsKCm1vZHVsZS5leHBvcnRzID0gR2VuZXJpY1JlYWRlciA9IChmdW5jdGlvbigpIHsKICBmdW5jdGlvbiBHZW5lcmljUmVhZGVyKCkge30KCiAgLy8gcmV0dXJucyBhIHByb21pc2UgaWYgY2FsbGJhY2sgaXMgdW5kZWZpbmVkCiAgR2VuZXJpY1JlYWRlci5yZWFkID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgewogICAgdmFyIG9ucmV0OwogICAgb25yZXQgPSAoZnVuY3Rpb24oX3RoaXMpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGVyciwgcmVzcG9uc2UsIHRleHQpIHsKICAgICAgICByZXR1cm4gR2VuZXJpY1JlYWRlci5fb25SZXRyaWV2YWwoZXJyLCB0ZXh0LCBjYWxsYmFjaywgX3RoaXMpOwogICAgICB9OwogICAgfSkodGhpcyk7CgogICAgaWYodHlwZW9mIGNhbGxiYWNrID09PSAidW5kZWZpbmVkIil7CiAgICAgIHZhciBwcm9tID0gdm93LmRlZmVyKCk7CiAgICAgIGNhbGxiYWNrID0gZnVuY3Rpb24oZXJyLCByZXMpewogICAgICAgIGlmKGVycil7CiAgICAgICAgICBwcm9tLnJlamVjdChlcnIpOwogICAgICAgIH1lbHNlewogICAgICAgICAgcHJvbS5yZXNvbHZlKHJlcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICB4aHIodXJsLCBvbnJldCk7CiAgICAgIHJldHVybiBwcm9tLnByb21pc2UoKTsKICAgIH1lbHNlewogICAgICByZXR1cm4geGhyKHVybCwgb25yZXQpOwogICAgfQogIH07CgogIEdlbmVyaWNSZWFkZXIuX29uUmV0cmlldmFsID0gZnVuY3Rpb24oZXJyLCB0ZXh0LCBjYWxsYmFjaywgX3RoaXMpIHsKICAgIHZhciByVGV4dDsKICAgIGlmKHR5cGVvZiBlcnIgIT09ICJ1bmRlZmluZWQiKXsKICAgICAgclRleHQgPSBfdGhpcy5wYXJzZSh0ZXh0KTsKICAgIH0KICAgIHJldHVybiBjYWxsYmFjay5jYWxsKF90aGlzLCBlcnIsIHJUZXh0KTsKICB9OwoKICAvLyBwcm92aWRlIGEgY29udmVuaWVudCBzaG9ydGN1dCB0byBpbmhlcml0CiAgR2VuZXJpY1JlYWRlci5leHRlbmQgPSBmdW5jdGlvbihvYmosIHN0YXRpY3MpewogICAgcmV0dXJuIGV4dGVuZChHZW5lcmljUmVhZGVyLCBvYmosIHN0YXRpY3MpOwogIH07CiAgLy8gTWl4aW4gdXRpbGl0eQogIEdlbmVyaWNSZWFkZXIubWl4aW4gPSBmdW5jdGlvbihwcm90bykgewogICAgdmFyIGV4cG9ydHMgPSBbJ3JlYWQnXTsKICAgIGlmKHR5cGVvZiBwcm90byAhPT0gIm9iamVjdCIpewogICAgICBwcm90byA9IHByb3RvLnByb3RvdHlwZTsKICAgIH0KICAgIGV4cG9ydHMuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7CiAgICAgIHByb3RvW25hbWVdID0gR2VuZXJpY1JlYWRlcltuYW1lXTsKICAgIH0sIHRoaXMpOwogICAgcmV0dXJuIHByb3RvOwogIH07CgogIHJldHVybiBHZW5lcmljUmVhZGVyOwoKfSkoKTsKCn0seyJyZXF1ZXN0Ijo0LCJ2b3ciOjN9XSwzOltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKKGZ1bmN0aW9uIChwcm9jZXNzLGdsb2JhbCl7Ci8qKgogKiBAbW9kdWxlIHZvdwogKiBAYXV0aG9yIEZpbGF0b3YgRG1pdHJ5IDxkZmlsYXRvdkB5YW5kZXgtdGVhbS5ydT4KICogQHZlcnNpb24gMC40LjExCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzOgogKiAgICogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKICogICAqIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbAogKi8KCihmdW5jdGlvbihnbG9iYWwpIHsKCnZhciB1bmRlZiwKICAgIG5leHRUaWNrID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBmbnMgPSBbXSwKICAgICAgICAgICAgZW5xdWV1ZUZuID0gZnVuY3Rpb24oZm4pIHsKICAgICAgICAgICAgICAgIHJldHVybiBmbnMucHVzaChmbikgPT09IDE7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGNhbGxGbnMgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHZhciBmbnNUb0NhbGwgPSBmbnMsIGkgPSAwLCBsZW4gPSBmbnMubGVuZ3RoOwogICAgICAgICAgICAgICAgZm5zID0gW107CiAgICAgICAgICAgICAgICB3aGlsZShpIDwgbGVuKSB7CiAgICAgICAgICAgICAgICAgICAgZm5zVG9DYWxsW2krK10oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKCiAgICAgICAgaWYodHlwZW9mIHNldEltbWVkaWF0ZSA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBpZTEwLCBub2RlanMgPj0gMC4xMAogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oZm4pIHsKICAgICAgICAgICAgICAgIGVucXVldWVGbihmbikgJiYgc2V0SW1tZWRpYXRlKGNhbGxGbnMpOwogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgaWYodHlwZW9mIHByb2Nlc3MgPT09ICdvYmplY3QnICYmIHByb2Nlc3MubmV4dFRpY2spIHsgLy8gbm9kZWpzIDwgMC4xMAogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oZm4pIHsKICAgICAgICAgICAgICAgIGVucXVldWVGbihmbikgJiYgcHJvY2Vzcy5uZXh0VGljayhjYWxsRm5zKTsKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIHZhciBNdXRhdGlvbk9ic2VydmVyID0gZ2xvYmFsLk11dGF0aW9uT2JzZXJ2ZXIgfHwgZ2xvYmFsLldlYktpdE11dGF0aW9uT2JzZXJ2ZXI7IC8vIG1vZGVybiBicm93c2VycwogICAgICAgIGlmKE11dGF0aW9uT2JzZXJ2ZXIpIHsKICAgICAgICAgICAgdmFyIG51bSA9IDEsCiAgICAgICAgICAgICAgICBub2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycpOwoKICAgICAgICAgICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2FsbEZucykub2JzZXJ2ZShub2RlLCB7IGNoYXJhY3RlckRhdGEgOiB0cnVlIH0pOwoKICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGZuKSB7CiAgICAgICAgICAgICAgICBlbnF1ZXVlRm4oZm4pICYmIChub2RlLmRhdGEgPSAobnVtICo9IC0xKSk7CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBpZihnbG9iYWwucG9zdE1lc3NhZ2UpIHsKICAgICAgICAgICAgdmFyIGlzUG9zdE1lc3NhZ2VBc3luYyA9IHRydWU7CiAgICAgICAgICAgIGlmKGdsb2JhbC5hdHRhY2hFdmVudCkgewogICAgICAgICAgICAgICAgdmFyIGNoZWNrQXN5bmMgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaXNQb3N0TWVzc2FnZUFzeW5jID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIGdsb2JhbC5hdHRhY2hFdmVudCgnb25tZXNzYWdlJywgY2hlY2tBc3luYyk7CiAgICAgICAgICAgICAgICBnbG9iYWwucG9zdE1lc3NhZ2UoJ19fY2hlY2tBc3luYycsICcqJyk7CiAgICAgICAgICAgICAgICBnbG9iYWwuZGV0YWNoRXZlbnQoJ29ubWVzc2FnZScsIGNoZWNrQXN5bmMpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZihpc1Bvc3RNZXNzYWdlQXN5bmMpIHsKICAgICAgICAgICAgICAgIHZhciBtc2cgPSAnX19wcm9taXNlJyArIE1hdGgucmFuZG9tKCkgKyAnXycgK25ldyBEYXRlLAogICAgICAgICAgICAgICAgICAgIG9uTWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoZS5kYXRhID09PSBtc2cpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uICYmIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsRm5zKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIGdsb2JhbC5hZGRFdmVudExpc3RlbmVyPwogICAgICAgICAgICAgICAgICAgIGdsb2JhbC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25NZXNzYWdlLCB0cnVlKSA6CiAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLmF0dGFjaEV2ZW50KCdvbm1lc3NhZ2UnLCBvbk1lc3NhZ2UpOwoKICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihmbikgewogICAgICAgICAgICAgICAgICAgIGVucXVldWVGbihmbikgJiYgZ2xvYmFsLnBvc3RNZXNzYWdlKG1zZywgJyonKTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciBkb2MgPSBnbG9iYWwuZG9jdW1lbnQ7CiAgICAgICAgaWYoJ29ucmVhZHlzdGF0ZWNoYW5nZScgaW4gZG9jLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpKSB7IC8vIGllNi1pZTgKICAgICAgICAgICAgdmFyIGNyZWF0ZVNjcmlwdCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHZhciBzY3JpcHQgPSBkb2MuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgICAgICAgICAgICAgc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY3JpcHQpOwogICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgY2FsbEZucygpOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIChkb2MuZG9jdW1lbnRFbGVtZW50IHx8IGRvYy5ib2R5KS5hcHBlbmRDaGlsZChzY3JpcHQpOwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGZuKSB7CiAgICAgICAgICAgICAgICBlbnF1ZXVlRm4oZm4pICYmIGNyZWF0ZVNjcmlwdCgpOwogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGZuKSB7IC8vIG9sZCBicm93c2VycwogICAgICAgICAgICBlbnF1ZXVlRm4oZm4pICYmIHNldFRpbWVvdXQoY2FsbEZucywgMCk7CiAgICAgICAgfTsKICAgIH0pKCksCiAgICB0aHJvd0V4Y2VwdGlvbiA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBuZXh0VGljayhmdW5jdGlvbigpIHsKICAgICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9KTsKICAgIH0sCiAgICBpc0Z1bmN0aW9uID0gZnVuY3Rpb24ob2JqKSB7CiAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbic7CiAgICB9LAogICAgaXNPYmplY3QgPSBmdW5jdGlvbihvYmopIHsKICAgICAgICByZXR1cm4gb2JqICE9PSBudWxsICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnOwogICAgfSwKICAgIHRvU3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZywKICAgIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uKG9iaikgewogICAgICAgIHJldHVybiB0b1N0ci5jYWxsKG9iaikgPT09ICdbb2JqZWN0IEFycmF5XSc7CiAgICB9LAogICAgZ2V0QXJyYXlLZXlzID0gZnVuY3Rpb24oYXJyKSB7CiAgICAgICAgdmFyIHJlcyA9IFtdLAogICAgICAgICAgICBpID0gMCwgbGVuID0gYXJyLmxlbmd0aDsKICAgICAgICB3aGlsZShpIDwgbGVuKSB7CiAgICAgICAgICAgIHJlcy5wdXNoKGkrKyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXM7CiAgICB9LAogICAgZ2V0T2JqZWN0S2V5cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uKG9iaikgewogICAgICAgIHZhciByZXMgPSBbXTsKICAgICAgICBmb3IodmFyIGkgaW4gb2JqKSB7CiAgICAgICAgICAgIG9iai5oYXNPd25Qcm9wZXJ0eShpKSAmJiByZXMucHVzaChpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlczsKICAgIH0sCiAgICBkZWZpbmVDdXN0b21FcnJvclR5cGUgPSBmdW5jdGlvbihuYW1lKSB7CiAgICAgICAgdmFyIHJlcyA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTsKICAgICAgICB9OwoKICAgICAgICByZXMucHJvdG90eXBlID0gbmV3IEVycm9yKCk7CgogICAgICAgIHJldHVybiByZXM7CiAgICB9LAogICAgd3JhcE9uRnVsZmlsbGVkID0gZnVuY3Rpb24ob25GdWxmaWxsZWQsIGlkeCkgewogICAgICAgIHJldHVybiBmdW5jdGlvbih2YWwpIHsKICAgICAgICAgICAgb25GdWxmaWxsZWQuY2FsbCh0aGlzLCB2YWwsIGlkeCk7CiAgICAgICAgfTsKICAgIH07CgovKioKICogQGNsYXNzIERlZmVycmVkCiAqIEBleHBvcnRzIHZvdzpEZWZlcnJlZAogKiBAZGVzY3JpcHRpb24KICogVGhlIGBEZWZlcnJlZGAgY2xhc3MgaXMgdXNlZCB0byBlbmNhcHN1bGF0ZSBuZXdseS1jcmVhdGVkIHByb21pc2Ugb2JqZWN0IGFsb25nIHdpdGggZnVuY3Rpb25zIHRoYXQgcmVzb2x2ZSwgcmVqZWN0IG9yIG5vdGlmeSBpdC4KICovCgovKioKICogQGNvbnN0cnVjdG9yCiAqIEBkZXNjcmlwdGlvbgogKiBZb3UgY2FuIHVzZSBgdm93LmRlZmVyKClgIGluc3RlYWQgb2YgdXNpbmcgdGhpcyBjb25zdHJ1Y3Rvci4KICoKICogYG5ldyB2b3cuRGVmZXJyZWQoKWAgZ2l2ZXMgdGhlIHNhbWUgcmVzdWx0IGFzIGB2b3cuZGVmZXIoKWAuCiAqLwp2YXIgRGVmZXJyZWQgPSBmdW5jdGlvbigpIHsKICAgIHRoaXMuX3Byb21pc2UgPSBuZXcgUHJvbWlzZSgpOwp9OwoKRGVmZXJyZWQucHJvdG90eXBlID0gLyoqIEBsZW5kcyBEZWZlcnJlZC5wcm90b3R5cGUgKi97CiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIGNvcnJlc3BvbmRpbmcgcHJvbWlzZS4KICAgICAqCiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKi8KICAgIHByb21pc2UgOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcHJvbWlzZTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBSZXNvbHZlcyB0aGUgY29ycmVzcG9uZGluZyBwcm9taXNlIHdpdGggdGhlIGdpdmVuIGB2YWx1ZWAuCiAgICAgKgogICAgICogQHBhcmFtIHsqfSB2YWx1ZQogICAgICoKICAgICAqIEBleGFtcGxlCiAgICAgKiBgYGBqcwogICAgICogdmFyIGRlZmVyID0gdm93LmRlZmVyKCksCiAgICAgKiAgICAgcHJvbWlzZSA9IGRlZmVyLnByb21pc2UoKTsKICAgICAqCiAgICAgKiBwcm9taXNlLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKICAgICAqICAgICAvLyB2YWx1ZSBpcyAiJ3N1Y2Nlc3MnIiBoZXJlCiAgICAgKiB9KTsKICAgICAqCiAgICAgKiBkZWZlci5yZXNvbHZlKCdzdWNjZXNzJyk7CiAgICAgKiBgYGAKICAgICAqLwogICAgcmVzb2x2ZSA6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdGhpcy5fcHJvbWlzZS5pc1Jlc29sdmVkKCkgfHwgdGhpcy5fcHJvbWlzZS5fcmVzb2x2ZSh2YWx1ZSk7CiAgICB9LAoKICAgIC8qKgogICAgICogUmVqZWN0cyB0aGUgY29ycmVzcG9uZGluZyBwcm9taXNlIHdpdGggdGhlIGdpdmVuIGByZWFzb25gLgogICAgICoKICAgICAqIEBwYXJhbSB7Kn0gcmVhc29uCiAgICAgKgogICAgICogQGV4YW1wbGUKICAgICAqIGBgYGpzCiAgICAgKiB2YXIgZGVmZXIgPSB2b3cuZGVmZXIoKSwKICAgICAqICAgICBwcm9taXNlID0gZGVmZXIucHJvbWlzZSgpOwogICAgICoKICAgICAqIHByb21pc2UuZmFpbChmdW5jdGlvbihyZWFzb24pIHsKICAgICAqICAgICAvLyByZWFzb24gaXMgIidzb21ldGhpbmcgaXMgd3JvbmcnIiBoZXJlCiAgICAgKiB9KTsKICAgICAqCiAgICAgKiBkZWZlci5yZWplY3QoJ3NvbWV0aGluZyBpcyB3cm9uZycpOwogICAgICogYGBgCiAgICAgKi8KICAgIHJlamVjdCA6IGZ1bmN0aW9uKHJlYXNvbikgewogICAgICAgIGlmKHRoaXMuX3Byb21pc2UuaXNSZXNvbHZlZCgpKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmKHZvdy5pc1Byb21pc2UocmVhc29uKSkgewogICAgICAgICAgICByZWFzb24gPSByZWFzb24udGhlbihmdW5jdGlvbih2YWwpIHsKICAgICAgICAgICAgICAgIHZhciBkZWZlciA9IHZvdy5kZWZlcigpOwogICAgICAgICAgICAgICAgZGVmZXIucmVqZWN0KHZhbCk7CiAgICAgICAgICAgICAgICByZXR1cm4gZGVmZXIucHJvbWlzZSgpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdGhpcy5fcHJvbWlzZS5fcmVzb2x2ZShyZWFzb24pOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGhpcy5fcHJvbWlzZS5fcmVqZWN0KHJlYXNvbik7CiAgICAgICAgfQogICAgfSwKCiAgICAvKioKICAgICAqIE5vdGlmaWVzIHRoZSBjb3JyZXNwb25kaW5nIHByb21pc2Ugd2l0aCB0aGUgZ2l2ZW4gYHZhbHVlYC4KICAgICAqCiAgICAgKiBAcGFyYW0geyp9IHZhbHVlCiAgICAgKgogICAgICogQGV4YW1wbGUKICAgICAqIGBgYGpzCiAgICAgKiB2YXIgZGVmZXIgPSB2b3cuZGVmZXIoKSwKICAgICAqICAgICBwcm9taXNlID0gZGVmZXIucHJvbWlzZSgpOwogICAgICoKICAgICAqIHByb21pc2UucHJvZ3Jlc3MoZnVuY3Rpb24odmFsdWUpIHsKICAgICAqICAgICAvLyB2YWx1ZSBpcyAiJzIwJSciLCAiJzQwJSciIGhlcmUKICAgICAqIH0pOwogICAgICoKICAgICAqIGRlZmVyLm5vdGlmeSgnMjAlJyk7CiAgICAgKiBkZWZlci5ub3RpZnkoJzQwJScpOwogICAgICogYGBgCiAgICAgKi8KICAgIG5vdGlmeSA6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdGhpcy5fcHJvbWlzZS5pc1Jlc29sdmVkKCkgfHwgdGhpcy5fcHJvbWlzZS5fbm90aWZ5KHZhbHVlKTsKICAgIH0KfTsKCnZhciBQUk9NSVNFX1NUQVRVUyA9IHsKICAgIFBFTkRJTkcgICA6IDAsCiAgICBSRVNPTFZFRCAgOiAxLAogICAgRlVMRklMTEVEIDogMiwKICAgIFJFSkVDVEVEICA6IDMKfTsKCi8qKgogKiBAY2xhc3MgUHJvbWlzZQogKiBAZXhwb3J0cyB2b3c6UHJvbWlzZQogKiBAZGVzY3JpcHRpb24KICogVGhlIGBQcm9taXNlYCBjbGFzcyBpcyB1c2VkIHdoZW4geW91IHdhbnQgdG8gZ2l2ZSB0byB0aGUgY2FsbGVyIHNvbWV0aGluZyB0byBzdWJzY3JpYmUgdG8sCiAqIGJ1dCBub3QgdGhlIGFiaWxpdHkgdG8gcmVzb2x2ZSBvciByZWplY3QgdGhlIGRlZmVycmVkLgogKi8KCi8qKgogKiBAY29uc3RydWN0b3IKICogQHBhcmFtIHtGdW5jdGlvbn0gcmVzb2x2ZXIgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kb21lbmljL3Byb21pc2VzLXVud3JhcHBpbmcvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI3RoZS1wcm9taXNlLWNvbnN0cnVjdG9yIGZvciBkZXRhaWxzLgogKiBAZGVzY3JpcHRpb24KICogWW91IHNob3VsZCB1c2UgdGhpcyBjb25zdHJ1Y3RvciBkaXJlY3RseSBvbmx5IGlmIHlvdSBhcmUgZ29pbmcgdG8gdXNlIGB2b3dgIGFzIERPTSBQcm9taXNlcyBpbXBsZW1lbnRhdGlvbi4KICogSW4gb3RoZXIgY2FzZSB5b3Ugc2hvdWxkIHVzZSBgdm93LmRlZmVyKClgIGFuZCBgZGVmZXIucHJvbWlzZSgpYCBtZXRob2RzLgogKiBAZXhhbXBsZQogKiBgYGBqcwogKiBmdW5jdGlvbiBmZXRjaEpTT04odXJsKSB7CiAqICAgICByZXR1cm4gbmV3IHZvdy5Qcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCwgbm90aWZ5KSB7CiAqICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwogKiAgICAgICAgIHhoci5vcGVuKCdHRVQnLCB1cmwpOwogKiAgICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnanNvbic7CiAqICAgICAgICAgeGhyLnNlbmQoKTsKICogICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7CiAqICAgICAgICAgICAgIGlmKHhoci5yZXNwb25zZSkgewogKiAgICAgICAgICAgICAgICAgcmVzb2x2ZSh4aHIucmVzcG9uc2UpOwogKiAgICAgICAgICAgICB9CiAqICAgICAgICAgICAgIGVsc2UgewogKiAgICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBUeXBlRXJyb3IoKSk7CiAqICAgICAgICAgICAgIH0KICogICAgICAgICB9OwogKiAgICAgfSk7CiAqIH0KICogYGBgCiAqLwp2YXIgUHJvbWlzZSA9IGZ1bmN0aW9uKHJlc29sdmVyKSB7CiAgICB0aGlzLl92YWx1ZSA9IHVuZGVmOwogICAgdGhpcy5fc3RhdHVzID0gUFJPTUlTRV9TVEFUVVMuUEVORElORzsKCiAgICB0aGlzLl9mdWxmaWxsZWRDYWxsYmFja3MgPSBbXTsKICAgIHRoaXMuX3JlamVjdGVkQ2FsbGJhY2tzID0gW107CiAgICB0aGlzLl9wcm9ncmVzc0NhbGxiYWNrcyA9IFtdOwoKICAgIGlmKHJlc29sdmVyKSB7IC8vIE5PVEU6IHNlZSBodHRwczovL2dpdGh1Yi5jb20vZG9tZW5pYy9wcm9taXNlcy11bndyYXBwaW5nL2Jsb2IvbWFzdGVyL1JFQURNRS5tZAogICAgICAgIHZhciBfdGhpcyA9IHRoaXMsCiAgICAgICAgICAgIHJlc29sdmVyRm5MZW4gPSByZXNvbHZlci5sZW5ndGg7CgogICAgICAgIHJlc29sdmVyKAogICAgICAgICAgICBmdW5jdGlvbih2YWwpIHsKICAgICAgICAgICAgICAgIF90aGlzLmlzUmVzb2x2ZWQoKSB8fCBfdGhpcy5fcmVzb2x2ZSh2YWwpOwogICAgICAgICAgICB9LAogICAgICAgICAgICByZXNvbHZlckZuTGVuID4gMT8KICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHJlYXNvbikgewogICAgICAgICAgICAgICAgICAgIF90aGlzLmlzUmVzb2x2ZWQoKSB8fCBfdGhpcy5fcmVqZWN0KHJlYXNvbik7CiAgICAgICAgICAgICAgICB9IDoKICAgICAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICByZXNvbHZlckZuTGVuID4gMj8KICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHZhbCkgewogICAgICAgICAgICAgICAgICAgIF90aGlzLmlzUmVzb2x2ZWQoKSB8fCBfdGhpcy5fbm90aWZ5KHZhbCk7CiAgICAgICAgICAgICAgICB9IDoKICAgICAgICAgICAgICAgIHVuZGVmKTsKICAgIH0KfTsKClByb21pc2UucHJvdG90eXBlID0gLyoqIEBsZW5kcyBQcm9taXNlLnByb3RvdHlwZSAqLyB7CiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBmdWxmaWxsZWQgcHJvbWlzZSBvciB0aGUgcmVhc29uIGluIGNhc2Ugb2YgcmVqZWN0aW9uLgogICAgICoKICAgICAqIEByZXR1cm5zIHsqfQogICAgICovCiAgICB2YWx1ZU9mIDogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlOwogICAgfSwKCiAgICAvKioKICAgICAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBwcm9taXNlIGlzIHJlc29sdmVkLgogICAgICoKICAgICAqIEByZXR1cm5zIHtCb29sZWFufQogICAgICovCiAgICBpc1Jlc29sdmVkIDogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cyAhPT0gUFJPTUlTRV9TVEFUVVMuUEVORElORzsKICAgIH0sCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgcHJvbWlzZSBpcyBmdWxmaWxsZWQuCiAgICAgKgogICAgICogQHJldHVybnMge0Jvb2xlYW59CiAgICAgKi8KICAgIGlzRnVsZmlsbGVkIDogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cyA9PT0gUFJPTUlTRV9TVEFUVVMuRlVMRklMTEVEOwogICAgfSwKCiAgICAvKioKICAgICAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLgogICAgICoKICAgICAqIEByZXR1cm5zIHtCb29sZWFufQogICAgICovCiAgICBpc1JlamVjdGVkIDogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cyA9PT0gUFJPTUlTRV9TVEFUVVMuUkVKRUNURUQ7CiAgICB9LAoKICAgIC8qKgogICAgICogQWRkcyByZWFjdGlvbnMgdG8gdGhlIHByb21pc2UuCiAgICAgKgogICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29uRnVsZmlsbGVkXSBDYWxsYmFjayB0aGF0IHdpbGwgYmUgaW52b2tlZCB3aXRoIGEgcHJvdmlkZWQgdmFsdWUgYWZ0ZXIgdGhlIHByb21pc2UgaGFzIGJlZW4gZnVsZmlsbGVkCiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb25SZWplY3RlZF0gQ2FsbGJhY2sgdGhhdCB3aWxsIGJlIGludm9rZWQgd2l0aCBhIHByb3ZpZGVkIHJlYXNvbiBhZnRlciB0aGUgcHJvbWlzZSBoYXMgYmVlbiByZWplY3RlZAogICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29uUHJvZ3Jlc3NdIENhbGxiYWNrIHRoYXQgd2lsbCBiZSBpbnZva2VkIHdpdGggYSBwcm92aWRlZCB2YWx1ZSBhZnRlciB0aGUgcHJvbWlzZSBoYXMgYmVlbiBub3RpZmllZAogICAgICogQHBhcmFtIHtPYmplY3R9IFtjdHhdIENvbnRleHQgb2YgdGhlIGNhbGxiYWNrcyBleGVjdXRpb24KICAgICAqIEByZXR1cm5zIHt2b3c6UHJvbWlzZX0gQSBuZXcgcHJvbWlzZSwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9taXNlcy1hcGx1cy9wcm9taXNlcy1zcGVjIGZvciBkZXRhaWxzCiAgICAgKi8KICAgIHRoZW4gOiBmdW5jdGlvbihvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCwgb25Qcm9ncmVzcywgY3R4KSB7CiAgICAgICAgdmFyIGRlZmVyID0gbmV3IERlZmVycmVkKCk7CiAgICAgICAgdGhpcy5fYWRkQ2FsbGJhY2tzKGRlZmVyLCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCwgb25Qcm9ncmVzcywgY3R4KTsKICAgICAgICByZXR1cm4gZGVmZXIucHJvbWlzZSgpOwogICAgfSwKCiAgICAvKioKICAgICAqIEFkZHMgb25seSBhIHJlamVjdGlvbiByZWFjdGlvbi4gVGhpcyBtZXRob2QgaXMgYSBzaG9ydGhhbmQgZm9yIGBwcm9taXNlLnRoZW4odW5kZWZpbmVkLCBvblJlamVjdGVkKWAuCiAgICAgKgogICAgICogQHBhcmFtIHtGdW5jdGlvbn0gb25SZWplY3RlZCBDYWxsYmFjayB0aGF0IHdpbGwgYmUgY2FsbGVkIHdpdGggYSBwcm92aWRlZCAncmVhc29uJyBhcyBhcmd1bWVudCBhZnRlciB0aGUgcHJvbWlzZSBoYXMgYmVlbiByZWplY3RlZAogICAgICogQHBhcmFtIHtPYmplY3R9IFtjdHhdIENvbnRleHQgb2YgdGhlIGNhbGxiYWNrIGV4ZWN1dGlvbgogICAgICogQHJldHVybnMge3ZvdzpQcm9taXNlfQogICAgICovCiAgICAnY2F0Y2gnIDogZnVuY3Rpb24ob25SZWplY3RlZCwgY3R4KSB7CiAgICAgICAgcmV0dXJuIHRoaXMudGhlbih1bmRlZiwgb25SZWplY3RlZCwgY3R4KTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBBZGRzIG9ubHkgYSByZWplY3Rpb24gcmVhY3Rpb24uIFRoaXMgbWV0aG9kIGlzIGEgc2hvcnRoYW5kIGZvciBgcHJvbWlzZS50aGVuKG51bGwsIG9uUmVqZWN0ZWQpYC4gSXQncyBhbHNvIGFuIGFsaWFzIGZvciBgY2F0Y2hgLgogICAgICoKICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IG9uUmVqZWN0ZWQgQ2FsbGJhY2sgdG8gYmUgY2FsbGVkIHdpdGggdGhlIHZhbHVlIGFmdGVyIHByb21pc2UgaGFzIGJlZW4gcmVqZWN0ZWQKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbY3R4XSBDb250ZXh0IG9mIHRoZSBjYWxsYmFjayBleGVjdXRpb24KICAgICAqIEByZXR1cm5zIHt2b3c6UHJvbWlzZX0KICAgICAqLwogICAgZmFpbCA6IGZ1bmN0aW9uKG9uUmVqZWN0ZWQsIGN0eCkgewogICAgICAgIHJldHVybiB0aGlzLnRoZW4odW5kZWYsIG9uUmVqZWN0ZWQsIGN0eCk7CiAgICB9LAoKICAgIC8qKgogICAgICogQWRkcyBhIHJlc29sdmluZyByZWFjdGlvbiAoZm9yIGJvdGggZnVsZmlsbG1lbnQgYW5kIHJlamVjdGlvbikuCiAgICAgKgogICAgICogQHBhcmFtIHtGdW5jdGlvbn0gb25SZXNvbHZlZCBDYWxsYmFjayB0aGF0IHdpbGwgYmUgaW52b2tlZCB3aXRoIHRoZSBwcm9taXNlIGFzIGFuIGFyZ3VtZW50LCBhZnRlciB0aGUgcHJvbWlzZSBoYXMgYmVlbiByZXNvbHZlZC4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbY3R4XSBDb250ZXh0IG9mIHRoZSBjYWxsYmFjayBleGVjdXRpb24KICAgICAqIEByZXR1cm5zIHt2b3c6UHJvbWlzZX0KICAgICAqLwogICAgYWx3YXlzIDogZnVuY3Rpb24ob25SZXNvbHZlZCwgY3R4KSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpcywKICAgICAgICAgICAgY2IgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHJldHVybiBvblJlc29sdmVkLmNhbGwodGhpcywgX3RoaXMpOwogICAgICAgICAgICB9OwoKICAgICAgICByZXR1cm4gdGhpcy50aGVuKGNiLCBjYiwgY3R4KTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBBZGRzIGEgcHJvZ3Jlc3MgcmVhY3Rpb24uCiAgICAgKgogICAgICogQHBhcmFtIHtGdW5jdGlvbn0gb25Qcm9ncmVzcyBDYWxsYmFjayB0aGF0IHdpbGwgYmUgY2FsbGVkIHdpdGggYSBwcm92aWRlZCB2YWx1ZSB3aGVuIHRoZSBwcm9taXNlIGhhcyBiZWVuIG5vdGlmaWVkCiAgICAgKiBAcGFyYW0ge09iamVjdH0gW2N0eF0gQ29udGV4dCBvZiB0aGUgY2FsbGJhY2sgZXhlY3V0aW9uCiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKi8KICAgIHByb2dyZXNzIDogZnVuY3Rpb24ob25Qcm9ncmVzcywgY3R4KSB7CiAgICAgICAgcmV0dXJuIHRoaXMudGhlbih1bmRlZiwgdW5kZWYsIG9uUHJvZ3Jlc3MsIGN0eCk7CiAgICB9LAoKICAgIC8qKgogICAgICogTGlrZSBgcHJvbWlzZS50aGVuYCwgYnV0ICJzcHJlYWRzIiB0aGUgYXJyYXkgaW50byBhIHZhcmlhZGljIHZhbHVlIGhhbmRsZXIuCiAgICAgKiBJdCBpcyB1c2VmdWwgd2l0aCB0aGUgYHZvdy5hbGxgIGFuZCB0aGUgYHZvdy5hbGxSZXNvbHZlZGAgbWV0aG9kcy4KICAgICAqCiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb25GdWxmaWxsZWRdIENhbGxiYWNrIHRoYXQgd2lsbCBiZSBpbnZva2VkIHdpdGggYSBwcm92aWRlZCB2YWx1ZSBhZnRlciB0aGUgcHJvbWlzZSBoYXMgYmVlbiBmdWxmaWxsZWQKICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtvblJlamVjdGVkXSBDYWxsYmFjayB0aGF0IHdpbGwgYmUgaW52b2tlZCB3aXRoIGEgcHJvdmlkZWQgcmVhc29uIGFmdGVyIHRoZSBwcm9taXNlIGhhcyBiZWVuIHJlamVjdGVkCiAgICAgKiBAcGFyYW0ge09iamVjdH0gW2N0eF0gQ29udGV4dCBvZiB0aGUgY2FsbGJhY2tzIGV4ZWN1dGlvbgogICAgICogQHJldHVybnMge3ZvdzpQcm9taXNlfQogICAgICoKICAgICAqIEBleGFtcGxlCiAgICAgKiBgYGBqcwogICAgICogdmFyIGRlZmVyMSA9IHZvdy5kZWZlcigpLAogICAgICogICAgIGRlZmVyMiA9IHZvdy5kZWZlcigpOwogICAgICoKICAgICAqIHZvdy5hbGwoW2RlZmVyMS5wcm9taXNlKCksIGRlZmVyMi5wcm9taXNlKCldKS5zcHJlYWQoZnVuY3Rpb24oYXJnMSwgYXJnMikgewogICAgICogICAgIC8vIGFyZzEgaXMgIjEiLCBhcmcyIGlzICIndHdvJyIgaGVyZQogICAgICogfSk7CiAgICAgKgogICAgICogZGVmZXIxLnJlc29sdmUoMSk7CiAgICAgKiBkZWZlcjIucmVzb2x2ZSgndHdvJyk7CiAgICAgKiBgYGAKICAgICAqLwogICAgc3ByZWFkIDogZnVuY3Rpb24ob25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQsIGN0eCkgewogICAgICAgIHJldHVybiB0aGlzLnRoZW4oCiAgICAgICAgICAgIGZ1bmN0aW9uKHZhbCkgewogICAgICAgICAgICAgICAgcmV0dXJuIG9uRnVsZmlsbGVkLmFwcGx5KHRoaXMsIHZhbCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uUmVqZWN0ZWQsCiAgICAgICAgICAgIGN0eCk7CiAgICB9LAoKICAgIC8qKgogICAgICogTGlrZSBgdGhlbmAsIGJ1dCB0ZXJtaW5hdGVzIGEgY2hhaW4gb2YgcHJvbWlzZXMuCiAgICAgKiBJZiB0aGUgcHJvbWlzZSBoYXMgYmVlbiByZWplY3RlZCwgdGhpcyBtZXRob2QgdGhyb3dzIGl0J3MgInJlYXNvbiIgYXMgYW4gZXhjZXB0aW9uIGluIGEgZnV0dXJlIHR1cm4gb2YgdGhlIGV2ZW50IGxvb3AuCiAgICAgKgogICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29uRnVsZmlsbGVkXSBDYWxsYmFjayB0aGF0IHdpbGwgYmUgaW52b2tlZCB3aXRoIGEgcHJvdmlkZWQgdmFsdWUgYWZ0ZXIgdGhlIHByb21pc2UgaGFzIGJlZW4gZnVsZmlsbGVkCiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb25SZWplY3RlZF0gQ2FsbGJhY2sgdGhhdCB3aWxsIGJlIGludm9rZWQgd2l0aCBhIHByb3ZpZGVkIHJlYXNvbiBhZnRlciB0aGUgcHJvbWlzZSBoYXMgYmVlbiByZWplY3RlZAogICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29uUHJvZ3Jlc3NdIENhbGxiYWNrIHRoYXQgd2lsbCBiZSBpbnZva2VkIHdpdGggYSBwcm92aWRlZCB2YWx1ZSBhZnRlciB0aGUgcHJvbWlzZSBoYXMgYmVlbiBub3RpZmllZAogICAgICogQHBhcmFtIHtPYmplY3R9IFtjdHhdIENvbnRleHQgb2YgdGhlIGNhbGxiYWNrcyBleGVjdXRpb24KICAgICAqCiAgICAgKiBAZXhhbXBsZQogICAgICogYGBganMKICAgICAqIHZhciBkZWZlciA9IHZvdy5kZWZlcigpOwogICAgICogZGVmZXIucmVqZWN0KEVycm9yKCdJbnRlcm5hbCBlcnJvcicpKTsKICAgICAqIGRlZmVyLnByb21pc2UoKS5kb25lKCk7IC8vIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24KICAgICAqIGBgYAogICAgICovCiAgICBkb25lIDogZnVuY3Rpb24ob25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQsIG9uUHJvZ3Jlc3MsIGN0eCkgewogICAgICAgIHRoaXMKICAgICAgICAgICAgLnRoZW4ob25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQsIG9uUHJvZ3Jlc3MsIGN0eCkKICAgICAgICAgICAgLmZhaWwodGhyb3dFeGNlcHRpb24pOwogICAgfSwKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBuZXcgcHJvbWlzZSB0aGF0IHdpbGwgYmUgZnVsZmlsbGVkIGluIGBkZWxheWAgbWlsbGlzZWNvbmRzIGlmIHRoZSBwcm9taXNlIGlzIGZ1bGZpbGxlZCwKICAgICAqIG9yIGltbWVkaWF0ZWx5IHJlamVjdGVkIGlmIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLgogICAgICoKICAgICAqIEBwYXJhbSB7TnVtYmVyfSBkZWxheQogICAgICogQHJldHVybnMge3ZvdzpQcm9taXNlfQogICAgICovCiAgICBkZWxheSA6IGZ1bmN0aW9uKGRlbGF5KSB7CiAgICAgICAgdmFyIHRpbWVyLAogICAgICAgICAgICBwcm9taXNlID0gdGhpcy50aGVuKGZ1bmN0aW9uKHZhbCkgewogICAgICAgICAgICAgICAgdmFyIGRlZmVyID0gbmV3IERlZmVycmVkKCk7CiAgICAgICAgICAgICAgICB0aW1lciA9IHNldFRpbWVvdXQoCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmVyLnJlc29sdmUodmFsKTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGRlbGF5KTsKCiAgICAgICAgICAgICAgICByZXR1cm4gZGVmZXIucHJvbWlzZSgpOwogICAgICAgICAgICB9KTsKCiAgICAgICAgcHJvbWlzZS5hbHdheXMoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7CiAgICAgICAgfSk7CgogICAgICAgIHJldHVybiBwcm9taXNlOwogICAgfSwKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBuZXcgcHJvbWlzZSB0aGF0IHdpbGwgYmUgcmVqZWN0ZWQgaW4gYHRpbWVvdXRgIG1pbGxpc2Vjb25kcwogICAgICogaWYgdGhlIHByb21pc2UgaXMgbm90IHJlc29sdmVkIGJlZm9yZWhhbmQuCiAgICAgKgogICAgICogQHBhcmFtIHtOdW1iZXJ9IHRpbWVvdXQKICAgICAqIEByZXR1cm5zIHt2b3c6UHJvbWlzZX0KICAgICAqCiAgICAgKiBAZXhhbXBsZQogICAgICogYGBganMKICAgICAqIHZhciBkZWZlciA9IHZvdy5kZWZlcigpLAogICAgICogICAgIHByb21pc2VXaXRoVGltZW91dDEgPSBkZWZlci5wcm9taXNlKCkudGltZW91dCg1MCksCiAgICAgKiAgICAgcHJvbWlzZVdpdGhUaW1lb3V0MiA9IGRlZmVyLnByb21pc2UoKS50aW1lb3V0KDIwMCk7CiAgICAgKgogICAgICogc2V0VGltZW91dCgKICAgICAqICAgICBmdW5jdGlvbigpIHsKICAgICAqICAgICAgICAgZGVmZXIucmVzb2x2ZSgnb2snKTsKICAgICAqICAgICB9LAogICAgICogICAgIDEwMCk7CiAgICAgKgogICAgICogcHJvbWlzZVdpdGhUaW1lb3V0MS5mYWlsKGZ1bmN0aW9uKHJlYXNvbikgewogICAgICogICAgIC8vIHByb21pc2VXaXRoVGltZW91dCB0byBiZSByZWplY3RlZCBpbiA1MG1zCiAgICAgKiB9KTsKICAgICAqCiAgICAgKiBwcm9taXNlV2l0aFRpbWVvdXQyLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKICAgICAqICAgICAvLyBwcm9taXNlV2l0aFRpbWVvdXQgdG8gYmUgZnVsZmlsbGVkIHdpdGggIidvayciIHZhbHVlCiAgICAgKiB9KTsKICAgICAqIGBgYAogICAgICovCiAgICB0aW1lb3V0IDogZnVuY3Rpb24odGltZW91dCkgewogICAgICAgIHZhciBkZWZlciA9IG5ldyBEZWZlcnJlZCgpLAogICAgICAgICAgICB0aW1lciA9IHNldFRpbWVvdXQoCiAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBkZWZlci5yZWplY3QobmV3IHZvdy5UaW1lZE91dEVycm9yKCd0aW1lZCBvdXQnKSk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgdGltZW91dCk7CgogICAgICAgIHRoaXMudGhlbigKICAgICAgICAgICAgZnVuY3Rpb24odmFsKSB7CiAgICAgICAgICAgICAgICBkZWZlci5yZXNvbHZlKHZhbCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGZ1bmN0aW9uKHJlYXNvbikgewogICAgICAgICAgICAgICAgZGVmZXIucmVqZWN0KHJlYXNvbik7CiAgICAgICAgICAgIH0pOwoKICAgICAgICBkZWZlci5wcm9taXNlKCkuYWx3YXlzKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpOwogICAgICAgIH0pOwoKICAgICAgICByZXR1cm4gZGVmZXIucHJvbWlzZSgpOwogICAgfSwKCiAgICBfdm93IDogdHJ1ZSwKCiAgICBfcmVzb2x2ZSA6IGZ1bmN0aW9uKHZhbCkgewogICAgICAgIGlmKHRoaXMuX3N0YXR1cyA+IFBST01JU0VfU1RBVFVTLlJFU09MVkVEKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmKHZhbCA9PT0gdGhpcykgewogICAgICAgICAgICB0aGlzLl9yZWplY3QoVHlwZUVycm9yKCdDYW5cJ3QgcmVzb2x2ZSBwcm9taXNlIHdpdGggaXRzZWxmJykpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB0aGlzLl9zdGF0dXMgPSBQUk9NSVNFX1NUQVRVUy5SRVNPTFZFRDsKCiAgICAgICAgaWYodmFsICYmICEhdmFsLl92b3cpIHsgLy8gc2hvcnRwYXRoIGZvciB2b3cuUHJvbWlzZQogICAgICAgICAgICB2YWwuaXNGdWxmaWxsZWQoKT8KICAgICAgICAgICAgICAgIHRoaXMuX2Z1bGZpbGwodmFsLnZhbHVlT2YoKSkgOgogICAgICAgICAgICAgICAgdmFsLmlzUmVqZWN0ZWQoKT8KICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZWplY3QodmFsLnZhbHVlT2YoKSkgOgogICAgICAgICAgICAgICAgICAgIHZhbC50aGVuKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9mdWxmaWxsLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZWplY3QsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmeSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmKGlzT2JqZWN0KHZhbCkgfHwgaXNGdW5jdGlvbih2YWwpKSB7CiAgICAgICAgICAgIHZhciB0aGVuOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgdGhlbiA9IHZhbC50aGVuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoKGUpIHsKICAgICAgICAgICAgICAgIHRoaXMuX3JlamVjdChlKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoaXNGdW5jdGlvbih0aGVuKSkgewogICAgICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcywKICAgICAgICAgICAgICAgICAgICBpc1Jlc29sdmVkID0gZmFsc2U7CgogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICB0aGVuLmNhbGwoCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24odmFsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihpc1Jlc29sdmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVzb2x2ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuX3Jlc29sdmUodmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihpc1Jlc29sdmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVzb2x2ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuX3JlamVjdChlcnIpOwogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbih2YWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLl9ub3RpZnkodmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgICAgaXNSZXNvbHZlZCB8fCB0aGlzLl9yZWplY3QoZSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB0aGlzLl9mdWxmaWxsKHZhbCk7CiAgICB9LAoKICAgIF9mdWxmaWxsIDogZnVuY3Rpb24odmFsKSB7CiAgICAgICAgaWYodGhpcy5fc3RhdHVzID4gUFJPTUlTRV9TVEFUVVMuUkVTT0xWRUQpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgdGhpcy5fc3RhdHVzID0gUFJPTUlTRV9TVEFUVVMuRlVMRklMTEVEOwogICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsOwoKICAgICAgICB0aGlzLl9jYWxsQ2FsbGJhY2tzKHRoaXMuX2Z1bGZpbGxlZENhbGxiYWNrcywgdmFsKTsKICAgICAgICB0aGlzLl9mdWxmaWxsZWRDYWxsYmFja3MgPSB0aGlzLl9yZWplY3RlZENhbGxiYWNrcyA9IHRoaXMuX3Byb2dyZXNzQ2FsbGJhY2tzID0gdW5kZWY7CiAgICB9LAoKICAgIF9yZWplY3QgOiBmdW5jdGlvbihyZWFzb24pIHsKICAgICAgICBpZih0aGlzLl9zdGF0dXMgPiBQUk9NSVNFX1NUQVRVUy5SRVNPTFZFRCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB0aGlzLl9zdGF0dXMgPSBQUk9NSVNFX1NUQVRVUy5SRUpFQ1RFRDsKICAgICAgICB0aGlzLl92YWx1ZSA9IHJlYXNvbjsKCiAgICAgICAgdGhpcy5fY2FsbENhbGxiYWNrcyh0aGlzLl9yZWplY3RlZENhbGxiYWNrcywgcmVhc29uKTsKICAgICAgICB0aGlzLl9mdWxmaWxsZWRDYWxsYmFja3MgPSB0aGlzLl9yZWplY3RlZENhbGxiYWNrcyA9IHRoaXMuX3Byb2dyZXNzQ2FsbGJhY2tzID0gdW5kZWY7CiAgICB9LAoKICAgIF9ub3RpZnkgOiBmdW5jdGlvbih2YWwpIHsKICAgICAgICB0aGlzLl9jYWxsQ2FsbGJhY2tzKHRoaXMuX3Byb2dyZXNzQ2FsbGJhY2tzLCB2YWwpOwogICAgfSwKCiAgICBfYWRkQ2FsbGJhY2tzIDogZnVuY3Rpb24oZGVmZXIsIG9uRnVsZmlsbGVkLCBvblJlamVjdGVkLCBvblByb2dyZXNzLCBjdHgpIHsKICAgICAgICBpZihvblJlamVjdGVkICYmICFpc0Z1bmN0aW9uKG9uUmVqZWN0ZWQpKSB7CiAgICAgICAgICAgIGN0eCA9IG9uUmVqZWN0ZWQ7CiAgICAgICAgICAgIG9uUmVqZWN0ZWQgPSB1bmRlZjsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihvblByb2dyZXNzICYmICFpc0Z1bmN0aW9uKG9uUHJvZ3Jlc3MpKSB7CiAgICAgICAgICAgIGN0eCA9IG9uUHJvZ3Jlc3M7CiAgICAgICAgICAgIG9uUHJvZ3Jlc3MgPSB1bmRlZjsKICAgICAgICB9CgogICAgICAgIHZhciBjYjsKCiAgICAgICAgaWYoIXRoaXMuaXNSZWplY3RlZCgpKSB7CiAgICAgICAgICAgIGNiID0geyBkZWZlciA6IGRlZmVyLCBmbiA6IGlzRnVuY3Rpb24ob25GdWxmaWxsZWQpPyBvbkZ1bGZpbGxlZCA6IHVuZGVmLCBjdHggOiBjdHggfTsKICAgICAgICAgICAgdGhpcy5pc0Z1bGZpbGxlZCgpPwogICAgICAgICAgICAgICAgdGhpcy5fY2FsbENhbGxiYWNrcyhbY2JdLCB0aGlzLl92YWx1ZSkgOgogICAgICAgICAgICAgICAgdGhpcy5fZnVsZmlsbGVkQ2FsbGJhY2tzLnB1c2goY2IpOwogICAgICAgIH0KCiAgICAgICAgaWYoIXRoaXMuaXNGdWxmaWxsZWQoKSkgewogICAgICAgICAgICBjYiA9IHsgZGVmZXIgOiBkZWZlciwgZm4gOiBvblJlamVjdGVkLCBjdHggOiBjdHggfTsKICAgICAgICAgICAgdGhpcy5pc1JlamVjdGVkKCk/CiAgICAgICAgICAgICAgICB0aGlzLl9jYWxsQ2FsbGJhY2tzKFtjYl0sIHRoaXMuX3ZhbHVlKSA6CiAgICAgICAgICAgICAgICB0aGlzLl9yZWplY3RlZENhbGxiYWNrcy5wdXNoKGNiKTsKICAgICAgICB9CgogICAgICAgIGlmKHRoaXMuX3N0YXR1cyA8PSBQUk9NSVNFX1NUQVRVUy5SRVNPTFZFRCkgewogICAgICAgICAgICB0aGlzLl9wcm9ncmVzc0NhbGxiYWNrcy5wdXNoKHsgZGVmZXIgOiBkZWZlciwgZm4gOiBvblByb2dyZXNzLCBjdHggOiBjdHggfSk7CiAgICAgICAgfQogICAgfSwKCiAgICBfY2FsbENhbGxiYWNrcyA6IGZ1bmN0aW9uKGNhbGxiYWNrcywgYXJnKSB7CiAgICAgICAgdmFyIGxlbiA9IGNhbGxiYWNrcy5sZW5ndGg7CiAgICAgICAgaWYoIWxlbikgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB2YXIgaXNSZXNvbHZlZCA9IHRoaXMuaXNSZXNvbHZlZCgpLAogICAgICAgICAgICBpc0Z1bGZpbGxlZCA9IHRoaXMuaXNGdWxmaWxsZWQoKTsKCiAgICAgICAgbmV4dFRpY2soZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBpID0gMCwgY2IsIGRlZmVyLCBmbjsKICAgICAgICAgICAgd2hpbGUoaSA8IGxlbikgewogICAgICAgICAgICAgICAgY2IgPSBjYWxsYmFja3NbaSsrXTsKICAgICAgICAgICAgICAgIGRlZmVyID0gY2IuZGVmZXI7CiAgICAgICAgICAgICAgICBmbiA9IGNiLmZuOwoKICAgICAgICAgICAgICAgIGlmKGZuKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGN0eCA9IGNiLmN0eCwKICAgICAgICAgICAgICAgICAgICAgICAgcmVzOwogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGN0eD8gZm4uY2FsbChjdHgsIGFyZykgOiBmbihhcmcpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmVyLnJlamVjdChlKTsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpc1Jlc29sdmVkPwogICAgICAgICAgICAgICAgICAgICAgICBkZWZlci5yZXNvbHZlKHJlcykgOgogICAgICAgICAgICAgICAgICAgICAgICBkZWZlci5ub3RpZnkocmVzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlzUmVzb2x2ZWQ/CiAgICAgICAgICAgICAgICAgICAgICAgIGlzRnVsZmlsbGVkPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmZXIucmVzb2x2ZShhcmcpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmVyLnJlamVjdChhcmcpIDoKICAgICAgICAgICAgICAgICAgICAgICAgZGVmZXIubm90aWZ5KGFyZyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfTsKCi8qKiBAbGVuZHMgUHJvbWlzZSAqLwp2YXIgc3RhdGljTWV0aG9kcyA9IHsKICAgIC8qKgogICAgICogQ29lcmNlcyB0aGUgZ2l2ZW4gYHZhbHVlYCB0byBhIHByb21pc2UsIG9yIHJldHVybnMgdGhlIGB2YWx1ZWAgaWYgaXQncyBhbHJlYWR5IGEgcHJvbWlzZS4KICAgICAqCiAgICAgKiBAcGFyYW0geyp9IHZhbHVlCiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKi8KICAgIGNhc3QgOiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHJldHVybiB2b3cuY2FzdCh2YWx1ZSk7CiAgICB9LAoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHByb21pc2UsIHRoYXQgd2lsbCBiZSBmdWxmaWxsZWQgb25seSBhZnRlciBhbGwgdGhlIGl0ZW1zIGluIGBpdGVyYWJsZWAgYXJlIGZ1bGZpbGxlZC4KICAgICAqIElmIGFueSBvZiB0aGUgYGl0ZXJhYmxlYCBpdGVtcyBnZXRzIHJlamVjdGVkLCB0aGVuIHRoZSByZXR1cm5lZCBwcm9taXNlIHdpbGwgYmUgcmVqZWN0ZWQuCiAgICAgKgogICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGl0ZXJhYmxlCiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKi8KICAgIGFsbCA6IGZ1bmN0aW9uKGl0ZXJhYmxlKSB7CiAgICAgICAgcmV0dXJuIHZvdy5hbGwoaXRlcmFibGUpOwogICAgfSwKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBwcm9taXNlLCB0aGF0IHdpbGwgYmUgZnVsZmlsbGVkIG9ubHkgd2hlbiBhbnkgb2YgdGhlIGl0ZW1zIGluIGBpdGVyYWJsZWAgYXJlIGZ1bGZpbGxlZC4KICAgICAqIElmIGFueSBvZiB0aGUgYGl0ZXJhYmxlYCBpdGVtcyBnZXRzIHJlamVjdGVkLCB0aGVuIHRoZSByZXR1cm5lZCBwcm9taXNlIHdpbGwgYmUgcmVqZWN0ZWQuCiAgICAgKgogICAgICogQHBhcmFtIHtBcnJheX0gaXRlcmFibGUKICAgICAqIEByZXR1cm5zIHt2b3c6UHJvbWlzZX0KICAgICAqLwogICAgcmFjZSA6IGZ1bmN0aW9uKGl0ZXJhYmxlKSB7CiAgICAgICAgcmV0dXJuIHZvdy5hbnlSZXNvbHZlZChpdGVyYWJsZSk7CiAgICB9LAoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHByb21pc2UgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHJlc29sdmVkIHdpdGggdGhlIGdpdmVuIGB2YWx1ZWAuCiAgICAgKiBJZiBgdmFsdWVgIGlzIGEgcHJvbWlzZSwgdGhlIHJldHVybmVkIHByb21pc2Ugd2lsbCBoYXZlIGB2YWx1ZWAncyBzdGF0ZS4KICAgICAqCiAgICAgKiBAcGFyYW0geyp9IHZhbHVlCiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKi8KICAgIHJlc29sdmUgOiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHJldHVybiB2b3cucmVzb2x2ZSh2YWx1ZSk7CiAgICB9LAoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHByb21pc2UgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHJlamVjdGVkIHdpdGggdGhlIGdpdmVuIGByZWFzb25gLgogICAgICoKICAgICAqIEBwYXJhbSB7Kn0gcmVhc29uCiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKi8KICAgIHJlamVjdCA6IGZ1bmN0aW9uKHJlYXNvbikgewogICAgICAgIHJldHVybiB2b3cucmVqZWN0KHJlYXNvbik7CiAgICB9Cn07Cgpmb3IodmFyIHByb3AgaW4gc3RhdGljTWV0aG9kcykgewogICAgc3RhdGljTWV0aG9kcy5oYXNPd25Qcm9wZXJ0eShwcm9wKSAmJgogICAgICAgIChQcm9taXNlW3Byb3BdID0gc3RhdGljTWV0aG9kc1twcm9wXSk7Cn0KCnZhciB2b3cgPSAvKiogQGV4cG9ydHMgdm93ICovIHsKICAgIERlZmVycmVkIDogRGVmZXJyZWQsCgogICAgUHJvbWlzZSA6IFByb21pc2UsCgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IGRlZmVycmVkLiBUaGlzIG1ldGhvZCBpcyBhIGZhY3RvcnkgbWV0aG9kIGZvciBgdm93OkRlZmVycmVkYCBjbGFzcy4KICAgICAqIEl0J3MgZXF1aXZhbGVudCB0byBgbmV3IHZvdy5EZWZlcnJlZCgpYC4KICAgICAqCiAgICAgKiBAcmV0dXJucyB7dm93OkRlZmVycmVkfQogICAgICovCiAgICBkZWZlciA6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBuZXcgRGVmZXJyZWQoKTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBTdGF0aWMgZXF1aXZhbGVudCB0byBgcHJvbWlzZS50aGVuYC4KICAgICAqIElmIGB2YWx1ZWAgaXMgbm90IGEgcHJvbWlzZSwgdGhlbiBgdmFsdWVgIGlzIHRyZWF0ZWQgYXMgYSBmdWxmaWxsZWQgcHJvbWlzZS4KICAgICAqCiAgICAgKiBAcGFyYW0geyp9IHZhbHVlCiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb25GdWxmaWxsZWRdIENhbGxiYWNrIHRoYXQgd2lsbCBiZSBpbnZva2VkIHdpdGggYSBwcm92aWRlZCB2YWx1ZSBhZnRlciB0aGUgcHJvbWlzZSBoYXMgYmVlbiBmdWxmaWxsZWQKICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtvblJlamVjdGVkXSBDYWxsYmFjayB0aGF0IHdpbGwgYmUgaW52b2tlZCB3aXRoIGEgcHJvdmlkZWQgcmVhc29uIGFmdGVyIHRoZSBwcm9taXNlIGhhcyBiZWVuIHJlamVjdGVkCiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb25Qcm9ncmVzc10gQ2FsbGJhY2sgdGhhdCB3aWxsIGJlIGludm9rZWQgd2l0aCBhIHByb3ZpZGVkIHZhbHVlIGFmdGVyIHRoZSBwcm9taXNlIGhhcyBiZWVuIG5vdGlmaWVkCiAgICAgKiBAcGFyYW0ge09iamVjdH0gW2N0eF0gQ29udGV4dCBvZiB0aGUgY2FsbGJhY2tzIGV4ZWN1dGlvbgogICAgICogQHJldHVybnMge3ZvdzpQcm9taXNlfQogICAgICovCiAgICB3aGVuIDogZnVuY3Rpb24odmFsdWUsIG9uRnVsZmlsbGVkLCBvblJlamVjdGVkLCBvblByb2dyZXNzLCBjdHgpIHsKICAgICAgICByZXR1cm4gdm93LmNhc3QodmFsdWUpLnRoZW4ob25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQsIG9uUHJvZ3Jlc3MsIGN0eCk7CiAgICB9LAoKICAgIC8qKgogICAgICogU3RhdGljIGVxdWl2YWxlbnQgdG8gYHByb21pc2UuZmFpbGAuCiAgICAgKiBJZiBgdmFsdWVgIGlzIG5vdCBhIHByb21pc2UsIHRoZW4gYHZhbHVlYCBpcyB0cmVhdGVkIGFzIGEgZnVsZmlsbGVkIHByb21pc2UuCiAgICAgKgogICAgICogQHBhcmFtIHsqfSB2YWx1ZQogICAgICogQHBhcmFtIHtGdW5jdGlvbn0gb25SZWplY3RlZCBDYWxsYmFjayB0aGF0IHdpbGwgYmUgaW52b2tlZCB3aXRoIGEgcHJvdmlkZWQgcmVhc29uIGFmdGVyIHRoZSBwcm9taXNlIGhhcyBiZWVuIHJlamVjdGVkCiAgICAgKiBAcGFyYW0ge09iamVjdH0gW2N0eF0gQ29udGV4dCBvZiB0aGUgY2FsbGJhY2sgZXhlY3V0aW9uCiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKi8KICAgIGZhaWwgOiBmdW5jdGlvbih2YWx1ZSwgb25SZWplY3RlZCwgY3R4KSB7CiAgICAgICAgcmV0dXJuIHZvdy53aGVuKHZhbHVlLCB1bmRlZiwgb25SZWplY3RlZCwgY3R4KTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBTdGF0aWMgZXF1aXZhbGVudCB0byBgcHJvbWlzZS5hbHdheXNgLgogICAgICogSWYgYHZhbHVlYCBpcyBub3QgYSBwcm9taXNlLCB0aGVuIGB2YWx1ZWAgaXMgdHJlYXRlZCBhcyBhIGZ1bGZpbGxlZCBwcm9taXNlLgogICAgICoKICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUKICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IG9uUmVzb2x2ZWQgQ2FsbGJhY2sgdGhhdCB3aWxsIGJlIGludm9rZWQgd2l0aCB0aGUgcHJvbWlzZSBhcyBhbiBhcmd1bWVudCwgYWZ0ZXIgdGhlIHByb21pc2UgaGFzIGJlZW4gcmVzb2x2ZWQuCiAgICAgKiBAcGFyYW0ge09iamVjdH0gW2N0eF0gQ29udGV4dCBvZiB0aGUgY2FsbGJhY2sgZXhlY3V0aW9uCiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKi8KICAgIGFsd2F5cyA6IGZ1bmN0aW9uKHZhbHVlLCBvblJlc29sdmVkLCBjdHgpIHsKICAgICAgICByZXR1cm4gdm93LndoZW4odmFsdWUpLmFsd2F5cyhvblJlc29sdmVkLCBjdHgpOwogICAgfSwKCiAgICAvKioKICAgICAqIFN0YXRpYyBlcXVpdmFsZW50IHRvIGBwcm9taXNlLnByb2dyZXNzYC4KICAgICAqIElmIGB2YWx1ZWAgaXMgbm90IGEgcHJvbWlzZSwgdGhlbiBgdmFsdWVgIGlzIHRyZWF0ZWQgYXMgYSBmdWxmaWxsZWQgcHJvbWlzZS4KICAgICAqCiAgICAgKiBAcGFyYW0geyp9IHZhbHVlCiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvblByb2dyZXNzIENhbGxiYWNrIHRoYXQgd2lsbCBiZSBpbnZva2VkIHdpdGggYSBwcm92aWRlZCB2YWx1ZSBhZnRlciB0aGUgcHJvbWlzZSBoYXMgYmVlbiBub3RpZmllZAogICAgICogQHBhcmFtIHtPYmplY3R9IFtjdHhdIENvbnRleHQgb2YgdGhlIGNhbGxiYWNrIGV4ZWN1dGlvbgogICAgICogQHJldHVybnMge3ZvdzpQcm9taXNlfQogICAgICovCiAgICBwcm9ncmVzcyA6IGZ1bmN0aW9uKHZhbHVlLCBvblByb2dyZXNzLCBjdHgpIHsKICAgICAgICByZXR1cm4gdm93LndoZW4odmFsdWUpLnByb2dyZXNzKG9uUHJvZ3Jlc3MsIGN0eCk7CiAgICB9LAoKICAgIC8qKgogICAgICogU3RhdGljIGVxdWl2YWxlbnQgdG8gYHByb21pc2Uuc3ByZWFkYC4KICAgICAqIElmIGB2YWx1ZWAgaXMgbm90IGEgcHJvbWlzZSwgdGhlbiBgdmFsdWVgIGlzIHRyZWF0ZWQgYXMgYSBmdWxmaWxsZWQgcHJvbWlzZS4KICAgICAqCiAgICAgKiBAcGFyYW0geyp9IHZhbHVlCiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb25GdWxmaWxsZWRdIENhbGxiYWNrIHRoYXQgd2lsbCBiZSBpbnZva2VkIHdpdGggYSBwcm92aWRlZCB2YWx1ZSBhZnRlciB0aGUgcHJvbWlzZSBoYXMgYmVlbiBmdWxmaWxsZWQKICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtvblJlamVjdGVkXSBDYWxsYmFjayB0aGF0IHdpbGwgYmUgaW52b2tlZCB3aXRoIGEgcHJvdmlkZWQgcmVhc29uIGFmdGVyIHRoZSBwcm9taXNlIGhhcyBiZWVuIHJlamVjdGVkCiAgICAgKiBAcGFyYW0ge09iamVjdH0gW2N0eF0gQ29udGV4dCBvZiB0aGUgY2FsbGJhY2tzIGV4ZWN1dGlvbgogICAgICogQHJldHVybnMge3ZvdzpQcm9taXNlfQogICAgICovCiAgICBzcHJlYWQgOiBmdW5jdGlvbih2YWx1ZSwgb25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQsIGN0eCkgewogICAgICAgIHJldHVybiB2b3cud2hlbih2YWx1ZSkuc3ByZWFkKG9uRnVsZmlsbGVkLCBvblJlamVjdGVkLCBjdHgpOwogICAgfSwKCiAgICAvKioKICAgICAqIFN0YXRpYyBlcXVpdmFsZW50IHRvIGBwcm9taXNlLmRvbmVgLgogICAgICogSWYgYHZhbHVlYCBpcyBub3QgYSBwcm9taXNlLCB0aGVuIGB2YWx1ZWAgaXMgdHJlYXRlZCBhcyBhIGZ1bGZpbGxlZCBwcm9taXNlLgogICAgICoKICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUKICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtvbkZ1bGZpbGxlZF0gQ2FsbGJhY2sgdGhhdCB3aWxsIGJlIGludm9rZWQgd2l0aCBhIHByb3ZpZGVkIHZhbHVlIGFmdGVyIHRoZSBwcm9taXNlIGhhcyBiZWVuIGZ1bGZpbGxlZAogICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29uUmVqZWN0ZWRdIENhbGxiYWNrIHRoYXQgd2lsbCBiZSBpbnZva2VkIHdpdGggYSBwcm92aWRlZCByZWFzb24gYWZ0ZXIgdGhlIHByb21pc2UgaGFzIGJlZW4gcmVqZWN0ZWQKICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtvblByb2dyZXNzXSBDYWxsYmFjayB0aGF0IHdpbGwgYmUgaW52b2tlZCB3aXRoIGEgcHJvdmlkZWQgdmFsdWUgYWZ0ZXIgdGhlIHByb21pc2UgaGFzIGJlZW4gbm90aWZpZWQKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbY3R4XSBDb250ZXh0IG9mIHRoZSBjYWxsYmFja3MgZXhlY3V0aW9uCiAgICAgKi8KICAgIGRvbmUgOiBmdW5jdGlvbih2YWx1ZSwgb25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQsIG9uUHJvZ3Jlc3MsIGN0eCkgewogICAgICAgIHZvdy53aGVuKHZhbHVlKS5kb25lKG9uRnVsZmlsbGVkLCBvblJlamVjdGVkLCBvblByb2dyZXNzLCBjdHgpOwogICAgfSwKCiAgICAvKioKICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgdmFsdWVgIGlzIGEgcHJvbWlzZS1saWtlIG9iamVjdAogICAgICoKICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUKICAgICAqIEByZXR1cm5zIHtCb29sZWFufQogICAgICoKICAgICAqIEBleGFtcGxlCiAgICAgKiBgYGBqcwogICAgICogdm93LmlzUHJvbWlzZSgnc29tZXRoaW5nJyk7IC8vIHJldHVybnMgZmFsc2UKICAgICAqIHZvdy5pc1Byb21pc2Uodm93LmRlZmVyKCkucHJvbWlzZSgpKTsgLy8gcmV0dXJucyB0cnVlCiAgICAgKiB2b3cuaXNQcm9taXNlKHsgdGhlbiA6IGZ1bmN0aW9uKCkgeyB9KTsgLy8gcmV0dXJucyB0cnVlCiAgICAgKiBgYGAKICAgICAqLwogICAgaXNQcm9taXNlIDogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICByZXR1cm4gaXNPYmplY3QodmFsdWUpICYmIGlzRnVuY3Rpb24odmFsdWUudGhlbik7CiAgICB9LAoKICAgIC8qKgogICAgICogQ29lcmNlcyB0aGUgZ2l2ZW4gYHZhbHVlYCB0byBhIHByb21pc2UsIG9yIHJldHVybnMgdGhlIGB2YWx1ZWAgaWYgaXQncyBhbHJlYWR5IGEgcHJvbWlzZS4KICAgICAqCiAgICAgKiBAcGFyYW0geyp9IHZhbHVlCiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKi8KICAgIGNhc3QgOiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHJldHVybiB2YWx1ZSAmJiAhIXZhbHVlLl92b3c/CiAgICAgICAgICAgIHZhbHVlIDoKICAgICAgICAgICAgdm93LnJlc29sdmUodmFsdWUpOwogICAgfSwKCiAgICAvKioKICAgICAqIFN0YXRpYyBlcXVpdmFsZW50IHRvIGBwcm9taXNlLnZhbHVlT2ZgLgogICAgICogSWYgYHZhbHVlYCBpcyBub3QgYSBwcm9taXNlLCB0aGVuIGB2YWx1ZWAgaXMgdHJlYXRlZCBhcyBhIGZ1bGZpbGxlZCBwcm9taXNlLgogICAgICoKICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUKICAgICAqIEByZXR1cm5zIHsqfQogICAgICovCiAgICB2YWx1ZU9mIDogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICByZXR1cm4gdmFsdWUgJiYgaXNGdW5jdGlvbih2YWx1ZS52YWx1ZU9mKT8gdmFsdWUudmFsdWVPZigpIDogdmFsdWU7CiAgICB9LAoKICAgIC8qKgogICAgICogU3RhdGljIGVxdWl2YWxlbnQgdG8gYHByb21pc2UuaXNGdWxmaWxsZWRgLgogICAgICogSWYgYHZhbHVlYCBpcyBub3QgYSBwcm9taXNlLCB0aGVuIGB2YWx1ZWAgaXMgdHJlYXRlZCBhcyBhIGZ1bGZpbGxlZCBwcm9taXNlLgogICAgICoKICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUKICAgICAqIEByZXR1cm5zIHtCb29sZWFufQogICAgICovCiAgICBpc0Z1bGZpbGxlZCA6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlICYmIGlzRnVuY3Rpb24odmFsdWUuaXNGdWxmaWxsZWQpPyB2YWx1ZS5pc0Z1bGZpbGxlZCgpIDogdHJ1ZTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBTdGF0aWMgZXF1aXZhbGVudCB0byBgcHJvbWlzZS5pc1JlamVjdGVkYC4KICAgICAqIElmIGB2YWx1ZWAgaXMgbm90IGEgcHJvbWlzZSwgdGhlbiBgdmFsdWVgIGlzIHRyZWF0ZWQgYXMgYSBmdWxmaWxsZWQgcHJvbWlzZS4KICAgICAqCiAgICAgKiBAcGFyYW0geyp9IHZhbHVlCiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0KICAgICAqLwogICAgaXNSZWplY3RlZCA6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlICYmIGlzRnVuY3Rpb24odmFsdWUuaXNSZWplY3RlZCk/IHZhbHVlLmlzUmVqZWN0ZWQoKSA6IGZhbHNlOwogICAgfSwKCiAgICAvKioKICAgICAqIFN0YXRpYyBlcXVpdmFsZW50IHRvIGBwcm9taXNlLmlzUmVzb2x2ZWRgLgogICAgICogSWYgYHZhbHVlYCBpcyBub3QgYSBwcm9taXNlLCB0aGVuIGB2YWx1ZWAgaXMgdHJlYXRlZCBhcyBhIGZ1bGZpbGxlZCBwcm9taXNlLgogICAgICoKICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUKICAgICAqIEByZXR1cm5zIHtCb29sZWFufQogICAgICovCiAgICBpc1Jlc29sdmVkIDogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICByZXR1cm4gdmFsdWUgJiYgaXNGdW5jdGlvbih2YWx1ZS5pc1Jlc29sdmVkKT8gdmFsdWUuaXNSZXNvbHZlZCgpIDogdHJ1ZTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gcmVzb2x2ZWQgd2l0aCB0aGUgZ2l2ZW4gYHZhbHVlYC4KICAgICAqIElmIGB2YWx1ZWAgaXMgYSBwcm9taXNlLCB0aGUgcmV0dXJuZWQgcHJvbWlzZSB3aWxsIGhhdmUgYHZhbHVlYCdzIHN0YXRlLgogICAgICoKICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUKICAgICAqIEByZXR1cm5zIHt2b3c6UHJvbWlzZX0KICAgICAqLwogICAgcmVzb2x2ZSA6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIHJlcyA9IHZvdy5kZWZlcigpOwogICAgICAgIHJlcy5yZXNvbHZlKHZhbHVlKTsKICAgICAgICByZXR1cm4gcmVzLnByb21pc2UoKTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gZnVsZmlsbGVkIHdpdGggdGhlIGdpdmVuIGB2YWx1ZWAuCiAgICAgKiBJZiBgdmFsdWVgIGlzIGEgcHJvbWlzZSwgdGhlIHJldHVybmVkIHByb21pc2Ugd2lsbCBiZSBmdWxmaWxsZWQgd2l0aCB0aGUgZnVsZmlsbC9yZWplY3Rpb24gdmFsdWUgb2YgYHZhbHVlYC4KICAgICAqCiAgICAgKiBAcGFyYW0geyp9IHZhbHVlCiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKi8KICAgIGZ1bGZpbGwgOiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHZhciBkZWZlciA9IHZvdy5kZWZlcigpLAogICAgICAgICAgICBwcm9taXNlID0gZGVmZXIucHJvbWlzZSgpOwoKICAgICAgICBkZWZlci5yZXNvbHZlKHZhbHVlKTsKCiAgICAgICAgcmV0dXJuIHByb21pc2UuaXNGdWxmaWxsZWQoKT8KICAgICAgICAgICAgcHJvbWlzZSA6CiAgICAgICAgICAgIHByb21pc2UudGhlbihudWxsLCBmdW5jdGlvbihyZWFzb24pIHsKICAgICAgICAgICAgICAgIHJldHVybiByZWFzb247CiAgICAgICAgICAgIH0pOwogICAgfSwKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBwcm9taXNlIHRoYXQgaGFzIGFscmVhZHkgYmVlbiByZWplY3RlZCB3aXRoIHRoZSBnaXZlbiBgcmVhc29uYC4KICAgICAqIElmIGByZWFzb25gIGlzIGEgcHJvbWlzZSwgdGhlIHJldHVybmVkIHByb21pc2Ugd2lsbCBiZSByZWplY3RlZCB3aXRoIHRoZSBmdWxmaWxsL3JlamVjdGlvbiB2YWx1ZSBvZiBgcmVhc29uYC4KICAgICAqCiAgICAgKiBAcGFyYW0geyp9IHJlYXNvbgogICAgICogQHJldHVybnMge3ZvdzpQcm9taXNlfQogICAgICovCiAgICByZWplY3QgOiBmdW5jdGlvbihyZWFzb24pIHsKICAgICAgICB2YXIgZGVmZXIgPSB2b3cuZGVmZXIoKTsKICAgICAgICBkZWZlci5yZWplY3QocmVhc29uKTsKICAgICAgICByZXR1cm4gZGVmZXIucHJvbWlzZSgpOwogICAgfSwKCiAgICAvKioKICAgICAqIEludm9rZXMgdGhlIGdpdmVuIGZ1bmN0aW9uIGBmbmAgd2l0aCBhcmd1bWVudHMgYGFyZ3NgCiAgICAgKgogICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZm4KICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdCiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKgogICAgICogQGV4YW1wbGUKICAgICAqIGBgYGpzCiAgICAgKiB2YXIgcHJvbWlzZTEgPSB2b3cuaW52b2tlKGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgKiAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAqICAgICB9LCAnb2snKSwKICAgICAqICAgICBwcm9taXNlMiA9IHZvdy5pbnZva2UoZnVuY3Rpb24oKSB7CiAgICAgKiAgICAgICAgIHRocm93IEVycm9yKCk7CiAgICAgKiAgICAgfSk7CiAgICAgKgogICAgICogcHJvbWlzZTEuaXNGdWxmaWxsZWQoKTsgLy8gdHJ1ZQogICAgICogcHJvbWlzZTEudmFsdWVPZigpOyAvLyAnb2snCiAgICAgKiBwcm9taXNlMi5pc1JlamVjdGVkKCk7IC8vIHRydWUKICAgICAqIHByb21pc2UyLnZhbHVlT2YoKTsgLy8gaW5zdGFuY2Ugb2YgRXJyb3IKICAgICAqIGBgYAogICAgICovCiAgICBpbnZva2UgOiBmdW5jdGlvbihmbiwgYXJncykgewogICAgICAgIHZhciBsZW4gPSBNYXRoLm1heChhcmd1bWVudHMubGVuZ3RoIC0gMSwgMCksCiAgICAgICAgICAgIGNhbGxBcmdzOwogICAgICAgIGlmKGxlbikgeyAvLyBvcHRpbWl6YXRpb24gZm9yIFY4CiAgICAgICAgICAgIGNhbGxBcmdzID0gQXJyYXkobGVuKTsKICAgICAgICAgICAgdmFyIGkgPSAwOwogICAgICAgICAgICB3aGlsZShpIDwgbGVuKSB7CiAgICAgICAgICAgICAgICBjYWxsQXJnc1tpKytdID0gYXJndW1lbnRzW2ldOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gdm93LnJlc29sdmUoY2FsbEFyZ3M/CiAgICAgICAgICAgICAgICBmbi5hcHBseShnbG9iYWwsIGNhbGxBcmdzKSA6CiAgICAgICAgICAgICAgICBmbi5jYWxsKGdsb2JhbCkpOwogICAgICAgIH0KICAgICAgICBjYXRjaChlKSB7CiAgICAgICAgICAgIHJldHVybiB2b3cucmVqZWN0KGUpOwogICAgICAgIH0KICAgIH0sCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgcHJvbWlzZSwgdGhhdCB3aWxsIGJlIGZ1bGZpbGxlZCBvbmx5IGFmdGVyIGFsbCB0aGUgaXRlbXMgaW4gYGl0ZXJhYmxlYCBhcmUgZnVsZmlsbGVkLgogICAgICogSWYgYW55IG9mIHRoZSBgaXRlcmFibGVgIGl0ZW1zIGdldHMgcmVqZWN0ZWQsIHRoZSBwcm9taXNlIHdpbGwgYmUgcmVqZWN0ZWQuCiAgICAgKgogICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGl0ZXJhYmxlCiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKgogICAgICogQGV4YW1wbGUKICAgICAqIHdpdGggYXJyYXk6CiAgICAgKiBgYGBqcwogICAgICogdmFyIGRlZmVyMSA9IHZvdy5kZWZlcigpLAogICAgICogICAgIGRlZmVyMiA9IHZvdy5kZWZlcigpOwogICAgICoKICAgICAqIHZvdy5hbGwoW2RlZmVyMS5wcm9taXNlKCksIGRlZmVyMi5wcm9taXNlKCksIDNdKQogICAgICogICAgIC50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgKiAgICAgICAgICAvLyB2YWx1ZSBpcyAiWzEsIDIsIDNdIiBoZXJlCiAgICAgKiAgICAgfSk7CiAgICAgKgogICAgICogZGVmZXIxLnJlc29sdmUoMSk7CiAgICAgKiBkZWZlcjIucmVzb2x2ZSgyKTsKICAgICAqIGBgYAogICAgICoKICAgICAqIEBleGFtcGxlCiAgICAgKiB3aXRoIG9iamVjdDoKICAgICAqIGBgYGpzCiAgICAgKiB2YXIgZGVmZXIxID0gdm93LmRlZmVyKCksCiAgICAgKiAgICAgZGVmZXIyID0gdm93LmRlZmVyKCk7CiAgICAgKgogICAgICogdm93LmFsbCh7IHAxIDogZGVmZXIxLnByb21pc2UoKSwgcDIgOiBkZWZlcjIucHJvbWlzZSgpLCBwMyA6IDMgfSkKICAgICAqICAgICAudGhlbihmdW5jdGlvbih2YWx1ZSkgewogICAgICogICAgICAgICAgLy8gdmFsdWUgaXMgInsgcDEgOiAxLCBwMiA6IDIsIHAzIDogMyB9IiBoZXJlCiAgICAgKiAgICAgfSk7CiAgICAgKgogICAgICogZGVmZXIxLnJlc29sdmUoMSk7CiAgICAgKiBkZWZlcjIucmVzb2x2ZSgyKTsKICAgICAqIGBgYAogICAgICovCiAgICBhbGwgOiBmdW5jdGlvbihpdGVyYWJsZSkgewogICAgICAgIHZhciBkZWZlciA9IG5ldyBEZWZlcnJlZCgpLAogICAgICAgICAgICBpc1Byb21pc2VzQXJyYXkgPSBpc0FycmF5KGl0ZXJhYmxlKSwKICAgICAgICAgICAga2V5cyA9IGlzUHJvbWlzZXNBcnJheT8KICAgICAgICAgICAgICAgIGdldEFycmF5S2V5cyhpdGVyYWJsZSkgOgogICAgICAgICAgICAgICAgZ2V0T2JqZWN0S2V5cyhpdGVyYWJsZSksCiAgICAgICAgICAgIGxlbiA9IGtleXMubGVuZ3RoLAogICAgICAgICAgICByZXMgPSBpc1Byb21pc2VzQXJyYXk/IFtdIDoge307CgogICAgICAgIGlmKCFsZW4pIHsKICAgICAgICAgICAgZGVmZXIucmVzb2x2ZShyZXMpOwogICAgICAgICAgICByZXR1cm4gZGVmZXIucHJvbWlzZSgpOwogICAgICAgIH0KCiAgICAgICAgdmFyIGkgPSBsZW47CiAgICAgICAgdm93Ll9mb3JFYWNoKAogICAgICAgICAgICBpdGVyYWJsZSwKICAgICAgICAgICAgZnVuY3Rpb24odmFsdWUsIGlkeCkgewogICAgICAgICAgICAgICAgcmVzW2tleXNbaWR4XV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgIGlmKCEtLWkpIHsKICAgICAgICAgICAgICAgICAgICBkZWZlci5yZXNvbHZlKHJlcyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRlZmVyLnJlamVjdCwKICAgICAgICAgICAgZGVmZXIubm90aWZ5LAogICAgICAgICAgICBkZWZlciwKICAgICAgICAgICAga2V5cyk7CgogICAgICAgIHJldHVybiBkZWZlci5wcm9taXNlKCk7CiAgICB9LAoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHByb21pc2UsIHRoYXQgd2lsbCBiZSBmdWxmaWxsZWQgb25seSBhZnRlciBhbGwgdGhlIGl0ZW1zIGluIGBpdGVyYWJsZWAgYXJlIHJlc29sdmVkLgogICAgICoKICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBpdGVyYWJsZQogICAgICogQHJldHVybnMge3ZvdzpQcm9taXNlfQogICAgICoKICAgICAqIEBleGFtcGxlCiAgICAgKiBgYGBqcwogICAgICogdmFyIGRlZmVyMSA9IHZvdy5kZWZlcigpLAogICAgICogICAgIGRlZmVyMiA9IHZvdy5kZWZlcigpOwogICAgICoKICAgICAqIHZvdy5hbGxSZXNvbHZlZChbZGVmZXIxLnByb21pc2UoKSwgZGVmZXIyLnByb21pc2UoKV0pLnNwcmVhZChmdW5jdGlvbihwcm9taXNlMSwgcHJvbWlzZTIpIHsKICAgICAqICAgICBwcm9taXNlMS5pc1JlamVjdGVkKCk7IC8vIHJldHVybnMgdHJ1ZQogICAgICogICAgIHByb21pc2UxLnZhbHVlT2YoKTsgLy8gcmV0dXJucyAiJ2Vycm9yJyIKICAgICAqICAgICBwcm9taXNlMi5pc0Z1bGZpbGxlZCgpOyAvLyByZXR1cm5zIHRydWUKICAgICAqICAgICBwcm9taXNlMi52YWx1ZU9mKCk7IC8vIHJldHVybnMgIidvayciCiAgICAgKiB9KTsKICAgICAqCiAgICAgKiBkZWZlcjEucmVqZWN0KCdlcnJvcicpOwogICAgICogZGVmZXIyLnJlc29sdmUoJ29rJyk7CiAgICAgKiBgYGAKICAgICAqLwogICAgYWxsUmVzb2x2ZWQgOiBmdW5jdGlvbihpdGVyYWJsZSkgewogICAgICAgIHZhciBkZWZlciA9IG5ldyBEZWZlcnJlZCgpLAogICAgICAgICAgICBpc1Byb21pc2VzQXJyYXkgPSBpc0FycmF5KGl0ZXJhYmxlKSwKICAgICAgICAgICAga2V5cyA9IGlzUHJvbWlzZXNBcnJheT8KICAgICAgICAgICAgICAgIGdldEFycmF5S2V5cyhpdGVyYWJsZSkgOgogICAgICAgICAgICAgICAgZ2V0T2JqZWN0S2V5cyhpdGVyYWJsZSksCiAgICAgICAgICAgIGkgPSBrZXlzLmxlbmd0aCwKICAgICAgICAgICAgcmVzID0gaXNQcm9taXNlc0FycmF5PyBbXSA6IHt9OwoKICAgICAgICBpZighaSkgewogICAgICAgICAgICBkZWZlci5yZXNvbHZlKHJlcyk7CiAgICAgICAgICAgIHJldHVybiBkZWZlci5wcm9taXNlKCk7CiAgICAgICAgfQoKICAgICAgICB2YXIgb25SZXNvbHZlZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgLS1pIHx8IGRlZmVyLnJlc29sdmUoaXRlcmFibGUpOwogICAgICAgICAgICB9OwoKICAgICAgICB2b3cuX2ZvckVhY2goCiAgICAgICAgICAgIGl0ZXJhYmxlLAogICAgICAgICAgICBvblJlc29sdmVkLAogICAgICAgICAgICBvblJlc29sdmVkLAogICAgICAgICAgICBkZWZlci5ub3RpZnksCiAgICAgICAgICAgIGRlZmVyLAogICAgICAgICAgICBrZXlzKTsKCiAgICAgICAgcmV0dXJuIGRlZmVyLnByb21pc2UoKTsKICAgIH0sCgogICAgYWxsUGF0aWVudGx5IDogZnVuY3Rpb24oaXRlcmFibGUpIHsKICAgICAgICByZXR1cm4gdm93LmFsbFJlc29sdmVkKGl0ZXJhYmxlKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgaXNQcm9taXNlc0FycmF5ID0gaXNBcnJheShpdGVyYWJsZSksCiAgICAgICAgICAgICAgICBrZXlzID0gaXNQcm9taXNlc0FycmF5PwogICAgICAgICAgICAgICAgICAgIGdldEFycmF5S2V5cyhpdGVyYWJsZSkgOgogICAgICAgICAgICAgICAgICAgIGdldE9iamVjdEtleXMoaXRlcmFibGUpLAogICAgICAgICAgICAgICAgcmVqZWN0ZWRQcm9taXNlcywgZnVsZmlsbGVkUHJvbWlzZXMsCiAgICAgICAgICAgICAgICBsZW4gPSBrZXlzLmxlbmd0aCwgaSA9IDAsIGtleSwgcHJvbWlzZTsKCiAgICAgICAgICAgIGlmKCFsZW4pIHsKICAgICAgICAgICAgICAgIHJldHVybiBpc1Byb21pc2VzQXJyYXk/IFtdIDoge307CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHdoaWxlKGkgPCBsZW4pIHsKICAgICAgICAgICAgICAgIGtleSA9IGtleXNbaSsrXTsKICAgICAgICAgICAgICAgIHByb21pc2UgPSBpdGVyYWJsZVtrZXldOwogICAgICAgICAgICAgICAgaWYodm93LmlzUmVqZWN0ZWQocHJvbWlzZSkpIHsKICAgICAgICAgICAgICAgICAgICByZWplY3RlZFByb21pc2VzIHx8IChyZWplY3RlZFByb21pc2VzID0gaXNQcm9taXNlc0FycmF5PyBbXSA6IHt9KTsKICAgICAgICAgICAgICAgICAgICBpc1Byb21pc2VzQXJyYXk/CiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdGVkUHJvbWlzZXMucHVzaChwcm9taXNlLnZhbHVlT2YoKSkgOgogICAgICAgICAgICAgICAgICAgICAgICByZWplY3RlZFByb21pc2VzW2tleV0gPSBwcm9taXNlLnZhbHVlT2YoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYoIXJlamVjdGVkUHJvbWlzZXMpIHsKICAgICAgICAgICAgICAgICAgICAoZnVsZmlsbGVkUHJvbWlzZXMgfHwgKGZ1bGZpbGxlZFByb21pc2VzID0gaXNQcm9taXNlc0FycmF5PyBbXSA6IHt9KSlba2V5XSA9IHZvdy52YWx1ZU9mKHByb21pc2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZihyZWplY3RlZFByb21pc2VzKSB7CiAgICAgICAgICAgICAgICB0aHJvdyByZWplY3RlZFByb21pc2VzOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gZnVsZmlsbGVkUHJvbWlzZXM7CiAgICAgICAgfSk7CiAgICB9LAoKICAgIC8qKgogICAgICogUmV0dXJucyBhIHByb21pc2UsIHRoYXQgd2lsbCBiZSBmdWxmaWxsZWQgaWYgYW55IG9mIHRoZSBpdGVtcyBpbiBgaXRlcmFibGVgIGlzIGZ1bGZpbGxlZC4KICAgICAqIElmIGFsbCBvZiB0aGUgYGl0ZXJhYmxlYCBpdGVtcyBnZXQgcmVqZWN0ZWQsIHRoZSBwcm9taXNlIHdpbGwgYmUgcmVqZWN0ZWQgKHdpdGggdGhlIHJlYXNvbiBvZiB0aGUgZmlyc3QgcmVqZWN0ZWQgaXRlbSkuCiAgICAgKgogICAgICogQHBhcmFtIHtBcnJheX0gaXRlcmFibGUKICAgICAqIEByZXR1cm5zIHt2b3c6UHJvbWlzZX0KICAgICAqLwogICAgYW55IDogZnVuY3Rpb24oaXRlcmFibGUpIHsKICAgICAgICB2YXIgZGVmZXIgPSBuZXcgRGVmZXJyZWQoKSwKICAgICAgICAgICAgbGVuID0gaXRlcmFibGUubGVuZ3RoOwoKICAgICAgICBpZighbGVuKSB7CiAgICAgICAgICAgIGRlZmVyLnJlamVjdChFcnJvcigpKTsKICAgICAgICAgICAgcmV0dXJuIGRlZmVyLnByb21pc2UoKTsKICAgICAgICB9CgogICAgICAgIHZhciBpID0gMCwgcmVhc29uOwogICAgICAgIHZvdy5fZm9yRWFjaCgKICAgICAgICAgICAgaXRlcmFibGUsCiAgICAgICAgICAgIGRlZmVyLnJlc29sdmUsCiAgICAgICAgICAgIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgIGkgfHwgKHJlYXNvbiA9IGUpOwogICAgICAgICAgICAgICAgKytpID09PSBsZW4gJiYgZGVmZXIucmVqZWN0KHJlYXNvbik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRlZmVyLm5vdGlmeSwKICAgICAgICAgICAgZGVmZXIpOwoKICAgICAgICByZXR1cm4gZGVmZXIucHJvbWlzZSgpOwogICAgfSwKCiAgICAvKioKICAgICAqIFJldHVybnMgYSBwcm9taXNlLCB0aGF0IHdpbGwgYmUgZnVsZmlsbGVkIG9ubHkgd2hlbiBhbnkgb2YgdGhlIGl0ZW1zIGluIGBpdGVyYWJsZWAgaXMgZnVsZmlsbGVkLgogICAgICogSWYgYW55IG9mIHRoZSBgaXRlcmFibGVgIGl0ZW1zIGdldHMgcmVqZWN0ZWQsIHRoZSBwcm9taXNlIHdpbGwgYmUgcmVqZWN0ZWQuCiAgICAgKgogICAgICogQHBhcmFtIHtBcnJheX0gaXRlcmFibGUKICAgICAqIEByZXR1cm5zIHt2b3c6UHJvbWlzZX0KICAgICAqLwogICAgYW55UmVzb2x2ZWQgOiBmdW5jdGlvbihpdGVyYWJsZSkgewogICAgICAgIHZhciBkZWZlciA9IG5ldyBEZWZlcnJlZCgpLAogICAgICAgICAgICBsZW4gPSBpdGVyYWJsZS5sZW5ndGg7CgogICAgICAgIGlmKCFsZW4pIHsKICAgICAgICAgICAgZGVmZXIucmVqZWN0KEVycm9yKCkpOwogICAgICAgICAgICByZXR1cm4gZGVmZXIucHJvbWlzZSgpOwogICAgICAgIH0KCiAgICAgICAgdm93Ll9mb3JFYWNoKAogICAgICAgICAgICBpdGVyYWJsZSwKICAgICAgICAgICAgZGVmZXIucmVzb2x2ZSwKICAgICAgICAgICAgZGVmZXIucmVqZWN0LAogICAgICAgICAgICBkZWZlci5ub3RpZnksCiAgICAgICAgICAgIGRlZmVyKTsKCiAgICAgICAgcmV0dXJuIGRlZmVyLnByb21pc2UoKTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBTdGF0aWMgZXF1aXZhbGVudCB0byBgcHJvbWlzZS5kZWxheWAuCiAgICAgKiBJZiBgdmFsdWVgIGlzIG5vdCBhIHByb21pc2UsIHRoZW4gYHZhbHVlYCBpcyB0cmVhdGVkIGFzIGEgZnVsZmlsbGVkIHByb21pc2UuCiAgICAgKgogICAgICogQHBhcmFtIHsqfSB2YWx1ZQogICAgICogQHBhcmFtIHtOdW1iZXJ9IGRlbGF5CiAgICAgKiBAcmV0dXJucyB7dm93OlByb21pc2V9CiAgICAgKi8KICAgIGRlbGF5IDogZnVuY3Rpb24odmFsdWUsIGRlbGF5KSB7CiAgICAgICAgcmV0dXJuIHZvdy5yZXNvbHZlKHZhbHVlKS5kZWxheShkZWxheSk7CiAgICB9LAoKICAgIC8qKgogICAgICogU3RhdGljIGVxdWl2YWxlbnQgdG8gYHByb21pc2UudGltZW91dGAuCiAgICAgKiBJZiBgdmFsdWVgIGlzIG5vdCBhIHByb21pc2UsIHRoZW4gYHZhbHVlYCBpcyB0cmVhdGVkIGFzIGEgZnVsZmlsbGVkIHByb21pc2UuCiAgICAgKgogICAgICogQHBhcmFtIHsqfSB2YWx1ZQogICAgICogQHBhcmFtIHtOdW1iZXJ9IHRpbWVvdXQKICAgICAqIEByZXR1cm5zIHt2b3c6UHJvbWlzZX0KICAgICAqLwogICAgdGltZW91dCA6IGZ1bmN0aW9uKHZhbHVlLCB0aW1lb3V0KSB7CiAgICAgICAgcmV0dXJuIHZvdy5yZXNvbHZlKHZhbHVlKS50aW1lb3V0KHRpbWVvdXQpOwogICAgfSwKCiAgICBfZm9yRWFjaCA6IGZ1bmN0aW9uKHByb21pc2VzLCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCwgb25Qcm9ncmVzcywgY3R4LCBrZXlzKSB7CiAgICAgICAgdmFyIGxlbiA9IGtleXM/IGtleXMubGVuZ3RoIDogcHJvbWlzZXMubGVuZ3RoLAogICAgICAgICAgICBpID0gMDsKCiAgICAgICAgd2hpbGUoaSA8IGxlbikgewogICAgICAgICAgICB2b3cud2hlbigKICAgICAgICAgICAgICAgIHByb21pc2VzW2tleXM/IGtleXNbaV0gOiBpXSwKICAgICAgICAgICAgICAgIHdyYXBPbkZ1bGZpbGxlZChvbkZ1bGZpbGxlZCwgaSksCiAgICAgICAgICAgICAgICBvblJlamVjdGVkLAogICAgICAgICAgICAgICAgb25Qcm9ncmVzcywKICAgICAgICAgICAgICAgIGN0eCk7CiAgICAgICAgICAgICsraTsKICAgICAgICB9CiAgICB9LAoKICAgIFRpbWVkT3V0RXJyb3IgOiBkZWZpbmVDdXN0b21FcnJvclR5cGUoJ1RpbWVkT3V0JykKfTsKCnZhciBkZWZpbmVBc0dsb2JhbCA9IHRydWU7CmlmKHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyA9PT0gJ29iamVjdCcpIHsKICAgIG1vZHVsZS5leHBvcnRzID0gdm93OwogICAgZGVmaW5lQXNHbG9iYWwgPSBmYWxzZTsKfQoKaWYodHlwZW9mIG1vZHVsZXMgPT09ICdvYmplY3QnICYmIGlzRnVuY3Rpb24obW9kdWxlcy5kZWZpbmUpKSB7CiAgICBtb2R1bGVzLmRlZmluZSgndm93JywgZnVuY3Rpb24ocHJvdmlkZSkgewogICAgICAgIHByb3ZpZGUodm93KTsKICAgIH0pOwogICAgZGVmaW5lQXNHbG9iYWwgPSBmYWxzZTsKfQoKaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJykgewogICAgZGVmaW5lKGZ1bmN0aW9uKHJlcXVpcmUsIGV4cG9ydHMsIG1vZHVsZSkgewogICAgICAgIG1vZHVsZS5leHBvcnRzID0gdm93OwogICAgfSk7CiAgICBkZWZpbmVBc0dsb2JhbCA9IGZhbHNlOwp9CgpkZWZpbmVBc0dsb2JhbCAmJiAoZ2xvYmFsLnZvdyA9IHZvdyk7Cgp9KSh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJz8gd2luZG93IDogZ2xvYmFsKTsKCn0pLmNhbGwodGhpcyxyZXF1aXJlKCdfcHJvY2VzcycpLHR5cGVvZiBnbG9iYWwgIT09ICJ1bmRlZmluZWQiID8gZ2xvYmFsIDogdHlwZW9mIHNlbGYgIT09ICJ1bmRlZmluZWQiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09ICJ1bmRlZmluZWQiID8gd2luZG93IDoge30pCn0seyJfcHJvY2VzcyI6MX1dLDQ6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpewoidXNlIHN0cmljdCI7CnZhciB3aW5kb3cgPSByZXF1aXJlKCJnbG9iYWwvd2luZG93IikKdmFyIG9uY2UgPSByZXF1aXJlKCJvbmNlIikKdmFyIGlzRnVuY3Rpb24gPSByZXF1aXJlKCJpcy1mdW5jdGlvbiIpCnZhciBwYXJzZUhlYWRlcnMgPSByZXF1aXJlKCJwYXJzZS1oZWFkZXJzIikKdmFyIHh0ZW5kID0gcmVxdWlyZSgieHRlbmQiKQoKbW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVYSFIKY3JlYXRlWEhSLlhNTEh0dHBSZXF1ZXN0ID0gd2luZG93LlhNTEh0dHBSZXF1ZXN0IHx8IG5vb3AKY3JlYXRlWEhSLlhEb21haW5SZXF1ZXN0ID0gIndpdGhDcmVkZW50aWFscyIgaW4gKG5ldyBjcmVhdGVYSFIuWE1MSHR0cFJlcXVlc3QoKSkgPyBjcmVhdGVYSFIuWE1MSHR0cFJlcXVlc3QgOiB3aW5kb3cuWERvbWFpblJlcXVlc3QKCmZvckVhY2hBcnJheShbImdldCIsICJwdXQiLCAicG9zdCIsICJwYXRjaCIsICJoZWFkIiwgImRlbGV0ZSJdLCBmdW5jdGlvbihtZXRob2QpIHsKICAgIGNyZWF0ZVhIUlttZXRob2QgPT09ICJkZWxldGUiID8gImRlbCIgOiBtZXRob2RdID0gZnVuY3Rpb24odXJpLCBvcHRpb25zLCBjYWxsYmFjaykgewogICAgICAgIG9wdGlvbnMgPSBpbml0UGFyYW1zKHVyaSwgb3B0aW9ucywgY2FsbGJhY2spCiAgICAgICAgb3B0aW9ucy5tZXRob2QgPSBtZXRob2QudG9VcHBlckNhc2UoKQogICAgICAgIHJldHVybiBfY3JlYXRlWEhSKG9wdGlvbnMpCiAgICB9Cn0pCgpmdW5jdGlvbiBmb3JFYWNoQXJyYXkoYXJyYXksIGl0ZXJhdG9yKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaXRlcmF0b3IoYXJyYXlbaV0pCiAgICB9Cn0KCmZ1bmN0aW9uIGlzRW1wdHkob2JqKXsKICAgIGZvcih2YXIgaSBpbiBvYmopewogICAgICAgIGlmKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgcmV0dXJuIGZhbHNlCiAgICB9CiAgICByZXR1cm4gdHJ1ZQp9CgpmdW5jdGlvbiBpbml0UGFyYW1zKHVyaSwgb3B0aW9ucywgY2FsbGJhY2spIHsKICAgIHZhciBwYXJhbXMgPSB1cmkKCiAgICBpZiAoaXNGdW5jdGlvbihvcHRpb25zKSkgewogICAgICAgIGNhbGxiYWNrID0gb3B0aW9ucwogICAgICAgIGlmICh0eXBlb2YgdXJpID09PSAic3RyaW5nIikgewogICAgICAgICAgICBwYXJhbXMgPSB7dXJpOnVyaX0KICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIHBhcmFtcyA9IHh0ZW5kKG9wdGlvbnMsIHt1cmk6IHVyaX0pCiAgICB9CgogICAgcGFyYW1zLmNhbGxiYWNrID0gY2FsbGJhY2sKICAgIHJldHVybiBwYXJhbXMKfQoKZnVuY3Rpb24gY3JlYXRlWEhSKHVyaSwgb3B0aW9ucywgY2FsbGJhY2spIHsKICAgIG9wdGlvbnMgPSBpbml0UGFyYW1zKHVyaSwgb3B0aW9ucywgY2FsbGJhY2spCiAgICByZXR1cm4gX2NyZWF0ZVhIUihvcHRpb25zKQp9CgpmdW5jdGlvbiBfY3JlYXRlWEhSKG9wdGlvbnMpIHsKICAgIHZhciBjYWxsYmFjayA9IG9wdGlvbnMuY2FsbGJhY2sKICAgIGlmKHR5cGVvZiBjYWxsYmFjayA9PT0gInVuZGVmaW5lZCIpewogICAgICAgIHRocm93IG5ldyBFcnJvcigiY2FsbGJhY2sgYXJndW1lbnQgbWlzc2luZyIpCiAgICB9CiAgICBjYWxsYmFjayA9IG9uY2UoY2FsbGJhY2spCgogICAgZnVuY3Rpb24gcmVhZHlzdGF0ZWNoYW5nZSgpIHsKICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT09IDQpIHsKICAgICAgICAgICAgbG9hZEZ1bmMoKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBnZXRCb2R5KCkgewogICAgICAgIC8vIENocm9tZSB3aXRoIHJlcXVlc3RUeXBlPWJsb2IgdGhyb3dzIGVycm9ycyBhcnJvdW5kIHdoZW4gZXZlbiB0ZXN0aW5nIGFjY2VzcyB0byByZXNwb25zZVRleHQKICAgICAgICB2YXIgYm9keSA9IHVuZGVmaW5lZAoKICAgICAgICBpZiAoeGhyLnJlc3BvbnNlKSB7CiAgICAgICAgICAgIGJvZHkgPSB4aHIucmVzcG9uc2UKICAgICAgICB9IGVsc2UgaWYgKHhoci5yZXNwb25zZVR5cGUgPT09ICJ0ZXh0IiB8fCAheGhyLnJlc3BvbnNlVHlwZSkgewogICAgICAgICAgICBib2R5ID0geGhyLnJlc3BvbnNlVGV4dCB8fCB4aHIucmVzcG9uc2VYTUwKICAgICAgICB9CgogICAgICAgIGlmIChpc0pzb24pIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGJvZHkgPSBKU09OLnBhcnNlKGJvZHkpCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gYm9keQogICAgfQoKICAgIHZhciBmYWlsdXJlUmVzcG9uc2UgPSB7CiAgICAgICAgICAgICAgICBib2R5OiB1bmRlZmluZWQsCiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7fSwKICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6IDAsCiAgICAgICAgICAgICAgICBtZXRob2Q6IG1ldGhvZCwKICAgICAgICAgICAgICAgIHVybDogdXJpLAogICAgICAgICAgICAgICAgcmF3UmVxdWVzdDogeGhyCiAgICAgICAgICAgIH0KCiAgICBmdW5jdGlvbiBlcnJvckZ1bmMoZXZ0KSB7CiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRUaW1lcikKICAgICAgICBpZighKGV2dCBpbnN0YW5jZW9mIEVycm9yKSl7CiAgICAgICAgICAgIGV2dCA9IG5ldyBFcnJvcigiIiArIChldnQgfHwgIlVua25vd24gWE1MSHR0cFJlcXVlc3QgRXJyb3IiKSApCiAgICAgICAgfQogICAgICAgIGV2dC5zdGF0dXNDb2RlID0gMAogICAgICAgIGNhbGxiYWNrKGV2dCwgZmFpbHVyZVJlc3BvbnNlKQogICAgfQoKICAgIC8vIHdpbGwgbG9hZCB0aGUgZGF0YSAmIHByb2Nlc3MgdGhlIHJlc3BvbnNlIGluIGEgc3BlY2lhbCByZXNwb25zZSBvYmplY3QKICAgIGZ1bmN0aW9uIGxvYWRGdW5jKCkgewogICAgICAgIGlmIChhYm9ydGVkKSByZXR1cm4KICAgICAgICB2YXIgc3RhdHVzCiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRUaW1lcikKICAgICAgICBpZihvcHRpb25zLnVzZVhEUiAmJiB4aHIuc3RhdHVzPT09dW5kZWZpbmVkKSB7CiAgICAgICAgICAgIC8vSUU4IENPUlMgR0VUIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZG9lc24ndCBoYXZlIGEgc3RhdHVzIGZpZWxkLCBidXQgYm9keSBpcyBmaW5lCiAgICAgICAgICAgIHN0YXR1cyA9IDIwMAogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN0YXR1cyA9ICh4aHIuc3RhdHVzID09PSAxMjIzID8gMjA0IDogeGhyLnN0YXR1cykKICAgICAgICB9CiAgICAgICAgdmFyIHJlc3BvbnNlID0gZmFpbHVyZVJlc3BvbnNlCiAgICAgICAgdmFyIGVyciA9IG51bGwKCiAgICAgICAgaWYgKHN0YXR1cyAhPT0gMCl7CiAgICAgICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgICAgICAgYm9keTogZ2V0Qm9keSgpLAogICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogc3RhdHVzLAogICAgICAgICAgICAgICAgbWV0aG9kOiBtZXRob2QsCiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7fSwKICAgICAgICAgICAgICAgIHVybDogdXJpLAogICAgICAgICAgICAgICAgcmF3UmVxdWVzdDogeGhyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoeGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycyl7IC8vcmVtZW1iZXIgeGhyIGNhbiBpbiBmYWN0IGJlIFhEUiBmb3IgQ09SUyBpbiBJRQogICAgICAgICAgICAgICAgcmVzcG9uc2UuaGVhZGVycyA9IHBhcnNlSGVhZGVycyh4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpCiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBlcnIgPSBuZXcgRXJyb3IoIkludGVybmFsIFhNTEh0dHBSZXF1ZXN0IEVycm9yIikKICAgICAgICB9CiAgICAgICAgY2FsbGJhY2soZXJyLCByZXNwb25zZSwgcmVzcG9uc2UuYm9keSkKCiAgICB9CgogICAgdmFyIHhociA9IG9wdGlvbnMueGhyIHx8IG51bGwKCiAgICBpZiAoIXhocikgewogICAgICAgIGlmIChvcHRpb25zLmNvcnMgfHwgb3B0aW9ucy51c2VYRFIpIHsKICAgICAgICAgICAgeGhyID0gbmV3IGNyZWF0ZVhIUi5YRG9tYWluUmVxdWVzdCgpCiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIHhociA9IG5ldyBjcmVhdGVYSFIuWE1MSHR0cFJlcXVlc3QoKQogICAgICAgIH0KICAgIH0KCiAgICB2YXIga2V5CiAgICB2YXIgYWJvcnRlZAogICAgdmFyIHVyaSA9IHhoci51cmwgPSBvcHRpb25zLnVyaSB8fCBvcHRpb25zLnVybAogICAgdmFyIG1ldGhvZCA9IHhoci5tZXRob2QgPSBvcHRpb25zLm1ldGhvZCB8fCAiR0VUIgogICAgdmFyIGJvZHkgPSBvcHRpb25zLmJvZHkgfHwgb3B0aW9ucy5kYXRhIHx8IG51bGwKICAgIHZhciBoZWFkZXJzID0geGhyLmhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgfHwge30KICAgIHZhciBzeW5jID0gISFvcHRpb25zLnN5bmMKICAgIHZhciBpc0pzb24gPSBmYWxzZQogICAgdmFyIHRpbWVvdXRUaW1lcgoKICAgIGlmICgianNvbiIgaW4gb3B0aW9ucykgewogICAgICAgIGlzSnNvbiA9IHRydWUKICAgICAgICBoZWFkZXJzWyJhY2NlcHQiXSB8fCBoZWFkZXJzWyJBY2NlcHQiXSB8fCAoaGVhZGVyc1siQWNjZXB0Il0gPSAiYXBwbGljYXRpb24vanNvbiIpIC8vRG9uJ3Qgb3ZlcnJpZGUgZXhpc3RpbmcgYWNjZXB0IGhlYWRlciBkZWNsYXJlZCBieSB1c2VyCiAgICAgICAgaWYgKG1ldGhvZCAhPT0gIkdFVCIgJiYgbWV0aG9kICE9PSAiSEVBRCIpIHsKICAgICAgICAgICAgaGVhZGVyc1siY29udGVudC10eXBlIl0gfHwgaGVhZGVyc1siQ29udGVudC1UeXBlIl0gfHwgKGhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iKSAvL0Rvbid0IG92ZXJyaWRlIGV4aXN0aW5nIGFjY2VwdCBoZWFkZXIgZGVjbGFyZWQgYnkgdXNlcgogICAgICAgICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5qc29uKQogICAgICAgIH0KICAgIH0KCiAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gcmVhZHlzdGF0ZWNoYW5nZQogICAgeGhyLm9ubG9hZCA9IGxvYWRGdW5jCiAgICB4aHIub25lcnJvciA9IGVycm9yRnVuYwogICAgLy8gSUU5IG11c3QgaGF2ZSBvbnByb2dyZXNzIGJlIHNldCB0byBhIHVuaXF1ZSBmdW5jdGlvbi4KICAgIHhoci5vbnByb2dyZXNzID0gZnVuY3Rpb24gKCkgewogICAgICAgIC8vIElFIG11c3QgZGllCiAgICB9CiAgICB4aHIub250aW1lb3V0ID0gZXJyb3JGdW5jCiAgICB4aHIub3BlbihtZXRob2QsIHVyaSwgIXN5bmMsIG9wdGlvbnMudXNlcm5hbWUsIG9wdGlvbnMucGFzc3dvcmQpCiAgICAvL2hhcyB0byBiZSBhZnRlciBvcGVuCiAgICBpZighc3luYykgewogICAgICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSAhIW9wdGlvbnMud2l0aENyZWRlbnRpYWxzCiAgICB9CiAgICAvLyBDYW5ub3Qgc2V0IHRpbWVvdXQgd2l0aCBzeW5jIHJlcXVlc3QKICAgIC8vIG5vdCBzZXR0aW5nIHRpbWVvdXQgb24gdGhlIHhociBvYmplY3QsIGJlY2F1c2Ugb2Ygb2xkIHdlYmtpdHMgZXRjLiBub3QgaGFuZGxpbmcgdGhhdCBjb3JyZWN0bHkKICAgIC8vIGJvdGggbnBtJ3MgcmVxdWVzdCBhbmQganF1ZXJ5IDEueCB1c2UgdGhpcyBraW5kIG9mIHRpbWVvdXQsIHNvIHRoaXMgaXMgYmVpbmcgY29uc2lzdGVudAogICAgaWYgKCFzeW5jICYmIG9wdGlvbnMudGltZW91dCA+IDAgKSB7CiAgICAgICAgdGltZW91dFRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICBhYm9ydGVkPXRydWUvL0lFOSBtYXkgc3RpbGwgY2FsbCByZWFkeXN0YXRlY2hhbmdlCiAgICAgICAgICAgIHhoci5hYm9ydCgidGltZW91dCIpCiAgICAgICAgICAgIHZhciBlID0gbmV3IEVycm9yKCJYTUxIdHRwUmVxdWVzdCB0aW1lb3V0IikKICAgICAgICAgICAgZS5jb2RlID0gIkVUSU1FRE9VVCIKICAgICAgICAgICAgZXJyb3JGdW5jKGUpCiAgICAgICAgfSwgb3B0aW9ucy50aW1lb3V0ICkKICAgIH0KCiAgICBpZiAoeGhyLnNldFJlcXVlc3RIZWFkZXIpIHsKICAgICAgICBmb3Ioa2V5IGluIGhlYWRlcnMpewogICAgICAgICAgICBpZihoZWFkZXJzLmhhc093blByb3BlcnR5KGtleSkpewogICAgICAgICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoa2V5LCBoZWFkZXJzW2tleV0pCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuaGVhZGVycyAmJiAhaXNFbXB0eShvcHRpb25zLmhlYWRlcnMpKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJIZWFkZXJzIGNhbm5vdCBiZSBzZXQgb24gYW4gWERvbWFpblJlcXVlc3Qgb2JqZWN0IikKICAgIH0KCiAgICBpZiAoInJlc3BvbnNlVHlwZSIgaW4gb3B0aW9ucykgewogICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSBvcHRpb25zLnJlc3BvbnNlVHlwZQogICAgfQoKICAgIGlmICgiYmVmb3JlU2VuZCIgaW4gb3B0aW9ucyAmJgogICAgICAgIHR5cGVvZiBvcHRpb25zLmJlZm9yZVNlbmQgPT09ICJmdW5jdGlvbiIKICAgICkgewogICAgICAgIG9wdGlvbnMuYmVmb3JlU2VuZCh4aHIpCiAgICB9CgogICAgeGhyLnNlbmQoYm9keSkKCiAgICByZXR1cm4geGhyCgoKfQoKZnVuY3Rpb24gbm9vcCgpIHt9Cgp9LHsiZ2xvYmFsL3dpbmRvdyI6NSwiaXMtZnVuY3Rpb24iOjYsIm9uY2UiOjcsInBhcnNlLWhlYWRlcnMiOjEwLCJ4dGVuZCI6MTF9XSw1OltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKKGZ1bmN0aW9uIChnbG9iYWwpewppZiAodHlwZW9mIHdpbmRvdyAhPT0gInVuZGVmaW5lZCIpIHsKICAgIG1vZHVsZS5leHBvcnRzID0gd2luZG93Owp9IGVsc2UgaWYgKHR5cGVvZiBnbG9iYWwgIT09ICJ1bmRlZmluZWQiKSB7CiAgICBtb2R1bGUuZXhwb3J0cyA9IGdsb2JhbDsKfSBlbHNlIGlmICh0eXBlb2Ygc2VsZiAhPT0gInVuZGVmaW5lZCIpewogICAgbW9kdWxlLmV4cG9ydHMgPSBzZWxmOwp9IGVsc2UgewogICAgbW9kdWxlLmV4cG9ydHMgPSB7fTsKfQoKfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWwgIT09ICJ1bmRlZmluZWQiID8gZ2xvYmFsIDogdHlwZW9mIHNlbGYgIT09ICJ1bmRlZmluZWQiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09ICJ1bmRlZmluZWQiID8gd2luZG93IDoge30pCn0se31dLDY6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpewptb2R1bGUuZXhwb3J0cyA9IGlzRnVuY3Rpb24KCnZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcKCmZ1bmN0aW9uIGlzRnVuY3Rpb24gKGZuKSB7CiAgdmFyIHN0cmluZyA9IHRvU3RyaW5nLmNhbGwoZm4pCiAgcmV0dXJuIHN0cmluZyA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJyB8fAogICAgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJyAmJiBzdHJpbmcgIT09ICdbb2JqZWN0IFJlZ0V4cF0nKSB8fAogICAgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmCiAgICAgLy8gSUU4IGFuZCBiZWxvdwogICAgIChmbiA9PT0gd2luZG93LnNldFRpbWVvdXQgfHwKICAgICAgZm4gPT09IHdpbmRvdy5hbGVydCB8fAogICAgICBmbiA9PT0gd2luZG93LmNvbmZpcm0gfHwKICAgICAgZm4gPT09IHdpbmRvdy5wcm9tcHQpKQp9OwoKfSx7fV0sNzpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7Cm1vZHVsZS5leHBvcnRzID0gb25jZQoKb25jZS5wcm90byA9IG9uY2UoZnVuY3Rpb24gKCkgewogIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGdW5jdGlvbi5wcm90b3R5cGUsICdvbmNlJywgewogICAgdmFsdWU6IGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIG9uY2UodGhpcykKICAgIH0sCiAgICBjb25maWd1cmFibGU6IHRydWUKICB9KQp9KQoKZnVuY3Rpb24gb25jZSAoZm4pIHsKICB2YXIgY2FsbGVkID0gZmFsc2UKICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgaWYgKGNhbGxlZCkgcmV0dXJuCiAgICBjYWxsZWQgPSB0cnVlCiAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKQogIH0KfQoKfSx7fV0sODpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7CnZhciBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnaXMtZnVuY3Rpb24nKQoKbW9kdWxlLmV4cG9ydHMgPSBmb3JFYWNoCgp2YXIgdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nCnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkKCmZ1bmN0aW9uIGZvckVhY2gobGlzdCwgaXRlcmF0b3IsIGNvbnRleHQpIHsKICAgIGlmICghaXNGdW5jdGlvbihpdGVyYXRvcikpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpdGVyYXRvciBtdXN0IGJlIGEgZnVuY3Rpb24nKQogICAgfQoKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMykgewogICAgICAgIGNvbnRleHQgPSB0aGlzCiAgICB9CgogICAgaWYgKHRvU3RyaW5nLmNhbGwobGlzdCkgPT09ICdbb2JqZWN0IEFycmF5XScpCiAgICAgICAgZm9yRWFjaEFycmF5KGxpc3QsIGl0ZXJhdG9yLCBjb250ZXh0KQogICAgZWxzZSBpZiAodHlwZW9mIGxpc3QgPT09ICdzdHJpbmcnKQogICAgICAgIGZvckVhY2hTdHJpbmcobGlzdCwgaXRlcmF0b3IsIGNvbnRleHQpCiAgICBlbHNlCiAgICAgICAgZm9yRWFjaE9iamVjdChsaXN0LCBpdGVyYXRvciwgY29udGV4dCkKfQoKZnVuY3Rpb24gZm9yRWFjaEFycmF5KGFycmF5LCBpdGVyYXRvciwgY29udGV4dCkgewogICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGFycmF5Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoYXJyYXksIGkpKSB7CiAgICAgICAgICAgIGl0ZXJhdG9yLmNhbGwoY29udGV4dCwgYXJyYXlbaV0sIGksIGFycmF5KQogICAgICAgIH0KICAgIH0KfQoKZnVuY3Rpb24gZm9yRWFjaFN0cmluZyhzdHJpbmcsIGl0ZXJhdG9yLCBjb250ZXh0KSB7CiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gc3RyaW5nLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgLy8gbm8gc3VjaCB0aGluZyBhcyBhIHNwYXJzZSBzdHJpbmcuCiAgICAgICAgaXRlcmF0b3IuY2FsbChjb250ZXh0LCBzdHJpbmcuY2hhckF0KGkpLCBpLCBzdHJpbmcpCiAgICB9Cn0KCmZ1bmN0aW9uIGZvckVhY2hPYmplY3Qob2JqZWN0LCBpdGVyYXRvciwgY29udGV4dCkgewogICAgZm9yICh2YXIgayBpbiBvYmplY3QpIHsKICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGspKSB7CiAgICAgICAgICAgIGl0ZXJhdG9yLmNhbGwoY29udGV4dCwgb2JqZWN0W2tdLCBrLCBvYmplY3QpCiAgICAgICAgfQogICAgfQp9Cgp9LHsiaXMtZnVuY3Rpb24iOjZ9XSw5OltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKCmV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHRyaW07CgpmdW5jdGlvbiB0cmltKHN0cil7CiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9eXHMqfFxzKiQvZywgJycpOwp9CgpleHBvcnRzLmxlZnQgPSBmdW5jdGlvbihzdHIpewogIHJldHVybiBzdHIucmVwbGFjZSgvXlxzKi8sICcnKTsKfTsKCmV4cG9ydHMucmlnaHQgPSBmdW5jdGlvbihzdHIpewogIHJldHVybiBzdHIucmVwbGFjZSgvXHMqJC8sICcnKTsKfTsKCn0se31dLDEwOltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKdmFyIHRyaW0gPSByZXF1aXJlKCd0cmltJykKICAsIGZvckVhY2ggPSByZXF1aXJlKCdmb3ItZWFjaCcpCiAgLCBpc0FycmF5ID0gZnVuY3Rpb24oYXJnKSB7CiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJnKSA9PT0gJ1tvYmplY3QgQXJyYXldJzsKICAgIH0KCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGhlYWRlcnMpIHsKICBpZiAoIWhlYWRlcnMpCiAgICByZXR1cm4ge30KCiAgdmFyIHJlc3VsdCA9IHt9CgogIGZvckVhY2goCiAgICAgIHRyaW0oaGVhZGVycykuc3BsaXQoJ1xuJykKICAgICwgZnVuY3Rpb24gKHJvdykgewogICAgICAgIHZhciBpbmRleCA9IHJvdy5pbmRleE9mKCc6JykKICAgICAgICAgICwga2V5ID0gdHJpbShyb3cuc2xpY2UoMCwgaW5kZXgpKS50b0xvd2VyQ2FzZSgpCiAgICAgICAgICAsIHZhbHVlID0gdHJpbShyb3cuc2xpY2UoaW5kZXggKyAxKSkKCiAgICAgICAgaWYgKHR5cGVvZihyZXN1bHRba2V5XSkgPT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlCiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KHJlc3VsdFtrZXldKSkgewogICAgICAgICAgcmVzdWx0W2tleV0ucHVzaCh2YWx1ZSkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmVzdWx0W2tleV0gPSBbIHJlc3VsdFtrZXldLCB2YWx1ZSBdCiAgICAgICAgfQogICAgICB9CiAgKQoKICByZXR1cm4gcmVzdWx0Cn0KfSx7ImZvci1lYWNoIjo4LCJ0cmltIjo5fV0sMTE6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpewptb2R1bGUuZXhwb3J0cyA9IGV4dGVuZAoKdmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKCmZ1bmN0aW9uIGV4dGVuZCgpIHsKICAgIHZhciB0YXJnZXQgPSB7fQoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXQoKICAgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7CiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgewogICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiB0YXJnZXQKfQoKfSx7fV0sMTI6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpewovKgogKiBtc2Etc2VxdG9vbHMKICogaHR0cHM6Ly9naXRodWIuY29tL2dyZWVuaWZ5L21zYS1zZXF0b29scwogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTQgZ3JlZW5pZnkKICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLgogKi8KCnZhciBzdCA9IHt9Owptb2R1bGUuZXhwb3J0cyA9IHN0OwoKLy8gZXh0cmFjdCBJRHMgYW5kIHB1c2ggdGhlbSB0byB0aGUgbWV0YSBkaWN0CnN0LmdldE1ldGEgPSBmdW5jdGlvbihsYWJlbCkgewogIGlmIChzdC5jb250YWlucyhsYWJlbCwgInwiKSkgewogICAgdmFyIGlkZW50aWZpZXJzID0gbGFiZWwuc3BsaXQoInwiKTsKICAgIHZhciBrID0gMDsKICAgIHZhciBkYXRhYmFzZSwgZGF0YWJhc2VJRDsKICAgIHZhciBtZXRhID0ge307CiAgICB3aGlsZSAoayA8IGlkZW50aWZpZXJzLmxlbmd0aCAtIDEpIHsKICAgICAgZGF0YWJhc2UgPSBpZGVudGlmaWVyc1trXTsKICAgICAgZGF0YWJhc2VJRCA9IGlkZW50aWZpZXJzW2sgKyAxXTsKICAgICAgbWV0YVtkYXRhYmFzZV0gPSBkYXRhYmFzZUlEOwogICAgICBrICs9IDI7CiAgICB9CiAgICAvLyBhc3N1bWUgdGhlIGxhc3QgZW50cnkgaXMgdGhlIGxhYmVsCiAgICB2YXIgbmFtZSA9IGlkZW50aWZpZXJzW2lkZW50aWZpZXJzLmxlbmd0aCAtIDFdOwogICAgLy8gY2hlY2sgd2hldGhlciB0aGVyZSBpcyBhIHVuaXByb3QgaWQKICAgIGlmIChuYW1lLmluZGV4T2YoIj0iKSA+PSAwICYmIG5hbWUuaW5kZXhPZigiT1MiKSA+PSAwKSB7CiAgICAgIHZhciBkcyA9IHt9OwogICAgICB2YXIgZGV0YWlscyA9IG5hbWUuc3BsaXQoIiAiKTsKICAgICAgZHMuZW4gPSBkZXRhaWxzWzBdOwogICAgICBkZXRhaWxzID0gZGV0YWlscy5zcGxpY2UoMSk7CiAgICAgIHZhciBuYW1lTGVuZ3RoID0gZmluZFNlcEluQXJyKGRldGFpbHMsICI9Iik7CiAgICAgIHZhciBkZXRhaWxzVG1wID0gZGV0YWlscy5zcGxpY2UobmFtZUxlbmd0aCAtIDEpOwogICAgICBuYW1lID0gZGV0YWlscy5qb2luKCIgIik7CiAgICAgIGRldGFpbHMgPSBkZXRhaWxzVG1wOwogICAgICBrID0gMDsKICAgICAgdmFyIGJsb2NrID0gW107CiAgICAgIGRldGFpbHMuZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7CiAgICAgICAgYmxvY2sucHVzaChpdGVtKTsKICAgICAgICBpZiAoaXRlbS5pbmRleE9mKCI9IikgPj0gMCkgewogICAgICAgICAgc3RyVG9EaWN0KGJsb2NrLmpvaW4oIiAiKSwgIj0iLCBkcyk7CiAgICAgICAgICBibG9jayA9IFtdOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHJldHVybiB7CiAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICBpZHM6IG1ldGEsCiAgICAgICAgZGV0YWlsczogZHMKICAgICAgfTsKICAgIH0KICAgIHJldHVybiB7CiAgICAgIG5hbWU6IG5hbWUsCiAgICAgIGlkczogbWV0YQogICAgfTsKICB9CiAgcmV0dXJuIHsKICAgIG5hbWU6IGxhYmVsCiAgfTsKfTsKCnZhciBmaW5kU2VwSW5BcnIgPSBmdW5jdGlvbihhcnIsIHNlcCkgewogIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmdodDsgaSsrKSB7CiAgICBpZiAoYXJyW2ldLmluZGV4T2YoaSkpIHsKICAgICAgcmV0dXJuIGk7CiAgICB9CiAgfQogIHJldHVybiBhcnIubGVuZ3RoIC0gMTsKfTsKCnZhciBzdHJUb0RpY3QgPSBmdW5jdGlvbihzdHIsIHNlcCwgdG9Kb2luKSB7CiAgdG9Kb2luID0gdG9Kb2luIHx8IHt9OwogIHZhciBlbnRyaWVzID0gc3RyLnNwbGl0KHNlcCk7CiAgdG9Kb2luW2VudHJpZXNbMF0udG9Mb3dlckNhc2UoKV0gPSBlbnRyaWVzWzFdOwogIHJldHVybiB0b0pvaW47Cn07Cgp2YXIgaWRlbnREQiA9IHsKICAic3AiOiB7CiAgICBsaW5rOiAiaHR0cDovL3d3dy51bmlwcm90Lm9yZy8lcyIsCiAgICBuYW1lOiAiVW5pcHJvdCIKICB9LAogICJ0ciI6IHsKICAgIGxpbms6ICJodHRwOi8vd3d3LnVuaXByb3Qub3JnLyVzIiwKICAgIG5hbWU6ICJUcmVtYmwiCiAgfSwKICAiZ2IiOiB7CiAgICBsaW5rOiAiaHR0cDovL3d3dy5uY2JpLm5sbS5uaWguZ292L251Y2NvcmUvJXMiLAogICAgbmFtZTogIkdlbmJhbmsiCiAgfSwKICAicGRiIjogewogICAgbGluazogImh0dHA6Ly93d3cucmNzYi5vcmcvcGRiL2V4cGxvcmUvZXhwbG9yZS5kbz9zdHJ1Y3R1cmVJZD0lcyIsCiAgICBuYW1lOiAiUERCIgogIH0KfTsKCnN0LmJ1aWxkTGlua3MgPSBmdW5jdGlvbihtZXRhKSB7CiAgdmFyIGxpbmtzID0ge307CiAgbWV0YSA9IG1ldGEgfHwge307CiAgT2JqZWN0LmtleXMobWV0YSkuZm9yRWFjaChmdW5jdGlvbihpZCkgewogICAgaWYgKGlkIGluIGlkZW50REIpIHsKICAgICAgdmFyIGVudHJ5ID0gaWRlbnREQltpZF07CiAgICAgIHZhciBsaW5rID0gZW50cnkubGluay5yZXBsYWNlKCIlcyIsIG1ldGFbaWRdKTsKICAgICAgbGlua3NbZW50cnkubmFtZV0gPSBsaW5rOwogICAgfQogIH0pOwogIHJldHVybiBsaW5rczsKfTsKCgovLyBzZWFyY2ggZm9yIGEgdGV4dApzdC5jb250YWlucyA9IGZ1bmN0aW9uKHRleHQsIHNlYXJjaCkgewogIHJldHVybiAnJy5pbmRleE9mLmNhbGwodGV4dCwgc2VhcmNoLCAwKSAhPT0gLTE7Cn07CgovLyBzcGxpdCBhZnRlciBlLmcuIDgwIGNoYXJzCnN0LnNwbGl0TkNoYXJzID0gZnVuY3Rpb24odHh0LCBudW0pIHsKICB2YXIgaSwgX3JlZjsKICBudW0gPSBudW0gfHwgODA7CiAgdmFyIHJlc3VsdCA9IFtdOwogIGZvciAoaSA9IDAsIF9yZWYgPSB0eHQubGVuZ3RoIC0gMTsgaSA8PSBfcmVmOyBpICs9IG51bSkgewogICAgcmVzdWx0LnB1c2godHh0LnN1YnN0cihpLCBudW0pKTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfTsKCnN0LnJldmVyc2UgPSBmdW5jdGlvbihzZXEpIHsKICByZXR1cm4gc2VxLnNwbGl0KCcnKS5yZXZlcnNlKCkuam9pbignJyk7Cn0KCnN0LmNvbXBsZW1lbnQgPSBmdW5jdGlvbihzZXEpIHsKICB2YXIgbmV3U2VxID0gc2VxICsgIiI7CiAgdmFyIHJlcGxhY2VtZW50cyA9IFsKICAgIC8vIGNnCiAgICBbL2cvZywgIjAiXSwKICAgIFsvYy9nLCAiMSJdLAogICAgWy8wL2csICJjIl0sCiAgICBbLzEvZywgImciXSwKICAgIC8vIENHCiAgICBbL0cvZywgIjAiXSwKICAgIFsvQy9nLCAiMSJdLAogICAgWy8wL2csICJDIl0sCiAgICBbLzEvZywgIkciXSwKICAgIC8vIGF0CiAgICBbL2EvZywgIjAiXSwKICAgIFsvdC9nLCAiMSJdLAogICAgWy8wL2csICJ0Il0sCiAgICBbLzEvZywgImEiXSwKICAgIC8vIEFUCiAgICBbL0EvZywgIjAiXSwKICAgIFsvVC9nLCAiMSJdLAogICAgWy8wL2csICJUIl0sCiAgICBbLzEvZywgIkEiXSwKICBdOwoKICBmb3IodmFyIHJlcCBpbiByZXBsYWNlbWVudHMpewogICAgbmV3U2VxID0gbmV3U2VxLnJlcGxhY2UocmVwbGFjZW1lbnRzW3JlcF1bMF0sIHJlcGxhY2VtZW50c1tyZXBdWzFdKTsKICB9CiAgcmV0dXJuIG5ld1NlcTsKfQoKc3QucmV2ZXJzZUNvbXBsZW1lbnQgPSBmdW5jdGlvbihzZXEpewogIHJldHVybiBzdC5yZXZlcnNlKHN0LmNvbXBsZW1lbnQoc2VxKSk7Cn0KCnN0Lm1vZGVsID0gZnVuY3Rpb24gU2VxKHNlcSwgbmFtZSwgaWQpIHsKICB0aGlzLnNlcSA9IHNlcTsKICB0aGlzLm5hbWUgPSBuYW1lOwogIHRoaXMuaWQgPSBpZDsKICB0aGlzLmlkcyA9IHt9Owp9OwoKfSx7fV0sImJpb2pzLWlvLWZhc3RhIjpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7Ci8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS45LjAKdmFyIEZhc3RhLCBHZW5lcmljUmVhZGVyLCBzdDsKCkdlbmVyaWNSZWFkZXIgPSByZXF1aXJlKCJiaW9qcy1pby1wYXJzZXIiKTsKCnN0ID0gcmVxdWlyZSgibXNhLXNlcXRvb2xzIik7Cgptb2R1bGUuZXhwb3J0cyA9IEZhc3RhID0gewogIHBhcnNlOiBmdW5jdGlvbih0ZXh0KSB7CiAgICB2YXIgY3VycmVudFNlcSwga2V5cywgbGFiZWwsIGxpbmUsIG9iaiwgc2VxcywgX2ksIF9sZW47CiAgICBzZXFzID0gW107CiAgICBpZiAoIXRleHQgfHwgdGV4dC5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuIFtdOwogICAgfQogICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXh0KSAhPT0gJ1tvYmplY3QgQXJyYXldJykgewogICAgICB0ZXh0ID0gdGV4dC5zcGxpdCgiXG4iKTsKICAgIH0KICAgIGZvciAoX2kgPSAwLCBfbGVuID0gdGV4dC5sZW5ndGg7IF9pIDwgX2xlbjsgX2krKykgewogICAgICBsaW5lID0gdGV4dFtfaV07CiAgICAgIGlmIChsaW5lWzBdID09PSAiPiIgfHwgbGluZVswXSA9PT0gIjsiKSB7CiAgICAgICAgbGFiZWwgPSBsaW5lLnNsaWNlKDEpOwogICAgICAgIG9iaiA9IHN0LmdldE1ldGEobGFiZWwpOwogICAgICAgIGxhYmVsID0gb2JqLm5hbWU7CiAgICAgICAgY3VycmVudFNlcSA9IG5ldyBzdC5tb2RlbCgiIiwgbGFiZWwsIHNlcXMubGVuZ3RoKTsKICAgICAgICBjdXJyZW50U2VxLmlkcyA9IG9iai5pZHMgfHwge307CiAgICAgICAga2V5cyA9IE9iamVjdC5rZXlzKGN1cnJlbnRTZXEuaWRzKTsKICAgICAgICBpZiAoa2V5cy5sZW5ndGggPiAwKSB7CiAgICAgICAgICBjdXJyZW50U2VxLmlkID0gY3VycmVudFNlcS5pZHNba2V5c1swXV07CiAgICAgICAgfQogICAgICAgIGN1cnJlbnRTZXEuZGV0YWlscyA9IG9iai5kZXRhaWxzIHx8IHt9OwogICAgICAgIHNlcXMucHVzaChjdXJyZW50U2VxKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjdXJyZW50U2VxLnNlcSArPSBsaW5lOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gc2VxczsKICB9LAogIHdyaXRlOiBmdW5jdGlvbihzZXFzLCBhY2Nlc3MpIHsKICAgIHZhciBzZXEsIHRleHQsIF9pLCBfbGVuOwogICAgdGV4dCA9ICIiOwogICAgZm9yIChfaSA9IDAsIF9sZW4gPSBzZXFzLmxlbmd0aDsgX2kgPCBfbGVuOyBfaSsrKSB7CiAgICAgIHNlcSA9IHNlcXNbX2ldOwogICAgICBpZiAoYWNjZXNzICE9IG51bGwpIHsKICAgICAgICBzZXEgPSBhY2Nlc3Moc2VxKTsKICAgICAgfQogICAgICB0ZXh0ICs9ICI+IiArIHNlcS5uYW1lICsgIlxuIjsKICAgICAgdGV4dCArPSAoc3Quc3BsaXROQ2hhcnMoc2VxLnNlcSwgODApKS5qb2luKCJcbiIpOwogICAgICB0ZXh0ICs9ICJcbiI7CiAgICB9CiAgICByZXR1cm4gdGV4dDsKICB9Cn07CgpHZW5lcmljUmVhZGVyLm1peGluKEZhc3RhKTsKCn0seyJiaW9qcy1pby1wYXJzZXIiOjIsIm1zYS1zZXF0b29scyI6MTJ9XX0se30sW10pOwo="></script>
<script src="data:application/x-javascript;base64,SFRNTFdpZGdldHMud2lkZ2V0KHsKCiAgbmFtZTogJ21zYVInLAoKICB0eXBlOiAnb3V0cHV0JywKCiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKCiAgICB2YXIgcm9vdERpdiA9IGVsOwoKICAgIHJldHVybiB7CiAgICAgIG1zYTogbXNhLAogICAgICBlbDogcm9vdERpdiwKICAgICAgcGFyc2U6IHJlcXVpcmUoImJpb2pzLWlvLWZhc3RhIikucGFyc2UKICAgIH07CiAgfSwKCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgdmFyIG9wdHMgPSB4LmNvbmZpZzsKICAgIG9wdHMuZWwgPSBpbnN0YW5jZS5lbDsKICAgIG9wdHMuc2VxcyA9IGluc3RhbmNlLnBhcnNlKHguYWxpZ25tZW50KTsKCiAgICAvLyBpbml0IG1zYQogICAgdmFyIG0gPSBpbnN0YW5jZS5tc2Eob3B0cyk7CiAgICAKICAgIHZhciBjc2NoZW1lID0gb3B0cy5jb2xvcnNjaGVtZS5zY2hlbWU7CiAgICB2YXIgdGVzdCA9IG0uZy5jb2xvcnNjaGVtZS5zZXQoInNjaGVtZSIsIGNzY2hlbWUpOwoKICAgIGlmKHgubWVudSl7CiAgICAgIC8vIHRoZSBtZW51IGlzIGluZGVwZW5kZW50IHRvIHRoZSBNU0EgY29udGFpbmVyCiAgICAgIHZhciBtZW51T3B0cyA9IHt9OwogICAgICBtZW51T3B0cy5lbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYnKTsKICAgICAgbWVudU9wdHMubXNhID0gbTsKICAgICAgbWVudU9wdHMubWVudSA9ICJzbWFsbCI7CiAgICAgIHZhciBkZWZNZW51ID0gbmV3IG1zYS5tZW51LmRlZmF1bHRtZW51KG1lbnVPcHRzKTsKICAgICAgbS5hZGRWaWV3KCJtZW51IiwgZGVmTWVudSk7CiAgICB9CgogICAgLy8gc2F2ZSBtc2EgaW5zdGFuY2UgdG8gd2luZG93IG9iamVjdCBzbyBpdCBjYW4gYmUgaGFja2VkIHVzaW5nIHNoaW55anMKICAgIGlmKHguZmVhdHVyZXMpewogICAgICB2YXIgZmVhdHVyZXMgPSB7CiAgICAgICAgY29uZmlnOiB7CiAgICAgICAgICB0eXBlOiAiZ2ZmMyIKICAgICAgICB9LAogICAgICAgIHNlcXM6IHt9CiAgICAgIH07CgogICAgICBmb3IodmFyIGk9MDsgaTx4LmZlYXR1cmVzLmxlbmd0aDsgaSsrKXsKICAgICAgICBpZihmZWF0dXJlcy5zZXFzW3guZmVhdHVyZXNbaV0uc2VxTmFtZV0gPT09IHVuZGVmaW5lZCB8fCBmZWF0dXJlcy5zZXFzW3guZmVhdHVyZXNbaV0uc2VxTmFtZV0gPT09IG51bGwpewogICAgICAgICAgZmVhdHVyZXMuc2Vxc1t4LmZlYXR1cmVzW2ldLnNlcU5hbWVdID0gW107CiAgICAgICAgfQogICAgICAgIGZlYXR1cmVzLnNlcXNbeC5mZWF0dXJlc1tpXS5zZXFOYW1lXS5wdXNoKHsKICAgICAgICAgIGF0dHJpYnV0ZXM6IHsKICAgICAgICAgICAgQ29sb3I6ICIjNDI4NWY0IiwKICAgICAgICAgICAgTmFtZTogInNnUk5BIgogICAgICAgICAgfSwKICAgICAgICAgIGVuZDogeC5mZWF0dXJlc1tpXS5lbmQsCiAgICAgICAgICBmZWF0dXJlOiAiZ2VuZSIsCiAgICAgICAgICBzdGFydDogeC5mZWF0dXJlc1tpXS5zdGFydAogICAgICAgIH0pOwogICAgICB9CgogICAgICBtLnNlcXMuYWRkRmVhdHVyZXMoZmVhdHVyZXMpOwogICAgfQoKICAgIC8vIGNhbGwgcmVuZGVyIGF0IHRoZSBlbmQgdG8gZGlzcGxheSB0aGUgd2hvbGUgTVNBCiAgICBtLnJlbmRlcigpOwogIH0sCgogIHJlc2l6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQsIGluc3RhbmNlKSB7CgogIH0KCn0pOwo="></script>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
</style>
<style type="text/css">code{white-space: pre;}</style>
<style type="text/css">
pre:not([class]) {
background-color: white;
}
</style>
<script type="text/javascript">
if (window.hljs) {
hljs.configure({languages: []});
hljs.initHighlightingOnLoad();
if (document.readyState && document.readyState === "complete") {
window.setTimeout(function() { hljs.initHighlighting(); }, 0);
}
}
</script>
<style type="text/css">
h1 {
font-size: 34px;
}
h1.title {
font-size: 38px;
}
h2 {
font-size: 30px;
}
h3 {
font-size: 24px;
}
h4 {
font-size: 18px;
}
h5 {
font-size: 16px;
}
h6 {
font-size: 12px;
}
.table th:not([align]) {
text-align: left;
}
</style>
<style type="text/css">
.main-container {
max-width: 940px;
margin-left: auto;
margin-right: auto;
}
code {
color: inherit;
background-color: rgba(0, 0, 0, 0.04);
}
img {
max-width:100%;
}
.tabbed-pane {
padding-top: 12px;
}
.html-widget {
margin-bottom: 20px;
}
button.code-folding-btn:focus {
outline: none;
}
summary {
display: list-item;
}
</style>
<!-- tabsets -->
<style type="text/css">
.tabset-dropdown > .nav-tabs {
display: inline-table;
max-height: 500px;
min-height: 44px;
overflow-y: auto;
background: white;
border: 1px solid #ddd;
border-radius: 4px;
}
.tabset-dropdown > .nav-tabs > li.active:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li.active:before {
content: "";
border: none;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs > li.active {
display: block;
}
.tabset-dropdown > .nav-tabs > li > a,
.tabset-dropdown > .nav-tabs > li > a:focus,
.tabset-dropdown > .nav-tabs > li > a:hover {
border: none;
display: inline-block;
border-radius: 4px;
background-color: transparent;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li {
display: block;
float: none;
}
.tabset-dropdown > .nav-tabs > li {
display: none;
}
</style>
<!-- code folding -->
<style type="text/css">
.code-folding-btn { margin-bottom: 4px; }
</style>
<style type="text/css">
#TOC {
margin: 25px 0px 20px 0px;
}
@media (max-width: 768px) {
#TOC {
position: relative;
width: 100%;
}
}
@media print {
.toc-content {
/* see https://github.com/w3c/csswg-drafts/issues/4434 */
float: right;
}
}
.toc-content {
padding-left: 30px;
padding-right: 40px;
}
div.main-container {
max-width: 1200px;
}
div.tocify {
width: 20%;
max-width: 260px;
max-height: 85%;
}
@media (min-width: 768px) and (max-width: 991px) {
div.tocify {
width: 25%;
}
}
@media (max-width: 767px) {
div.tocify {
width: 100%;
max-width: none;
}
}
.tocify ul, .tocify li {
line-height: 20px;
}
.tocify-subheader .tocify-item {
font-size: 0.90em;
}
.tocify .list-group-item {
border-radius: 0px;
}
.tocify-subheader {
display: inline;
}
.tocify-subheader .tocify-item {
font-size: 0.95em;
}
</style>
</head>
<body>
<div class="container-fluid main-container">
<!-- setup 3col/9col grid for toc_float and main content -->
<div class="row-fluid">
<div class="col-xs-12 col-sm-4 col-md-3">
<div id="TOC" class="tocify">
</div>
</div>
<div class="toc-content col-xs-12 col-sm-8 col-md-9">
<div class="fluid-row" id="header">
<div class="btn-group pull-right">
<button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span>Code</span> <span class="caret"></span></button>
<ul class="dropdown-menu" style="min-width: 50px;">
<li><a id="rmd-show-all-code" href="#">Show All Code</a></li>
<li><a id="rmd-hide-all-code" href="#">Hide All Code</a></li>
</ul>
</div>
<h1 class="title toc-ignore">V and J segments alignment visualization</h1>
<h4 class="author">M. S. Benítez-Cantos</h4>
<h4 class="date">01/03/2021</h4>
</div>
<p>Load libraries:</p>
<pre class="r"><code>########## LOAD LIBRARIES ###########
library(Biostrings)
library(msaR)
library(msa)
library(stringr)
library(dplyr)</code></pre>
<div id="v-and-j-alignment" class="section level1">
<h1><span class="header-section-number">1</span> V and J alignment</h1>
<div id="vj_alignment-function" class="section level2">
<h2><span class="header-section-number">1.1</span> <code>vj_alignment</code> function</h2>
<p>The <code>vj_alignment</code> function performs the V and J alignments in the TCRβ reads to delimit their HVR.</p>
<pre class="r"><code>vj_alignment &lt;- function(reads, Vsegments, Jsegments, numCores = detectCores() - 4, gapOpening = 1){
#' Align V and J segments in a set of reads to delimit the hypervariable region (HVR)
#'
#' @param reads A \code{DNAStringSet} or a \code{QualityScaledDNAStringSet} containing the reads.
#' @param Vsegments A \code{DNAStringSet} with the V segments.
#' @param Jsegments A \code{DNAStringSet} with the J segments trimmed from the Phe codon.
#' @param numCores Number of cores to execute the function in parallel.
#' @param gapOpening Penalty for opening a gap in the alignment.
#' @return A \code{data.frame} with V and J alignment information and HVR sequence, quality and reading frame.
results &lt;- dplyr::bind_rows(mclapply(mc.cores = numCores, X = 1:length(reads), FUN = function(i){
read &lt;- reads[i]
# Get the read ID
read_id &lt;- names(read)
#########################################
############## V ALIGNMENT ##############
#########################################
### Remove IMGT gaps before alignment to avoid them affecting the score ###
Vsegments_nogaps &lt;- DNAStringSet(gsub(&quot;\\.&quot;, &quot;&quot;, Vsegments))
names(Vsegments_nogaps) &lt;- names(Vsegments)
### Perform 147 V alignments and get the score only (NO IMGT GAPS) ###
v_alignment1 &lt;- pairwiseAlignment(pattern = Vsegments_nogaps,
subject = read,
type = &quot;global-local&quot;,
scoreOnly = TRUE,
gapOpening = gapOpening)
### Select the segment with the best score ###
best_v &lt;- Vsegments[which.max(v_alignment1)]
v_match &lt;- names(best_v)
### Perform a complete pairwise alignment with the best match (W/ IMGT GAPS, for Cys location) ###
v_alignment2 &lt;- pairwiseAlignment(pattern = best_v,
subject = read,
type = &quot;global-local&quot;,
scoreOnly = FALSE,
gapOpening = gapOpening)
### Perform a complete pairwise alignment with the best match (NO IMGT GAPS) ###
best_v_nogaps &lt;- DNAString(gsub(&quot;\\.&quot;, &quot;&quot;, best_v))
v_alignment3 &lt;- pairwiseAlignment(pattern = best_v_nogaps,
subject = read,
type = &quot;global-local&quot;,
scoreOnly = FALSE,
gapOpening = gapOpening)
### Get V alignment information ###
v_score &lt;- score(v_alignment3) # Score of alignment with no gaps
v_identity &lt;- pid(v_alignment3, type = &quot;PID3&quot;)
v_start &lt;- start(Views(v_alignment3))
v_end &lt;- end(Views(v_alignment3))
if (v_score &lt; 0) { # If V score is negative, Cys check nor J alignment are performed
cys_check &lt;- NA
cys_status &lt;- NA
j_match &lt;- NA
j_score &lt;- NA
j_identity &lt;- NA
j_start &lt;- NA
j_end &lt;- NA
phe_check &lt;- NA
read_cys_start &lt;- NA
HVR_seq &lt;- NA
HVR_qual &lt;- NA
HVR_frame &lt;- NA
} else { # Only find Cys and align J if V score is positive
#########################################
####### FIND CYS, HANDLE INDELS #########
#########################################
# Cys coordinates in the alignment, ideally
cys_start &lt;- 310
cys_end &lt;- 312
# If there is any insertion in the read, Cys coordinates will be shifted in the alignment
v_ins &lt;- unlist(deletion(v_alignment2)) # IRanges with V insertions
alg_cys_start &lt;- cys_start + sum(width(v_ins[start(v_ins) &lt;= cys_start])) # Cys start in alignment
alg_cys_end &lt;- cys_end + sum(width(v_ins[start(v_ins) &lt;= cys_end])) # Cys end in alignment
message(alg_cys_start, &quot; &quot;, alg_cys_end)
# Find Cys coordinates in the read
v_del &lt;- unlist(insertion(v_alignment2)) # IRanges with deletions in subject (mostly IMGT gaps)
print(v_del)
num_v_del &lt;- length(v_del) # Number of deletions (of any length)
shift &lt;- c(0, cumsum(width(v_del))[-num_v_del])
v_del_sft &lt;- shift(v_del, shift) # Fix coordinates
subject_gaps &lt;- sum(width(v_del_sft[end(v_del_sft) &lt; alg_cys_start])) + nchar(str_extract(alignedSubject(v_alignment2), &quot;^-*&quot;)) # Number of gaps in subject before Cys in the alignment. The &quot;nchar&quot; term takes into account the gaps at the beginning of the subject, which are not considered by the &quot;insertion&quot; function.
read_cys_start &lt;- v_start + alg_cys_start - subject_gaps -1 # Cys start in the read
message(read_cys_start)
# Get aligned Cys sequences in pattern and subject
cys_subject &lt;- subseq(alignedSubject(v_alignment2), start = alg_cys_start, end = alg_cys_end) # Cys sequence in subject
message(cys_subject)
gap_subject &lt;- unlist(gregexpr(pattern = &quot;-&quot;, text = cys_subject)) # Gap position in subject (deletion), if any
cys_pattern &lt;- subseq(alignedPattern(v_alignment2), start = alg_cys_start, end = alg_cys_end) # Cys sequence in pattern
gap_pattern &lt;- unlist(gregexpr(pattern = &quot;-&quot;, text = cys_pattern)) # Gap position in pattern (insertion), if any
# Check Cys sequence in subject
if (cys_subject %in% c(&quot;TGT&quot;, &quot;TGC&quot;)) { # Cys codon found
cys_check &lt;- TRUE
if (cys_subject == cys_pattern) { # Same Cys codon in pattern and subject
cys_status &lt;- &quot;Match&quot;
} else { # Different Cys codon in pattern and subject
cys_status &lt;- paste0(&quot;Pseudomatch (&quot;, cys_pattern,&quot; &gt; &quot;, cys_subject, &quot;)&quot;)
}
} else if (all(gap_pattern &gt; 0)) { # Insertion in subject, fix it by removing it
cys_status &lt;- paste0(&quot;Insertion (&quot;, cys_pattern,&quot; &gt; &quot;, cys_subject, &quot;), removed&quot;)
read_ins_pos &lt;- read_cys_start + as.numeric(gap_pattern) -1 # Insertion position in read
# Delete insertion in read
fix_read &lt;- as.character(read)
fix_qual &lt;- quality(read)
stringr::str_sub(fix_read, read_ins_pos[1], read_ins_pos[length(read_ins_pos)]) &lt;- &quot;&quot; # Remove Cys insertion in the read
stringr::str_sub(fix_qual, read_ins_pos[1], read_ins_pos[length(read_ins_pos)]) &lt;- &quot;&quot; # Remove Cys insertion in the quality string
fix_qual &lt;- as(fix_qual, new.quality.class) # Convert to PhredQuality class
read_id &lt;- names(read)
read &lt;- QualityScaledDNAStringSet(fix_read, fix_qual) # Rebuild QualityScaledDNAStringSet without Cys insertion
names(read) &lt;- read_id
cys_codon &lt;- subseq(read, start = read_cys_start, end = read_cys_start + 2)
cys_check &lt;- ifelse(cys_codon %in% c(&quot;TGT&quot;, &quot;TGC&quot;), TRUE, FALSE)
} else if (all(gap_subject &gt; 0)) { # Deletion in subject
cys_status &lt;- paste0(&quot;Deletion (&quot;, cys_pattern,&quot; &gt; &quot;, cys_subject, &quot;)&quot;)
cys_check &lt;- FALSE
} else { # Mismatch
cys_status &lt;- paste0(&quot;Mismatch (&quot;, cys_pattern,&quot; &gt; &quot;, cys_subject, &quot;)&quot;)
cys_check &lt;- FALSE
}
#########################################
############## J ALIGNMENT ##############
#########################################
### Remove V match from the read
remaining &lt;- subseq(read, start = read_cys_start + 3) # Align J from Cys codon (not included)
### Perform 16 J alignments and get the score only
j_alignment1 &lt;- pairwiseAlignment(pattern = Jsegments,
subject = remaining,
type = &quot;global-local&quot;,
scoreOnly = TRUE,
gapOpening = gapOpening)
### Select the segment with the best score
best_j &lt;- Jsegments[which.max(j_alignment1)]
j_match &lt;- names(best_j)
### Perform a complete pairwise alignment with the best match
j_alignment2 &lt;- pairwiseAlignment(pattern = best_j,
subject = remaining,
type = &quot;global-local&quot;,
scoreOnly = FALSE,
gapOpening = gapOpening)
### Get J alignment information
j_score &lt;- score(j_alignment2)
j_identity &lt;- pid(j_alignment2, type = &quot;PID3&quot;)
j_start &lt;- start(Views(j_alignment2)) + read_cys_start + 2 # Get the coordinates **in the read**, not in the sequence without the V match
j_end &lt;- end(Views(j_alignment2)) + read_cys_start + 2
### Check if the first codon is a Phe
phe_codon &lt;- subseq(read, start = j_start, end = j_start + 2)
phe_check &lt;- phe_codon %in% c(&quot;TTT&quot;, &quot;TTC&quot;)
#########################################
############## HVR LOCATION #############
#########################################
### Get HVR sequence and sequencing quality
HVR &lt;- subseq(read, start = read_cys_start, end = j_start + 2)
HVR_seq &lt;- as.character(HVR)
HVR_qual &lt;- as.character(quality(HVR))
# Find out HVR frame (0: Cys and Phe in frame; 1 OR 2: out of frame)
HVR_frame &lt;- nchar(HVR_seq) %% 3
if (HVR_frame != 0) { # If the remainder is 1, frame = 2 and viceversa
HVR_frame &lt;- ifelse(HVR_frame == 1, 2, 1)
}
}
#########################################
################# OUTPUT ################
#########################################
df &lt;- data.frame(
read_ID = read_id,
read_length = width(read),
V_match = v_match,
V_score = v_score,
V_identity = v_identity,
V_start = v_start,
Cys_check = cys_check,
Cys_status = cys_status,
J_match = j_match,
J_score = j_score,
J_identity = j_identity,
J_end = j_end,
Phe_check = phe_check,
HVR_start = read_cys_start,
HVR_end = j_start + 2,
HVR_sequence = HVR_seq,
HVR_quality = HVR_qual,
HVR_frame = HVR_frame
) %&gt;% mutate(read_ID = as.character(read_ID),
V_match = as.character(V_match),
J_match = as.character(J_match),
Cys_status = as.character(Cys_status),
HVR_sequence = as.character(HVR_sequence),
HVR_quality = as.character(HVR_quality))
return(df)
}))
}</code></pre>
</div>
<div id="run-alignment" class="section level2">
<h2><span class="header-section-number">1.2</span> Run alignment</h2>
<p>Load input:</p>
<ul>
<li><code>v_segments</code> and <code>j_segments</code>: both are <code>DNAStringset</code> that contains the reference sequences for V (147 sequences: all 64 segments + alleles) and J segments (16 sequences).</li>
<li><code>examples</code>: <code>QualityScaledDNAStringSet</code> that contains three example reads and their sequencing qualities. The reads have been previously reverse-complemented (<strong>!!!</strong>).</li>
</ul>
<pre class="r"><code>###############################################################################################
####################### CONVERT .fastq TO QualityScaledDNAStringSet ###########################
###############################################################################################
# curesim_fq &lt;- ShortRead::readFastq(&quot;software/CuReSim/output/00_first_test.fastq&quot;) # Read .fq file and store in a ShortReadQ class object
# reads_sim &lt;- ShortRead::sread(curesim_fq) # DNAStringSet with the reads
# quality_sim &lt;- quality(curesim_fq) # BStringSet with the sequencing qualities
#
# new.quality.class &lt;- switch(class(quality_sim), # Convert from BStringSet to XStringQuality
# SFastqQuality=&quot;SolexaQuality&quot;,
# FastqQuality=&quot;PhredQuality&quot;,
# &quot;XStringQuality&quot;)
# quality_sim &lt;- as(quality_sim, new.quality.class)
#
# sample_sim &lt;- QualityScaledDNAStringSet(reads_sim, quality_sim) # Get QualityScaledDNAStringSet to use as a pairwiseAlignment input
# names(sample_sim) &lt;- as.character(curesim_fq@id) # Character vector with the reads IDs
#
# sample_sim_rc &lt;- reverseComplement(sample_sim) # V-CDR3-J</code></pre>
<p>(<strong>!!!</strong>) ImmuneSIM-generated reads have the following structure: V-CDR3-J. To mimic the sequencing process of our collaborators, before CuReSim, reads need to be reverse-complemented (J-CDR3-V), so that CDR3 lies at the beginning of the read, where sequencing quality is better. However, to perform V and J alignment, the reads must be reverse-complemented again (V-CDR3-J) for the alignment to perform correctly. Reverse complement can be performed with <code>Biostrings::reverseComplement()</code> function.</p>
<pre class="r"><code># Load reference sequences (Class: DNAStringSet)
v_segments &lt;- readRDS(&quot;v_segments.rds&quot;)
j_segments &lt;- readRDS(&quot;j_segments_phe.rds&quot;)
# Load sample (Class: QualityScaledDNAStringSet)
examples &lt;- readRDS(&quot;example_reads.rds&quot;)</code></pre>
<pre class="r"><code># Run alignment
start_time &lt;- Sys.time()
vj_alg &lt;- vj_alignment(reads = examples,
Vsegments = v_segments,
Jsegments = j_segments,
numCores = detectCores() - 4) ### Alignment parallelization (alignment of 1 read vs all reference sequences per thread)
end_time &lt;- Sys.time()</code></pre>
<pre class="r"><code># Show results
DT::datatable(vj_alg,
class = 'nowrap compact order-column',
extensions = c('Buttons', 'FixedColumns'),
options = list(dom = 'Bfrtip',
buttons = c('csv', 'excel'),
scrollX = TRUE,
fixedColumns = TRUE))</code></pre>
<div id="htmlwidget-717e4d27a18c627a7a12" style="width:100%;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-717e4d27a18c627a7a12">{"x":{"filter":"none","extensions":["Buttons","FixedColumns"],"data":[["1","2","3"],["RCCGR:00688:05792","RCCGR:00678:05813","RCCGR:00686:05941"],[445,475,447],["TRBV27*01_F","TRBV7-8*03_(F)","TRBV27*01_F"],[528.408630371094,500.778503417969,541.732177734375],[97.9094076655052,97.5694444444444,98.6062717770035],[56,78,54],[true,true,true],["Match","Match","Match"],["TRBJ2-2*01_F","TRBJ2-6*01_F","TRBJ2-2*01_F"],[61.562313079834,61.5678253173828,61.6492309570312],[100,100,100],[392,422,394],[true,true,true],[326,353,324],[364,394,366],["TGTGCCAGCAGTCCCTCGAACACCGGGGAGCTGTTTTTT","TGTGCCAGCAGACAGGGCACTGGGGCCTACGTCCTGACTTTC","TGTGCCAGCAGTCCCAGCGGGGGGGCCCGGGGAGCTGTTTTTT"],[":???&gt;AA@?;:;5ABA@@&lt;AB@=A9FFEDCAA;%;;;;;",":::;7&lt;&lt;&lt;&lt;569==6&gt;=====2@@G&lt;==699&gt;9&lt;&lt;=&lt;=6&gt;;@","@ACC?@?@&gt;:9:8@89:4\";;;;;;)@@2AAA@&lt;444%;;;;;"],[0,0,2]],"container":"<table class=\"nowrap compact order-column\">\n <thead>\n <tr>\n <th> <\/th>\n <th>read_ID<\/th>\n <th>read_length<\/th>\n <th>V_match<\/th>\n <th>V_score<\/th>\n <th>V_identity<\/th>\n <th>V_start<\/th>\n <th>Cys_check<\/th>\n <th>Cys_status<\/th>\n <th>J_match<\/th>\n <th>J_score<\/th>\n <th>J_identity<\/th>\n <th>J_end<\/th>\n <th>Phe_check<\/th>\n <th>HVR_start<\/th>\n <th>HVR_end<\/th>\n <th>HVR_sequence<\/th>\n <th>HVR_quality<\/th>\n <th>HVR_frame<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"dom":"Bfrtip","buttons":["csv","excel"],"scrollX":true,"fixedColumns":true,"columnDefs":[{"className":"dt-right","targets":[2,4,5,6,10,11,12,14,15,18]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
<pre class="r"><code>end_time - start_time</code></pre>
<pre><code>## Time difference of 2.013929 secs</code></pre>
</div>
</div>
<div id="alignment-visualization" class="section level1">
<h1><span class="header-section-number">2</span> Alignment visualization</h1>
<div id="vj_align_vis-function" class="section level2">
<h2><span class="header-section-number">2.1</span> <code>vj_align_vis</code> function</h2>
<pre class="r"><code>vj_align_vis &lt;- function(alignmentOutput, readsDSS, vseg = v_segments, jseg = j_segments, whichSegment, gapOpening = 1, seqLogo = FALSE, widgHeight = 100){
row &lt;- alignmentOutput
segment &lt;- paste0(whichSegment, &quot;_match&quot;)
read &lt;- readsDSS[row[1, &quot;read_ID&quot;]]
match &lt;- row[1, segment]
HVR_start &lt;- row[1, &quot;HVR_start&quot;]
if (whichSegment == &quot;V&quot;) {
best &lt;- vseg[match]
} else {
best &lt;- jseg[match]
read &lt;- subseq(read, start = HVR_start + 3)
}
alg &lt;- pairwiseAlignment(pattern = best,
subject = read,
type = &quot;global-local&quot;,
scoreOnly = FALSE,
gapOpening = gapOpening)
seq &lt;- DNAStringSet(c(alignedSubject(alg), alignedPattern(alg)))
widget &lt;- msaR(msa = seq,
overviewbox = FALSE,
seqlogo = seqLogo,
alignmentHeight = 100,
height = widgHeight)
return(widget)
}</code></pre>
</div>
<div id="visualize-alignments" class="section level2">
<h2><span class="header-section-number">2.2</span> Visualize alignments</h2>
<p>To easily see sequence conservation enable sequence logo (Vis.elements &gt; Show sequence logo).</p>
<pre class="r"><code>rownum &lt;- 1 # Row of the vj_alg dataframe to visualize</code></pre>
<p><strong>V alignment</strong></p>
<pre class="r"><code>vj_align_vis(alignmentOutput = vj_alg[rownum,],
readsDSS = examples,
whichSegment = &quot;V&quot;)</code></pre>
<div id="htmlwidget-0653b56eb9c9d8e35cf5" style="width:672px;height:100px;" class="msaR html-widget"></div>
<script type="application/json" data-for="htmlwidget-0653b56eb9c9d8e35cf5">{"x":{"alignment":">RCCGR:00688:05792\nGAAGCCCAAGTGACCCAGAACCCAAGATACCTCATCACAGTGACTGGAAAGAAGTTAACAGTGACTTGTTCTCAGAATATGAACCAT---------------------GAGTATATGTCCTGGTACCGACAAGACCCAGGGCTGGGCTTAAGGCAGATCTACTATTCAATGAAT------------GTTGAGGTGACTGATAAGGGAGATGTTCCT---GAAGGGTACAAAGTCTCTCGAAAA---GAGAGGAGGAATTTCCCCCTGATCCTGGAGTCGCCCAGCCCCAACCAGACCTCTCTGTACTTCTGTGCCAGCAG----TC\n>TRBV27*01_F\nGAAGCCCAAGTGACCCAGAACCCAAGATACCTCATCACAGTGACTGGAAAGAAGTTAACAGTGACTTGTTCTCAGAATATGAACCAT.....................GAGTATATGTCCTGGTATCGACAAGACCCAGGGCTGGGCTTAAGGCAGATCTACTATTCAATGAAT............GTTGAGGTGACTGATAAGGGAGATGTTCCT...GAAGGGTACAAAGTCTCTCGAAAA...GAGAAGAGGAATTTCCCCCTGATCCTGGAGTCGCCCAGCCCCAACCAGACCTCTCTGTACTTCTGTGCCAGCAGTTTATC","config":{"vis":{"conserv":false,"overviewbox":false,"seqlogo":false,"sequences":true,"markers":true,"metacell":false,"gapHeader":false,"leftHeader":true,"labels":true,"labelName":true,"labelId":true,"labelPartition":false,"labelCheckbox":false,"metaGaps":true,"metaIdentity":true,"metaLinks":true},"conf":{"dropImport":true,"registerMouseHover":false,"registerMouseClicks":true,"eventBus":true,"alphabetSize":20,"debug":false,"hasRef":false,"manualRendering":false},"colorscheme":{"scheme":"nucleotide","colorBackground":true,"showLowerCase":true,"opacity":0.6},"zoomer":{"menuFontsize":"12px","autoResize":true,"alignmentWidth":"auto","alignmentHeight":100,"columnWidth":15,"rowHeight":15,"textVisible":true,"labelIdLength":30,"labelNameLength":100,"labelPartLength":15,"labelCheckLength":15,"labelFontsize":13,"labelLineHeight":"13px","markerFontsize":"10px","stepSize":1,"markerStepSize":2,"markerHeight":20,"residueFont":"13","canvasEventScale":1,"boxRectHeight":2,"boxRectWidth":2,"overviewboxPaddingTop":10,"overviewboxWidth":"auto","overviewboxHeight":"fixed","metaGapWidth":35,"metaIdentWidth":40,"metaLinksWidth":25},"menu":{"menuFontsize":"14px","menuItemFontsize":"14px","menuItemLineHeight":"14px","menuMarginLeft":"3px","menuPadding":"3px 4px 3px 4px"}},"menu":true,"features":null},"evals":[],"jsHooks":[]}</script>
<p><strong>J alignment</strong></p>
<pre class="r"><code>vj_align_vis(alignmentOutput = vj_alg[rownum,],
readsDSS = examples,
whichSegment = &quot;J&quot;)</code></pre>
<div id="htmlwidget-8410e81190e96b99e6ab" style="width:672px;height:100px;" class="msaR html-widget"></div>
<script type="application/json" data-for="htmlwidget-8410e81190e96b99e6ab">{"x":{"alignment":">RCCGR:00688:05792\nTTTGGAGAAGGCTCTAGGCTGACCGTACTGG\n>TRBJ2-2*01_F\nTTTGGAGAAGGCTCTAGGCTGACCGTACTGG","config":{"vis":{"conserv":false,"overviewbox":false,"seqlogo":false,"sequences":true,"markers":true,"metacell":false,"gapHeader":false,"leftHeader":true,"labels":true,"labelName":true,"labelId":true,"labelPartition":false,"labelCheckbox":false,"metaGaps":true,"metaIdentity":true,"metaLinks":true},"conf":{"dropImport":true,"registerMouseHover":false,"registerMouseClicks":true,"eventBus":true,"alphabetSize":20,"debug":false,"hasRef":false,"manualRendering":false},"colorscheme":{"scheme":"nucleotide","colorBackground":true,"showLowerCase":true,"opacity":0.6},"zoomer":{"menuFontsize":"12px","autoResize":true,"alignmentWidth":"auto","alignmentHeight":100,"columnWidth":15,"rowHeight":15,"textVisible":true,"labelIdLength":30,"labelNameLength":100,"labelPartLength":15,"labelCheckLength":15,"labelFontsize":13,"labelLineHeight":"13px","markerFontsize":"10px","stepSize":1,"markerStepSize":2,"markerHeight":20,"residueFont":"13","canvasEventScale":1,"boxRectHeight":2,"boxRectWidth":2,"overviewboxPaddingTop":10,"overviewboxWidth":"auto","overviewboxHeight":"fixed","metaGapWidth":35,"metaIdentWidth":40,"metaLinksWidth":25},"menu":{"menuFontsize":"14px","menuItemFontsize":"14px","menuItemLineHeight":"14px","menuMarginLeft":"3px","menuPadding":"3px 4px 3px 4px"}},"menu":true,"features":null},"evals":[],"jsHooks":[]}</script>
<hr />
</div>
</div>
<div id="session-info" class="section level1">
<h1><span class="header-section-number">3</span> Session info</h1>
<pre class="r"><code>sessionInfo()</code></pre>
<pre><code>## R version 3.6.1 (2019-07-05)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 18.04.2 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats4 parallel stats graphics grDevices utils datasets
## [8] methods base
##
## other attached packages:
## [1] dplyr_1.0.2 stringr_1.4.0 msa_1.16.0
## [4] msaR_0.3.0 Biostrings_2.52.0 XVector_0.24.0
## [7] IRanges_2.18.3 S4Vectors_0.22.1 BiocGenerics_0.30.0
##
## loaded via a namespace (and not attached):
## [1] Rcpp_1.0.5 compiler_3.6.1 pillar_1.4.6 tools_3.6.1
## [5] zlibbioc_1.30.0 digest_0.6.27 jsonlite_1.7.1 evaluate_0.14
## [9] lifecycle_0.2.0 tibble_3.0.4 nlme_3.1-140 lattice_0.20-38
## [13] pkgconfig_2.0.3 rlang_0.4.8 crosstalk_1.1.0.1 yaml_2.2.1
## [17] xfun_0.19 knitr_1.30 generics_0.1.0 vctrs_0.3.4
## [21] htmlwidgets_1.5.2 grid_3.6.1 DT_0.16 tidyselect_1.1.0
## [25] glue_1.4.2 R6_2.5.0 rmarkdown_2.5 purrr_0.3.4
## [29] magrittr_1.5 htmltools_0.5.0 ellipsis_0.3.1 ape_5.4-1
## [33] stringi_1.5.3 crayon_1.3.4</code></pre>
</div>
</div>
</div>
</div>
<script>
// add bootstrap table styles to pandoc tables
function bootstrapStylePandocTables() {
$('tr.odd').parent('tbody').parent('table').addClass('table table-condensed');
}
$(document).ready(function () {
bootstrapStylePandocTables();
});
</script>
<!-- tabsets -->
<script>
$(document).ready(function () {
window.buildTabsets("TOC");
});
$(document).ready(function () {
$('.tabset-dropdown > .nav-tabs > li').click(function () {
$(this).parent().toggleClass('nav-tabs-open')
});
});
</script>
<!-- code folding -->
<script>
$(document).ready(function () {
window.initializeCodeFolding("show" === "show");
});
</script>
<script>
$(document).ready(function () {
// move toc-ignore selectors from section div to header
$('div.section.toc-ignore')
.removeClass('toc-ignore')
.children('h1,h2,h3,h4,h5').addClass('toc-ignore');
// establish options
var options = {
selectors: "h1,h2,h3",
theme: "bootstrap3",
context: '.toc-content',
hashGenerator: function (text) {
return text.replace(/[.\\/?&!#<>]/g, '').replace(/\s/g, '_');
},
ignoreSelector: ".toc-ignore",
scrollTo: 0
};
options.showAndHide = false;
options.smoothScroll = true;
// tocify
var toc = $("#TOC").tocify(options).data("toc-tocify");
});
</script>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</body>
</html>