栄養成分表示メーカー|お菓子の栄養成分表示が無料で作れるツール X Facebook はてブ Pocket LINE コピー 2026.06.162026.06.19 ← トップページへ戻る PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImphIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+5qCE6aSK5oiQ5YiG6KGo56S644Oh44O844Kr44O8772c5Y6f5p2Q5paZ44GL44KJ6Ieq5YuV6KiI566XPC90aXRsZT4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1aZW4rTWFydStHb3RoaWM6d2dodEA0MDA7NTAwOzcwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CjxzdHlsZT4KICA6cm9vdHsKICAgIC0tY3JlYW06I0ZCRjZFQTsgLS1jcmVhbTI6I0ZGRkRGNzsgLS1iZWlnZTojRUZFNkQ1OyAtLWJlaWdlMjojRTNENUJEOwogICAgLS1icm93bjojNDUzNDJBOyAtLWJyb3duMjojNmI1ODRhOyAtLWJyb3duMzojOGE3NzY2OwogICAgLS1hbWJlcjojRTlCOTQ5OyAtLWFtYmVyLWQ6I0M5OUExRjsKICAgIC0tZ3JlZW46IzVFN0M0QTsgLS1ncmVlbi1kOiM0NjVjMzg7IC0tZ3JlZW4tYmc6I0VGRjNFQTsKICAgIC0tcmVkOiNCMDUzM0Y7CiAgfQogICp7Ym94LXNpemluZzpib3JkZXItYm94fQogIGJvZHl7CiAgICBtYXJnaW46MDsgcGFkZGluZzoxNnB4OwogICAgZm9udC1mYW1pbHk6J1plbiBNYXJ1IEdvdGhpYycsJ0hpcmFnaW5vIE1hcnUgR290aGljIFByb04nLCdIaXJhZ2lubyBTYW5zJyxzYW5zLXNlcmlmOwogICAgY29sb3I6dmFyKC0tYnJvd24pOyBiYWNrZ3JvdW5kOnZhcigtLWNyZWFtKTsgbGluZS1oZWlnaHQ6MS43OwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDsKICB9CiAgLndyYXB7bWF4LXdpZHRoOjY4MHB4OyBtYXJnaW46MCBhdXRvfQogIC5oZXJvewogICAgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQ6dmFyKC0tY3JlYW0yKTsgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1iZWlnZTIpOwogICAgYm9yZGVyLXJhZGl1czoxNnB4OyBwYWRkaW5nOjIycHggMThweDsgbWFyZ2luLWJvdHRvbToxOHB4OwogIH0KICAuaGVybyAuZXllYnJvd3tsZXR0ZXItc3BhY2luZzouMThlbTsgZm9udC1zaXplOjExcHg7IGNvbG9yOnZhcigtLWdyZWVuLWQpOyBmb250LXdlaWdodDo3MDB9CiAgLmhlcm8gaDF7Zm9udC1zaXplOjI0cHg7IG1hcmdpbjo2cHggMCA4cHg7IGNvbG9yOnZhcigtLWJyb3duKX0KICAuaGVybyBwe2ZvbnQtc2l6ZToxM3B4OyBjb2xvcjp2YXIoLS1icm93bjIpOyBtYXJnaW46MH0KICAuY2FyZHsKICAgIGJhY2tncm91bmQ6dmFyKC0tY3JlYW0yKTsgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1iZWlnZTIpOwogICAgYm9yZGVyLXJhZGl1czoxNnB4OyBwYWRkaW5nOjE4cHg7IG1hcmdpbi1ib3R0b206MTZweDsKICB9CiAgLmNhcmQgaDJ7CiAgICBmb250LXNpemU6MTdweDsgbWFyZ2luOjAgMCAxMnB4OyBjb2xvcjp2YXIoLS1ncmVlbi1kKTsKICAgIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6OHB4OwogIH0KICAuY2FyZCBoMiAuZG90e3dpZHRoOjEwcHg7IGhlaWdodDoxMHB4OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDp2YXIoLS1hbWJlcik7IGRpc3BsYXk6aW5saW5lLWJsb2NrfQogIC5ub3RlewogICAgYmFja2dyb3VuZDp2YXIoLS1ncmVlbi1iZyk7IGJvcmRlci1sZWZ0OjRweCBzb2xpZCB2YXIoLS1ncmVlbik7CiAgICBib3JkZXItcmFkaXVzOjhweDsgcGFkZGluZzoxMHB4IDEycHg7IGZvbnQtc2l6ZToxM3B4OyBjb2xvcjp2YXIoLS1ncmVlbi1kKTsgbWFyZ2luOjEwcHggMDsKICB9CiAgLndhcm57CiAgICBiYWNrZ3JvdW5kOiNGREYxRUM7IGJvcmRlci1sZWZ0OjRweCBzb2xpZCB2YXIoLS1yZWQpOwogICAgYm9yZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MTBweCAxMnB4OyBmb250LXNpemU6MTNweDsgY29sb3I6IzdhM2EyYzsgbWFyZ2luOjEwcHggMDsKICB9CiAgdWwucnVsZXN7bWFyZ2luOjhweCAwIDA7IHBhZGRpbmctbGVmdDoxOHB4OyBmb250LXNpemU6MTMuNXB4OyBjb2xvcjp2YXIoLS1icm93bjIpfQogIHVsLnJ1bGVzIGxpe21hcmdpbi1ib3R0b206NnB4fQogIC5pbmctcm93ewogICAgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDg0cHggMzBweDsgZ2FwOjhweDsgYWxpZ24taXRlbXM6Y2VudGVyOwogICAgbWFyZ2luLWJvdHRvbTo4cHg7CiAgfQogIHNlbGVjdCwgaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1udW1iZXJdewogICAgd2lkdGg6MTAwJTsgZm9udC1mYW1pbHk6aW5oZXJpdDsgZm9udC1zaXplOjE0cHg7IGNvbG9yOnZhcigtLWJyb3duKTsKICAgIGJhY2tncm91bmQ6I2ZmZjsgYm9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWJlaWdlMik7IGJvcmRlci1yYWRpdXM6MTBweDsKICAgIHBhZGRpbmc6OXB4IDEwcHg7CiAgfQogIGlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjojYjZhNDhkfQogIC51bml0LWd7Zm9udC1zaXplOjEycHg7IGNvbG9yOnZhcigtLWJyb3duMyk7IHRleHQtYWxpZ246Y2VudGVyfQogIC5kZWx7CiAgICBib3JkZXI6bm9uZTsgYmFja2dyb3VuZDp2YXIoLS1iZWlnZSk7IGNvbG9yOnZhcigtLWJyb3duMik7IGJvcmRlci1yYWRpdXM6NTAlOwogICAgd2lkdGg6MjhweDsgaGVpZ2h0OjI4cHg7IGN1cnNvcjpwb2ludGVyOyBmb250LXNpemU6MTVweDsgbGluZS1oZWlnaHQ6MTsKICB9CiAgLmRlbDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXJlZCk7IGNvbG9yOiNmZmZ9CiAgLnJvdy1oZWFkewogICAgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDg0cHggMzBweDsgZ2FwOjhweDsKICAgIGZvbnQtc2l6ZToxMS41cHg7IGNvbG9yOnZhcigtLWJyb3duMyk7IG1hcmdpbi1ib3R0b206NHB4OyBwYWRkaW5nOjAgMnB4OwogIH0KICAuYnRuewogICAgZm9udC1mYW1pbHk6aW5oZXJpdDsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjk5OXB4OwogICAgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MTRweDsgcGFkZGluZzoxMXB4IDE4cHg7CiAgfQogIC5idG4tYWRke2JhY2tncm91bmQ6dmFyKC0tYmVpZ2UyKTsgY29sb3I6dmFyKC0tYnJvd24pfQogIC5idG4tYWRkOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYW1iZXIpOyBjb2xvcjojZmZmfQogIC5idG4tbWFpbntiYWNrZ3JvdW5kOnZhcigtLWdyZWVuKTsgY29sb3I6I2ZmZjsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjE2cHg7IHBhZGRpbmc6MTRweH0KICAuYnRuLW1haW46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1ncmVlbi1kKX0KICAuYnRuLWNvcHl7YmFja2dyb3VuZDp2YXIoLS1hbWJlcik7IGNvbG9yOiNmZmZ9CiAgLmJ0bi1jb3B5OmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYW1iZXItZCl9CiAgLmZpZWxkc2V0e21hcmdpbi10b3A6MTRweH0KICAuZmllbGRzZXQgbGFiZWwucSwgLmdyaWQyIGxhYmVsLnF7ZGlzcGxheTpibG9jazsgZm9udC1zaXplOjEzLjVweDsgZm9udC13ZWlnaHQ6NTAwOyBtYXJnaW4tYm90dG9tOjVweDsgY29sb3I6dmFyKC0tYnJvd24pfQogIC5zbWFsbHtmb250LXNpemU6MTJweDsgY29sb3I6dmFyKC0tYnJvd24zKX0KICAuZ3JpZDJ7ZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjsgZ2FwOjEycHh9CiAgLnJhZGlvc3tkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBnYXA6OHB4OyBtYXJnaW4tdG9wOjRweH0KICAucmFkaW9zIGxhYmVsewogICAgYm9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWJlaWdlMik7IGJhY2tncm91bmQ6I2ZmZjsgYm9yZGVyLXJhZGl1czo5OTlweDsKICAgIHBhZGRpbmc6N3B4IDE0cHg7IGZvbnQtc2l6ZToxM3B4OyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6dmFyKC0tYnJvd24yKTsKICB9CiAgLnJhZGlvcyBpbnB1dHtkaXNwbGF5Om5vbmV9CiAgLnJhZGlvcyBpbnB1dDpjaGVja2VkICsgc3Bhbntjb2xvcjp2YXIoLS1ncmVlbi1kKTsgZm9udC13ZWlnaHQ6NzAwfQogIC5yYWRpb3MgbGFiZWw6aGFzKGlucHV0OmNoZWNrZWQpe2JvcmRlci1jb2xvcjp2YXIoLS1ncmVlbik7IGJhY2tncm91bmQ6dmFyKC0tZ3JlZW4tYmcpfQogICNyZXN1bHR7ZGlzcGxheTpub25lOyBtYXJnaW4tdG9wOjZweH0KICAubmxhYmVsewogICAgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6Mi41cHggc29saWQgdmFyKC0tYnJvd24pOyBib3JkZXItcmFkaXVzOjZweDsKICAgIG1heC13aWR0aDozMjBweDsgbWFyZ2luOjZweCBhdXRvIDEycHg7IHBhZGRpbmc6MDsgZm9udC1mYW1pbHk6J0hpcmFnaW5vIFNhbnMnLCdZdSBHb3RoaWMnLHNhbnMtc2VyaWY7CiAgICBjb2xvcjojMjIyOwogIH0KICAubmxhYmVsIC5ubC10aXRsZXsKICAgIHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxNXB4OyBwYWRkaW5nOjhweCA2cHggNnB4OwogICAgYm9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tYnJvd24pOwogIH0KICAubmxhYmVsIC5ubC1zdWJ7Zm9udC1zaXplOjExcHg7IGZvbnQtd2VpZ2h0OjQwMDsgY29sb3I6IzU1NTsgZGlzcGxheTpibG9jazsgbWFyZ2luLXRvcDoycHh9CiAgLm5sYWJlbCB0YWJsZXt3aWR0aDoxMDAlOyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IGZvbnQtc2l6ZToxNHB4fQogIC5ubGFiZWwgdGR7cGFkZGluZzo3cHggMTJweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY30KICAubmxhYmVsIHRyOmxhc3QtY2hpbGQgdGR7Ym9yZGVyLWJvdHRvbTpub25lfQogIC5ubGFiZWwgdGQudmFse3RleHQtYWxpZ246cmlnaHQ7IGZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30KICAubmxhYmVsIHRyLmVuZXJneSB0ZHtmb250LXdlaWdodDo3MDB9CiAgLmVzdGltYXRle3RleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MTEuNXB4OyBjb2xvcjp2YXIoLS1icm93bjMpOyBtYXJnaW46LTRweCAwIDEycHh9CiAgLmNvcHliYXJ7dGV4dC1hbGlnbjpjZW50ZXJ9CiAgLnRvdGFsaW5mb3tmb250LXNpemU6MTIuNXB4OyBjb2xvcjp2YXIoLS1icm93bjIpOyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWJvdHRvbTo2cHh9CiAgLmVycntjb2xvcjp2YXIoLS1yZWQpOyBmb250LXNpemU6MTNweDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6OHB4fQogIGZvb3Rlcnt0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjExcHg7IGNvbG9yOnZhcigtLWJyb3duMyk7IG1hcmdpbjoxOHB4IDAgNnB4fQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IGNsYXNzPSJ3cmFwIj4KCiAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICA8aDI+PHNwYW4gY2xhc3M9ImRvdCI+PC9zcGFuPuaghOmkiuaIkOWIhuihqOekuuOBruWfuuacrOODq+ODvOODqzwvaDI+CiAgICA8cCBzdHlsZT0iZm9udC1zaXplOjE0cHg7IG1hcmdpbjowIDAgNHB4Ij7ooajnpLrjgYznvqnli5njgaXjgZHjgonjgozjgabjgYTjgovjga7jga/jgIHmrKHjga48c3Ryb25nPjXpoIXnm648L3N0cm9uZz7jgII8c3Ryb25nPuOBk+OBrumghueVqjwvc3Ryb25nPuOBp+abuOOBjeOBvuOBmeOAgjwvcD4KICAgIDx1bCBjbGFzcz0icnVsZXMiPgogICAgICA8bGk+54ax6YeP77yIa2NhbO+8iTwvbGk+CiAgICAgIDxsaT7jgZ/jgpPjgbHjgY/os6rvvIhn77yJPC9saT4KICAgICAgPGxpPuiEguizqu+8iGfvvIk8L2xpPgogICAgICA8bGk+54Kt5rC05YyW54mp77yIZ++8iTwvbGk+CiAgICAgIDxsaT7po5/loannm7jlvZPph4/vvIhn77yJ44CA4oC744OK44OI44Oq44Km44Og44Gn44Gv44Gq44GP44CM6aOf5aGp55u45b2T6YeP44CN44Gn6KGo56S644GX44G+44GZPC9saT4KICAgIDwvdWw+CiAgICA8ZGl2IGNsYXNzPSJub3RlIj4KICAgICAg6KGo56S644Gv44CMMeWAi+OBguOBn+OCiuOAjeOAjDEwMGfjgYLjgZ/jgorjgI3jgarjgak8c3Ryb25nPuWNmOS9jeOCkuW/heOBmuaxuuOCgeOBpjwvc3Ryb25nPuabuOOBjeOBvuOBmeOAgjxicj4KICAgICAg5YCk44Gv44CB5YWs55qE44Gq5YiG5p6Q44Gu44G744GL44CM5ZCI55CG55qE44Gq5o6o5a6a5YCk44CN44Gn44KCT0vjgILmiYvkvZzjgorjgYroj5PlrZDjgafjga/miJDliIbooajjgYvjgonjga7mjqjlrprjgYznj77lrp/nmoTjgafjgIHjgZ3jga7loLTlkIjjga88c3Ryb25nPuOAjOaOqOWumuWApOOAjeOBqOaYjuiomDwvc3Ryb25nPuOBl+OBvuOBme+8iOOBk+OBruODhOODvOODq+OBruWHuuWKm+OBq+OCguiHquWLleOBp+WFpeOCiuOBvuOBme+8ieOAggogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ3YXJuIj4KICAgICAg44GT44Gu44OE44O844Or44GvPHN0cm9uZz7ml6XmnKzpo5/lk4HmqJnmupbmiJDliIbooajvvIjlhavoqILvvInjgpLjgoLjgajjgavjgZfjgZ/mpoLnrpc8L3N0cm9uZz7jgafjgZnjgILnhLzmiJDkuK3jga7msLTliIbokrjnmbrjgoTmnZDmlpnjg63jgrnjga/lj43mmKDjgZfjgY3jgozjgarjgYTjgZ/jgoHjgIHllYblk4HjgajjgZfjgabosqnlo7LjgZnjgovpmpvjga/mnIDntYLnmoTjgavjgZToh6rouqvjgafnorroqo3jgZfjgabjgY/jgaDjgZXjgYTjgIIKICAgIDwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgIDxoMj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+4pGgIOS9v+OBo+OBn+adkOaWmeOCkuWFpeOCjOOCizwvaDI+CiAgICA8ZGl2IGNsYXNzPSJ3YXJuIj4KICAgICAgPHN0cm9uZz7kvb/jgaPjgZ/mnZDmlpnjga/jgIzjgZnjgbnjgabjgI3lhaXjgozjgabjgY/jgaDjgZXjgYTvvIjmsLTjg7vniZvkubPjg7vjgYrphZLjgarjganjgoLlkKvjgoDvvInjgII8L3N0cm9uZz48YnI+CiAgICAgIOOBk+OBruODhOODvOODq+OBr+OAgeOBvuOBmuWFqOS9k+OBruWQiOioiOaghOmkiuOCkuWHuuOBl+OBpuOBi+OCieOAjDHlgIvjgYLjgZ/jgorjgI3jgIwxMDBn44GC44Gf44KK44CN44Gr5Ymy44KK5oi744GX44G+44GZ44CC44Gd44Gu44Gf44KB44CBPHN0cm9uZz7moITppIrjgYzjgrzjg63jga7msLTjgafjgoLlhaXjgozlv5jjgozjgovjgajnt4/ph43ph4/jgYzjgZrjgow8L3N0cm9uZz7jgIHjgajjgY/jgavjgIwxMDBn44GC44Gf44KK44CN44Gu5pWw5YCk44GM5a6f6Zqb44KI44KK5aSn44GN44GP5Ye644Gm44GX44G+44GE44G+44GZ44CC44Os44K344OU44Gr5L2/44Gj44Gf44KC44Gu44Gv5ryP44KM44Gq44GP5YWl5Yqb44GX44G+44GX44KH44GG44CCCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InJvdy1oZWFkIj48c3Bhbj7mnZDmlpk8L3NwYW4+PHNwYW4gc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj7liIbph48oZyk8L3NwYW4+PHNwYW4+PC9zcGFuPjwvZGl2PgogICAgPGRpdiBpZD0icm93cyI+PC9kaXY+CiAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWFkZCIgaWQ9ImFkZEJ0biI+77yLIOadkOaWmeOCkui/veWKoDwvYnV0dG9uPgogICAgPHAgY2xhc3M9InNtYWxsIiBzdHlsZT0ibWFyZ2luLXRvcDo4cHgiPuODquOCueODiOOBq+OBquOBhOadkOaWmeOBr+OAjOOBneOBruS7lu+8iOaJi+WFpeWKm++8ieOAjeOCkumBuOOBtuOBqOOAgTEwMGfjgYLjgZ/jgorjga7miJDliIbjgpLnm7TmjqXlhaXlipvjgafjgY3jgb7jgZnjgII8L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImNhcmQiIGlkPSJjb25uZWN0Ij4KICAgIDxoMj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+44GK6I+T5a2Q44Gu6aOf5ZOB6KGo56S644Op44OZ44Or44Oh44O844Kr44O844Go6YCj5pC677yI5Lu75oSP77yJPC9oMj4KICAgIDxwIGNsYXNzPSJzbWFsbCIgc3R5bGU9Im1hcmdpbjotNHB4IDAgOHB4Ij7jgYroj5PlrZDjga7po5/lk4HooajnpLrjg6njg5njg6vjg6Hjg7zjgqvjg7zvvIjkuIDmi6zooajnpLrvvInjgaflhaXjgozjgZ/mnZDmlpnvvJ3ph43jgZXjgpLjgZ3jga7jgb7jgb7lj5bjgorovrzjgoHjgb7jgZnjgILmoITppIrjgaDjgZHkvb/jgYbmlrnjga/jgZPjga7mrITjga/nhKHoppbjgZfjgaZPS+OAgjwvcD4KICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tYWRkIiBpZD0ic2VuZEJ0biI+44GT44Gu5p2Q5paZ44KS44GK6I+T5a2Q44Gu6aOf5ZOB6KGo56S644Op44OZ44Or44Oh44O844Kr44O844G46YCB44KL77yI44Kz44OU44O877yJPC9idXR0b24+CiAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjZweCI+PGEgaHJlZj0iaHR0cHM6Ly9yaWlseXJlc2luLmNvbS9va2FzaGktbGFiZWwtbWFrZXIvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLWdyZWVuLWQpO2ZvbnQtd2VpZ2h0OjcwMCI+4oaSIOOBiuiPk+WtkOOBrumjn+WTgeihqOekuuODqeODmeODq+ODoeODvOOCq+ODvOOCkuaWsOOBl+OBhOOCv+ODluOBp+mWi+OBjzwvYT48L2Rpdj4KICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MTBweCI+CiAgICAgIDxkaXYgY2xhc3M9InNtYWxsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTo0cHgiPuOBiuiPk+WtkOOBrumjn+WTgeihqOekuuODqeODmeODq+ODoeODvOOCq+ODvOOBp+OCs+ODlOODvOOBl+OBn+WGheWuueOCkuiyvOOCiuS7mOOBkeOBpuWPluOCiui+vOOCgO+8mjwvZGl2PgogICAgICA8dGV4dGFyZWEgaWQ9ImltcG9ydEJveCIgcGxhY2Vob2xkZXI9IuOBk+OBk+OBq+iyvOOCiuS7mOOBkSIgc3R5bGU9IndpZHRoOjEwMCU7aGVpZ2h0OjU4cHg7Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWJlaWdlMik7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6OHB4O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tYnJvd24pIj48L3RleHRhcmVhPgogICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWFkZCIgaWQ9ImltcG9ydEJ0biIgc3R5bGU9Im1hcmdpbi10b3A6NnB4Ij7osrzjgorku5jjgZHjgZ/mnZDmlpnjgpLlj5bjgorovrzjgoA8L2J1dHRvbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ic21hbGwiIGlkPSJjb25uZWN0TXNnIiBzdHlsZT0ibWFyZ2luLXRvcDo2cHg7Y29sb3I6dmFyKC0tZ3JlZW4tZCkiPjwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgIDxoMj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+4pGhIOWHuuadpeS4iuOBjOOCiuOBruaDheWgsTwvaDI+CiAgICA8ZGl2IGNsYXNzPSJncmlkMiI+CiAgICAgIDxkaXY+CiAgICAgICAgPGxhYmVsIGNsYXNzPSJxIj7lh7rmnaXkuIrjgYzjgorjga7lgIvmlbA8L2xhYmVsPgogICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJwaWVjZXMiIG1pbj0iMSIgc3RlcD0iMSIgcGxhY2Vob2xkZXI9IuS+i++8mjEyIiB2YWx1ZT0iIj4KICAgICAgICA8c3BhbiBjbGFzcz0ic21hbGwiPuS9leWAi++8iOS9leaemu+8ieOBp+OBjeOBvuOBmeOBi++8nzwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXY+CiAgICAgICAgPGxhYmVsIGNsYXNzPSJxIj7nhLzjgY3kuIrjgYzjgorlvozjga7nt4/ph43ph48oZyk8c3BhbiBjbGFzcz0ic21hbGwiPu+8j+S7u+aEjzwvc3Bhbj48L2xhYmVsPgogICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJmaW53ZWlnaHQiIG1pbj0iMSIgc3RlcD0iMSIgcGxhY2Vob2xkZXI9IuS+i++8mjM2MCI+CiAgICAgICAgPHNwYW4gY2xhc3M9InNtYWxsIj7nhLzjgYTjgabmsLTliIbjgYzpo5vjgbbjgYroj5PlrZDjga/jgZPjgaHjgonjgpLlhaXlipvjgILnqbrmrITjgarjgonmnZDmlpnjga7lkIjoqIjph43ph4/jgafoqIjnrpfjgZfjgb7jgZnjgII8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmaWVsZHNldCI+CiAgICAgIDxsYWJlbCBjbGFzcz0icSI+44Gp44Gu5Y2Y5L2N44Gn6KGo56S644GZ44KL77yfPC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0icmFkaW9zIiBpZD0idW5pdFJhZGlvcyI+CiAgICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0idW5pdCIgdmFsdWU9InBpZWNlIiBjaGVja2VkPjxzcGFuPjHlgIvjgYLjgZ/jgoo8L3NwYW4+PC9sYWJlbD4KICAgICAgICA8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ1bml0IiB2YWx1ZT0iMTAwZyI+PHNwYW4+MTAwZ+OBguOBn+OCijwvc3Bhbj48L2xhYmVsPgogICAgICAgIDxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InVuaXQiIHZhbHVlPSJ0b3RhbCI+PHNwYW4+5YWo6YePKDHooosp44GC44Gf44KKPC9zcGFuPjwvbGFiZWw+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbWFpbiIgaWQ9ImNhbGNCdG4iPuaghOmkiuaIkOWIhuihqOekuuOCkuS9nOOCizwvYnV0dG9uPgogIDxkaXYgY2xhc3M9ImVyciIgaWQ9ImVyciI+PC9kaXY+CgogIDxkaXYgY2xhc3M9ImNhcmQiIGlkPSJyZXN1bHQiPgogICAgPGgyPjxzcGFuIGNsYXNzPSJkb3QiPjwvc3Bhbj7jgafjgY3jgYLjgYzjgaPjgZ/moITppIrmiJDliIbooajnpLo8L2gyPgogICAgPGRpdiBjbGFzcz0idG90YWxpbmZvIiBpZD0idG90YWxpbmZvIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im5sYWJlbCIgaWQ9Im5sYWJlbCI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJlc3RpbWF0ZSI+44GT44Gu6KGo56S65YCk44Gv5o6o5a6a5YCk44Gn44GZ44CCPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjb3B5YmFyIj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1jb3B5IiBpZD0iY29weUJ0biI+6KGo56S644OG44Kt44K544OI44KS44Kz44OU44O8PC9idXR0b24+CiAgICA8L2Rpdj4KICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MTRweDtwYWRkaW5nLXRvcDoxMnB4O2JvcmRlci10b3A6MXB4IGRhc2hlZCB2YXIoLS1iZWlnZTIpO3RleHQtYWxpZ246Y2VudGVyIj4KICAgICAgPGRpdiBjbGFzcz0ic21hbGwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjZweCI+5q2j56K644Gr6YeP44KL44Go44CB6KGo56S65YCk44KC44KI44KK5q2j56K644Gr44Gq44KK44G+44GZ77yIMC4xZ+WNmOS9jeOBjOOBiuOBmeOBmeOCge+8ieOAgjxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS1icm93bjMpIj7vvLtQUu+8vTwvc3Bhbj48L2Rpdj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9oYi5hZmwucmFrdXRlbi5jby5qcC9pY2hpYmEvMzg1NDUzMjMuNDhhNDkxYzcuMzg1NDUzMjQuZDQ5NGYzZTUvP3BjPWh0dHBzJTNBJTJGJTJGaXRlbS5yYWt1dGVuLmNvLmpwJTJGbGF0dW5hJTJGMTAwMDAwMDUlMkYiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IHNwb25zb3JlZCBub29wZW5lciIgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQ6I2JmMDAwMDtjb2xvcjojZmZmO3BhZGRpbmc6MTBweCAyMHB4O2JvcmRlci1yYWRpdXM6OHB4O3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjEzcHgiPuKalu+4jyAwLjFn57K+5a+G44Kt44OD44OB44Oz44K544Kx44O844Or44KS6KaL44KL77yI5qW95aSp77yJPC9hPgogICAgPC9kaXY+CiAgPC9kaXY+Cgo8L2Rpdj4KCjxzY3JpcHQ+Ci8vIDEwMGfjgYLjgZ/jgorvvJpb54ax6YePa2NhbCwg44Gf44KT44Gx44GP6LOqZywg6ISC6LOqZywg54Kt5rC05YyW54mpZywg6aOf5aGp55u45b2T6YePZ10KY29uc3QgQ0FUUz17CiLnsonpoZ4iOnsi6JaE5Yqb57KJIjpbMzQ5LDguMywxLjUsNzUuOCwwXSwi5by35Yqb57KJIjpbMzM3LDExLjgsMS41LDcxLjcsMF0sIuWFqOeykueyiSI6WzMyMCwxMi44LDIuOSw2OC4yLDBdLCLnsbPnsokiOlszNTYsNi4wLDAuNyw4MS45LDBdLCLjgqLjg7zjg6Ljg7Pjg4njg5fjg7zjg4njg6siOls2MDksMTkuNiw1MS44LDIwLjksMF0sIuOCs+OCs+OCouODkeOCpuODgOODvCI6WzM4NiwxOC41LDIxLjYsNDIuNCwwXSwi5oq56Iy2IjpbMjM3LDI5LjYsNS4zLDM5LjUsMF0sIuOCs+ODvOODs+OCueOCv+ODvOODgSI6WzM2MywwLjEsMC43LDg2LjMsMF0sIueJh+agl+eyiSI6WzMzOCwwLjEsMC4xLDgxLjYsMF0sIueZveeOieeyiSI6WzM0Nyw2LjMsMS4wLDgwLjAsMF0sIuS4iuaWsOeyiSI6WzM0Myw2LjIsMC45LDc4LjUsMF0sIuOCguOBoeeyiSI6WzM0Nyw2LjMsMS4wLDgwLjAsMF0sIuODqeOCpOm6pueyiSI6WzMyNCw4LjUsMS42LDc1LjgsMF0sIuODm+ODg+ODiOOCseODvOOCreODn+ODg+OCr+OCuSI6WzM2MCw3LjgsNC4wLDc0LjQsMS4wXSwi44GN44Gq44GTIjpbNDUxLDM2LjcsMjUuNywyOC41LDBdLCLjgqrjg7zjg4jjg5/jg7zjg6siOlszNTAsMTMuNyw1LjcsNjkuMSwwXX0sCiLmsrnohIIiOnsi44OQ44K/44O8IjpbNzAwLDAuNiw4MS4wLDAuMiwxLjldLCLnhKHloanjg5Djgr/jg7wiOls3MjAsMC41LDgzLjAsMC4yLDBdLCLjg57jg7zjgqzjg6rjg7MiOls3MTUsMC40LDc4LjksMC41LDEuM10sIuOCt+ODp+ODvOODiOODi+ODs+OCsCI6Wzg4OSwwLDk5LjksMCwwXSwi44K144Op44OA5rK5IjpbODg2LDAsMTAwLDAsMF0sIuexs+ayuSI6Wzg4NiwwLDEwMCwwLDBdLCLjgqrjg6rjg7zjg5bjgqrjgqTjg6siOls4OTQsMCwxMDAsMCwwXSwi44Kz44Kz44OK44OD44OE44Kq44Kk44OrIjpbODg5LDAsMTAwLDAsMF19LAoi56CC57OW44O755SY5ZGzIjp7IuegguezliI6WzM5MSwwLDAsOTkuMywwXSwi44Kw44Op44OL44Ol44O857OWIjpbMzk0LDAsMCwxMDAsMF0sIueyieezliI6WzM5MywwLDAsOTkuNywwXSwi44GN44Gz56CC57OWIjpbMzk2LDAuMSwwLDk4LjgsMF0sIum7kuezliI6WzM1MiwxLjcsMCw5MC4zLDAuMV0sIuOBr+OBoeOBv+OBpCI6WzMyOSwwLjMsMCw4MS45LDBdLCLjg6Hjg7zjg5fjg6vjgrfjg63jg4Pjg5ciOlsyNjYsMC4xLDAsNjYuMywwXSwi5rC044GC44KBIjpbMzQyLDAsMCw4NS4wLDBdfSwKIuWNteODu+S5syI6eyLljbUiOlsxNDIsMTIuMiwxMC4yLDAuNCwwLjRdLCLljbXpu4QiOlszMzYsMTYuNSwzNC4zLDAuMiwwLjFdLCLljbXnmb0iOls0NCwxMC4xLDAsMC41LDAuNV0sIueJm+S5syI6WzYxLDMuMywzLjgsNC44LDAuMV0sIueUn+OCr+ODquODvOODoCI6WzQwNCwxLjksNDMuMCw2LjUsMC4xXSwi44Kv44Oq44O844Og44OB44O844K6IjpbMzEzLDguMiwzMy4wLDIuMywwLjddLCLjg4rjg4Hjg6Xjg6njg6vjg4Hjg7zjgroiOlsyOTEsMTkuMSwyNC43LDAuOSwyLjBdLCLjg57jgrnjgqvjg6vjg53jg7zjg40iOlsyNzMsNC40LDI4LjIsNC4zLDAuMV0sIuODl+ODreOCu+OCueODgeODvOOCuiI6WzMxMywyMi43LDI2LjAsMS4zLDIuOF0sIuODqOODvOOCsOODq+ODiCI6WzU2LDMuNiwzLjAsNC45LDAuMV0sIue3tOS5syI6WzMxNCw3LjcsOC41LDU2LjAsMC4yXSwi44K544Kt44Og44Of44Or44KvIjpbMzU0LDM0LjAsMS4wLDUzLjMsMS40XSwi6LGG5LmzIjpbNDQsMy42LDIuMCwzLjEsMF0sIuOCouODvOODouODs+ODieODn+ODq+OCryI6WzI0LDAuNCwxLjEsMy4xLDAuMV19LAoi44OB44On44Kz44O744OK44OD44OEIjp7IuODgeODp+OCs+ODrOODvOODiCI6WzU1MSw2LjksMzQuMSw1NS44LDAuMl0sIuODm+ODr+OCpOODiOODgeODp+OCs+ODrOODvOODiCI6WzU4OCw3LjIsMzkuNSw1MC45LDAuMl0sIuOCouODvOODouODs+ODiSI6WzYwOSwxOS42LDUxLjgsMjAuOSwwXSwi44GP44KL44G/IjpbNzEzLDE0LjYsNjguOCwxMS43LDBdLCLjgqvjgrfjg6Xjg7zjg4rjg4Pjg4QiOls1OTEsMTkuOCw0Ny42LDI2LjcsMC42XSwi44OU44K544K/44OB44KqIjpbNjE3LDE3LjQsNTYuMSwyMC45LDAuN10sIuODnuOCq+ODgOODn+OCouODiuODg+ODhCI6Wzc1MSw4LjMsNzYuNywxMi4yLDAuNV0sIuODlOODvOODiuODg+ODhCI6WzYxMywyNS4wLDQ5LjYsMjEuMywwXSwi44OY44O844K844Or44OK44OD44OEIjpbNzAxLDEzLjYsNjkuMywxMy45LDAuMV0sIuODlOODvOODiuODg+ODhOODkOOCv+ODvCI6WzU5OSwyMC42LDUwLjQsMjQuOSwwLjldLCLnt7TjgorjgZTjgb4iOls2MDUsMTkuMCw1Ny4xLDE4LjUsMF0sIuOCs+OCs+ODiuODg+ODhOODleOCoeOCpOODsyI6WzY3Niw2LjEsNjUuOCwyMy43LDBdLCLpu5LjgZTjgb4iOls1OTksMjAuMyw1NC4yLDE4LjUsMF0sIueZveOBlOOBviI6WzU5OSwyMC4zLDU0LjIsMTguNSwwXX0sCiLjg5Xjg6vjg7zjg4QiOnsi44Os44O844K644OzIjpbMzI0LDIuNywwLjIsODAuMywwXSwi44OJ44Op44Kk44Kv44Op44Oz44OZ44Oq44O8IjpbMzQ1LDAuMSwxLjQsODIuOCwwXSwi44OJ44Op44Kk44GE44Gh44GY44GPIjpbMjcyLDMuMCwxLjEsNzUuMywwLjJdLCLjg5Djg4rjg4oiOls5MywxLjEsMC4yLDIyLjUsMF0sIuODkOODiuODiuODgeODg+ODlyI6WzI5OSwzLjgsNy4zLDcxLjUsMF0sIuOCiuOCk+OBlCI6WzUzLDAuMSwwLjIsMTUuNSwwXSwi44GE44Gh44GUIjpbMzEsMC45LDAuMSw4LjUsMF0sIuODrOODouODsyI6WzQzLDAuOSwwLjcsMTIuNSwwXSwi44Kq44Os44Oz44K4IjpbNDgsMC45LDAuMSwxMS44LDBdLCLjgqrjg6zjg7Pjgrjjg5Tjg7zjg6siOlszMzAsMC4yLDAuMSw4Mi4wLDBdLCLjgobjgZoiOls1MCwxLjIsMC41LDE0LjIsMF0sIuOCguOCgu+8iOe8tuipsOWQq+OCgO+8iSI6WzgyLDAuNSwwLjEsMjEuNCwwXSwi5qCX44Gu55SY6Zyy54WuIjpbMjMyLDEuOCwwLjQsNTYuOCwwXSwi44GL44G844Gh44KDIjpbNzgsMS45LDAuMywyMC42LDBdLCLjgZXjgaTjgb7jgYTjgoIiOlsxMjYsMS4yLDAuMiwzMS45LDBdfSwKIuWSjOOBruadkOaWmSI6eyLjgaTjgbbjgYLjgpMiOlsyMzksNS42LDAuNiw1NC4wLDAuMV0sIuOBk+OBl+OBguOCkyI6WzI1NSw1LjYsMC41LDYwLjgsMF0sIueZveOBguOCkyI6WzI1Nyw1LjQsMC4yLDYwLjksMF0sIuWvkuWkqSI6WzMsMC4xLDAsMC43LDBdLCLpu5LonJwiOlsxOTksMC41LDAsNTAuNSwwXSwi5qGc44Gu6Iqx44Gu5aGp5rys44GRIjpbNjAsMi41LDAuNSwxMC4wLDE4LjBdLCLjgbvjgYbjgZjojLYiOlswLDAsMCwwLjEsMF19LAoi44Gd44Gu5LuW44O75rSL6YWS44Gq44GpIjp7IuWhqSI6WzAsMCwwLDAsOTkuNV0sIuOCt+ODiuODouODsyI6WzM1NiwzLjYsMy41LDc5LjYsMC4xXSwi44OQ44OL44Op44OT44O844Oz44K6IjpbMjkwLDEuNSwwLjUsMTIuMCwwXSwi44K844Op44OB44OzIjpbMzQ3LDg3LjYsMC4zLDAsMC43XSwi44Oe44K344Ol44Oe44OtIjpbMzI0LDIuMSwwLDc5LjMsMF0sIue0heiMtiI6WzEsMCwwLDAuMSwwXSwi44Kz44O844OS44O8IjpbNCwwLjIsMCwwLjcsMF0sIuODqeODoOmFkiI6WzI0MCwwLDAsMC4xLDBdLCLjg5bjg6njg7Pjg4fjg7wiOlsyMzQsMCwwLDAsMF0sIua0i+mFkiI6WzMyMCwwLjEsMCwzMS4wLDBdfSwKIuiGqOW8teWJpCI6eyLjg5njg7zjgq3jg7PjgrDjg5Hjgqbjg4Djg7wiOlsxNTAsMCwxLjIsMjkuMCwxNy4zXSwi6YeN5pu5IjpbMCwwLDAsMCw3Mi41XX0KfTsKY29uc3QgREI9e307IGZvcihjb25zdCBjIGluIENBVFMpe2Zvcihjb25zdCBuIGluIENBVFNbY10pe0RCW25dPUNBVFNbY11bbl07fX0KY29uc3QgTkFNRVM9T2JqZWN0LmtleXMoREIpOwoKY29uc3Qgcm93c0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvd3MnKTsKCmZ1bmN0aW9uIG9wdGlvbkh0bWwoKXsKICBsZXQgbyA9ICc8b3B0aW9uIHZhbHVlPSIiPuadkOaWmeOCkumBuOOBtuKApjwvb3B0aW9uPic7CiAgZm9yKGNvbnN0IGNhdCBpbiBDQVRTKXsKICAgIG8gKz0gJzxvcHRncm91cCBsYWJlbD0iJytjYXQrJyI+JzsKICAgIGZvcihjb25zdCBuIGluIENBVFNbY2F0XSl7IG8gKz0gJzxvcHRpb24gdmFsdWU9IicrbisnIj4nK24rJzwvb3B0aW9uPic7IH0KICAgIG8gKz0gJzwvb3B0Z3JvdXA+JzsKICB9CiAgbyArPSAnPG9wdGdyb3VwIGxhYmVsPSLjg6rjgrnjg4jjgavjgarjgYQiPjxvcHRpb24gdmFsdWU9Il9fY3VzdG9tX18iPuOBneOBruS7lu+8iOaJi+WFpeWKm++8iTwvb3B0aW9uPjwvb3B0Z3JvdXA+JzsKICByZXR1cm4gbzsKfQoKZnVuY3Rpb24gYWRkUm93KG5hbWUsIGdyYW1zKXsKICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICBkaXYuY2xhc3NOYW1lID0gJ2luZy1yb3cnOwogIGRpdi5pbm5lckhUTUwgPQogICAgJzxzZWxlY3QgY2xhc3M9ImluZy1uYW1lIj4nK29wdGlvbkh0bWwoKSsnPC9zZWxlY3Q+JysKICAgICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0iaW5nLWciIG1pbj0iMCIgc3RlcD0iMSIgcGxhY2Vob2xkZXI9IjAiPicrCiAgICAnPGJ1dHRvbiBjbGFzcz0iZGVsIiB0aXRsZT0i5YmK6ZmkIj7DlzwvYnV0dG9uPic7CiAgcm93c0VsLmFwcGVuZENoaWxkKGRpdik7CiAgY29uc3Qgc2VsID0gZGl2LnF1ZXJ5U2VsZWN0b3IoJy5pbmctbmFtZScpOwogIGNvbnN0IGcgPSBkaXYucXVlcnlTZWxlY3RvcignLmluZy1nJyk7CiAgaWYobmFtZSl7IHNlbC52YWx1ZSA9IG5hbWU7IH0KICBpZihncmFtcyE9bnVsbCl7IGcudmFsdWUgPSBncmFtczsgfQogIGRpdi5xdWVyeVNlbGVjdG9yKCcuZGVsJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKT0+ewogICAgZGl2LnJlbW92ZSgpOwogICAgaWYoIXJvd3NFbC5jaGlsZHJlbi5sZW5ndGgpIGFkZFJvdygpOwogIH0pOwogIHNlbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKT0+ewogICAgY29uc3QgZXggPSBkaXYucXVlcnlTZWxlY3RvcignLmN1c3RvbS1maWVsZHMnKTsKICAgIGlmKHNlbC52YWx1ZT09PSdfX2N1c3RvbV9fJyl7CiAgICAgIGlmKCFleCl7CiAgICAgICAgY29uc3QgY2YgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBjZi5jbGFzc05hbWU9J2N1c3RvbS1maWVsZHMnOwogICAgICAgIGNmLnN0eWxlLmNzc1RleHQ9J2dyaWQtY29sdW1uOjEgLyAtMTsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsMWZyKTsgZ2FwOjZweDsgbWFyZ2luOjJweCAwIDZweCc7CiAgICAgICAgY2YuaW5uZXJIVE1MID0KICAgICAgICAgICc8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImMtbmFtZSIgcGxhY2Vob2xkZXI9IuadkOaWmeWQjSI+JysKICAgICAgICAgICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0iYy1rY2FsIiBtaW49IjAiIHBsYWNlaG9sZGVyPSLnhrHph48ga2NhbC8xMDBnIj4nKwogICAgICAgICAgJzxpbnB1dCB0eXBlPSJudW1iZXIiIGNsYXNzPSJjLXAiIG1pbj0iMCIgcGxhY2Vob2xkZXI9IuOBn+OCk+OBseOBj+izqiBnLzEwMGciPicrCiAgICAgICAgICAnPGlucHV0IHR5cGU9Im51bWJlciIgY2xhc3M9ImMtZiIgbWluPSIwIiBwbGFjZWhvbGRlcj0i6ISC6LOqIGcvMTAwZyI+JysKICAgICAgICAgICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0iYy1jIiBtaW49IjAiIHBsYWNlaG9sZGVyPSLngq3msLTljJbniakgZy8xMDBnIj4nKwogICAgICAgICAgJzxpbnB1dCB0eXBlPSJudW1iZXIiIGNsYXNzPSJjLXMiIG1pbj0iMCIgcGxhY2Vob2xkZXI9Iumjn+WhqeebuOW9k+mHjyBnLzEwMGciPic7CiAgICAgICAgZGl2LmFwcGVuZENoaWxkKGNmKTsKICAgICAgfQogICAgfSBlbHNlIGlmKGV4KXsgZXgucmVtb3ZlKCk7IH0KICB9KTsKfQoKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZEJ0bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCk9PmFkZFJvdygpKTsKCi8vIHNlZWQKYWRkUm93KCk7IGFkZFJvdygpOwoKZnVuY3Rpb24gbnVtKHYpeyBjb25zdCBuPXBhcnNlRmxvYXQodik7IHJldHVybiBpc05hTihuKT8wOm47IH0KZnVuY3Rpb24gcG9zKHYpeyByZXR1cm4gTWF0aC5tYXgoMCwgbnVtKHYpKTsgfQoKZnVuY3Rpb24gZm10RW5lcmd5KHYpeyByZXR1cm4gKHY8NSk/JzAnOlN0cmluZyhNYXRoLnJvdW5kKHYpKTsgfQpmdW5jdGlvbiBmbXROdXRyaSh2KXsgaWYodjwwLjUpIHJldHVybiAnMCc7IHJldHVybiAoTWF0aC5yb3VuZCh2KjEwKS8xMCkudG9GaXhlZCgxKTsgfQpmdW5jdGlvbiBmbXRTYWx0KHYpeyBpZih2PDAuMDUpIHJldHVybiAnMCc7IHJldHVybiAoTWF0aC5yb3VuZCh2KjEwKS8xMCkudG9GaXhlZCgxKTsgfQoKZnVuY3Rpb24gY2FsYygpewogIGNvbnN0IGVyciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlcnInKTsKICBlcnIudGV4dENvbnRlbnQ9Jyc7CiAgbGV0IHRvdD1bMCwwLDAsMCwwXTsgbGV0IHVzZWQ9MDsgbGV0IHJhd1N1bT0wOwogIGZvcihjb25zdCByb3cgb2Ygcm93c0VsLmNoaWxkcmVuKXsKICAgIGNvbnN0IHNlbD1yb3cucXVlcnlTZWxlY3RvcignLmluZy1uYW1lJyk7CiAgICBjb25zdCBnPW51bShyb3cucXVlcnlTZWxlY3RvcignLmluZy1nJykudmFsdWUpOwogICAgaWYoZzw9MCB8fCAhc2VsLnZhbHVlKSBjb250aW51ZTsKICAgIGxldCB2OwogICAgaWYoc2VsLnZhbHVlPT09J19fY3VzdG9tX18nKXsKICAgICAgdj1bcG9zKHJvdy5xdWVyeVNlbGVjdG9yKCcuYy1rY2FsJykudmFsdWUpLHBvcyhyb3cucXVlcnlTZWxlY3RvcignLmMtcCcpLnZhbHVlKSwKICAgICAgICAgcG9zKHJvdy5xdWVyeVNlbGVjdG9yKCcuYy1mJykudmFsdWUpLHBvcyhyb3cucXVlcnlTZWxlY3RvcignLmMtYycpLnZhbHVlKSwKICAgICAgICAgcG9zKHJvdy5xdWVyeVNlbGVjdG9yKCcuYy1zJykudmFsdWUpXTsKICAgIH0gZWxzZSB7IHY9REJbc2VsLnZhbHVlXTsgfQogICAgaWYoIXYpIGNvbnRpbnVlOwogICAgdXNlZCsrOyByYXdTdW0rPWc7CiAgICBmb3IobGV0IGk9MDtpPDU7aSsrKXsgdG90W2ldKz0gdltpXSpnLzEwMDsgfQogIH0KICBpZighdXNlZCl7IGVyci50ZXh0Q29udGVudD0n5p2Q5paZ44Go5YiG6YeP44KSMeOBpOS7peS4iuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhOOAgic7IHJldHVybjsgfQoKICBjb25zdCB1bml0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9dW5pdF06Y2hlY2tlZCcpLnZhbHVlOwogIGNvbnN0IHBpZWNlcz1udW0oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BpZWNlcycpLnZhbHVlKTsKICBjb25zdCBmaW53PW51bShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlud2VpZ2h0JykudmFsdWUpOwoKICBsZXQgcGVyPVsuLi50b3RdOyBsZXQgdW5pdExhYmVsPSflhajph4/vvIgx6KKL77yJ44GC44Gf44KKJzsgbGV0IGJhc2lzTm90ZT0nJzsKICBpZih1bml0PT09J3BpZWNlJyl7CiAgICBpZihwaWVjZXM8PTApeyBlcnIudGV4dENvbnRlbnQ9J+OAjOWHuuadpeS4iuOBjOOCiuOBruWAi+aVsOOAjeOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhOOAgic7IHJldHVybjsgfQogICAgcGVyPXRvdC5tYXAoeD0+eC9waWVjZXMpOyB1bml0TGFiZWw9JzHlgIvjgYLjgZ/jgoonOwogIH0gZWxzZSBpZih1bml0PT09JzEwMGcnKXsKICAgIGNvbnN0IGJhc2lzID0gZmludz4wID8gZmludyA6IHJhd1N1bTsKICAgIHBlcj10b3QubWFwKHg9PngqMTAwL2Jhc2lzKTsgdW5pdExhYmVsPScxMDBn44GC44Gf44KKJzsKICAgIGJhc2lzTm90ZSA9IGZpbnc+MCA/ICfvvIjnhLzjgY3kuIrjgYzjgornt4/ph43ph48gJytmaW53KydnIOOCkuWfuua6lu+8iScgOiAn77yI5p2Q5paZ44Gu5ZCI6KiI6YeN6YePICcrTWF0aC5yb3VuZChyYXdTdW0pKydnIOOCkuWfuua6lu+8iSc7CiAgfQoKICByZW5kZXIocGVyLCB1bml0TGFiZWwsIHRvdCwgcmF3U3VtLCBwaWVjZXMsIGZpbncsIGJhc2lzTm90ZSk7Cn0KCmxldCBsYXN0VGV4dD0nJzsKZnVuY3Rpb24gcmVuZGVyKHBlciwgdW5pdExhYmVsLCB0b3QsIHJhd1N1bSwgcGllY2VzLCBmaW53LCBiYXNpc05vdGUpewogIGNvbnN0IHJvd3M9WwogICAgWyfnhrHph48nLCBmbXRFbmVyZ3kocGVyWzBdKSwgJ2tjYWwnLCB0cnVlXSwKICAgIFsn44Gf44KT44Gx44GP6LOqJywgZm10TnV0cmkocGVyWzFdKSwgJ2cnLCBmYWxzZV0sCiAgICBbJ+iEguizqicsIGZtdE51dHJpKHBlclsyXSksICdnJywgZmFsc2VdLAogICAgWyfngq3msLTljJbniaknLCBmbXROdXRyaShwZXJbM10pLCAnZycsIGZhbHNlXSwKICAgIFsn6aOf5aGp55u45b2T6YePJywgZm10U2FsdChwZXJbNF0pLCAnZycsIGZhbHNlXSwKICBdOwogIGxldCBodG1sPSc8ZGl2IGNsYXNzPSJubC10aXRsZSI+5qCE6aSK5oiQ5YiG6KGo56S6PHNwYW4gY2xhc3M9Im5sLXN1YiI+77yIJyt1bml0TGFiZWwrJ++8iTwvc3Bhbj48L2Rpdj48dGFibGU+JzsKICBmb3IoY29uc3QgciBvZiByb3dzKXsKICAgIGh0bWwrPSc8dHIgY2xhc3M9IicrKHJbM10/J2VuZXJneSc6JycpKyciPjx0ZD4nK3JbMF0rJzwvdGQ+PHRkIGNsYXNzPSJ2YWwiPicrclsxXSsnICcrclsyXSsnPC90ZD48L3RyPic7CiAgfQogIGh0bWwrPSc8L3RhYmxlPic7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25sYWJlbCcpLmlubmVySFRNTD1odG1sOwoKICBsZXQgaW5mbz0n5YWo6YeP44Gu5ZCI6KiI77ya57SEJytNYXRoLnJvdW5kKHRvdFswXSkrJyBrY2FsIO+8jyDmnZDmlpnjga7lkIjoqIggJytNYXRoLnJvdW5kKHJhd1N1bSkrJ2cnOwogIGlmKHBpZWNlcz4wKSBpbmZvKz0nIO+8jyAnK3BpZWNlcysn5YCLJzsKICBpZihiYXNpc05vdGUpIGluZm8rPSc8YnI+JytiYXNpc05vdGU7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdGFsaW5mbycpLmlubmVySFRNTD1pbmZvOwoKICBsZXQgdD0n5qCE6aSK5oiQ5YiG6KGo56S677yIJyt1bml0TGFiZWwrJ++8iVxuJzsKICBmb3IoY29uc3QgciBvZiByb3dzKXsgdCs9clswXSsn44CAJytyWzFdKycgJytyWzJdKydcbic7IH0KICB0Kz0n77yI44GT44Gu6KGo56S65YCk44Gv5o6o5a6a5YCk44Gn44GZ77yJJzsKICBsYXN0VGV4dD10OwoKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0Jykuc3R5bGUuZGlzcGxheT0nYmxvY2snOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsIGJsb2NrOidzdGFydCd9KTsKfQoKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbGNCdG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNhbGMpOwoKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvcHlCdG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgY29uc3QgYnRuPXRoaXM7CiAgZnVuY3Rpb24gZG9uZSgpeyBidG4udGV4dENvbnRlbnQ9J+OCs+ODlOODvOOBl+OBvuOBl+OBn++8gSc7IHNldFRpbWVvdXQoKCk9PmJ0bi50ZXh0Q29udGVudD0n6KGo56S644OG44Kt44K544OI44KS44Kz44OU44O8JywxNjAwKTsgfQogIGlmKG5hdmlnYXRvci5jbGlwYm9hcmQgJiYgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQpewogICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQobGFzdFRleHQpLnRoZW4oZG9uZSkuY2F0Y2goKCk9PmZhbGxiYWNrKCkpOwogIH0gZWxzZSB7IGZhbGxiYWNrKCk7IH0KICBmdW5jdGlvbiBmYWxsYmFjaygpewogICAgY29uc3QgdGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTsgdGEudmFsdWU9bGFzdFRleHQ7IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGEpOwogICAgdGEuc2VsZWN0KCk7IHRyeXtkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO31jYXRjaChlKXt9IHRhLnJlbW92ZSgpOyBkb25lKCk7CiAgfQp9KTsKCi8vIC0tLS0g44GK6I+T5a2Q44Gu6aOf5ZOB6KGo56S644Op44OZ44Or44Oh44O844Kr44O844Go44Gu6YCj5pC677yI5Lu75oSP77yJIC0tLS0KZnVuY3Rpb24gYnVpbGRSZWNpcGVUZXh0KCl7CiAgbGV0IEw9WycjcmlpbHktcmVjaXBlJ107CiAgZm9yKGNvbnN0IHJvdyBvZiByb3dzRWwuY2hpbGRyZW4pewogICAgY29uc3Qgc2VsPXJvdy5xdWVyeVNlbGVjdG9yKCcuaW5nLW5hbWUnKTsgY29uc3QgZz1yb3cucXVlcnlTZWxlY3RvcignLmluZy1nJykudmFsdWU7CiAgICBpZihzZWwgJiYgc2VsLnZhbHVlICYmIHNlbC52YWx1ZSE9PSdfX2N1c3RvbV9fJyl7IEwucHVzaChzZWwudmFsdWUrJ1x0JysoZ3x8JycpKTsgfQogIH0KICByZXR1cm4gTC5qb2luKCdcbicpOwp9CmNvbnN0IGNvbm5lY3RNc2c9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nvbm5lY3RNc2cnKTsKY29uc3Qgc2VuZEJ0bj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VuZEJ0bicpOwppZihzZW5kQnRuKSBzZW5kQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICBjb25zdCByb3dzPVsuLi5yb3dzRWwuY2hpbGRyZW5dLmZpbHRlcihyPT57Y29uc3Qgcz1yLnF1ZXJ5U2VsZWN0b3IoJy5pbmctbmFtZScpO3JldHVybiBzLnZhbHVlJiZzLnZhbHVlIT09J19fY3VzdG9tX18nO30pOwogIGlmKCFyb3dzLmxlbmd0aCl7IGNvbm5lY3RNc2cudGV4dENvbnRlbnQ9J+WFiOOBq+adkOaWmeOCkumBuOOCk+OBp+OBj+OBoOOBleOBhOOAgic7IHJldHVybjsgfQogIGNvbnN0IHQ9YnVpbGRSZWNpcGVUZXh0KCk7IGNvbnN0IGJ0bj10aGlzOwogIGZ1bmN0aW9uIGRvbmUoKXsgYnRuLnRleHRDb250ZW50PSfjgrPjg5Tjg7zjgZfjgb7jgZfjgZ/vvIEnOyBzZXRUaW1lb3V0KCgpPT5idG4udGV4dENvbnRlbnQ9J+OBk+OBruadkOaWmeOCkuOBiuiPk+WtkOOBrumjn+WTgeihqOekuuODqeODmeODq+ODoeODvOOCq+ODvOOBuOmAgeOCi++8iOOCs+ODlOODvO+8iScsMTYwMCk7CiAgICBjb25uZWN0TXNnLnRleHRDb250ZW50PSfjgYroj5PlrZDjga7po5/lk4HooajnpLrjg6njg5njg6vjg6Hjg7zjgqvjg7zjgpLplovjgYTjgabjgIzlj5bjgorovrzjgoDjgI3jgavosrzjgorku5jjgZHjgabjgY/jgaDjgZXjgYTjgIInOyB9CiAgaWYobmF2aWdhdG9yLmNsaXBib2FyZCYmbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQpeyBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0KS50aGVuKGRvbmUpLmNhdGNoKGZiKTt9IGVsc2UgZmIoKTsKICBmdW5jdGlvbiBmYigpeyBjb25zdCB0YT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpOyB0YS52YWx1ZT10OyBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRhKTsgdGEuc2VsZWN0KCk7IHRyeXtkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO31jYXRjaChlKXt9IHRhLnJlbW92ZSgpOyBkb25lKCk7IH0KfSk7CmNvbnN0IGltcG9ydEJ0bj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1wb3J0QnRuJyk7CmlmKGltcG9ydEJ0bikgaW1wb3J0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICBjb25zdCB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXBvcnRCb3gnKS52YWx1ZTsKICBpZighdC50cmltKCkpeyBjb25uZWN0TXNnLnRleHRDb250ZW50PSfosrzjgorku5jjgZHjgabjgYvjgonmirzjgZfjgabjgY/jgaDjgZXjgYTjgIInOyByZXR1cm47IH0KICBjb25zdCBsaW5lcz10LnNwbGl0KC9ccj9cbi8pOyBsZXQgYWRkZWQ9MCwgc2tpcHBlZD1bXTsKICByb3dzRWwuaW5uZXJIVE1MPScnOwogIGZvcihsZXQgbG4gb2YgbGluZXMpeyBsbj1sbi50cmltKCk7IGlmKCFsbnx8bG5bMF09PT0nIycpIGNvbnRpbnVlOwogICAgY29uc3QgcD1sbi5zcGxpdCgnXHQnKTsgY29uc3QgbmFtZT0ocFswXXx8JycpLnRyaW0oKTsgY29uc3QgZz0ocFsxXXx8JycpLnRyaW0oKTsKICAgIGlmKCFuYW1lKSBjb250aW51ZTsKICAgIGlmKERCW25hbWVdKXsgYWRkUm93KG5hbWUsIGcpOyBhZGRlZCsrOyB9IGVsc2UgeyBza2lwcGVkLnB1c2gobmFtZSk7IH0KICB9CiAgaWYoIXJvd3NFbC5jaGlsZHJlbi5sZW5ndGgpIGFkZFJvdygpOwogIGxldCBtc2c9YWRkZWQrJ+S7tuOCkuWPluOCiui+vOOBv+OBvuOBl+OBn+OAguawtOOCkui2s+OBl+OBpuOAjOaghOmkiuaIkOWIhuihqOekuuOCkuS9nOOCi+OAjeOCkuaKvOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgaWYoc2tpcHBlZC5sZW5ndGgpIG1zZys9JyDvvI8g5qCE6aSK44OH44O844K/44Gu44Gq44GE5p2Q5paZ44Gv6Zmk5aSW77yaJytza2lwcGVkLmpvaW4oJ+OAgScpOwogIGNvbm5lY3RNc2cudGV4dENvbnRlbnQ9bXNnOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXBvcnRCb3gnKS52YWx1ZT0nJzsKfSk7CgovLyDjgrnjgq/jg63jg7zjg6vmmYLjgavmlbDph48obnVtYmVyKeOBjOWLneaJi+OBq+WkieOCj+OCi+OBruOCkumYsuOBkApkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIGZ1bmN0aW9uKGUpewogIHZhciBhPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7CiAgaWYoYSAmJiBhLnRhZ05hbWU9PT0nSU5QVVQnICYmIGEudHlwZT09PSdudW1iZXInKXsgYS5ibHVyKCk7IH0KfSwge3Bhc3NpdmU6dHJ1ZX0pOwo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==