diff --git a/execution/Execution.html b/execution/Execution.html
deleted file mode 100644
index bb01b4c..0000000
--- a/execution/Execution.html
+++ /dev/null
@@ -1,5 +0,0 @@
-PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImtvIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+7ZSE66Gc7KCd7Yq4IO2Gte2VqSDsi6TtlonrtoTshJ0g7Iuc7Iqk7YWcPC90aXRsZT4KICAgIDwhLS0g7Jm467aAIOudvOydtOu4jOufrOumrCBDRE4gLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vcmVhY3RAMTgvdW1kL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL3VucGtnLmNvbS9yZWFjdC1kb21AMTgvdW1kL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vQGJhYmVsL3N0YW5kYWxvbmUvYmFiZWwubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi50YWlsd2luZGNzcy5jb20iPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0veGxzeEAwLjE4LjUvZGlzdC94bHN4LmZ1bGwubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2NoYXJ0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL3VucGtnLmNvbS9sdWNpZGVAbGF0ZXN0Ij48L3NjcmlwdD4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9UHJldGVuZGFyZDp3Z2h0QDQwMDs2MDA7ODAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxzdHlsZT4KICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6ICdQcmV0ZW5kYXJkJywgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOyB9CiAgICAgICAgLmN1c3RvbS1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDZweDsgfQogICAgICAgIC5jdXN0b20tc2Nyb2xsYmFyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7IGJhY2tncm91bmQ6ICNmMWY1Zjk7IH0KICAgICAgICAgLmN1c3RvbS1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogI2NiZDVlMTsgYm9yZGVyLXJhZGl1czogMTBweDsgfQogICAgICAgIC5uYXYtY29udGFpbmVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2YxZjVmOTsgcGFkZGluZzogNXB4OyBib3JkZXItcmFkaXVzOiAxLjJyZW07IGRpc3BsYXk6IGZsZXg7IGdhcDogNHB4OyB9CiAgICAgICAgLnRhYi1idG4geyBwYWRkaW5nOiAxMHB4IDIycHg7IGJvcmRlci1yYWRpdXM6IDAuOXJlbTsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogODAwOyB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyBjdXJzb3I6IHBvaW50ZXI7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IG5vbmU7IH0KICAgICAgICBudGFiLWJ0bi5hY3RpdmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjNjM2NmYxOyBjb2xvcjogd2hpdGU7IGJveC1zaGFkb3c6IDAgNHB4IDEwcHggcmdiYSg5OSwgMTAyLCAyNDEsIDAuMjUpOyB9CiAgICAgICAgLnRhYi1idG4uaW5hY3RpdmUgeyBjb2xvcjogIzY0NzQ4YjsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH0KICAgICAgICAubW9kZS1idG4geyBwYWRkaW5nOiA4cHggMThweDsgYm9yZGVyLXJhZGl1czogOTk5OXB4OyBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA4MDA7IGJvcmRlci1jb2xvcjogI2UyZThmMDsgYm9yZGVyLXdpZHRoOiAxcHg7IHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IGN1cnNvcjogcG9pbnRlcjsgYmFja2dyb3VuZDogd2hpdGU7IGNvbG9yOiAjOTRhM2I4OyB9CiAgICAgICAgLm1vZGUtYnRuLmFjdGl2ZSB7IGJhY2tncm91bmQtY29sb3ogIzFlMjkzYiAhaW1wb3J0YW50OyBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiAjMWUyOTNiICFpbXBvcnRhbnQ7IH0KICAgICAgICAudG9vbHRpcC1jb250YWluZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KICAgICAgICAudG9vbHRpcC1jb250ZW50IHsKICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOyB3aWR0aDogYXV0bzsgbWluLXdpZHRoOiAxODBweDsgYmFja2dyb3VuZC1jb2xvcjogIzFlMjkzYjsgY29sb3I6ICNmZmY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogMTJweDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgei1pbmRleDogMTAwOyB0b3A6IDEwNSU7IGxlZnQ6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyAKICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4OyBvcGFjaXR5OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7IAogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgfQogICAgICAgIC50b29sdGlwLWNvbnRhaW5lcmpob3ZlciAudG9vbHRpcC1jb250ZW50IHsgdmlzaWJpbGl0eTogdmlzaWJsZTsgb3BhY2l0eTogMTsgfQogICAgICAgIGlucHV0W3R5cGU9Im51bWJlciJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHsgLndlYmtpdC1hcHBlYXJhbmNlOiBub25lOyBtYXJnaW46IDA7IH0KICAgICAgICAKICAgICAgICAucmVwb3J0LWNhcmQgeyBiYWNrZ3JvdW5kOiB3aGl0ZTsgYm9yZGVyOiAxcHggc29saWQgI2VlZjJmNjsgYm9yZGVyLXJhZGl1czogMS41cmVtOyBwYWRkaW5nOiAxLjVyZW07IH0KICAgICAgICAucmVwb3J0LXRhZyB7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDgwMDsgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJhZGl1czogNHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9CiAgICAgICAgLnN0YXR1cy1vayB7IGJhY2tncm91bmQ6ICNkY2ZjZTc7IGNvbG9yOiAjMTU4MDNkOyB9CiAgICAgICAgLnN0YXR1cy13YXJuIHsgYmFja2dyb3VuZDogI2ZlZjljMzsgY29sb3I6ICNhMTYyMDc7IH0KICAgICAgICAuc3RhdHVzLWNyaXQgeyBiYWNrZ3JvdW5kOiAjZmVlMmUyOyBjb2xvcjogI2I5MWMxYzsgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keSBjbGFzcy1iZy1bI2Y4ZmFmY10iPgogICAgPGRpdiBpZD0icm9vdCI+PC9kaXY+CgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2JhYmVsIj4KICAgICAgICBjb25zdCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9ID0gUmVhY3Q7CgogICAgICAgIGNvbnN0IENBVF9SRVYgPSAi7IiY7J6FIiwgQ0FUX0NPTlNUID0gIuyLnOqzteybkOqwgCIsIENBVF9NRkcgPSAi7KCc7KGw7JuQ6rCAIiwgQ0FUX0xBQk9SID0gIuyduOqxtOu5hCIsIENBVF9BRE1JTiA9ICLqtIDrpqzruYQiLCBDQVRfTk9OX09QID0gIuyekOyCsC/rtoDssYQv7JiB7JeF7Jm4IjsKICAgICAgICBjb25zdCBDQVRFR09SWV9DT0xPUlMgPSB7IFtDQVRfUkVWXTogJyM2MzY2ZjEnLCBbQ0FUX0NPTlNUXTogJyMxMGI5ODEnLCBbQ0FUX01GR106ICcjZWY0NDQ0JywgW0NBVF9MQUJPUl06ICcjZjU5ZTBiJywgW0NBVF9BRE1JTl06ICcjZWM0ODk5JyB9OwoKICAgICAgICBjb25zdCBNQVNURVJfSkFOR0hFT04gPSB7CiAgICAgICAgICAgICcxMDEnOiftmITquIgnLCcxMDMnOifrs7TthrXsmIjquIgnLCcxMDQnOifquLDtg4DsoJzsmIjquIgnLCcxMTAnOifrsJvsnYTslrTsnYwnLCcxMjQnOifrp6Trj4TqsIDriqXspp3qtownLCcxMzUnOifrp6TsnoXrtoDqsIDshLgnLCcxNzgnOiftmozsm5DqtownLCcxOTEnOifstpzsnpDquIgnLCcxOTInOifsnoTssKjrs7Tspp3quIgnLCcxOTMnOifso7zsnoTsooXrjIDstpzquIgnLCcxOTQnOifsoITrj4TquIgnLCcxOTUnOifrs7Tspp3quIgnLCcxOTYnOifrjIDsl6zquIgnLCcyMDYnOifquLDqs4TsnqXsuZgo7ISk67mEKScsJzIwOCc6J+ywqOufieyatOuwmOq1rCjsnqXruYQpJywnMjEwJzon6rO16rWs7JmA6riw6rWsKOqzteq1rCknLCcyMTInOifruYTtkogo67mE7ZKIKScsJzIxOSc6J+yLnOyEpOyepey5mCjqsbTrrLwpJywnMjMxJzon7JiB7JeF6raMJywnMjQxJzon7IKs7Jqp7IiY7J216riw67aA7J6Q7IKwJywnMjU0Jzon7JiI7IiY6riIJywnMjU3Jzon6rCA7IiY6riIJywnMjU4Jzon66ek7Lac67aA6rCA7IS4JywnMjU5Jzon7ISg7IiY6riIJywnMjYwJzon64uo6riw7LCo7J6F6riIJywnMjkwJzon7KO87J6E7KKF7LCo7J6F6riIJywnMjkzJzon7J6l6riw7LCo7J6F6riIJywnMjk0Jzon7J6E64yA67O07Kad6riIJywnMzk5Jzon66ek7Lac67aA6rCA7IS4JywnODAxJzon6rCQ6rCA7IOB6rCB67mEKOyekOyCsCknLAogICAgICAgICAgICAnNDAxJzon6rO17IKs7IiY7J6FJywnNDAyJzon7IOB7ZKI66ek7LacJywnNDAzJzon7Jqp7Jet7IiY7J6FJywnNDA0Jzon6riw7YOA7IiY7J6FJywnNDA1Jzon7J6E64yA7IiY7J6FJywKICAgICAgICAgICAgJzUwMSc6J+q0gOumrCDsnoTquIgnLCc1MDInOifsi5zqs7Ug7J6E6riIJywnNTAzJzon7ISk6rOEIOyehOq4iCcsJzUwNCc6J+qzteustCDsnoTquIgnLCc1MDUnOifsp4Dsm5Ag7J6E6riIJywnNTA2Jzon7IOd7IKw6rSA66asIOyehOq4iCcsJzUwNyc6J+yDneyCsOyngSjqs4QpIOyehOq4iCcsJzUwOCc6J+yDneyCsOyngSjsnbwpIOuFuOustOu5hCcsJzU1MSc6J+q0gOumrCDth7Tsp4HquIgnLCc1NTInOifsi5zqs7Ug7Ye07KeB6riIJywnNTUzJzon7ISk6rOEIO2HtOyngeq4iCcsJzU1NCc6J+qzteustCDth7Tsp4HquIgnLCc1NTUnOifsp4Dsm5Ag7Ye07KeB6riIJywnNTU2Jzon7IOd7IKw6rSA66asIO2HtOyngeq4iCcsJzU1Nyc6J+yDneyCsOyngSjqs4QpIO2HtOyngeq4iCcsJzU1OCc6J+yDneyCsOyngSjsnbwpIO2HtOyngeq4iCcsJzU2MCc6J+qwkeq3vC/so7zrr7zshLgnLCc1NjEnOic064yA67O07ZeYJywnNTYyJzon7J287Jqp7KeBIO2HtOyngeq4iCcsJzU2Myc6J+2HtOyngeq4ieyXrCcsCiAgICAgICAgICAgICc2MDEnOifso7zsnpDsnqwnLCc2MDInOifrtoDsnpDsnqwnLCc2MDMnOifslYjsoITqtIDrpqzruYQo7ZiE7J6lKScsJzYwNCc6J+ygnOyekSjriqXrpaDquIkpJywnNjA1Jzon7J247J6lKOuKpeuloOq4iSknLCc2MDYnOifqsIDshKQo64ql66Wg6riJKScsJzYwNyc6J+2MkC/qsIAo64ql66Wg6riJKScsJzYwOCc6J+yepeu5hOu5hCcsJzYwOSc6J+yatOuwmOu5hCcsJzYxMCc6J+ydvOyaqeuFuOustOu5hCcsJzYxMSc6J+yZuOyjvOu5hCDrk7EnLCc2MTInOifso7zsnqzruYQnLCc2MTMnOifstpzsnqXruYQnLCc2MTQnOifrs7Tspp0v67O07IOB67mEJywnNjE1Jzon6riw7YOA6rK967mEJywnNjE2Jzon7ZW07Jm47Lac7J6l67mEJywnNjUxJzon7IKw7JeF7JWI7KCE67O06rG06rSA66as67mEJywnNjUyJzonKOu2iOyduOyglSnsgrDsl4XslYjsoITrs7TqsbTqtIDrpqzruYQnLAogICAgICAgICAgICAnNzAxJzon7LKg6re86rCA6rO1JywnNzAyJzon7YyQ64Ss7KCc7J6RJywnNzAzJzon7ZiE7J6l7KeA7JuQJywnNzA0Jzon7ZSE66as67mU7KCc7J6RJywnNzA1Jzon7IOB7ZKIJywnNzExJzon67O166as7ZuE7IOd67mEIFvsoJzsobBdJywnNzEyJzon7Jes67mE6rWQ7Ya167mEIFvsoJzsobBdJywnNzEzJzon7KCR64yA67mEIFvsoJzsobBdJywnNzE0Jzon7Ya17Iug67mEIFvsoJzsobBdJywnNzE1Jzon7IiY64+E6rSR7Je067mEIFvsoJzsobBdJywnNzE2Jzon7K
-
-... [28,966 characters omitted] ...
-
-dW5kZWQtWzEuM3JlbV0gdGV4dC13aGl0ZSBzaGFkb3ctbGciPjxpIGNsYXNzTmFtZT0ibHVjaWRlLWFjdGl2aXR5Ij48L2k+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT0idGV4dC0yeGwgZm9udC1ibGFjayB0ZXh0LXNsYXRlLTkwMCBsZWFkaW5nLXRpZ2h0Ij7tlITroZzsoJ3tirgg7Ya17ZWpIOyLpO2Wieu2hOyEnTwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJmbGV4IGdhcC0yIG10LTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBzZXRDdXJyZW50TW9kZSgnSkFOR0hFT04nKX0gY2xhc3NOYW1lPXtgbW9kZS1idG4gJHtjdXJyZW50TW9kZSA9PT0gJ0pBTkdIRU9OJyA/ICdhY3RpdmUnIDogJyd9YH0+7J6l7ZeM7IKw7JeFIOq4sOykgDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBzZXRDdXJyZW50TW9kZSgnUFRDJyl9IGNsYXNzTmFtZT17YG1vZGUtYnRuICR7Y3VycmVudE1vZGUgPT09ICdQVEMnID8gJ2FjdGl2ZScgOiAnJ31gfT5QVEMg6riw7KSAPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPSJuYXYtY29udGFpbmVyIG1yLTQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IHNldEFjdGl2ZVRhYignZGFzaGJvYXJkJyl9IGNsYXNzTmFtZT17YHRhYi1idG4gJHthY3RpdmVUYWIgPT09ICdkYXNoYm9hcmQnID8gJ2FjdGl2ZScgOiAnaW5hY3RpdmUnfWB9Puyihe2VqSDrjIDsi5zrs7Trk5w8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBzZXRBY3RpdmVUYWIoJ2FuYWx5c2lzJyl9IGNsYXNzTmFtZT17YHRhYi1idG4gJHthY3RpdmVUYWIgPT09ICdhbmFseXNpcycgPyAnYWN0aXZlJyA6ICdpbmFjdGl2ZSd9YH0+7Iuk7ZaJIOyYiOyCsCDrtoTshJ08L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25hdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPSJweC02IHB5LTMgYmctaW5kaWdvLTYwMCB0ZXh0LXdoaXRlIHJvdW5kZWQtMnhsIGN1cnNvci1wb2ludGVyIGZvbnQtYm9sZCBzaGFkb3ctbWQgaG92ZXI6YmctaW5kaWdvLTcwMCB0cmFuc2l0aW9uLWFsbCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt1cGxvYWRpbmcgPyA8c3BhbiBjbGFzc05hbWU9ImFuaW1hdGUtc3BpbiI+8J+MgDwvc3Bhbj4gOiA8aSBjbGFzc05hbWU9Imx1Y2lkZS11cGxvYWQiPjwvaT59IOuNsOydtO2EsCDsl4XroZzrk5wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIGNsYXNzTmFtZT0iaGlkZGVuIiBhY2NlcHQ9Ii54bHN4LCAueGxzIiBvbkNoYW5nZT17aGFuZGxlRmlsZVVwbG9hZH0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvaGVhZGVyPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTMgZ2FwLTQgYmctd2hpdGUgcC01IHJvdW5kZWQtWzIuNXJlbV0gYm9yZGVyIHNoYWRvdy1zbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ic3BhY2UteS0xIGZvbnQtYm9sZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT0idGV4dC1bMTFweF0gdGV4dC1zbGF0ZS00MDAgdXBwZXJjYXNlIGZvbnQtYmxhY2sgZm9udC1tb25vIj5EQVRFIFJBTkdFPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleCBnYXAtMSBmb250LWJvbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibW9udGgiIGNsYXNzTmFtZT0idy1mdWxsIGJnLXNsYXRlLTUwIHJvdW5kZWQteGwgcC0yIHRleHQteHMgYm9yZGVyLW5vbmUgZm9udC1ib2xkIG91dGxpbmUtbm9uZSIgdmFsdWU9e3N0YXJ0RGF0ZX0gb25DaGFuZ2U9e2UgPT4gc2V0U3RhcnREYXRlKGUudGFyZ2V0LnZhbHVlKX0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im1vbnRoIiBjbGFzc05hbWU9InctZnVsbCBiZy1zbGF0ZS01MCByb3VuZGVkLXhsIHAtMiB0ZXh0LXhzIGJvcmRlci1ub25lIGZvbnQtYm9sZCBvdXRsaW5lLW5vbmUiIHZhbHVlPXtlbmREYXRlfSBvbkNoYW5nZT17ZSA9PiBzZXRFbmREYXRlKGUudGFyZ2V0LnZhbHVlKX0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9InNwYWNlLXktMSBmb250LWJvbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9InRleHQtWzEwcHhdIHRleHQtc2xhdGUtNDAwIHVwcGVyY2FzZSBmb250LWJsYWNrIGZvbnQtbW9ubyBmb250LWJvbGQiPlBST0pFQ1Q8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3NOYW1lPSJ3LWZ1bGwgYmctc2xhdGUtNTAgcm91bmRlZC14bCBwLTMgdGV4dC14cyBib3JkZXItbm9uZSBjdXJzb3ItcG9pbnRlciBmb250LWJvbGQgb3V0bGluZS1ub25lIiB2YWx1ZT17c2VsZWN0ZWRQanR9IG9uQ2hhbmdlPXtlID0+IHNldFNlbGVjdGVkUGp0KGUudGFyZ2V0LnZhbHVlKX0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFsbCI+7KCE7LK0IO2UhOuhnOygne2KuCDrs7TquLA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2F2YWlsYWJsZVByb2plY3RzLm1hcChwID0+IDxvcHRpb24ga2V5PXtwfSB2YWx1ZT17cH0+e3B9PC9vcHRpb24+KX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9InNwYWNlLXktMSBmb250LWJvbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9InRleHQtWzEwcHhdIHRleHQtc2xhdGUtNDAwIHVwcGVyY2FzZSBmb250LWJsYWNrIGZvbnQtbW9ubyBmb250LWJvbGQiPlNFQVJDSDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSLrqoXsua0v7L2U65OcL+yggeyalC4uLiIgY2xhc3NOYW1lPSJ3LWZ1bGwgYmctc2xhdGUtNTAgcm91bmRlZC14bCBwLTMgdGV4dC14cyBib3JkZXItbm9uZSBmb250LWJvbGQgb3V0bGluZS1ub25lIiB2YWx1ZT17c2VhcmNoVGVybX0gb25DaGFuZ2U9e2UgPT4gc2V0U2VhcmNoVGVybShlLnRhcmdldC52YWx1Sl0pfSAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgP2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICB7YWN0aXZlVGFiID09PSAnZGFzaGJvYXJkJyA/ICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTMgZ2FwLTYgdGV4dC1jZW50ZXIgZm9udC1ib2xkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImJnLXdoaXRlIHAtOCByb3VuZGVkLVsyLjVyZW1dIGJvcmRlciBzaGFkb3ctc20gZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgc3BhY2UteS0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0idGV4dC1bMTFweF0gdGV4dC1lbWVyYWxkLTUwMCB1cHBlcmNhc2UgZm9udC1ibGFjayBmb250LW1vbm8gZm9udC1ib2xkIj5PUEVSQVRJTkcgUkVWRU5VRSAoQik8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9InRleHQtM3hsIGZvbnQtYmxhY2siPntzdGF0cy5yZXYudG9Mb2NhbGVTdHJpbmcoKX3sm5A8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iYmctd2hpdGUgcC04IHJvdW5kZWQtWzIuNXJlbV0gYm9yZGVyIHNoYWRvdy1zbSBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBzcGFjZS15LTEgZm9udC1ib2xkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0idGV4dC1bMTFweF0gdGV4dC1yb3NlLTUwMCB1cHBlcmNhc2UgZm9udC1ibGFjayBmb250LW1vbm8gZm9udC1ib2xkIj5PUEVSQVRJTkcgRVhQRU5TRSAoQik8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9InRleHQtM3hsIGZvbnQtYmxhY2siPntzdGF0cy5jb3N0U3VtLnRvTG9jYWxlU3RyaW5nKCl97JuQPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImJnLVsjMTExODI3XSBwLTggcm91bmRlZC1bMi41cmVtXSB0ZXh0LXdoaXRlIHNoYWRvdy14bCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBzcGFjZS15LTEgZm9udC1ib2xkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0idGV4dC1bMTFweF0gdGV4dC1pbmRpZ28tMzAwIHVwcGVyY2FzZSBmb250LWJsYWNrIGZvbnQtbW9ubyBmb250LWJvbGQiPkVTVElNQVRFRCBQUk9GSVQgKEEtQik8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9e2B0ZXh0LTN4bCBmb250LWJsYWNrICR7c3RhdHMucHJvZml0ID49IDAgPyAndGV4dC13aGl0ZScgOiAndGV4dC1yb3NlLTQwMCd9YH0+e3N0YXRzLnByb2ZpdC50b0xvY2FsZVN0cmluZygpfeybkDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJiZy13aGl0ZSBwLTggcm91bmRlZC1bM3JlbV0gYm9yZGVyIGJvcmRlci1pbmRpZ28tMTAwIHNoYWRvdy1zbSBzcGFjZS15LTQgZm9udC1ib2xkIG92ZXJmbG93LWhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBib3JkZXItYiBib3JkZXItc2xhdGUtNTAgcGItNCBtYi00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJiZy1pbmRpZ28tNjAwIHAtMi41IHJvdW5kZWQteGwgdGV4dC13aGl0ZSBmb250LWJvbGQgc2hhZG93LWxnIHNoYWRvdy1pbmRpZ28tMTAwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9Imx1Y2lkZS1hY3Rpdml0eSI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPSJ0ZXh0LWxnIGZvbnQtYmxhY2sgdGV4dC1zbGF0ZS04MDAiPuyLpOyLnOqwhCDtmITsnqUg7Jq07JiBIOu2hOyEnSDrs7Tqs6DshJwgKE9wZXJhdGluZyBTdGF0dXMpPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtkeW5hbWljRGFzaGJvYXJkUmVwb3J0fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZ3JpZCBncmlkLWNvbHMtMSBsZzpncmlkLWNvbHMtMTIgZ2FwLTYgZm9udC1ib2xkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImxnOmNvbC1zcGFuLTUgYmctd2hpdGUgcC04IHJvdW5kZWQtWzIuNXJlbV0gYm9yZGVyIHNoYWRvdy1zbSBtaW4taC1bNDAwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9InRleHQtYmFzZSBmb250LWJsYWNrIHRleHQtc2xhdGUtODAwIG1iLTYgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgZm9udC1ib2xkIj48aSBjbGFzc05hbWU9Imx1Y2lkZS1waWUtY2hhcnQgdGV4dC1pbmRpZ28tNjAwIj48L2k+IOyatOyYgSDrtoTrpZjrs4Qg7KeA7LacIOu5hOykkTwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ic3BhY2UteS00IGZvbnQtYm9sZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge09iamVjdC5lbnRyaWVzKHN0YXRzLmJyZWFrZG93bikuY29uY2F0KFtbQ0FUX1JFViwgc3RhdHMucmV2XV0pLnNvcnQoKGEsYikgPT4gTWF0aC5hYnMoYlsxXSkgLSBNYXRoLmFicyhhWzFdKSkubWFwKChbY2F0LCB2YWxdKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gT2JqZWN0LnZhbHVlcyhzdGF0cy5icmVha2Rvd24pLnJlZHVjZSgocyx2KT0+cytNYXRoLmFicyh2KSwgMCkgKyBNYXRoLmFicyhzdGF0cy5yZXYpIHx8IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBjdCA9IChNYXRoLmFicyh2YWwpIC8gdG90YWwgKiAxMDApLnRvRml4ZWQoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17Y2F0fSBvbkNsaWNrPXsoKSA9PiBzZXRBY3RpdmVDYXRlZ29yeUZpbHRlcihjYXQpfSBjbGFzc05hbWU9e2BwLTIgcm91bmRlZC14bCBjdXJzb3ItcG9pbnRlciAke2FjdGl2ZUNhdGVnb3J5RmlsdGVyID09PSBjYXQgPyAnYmctaW5kaWdvLTUwIGJvcmRlciBib3JkZXItaW5kaWdvLTEwMCcgOiAnJ31gfT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1bMTFweF0gbWItMSBmb250LWJvbGQiPjxzcGFuPntjYXR9ICh7cGN0fSUpPC9zcGFuPjxzcGFuIGNsYXNzTmFtZT0iZm9udC1ibGFjayI+e3ZhbC50b0xvY2FsZVN0cmluZygpfeybkDwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0idy1mdWxsIGJnLXNsYXRlLTEwMCBoLTEuNSByb3VuZGVkLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIGZvbnQtYm9sZCI+PGRpdiBjbGFzc05hbWU9ImgtZnVsbCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi03MDAiIHN0eWxlPXt7d2lkdGg6IGAke3BjdH0lYCwgYmFja2dyb3VuZENvbG9yOiBDQVRFR09SWV9DT0xPUlNbY2F0XSB8fCAnIzk0YTNiOCd9fT48L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgb25DbGljaz17KCkgPT4gc2V0QWN0aXZlQ2F0ZWdvcnlGaWx0ZXIoQ0FUX05PTl9PUCl9IGNsYXNzTmFtZT17YHB0LTQgbXQtMiBib3JkZXItdCBjdXJzb3ItcG9pbnRlciAke2FjdGl2ZUNhdGVnb3J5RmlsdGVyID09PSBDQVRfTk9OX09QID8gJ2JnLXNsYXRlLTUwJyA6ICcnfWB9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1bMTFweF0gZm9udC1ib2xkIGZvbnQtYm9sZCI+PHNwYW4+6riw7YOAIOyImOyngC/snpDsgrA8L3NwYW4+PHNwYW4gY2xhc3NOYW1lPSJmb250LWJsYWNrIj57c3RhdHMubm9uT3BTdW0udG9Mb2NhbGVTdHJpbmcoKX3sm5A8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ibGc6Y29sLXNwYW4tNyBiZy13aGl0ZSBwLTggcm91bmRlZC1bMi41cmVtXSBib3JkZXIgc2hhZG93LXNtIGgtWzY1MHB4XSBmbGV4IGZsZXgtY29sIGZvbnQtYm9sZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIG1iLTYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9InRleHQtYmFzZSBmb250LWJsYWNrIHRleHQtc2xhdGUtODAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGZvbnQtYm9sZCBmb250LWJvbGQiPjxpIGNsYXNzTmFtZT0ibHVjaWRlLWxpc3QgdGV4dC1pbmRpZ28tNjAwIj48L2k+IOqzhOygleuzhCDsg4HshLgg7KCV7IKwIOuCtOyXrTwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FjdGl2ZUNhdGVnb3J5RmlsdGVyICE9PSAnQWxsJyAmJiA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IHNldEFjdGl2ZUNhdGVnb3J5RmlsdGVyKCdBbGwnKX0gY2xhc3NOYW1lPSJ0ZXh0LXhzIHRleHQtaW5kaWdvLTYwMCBmb250LWJvbGQgZm9udC1ib2xkIj7stIjquLDtmZQ8L2J1dHRvbj59CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvIHByLTIgY3VzdG9tLXNjcm9sbGJhciBzcGFjZS15LTMgZm9udC1ib2xkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z3JvdXBlZEFjY291bnREYXRhLmxlbmd0aCA9PT0gMCA/IDxkaXYgY2xhc3NOYW1lPSJ0ZXh0LWNlbnRlciBweS0yMCB0ZXh0LXNsYXRlLTQwMCBmb250LWJvbGQiPuuNsOydtO2EsCDsl4bsnYw8L2Rpdj4gOiBncm91cGVkQWNjb3VudERhdGEubWFwKChpLCBpZHgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV0ID0gaS5yb290ID09PSBDQVRfUkVWID8gKGkuaW5jb21lIC0gaS5leHBlbnNlKSA6IChpLmV4cGVuc2UgLSBpLmluY29tZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aWR4fSBjbGFzc05hbWU9InRvb2x0aXAtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0idG9vbHRpcC1jb250ZW50IGZvbnQtYm9sZCI+7J6F6riIOiB7aS5pbmNvbWUudG9Mb2NhbGVTdHJpbmcoKX0gLyDstpzquIg6IHtpLmV4cGVuc2UudG9Mb2NhbGVTdHJpbmcoKX08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMy41IGJnLXdoaXRlIGJvcmRlciBib3JkZXItc2xhdGUtMTAwIHJvdW5kZWQtMnhsIGhvdmVyOnNoYWRvdy1zbSBmb250LWJvbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSJ0ZXh0LVsxMHB4XSBmb250LW1vbm8gdGV4dC1zbGF0ZS00MDAgZm9udC1ib2xkIj57aS5jb2RlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0idGV4dC1zbSBmb250LWJvbGQiPntpLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSJ0ZXh0LXNtIGZvbnQtYmxhY2sgZm9udC1ib2xkIj57bmV0LnRvTG9jYWxlU3RyaW5nKCl97JuQPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUpOwpAQCAtMjI0OCw3ICsyMjQ4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+CiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJiZy13aGl0ZSBwLTggcm91bmRlZC1bMi41cmVtXSBib3JkZXIgc2hhZG93LXNtIHNwYWNlLXktNiBmb250LWJvbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9InRleHQtbGcgZm9udC1ibGFjayBtYi02IGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGZvbnQtYm9sZCI+PGkgY2xhc3NOYW1lPSJsdWNpZGUtdHJlbmRpbmctdXAgdGV4dC1lbWVyYWxkLTUwMCI+PC9pPiDquLDsl4Xrs4Qg7Iuk7ZaJIOu2hOyEnSDrpqztj6ztirg8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJiZy1zbGF0ZS01MCByb3VuZGVkLVsycmVtXSBwLTggYm9yZGVyIGJvcmRlci1zbGF0ZS0xMDAgbWItNiBmb250LWJvbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbWItNCB0ZXh0LWVtZXJhbGQtNjAwIGZvbnQtYmxhY2sgZm9udC1ib2xkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT0ibHVjaWRlLWJhci1jaGFydC0zIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7ilqAg67aE7ISd6rCAIOqyveyYgSDtmqjsnKgg66as7Y+s7Yq4IChCdWRnZXQgRWZmaWNpZW5jeSBSZXBvcnQpPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2R5bmFtaWNFeGVjdXRpb25SZXBvcnR9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImdyaWQgZ3JpZC1jb2xzLTEgbGc6Z3JpZC1jb2xzLTEyIGdhcC04IGZvbnQtYm9sZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJsZzpjb2wtc3Bhbi03IGZvbnQtYm9sZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iYmctd2hpdGUgcm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci1zbGF0ZS0xMDAgb3ZlcmZsb3ctaGlkZGVuIGZvbnQtYm9sZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT0idy1mdWxsIHRleHQtc20gdGV4dC1sZWZ0IGZvbnQtYm9sZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZCBjbGFzc05hbWU9ImJnLXNsYXRlLTEwMCB0ZXh0LXNsYXRlLTQwMCBib3JkZXItYiB0ZXh0LVsxMXB4XSBmb250LWJvbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPjx0aCBjbGFzc05hbWU9InAtNCBwbC02IGZvbnQtYm9sZCI+7Jq07JiBIOu2hOulmDwvdGg+PHRoIGNsYXNzTmFtZT0icC00IHRleHQtLXJpZ2h0IGZvbnQtYm9sZCI+7Iuk7KCcIOynke2WIiAoQSk8L3RoPjx0aCBjbGFzc05hbWU9InAtNCB0ZXh0LWNlbnRlciBmb250LWJvbGQiPuyLpO2WiSDsmIjsgrAgKEIpPC90aD48dGggY2xhc3NOYW1lPSJwLTQgdGV4dC1yaWdodCBmb250LWJvbGQiPuyynke2WieuloCAoJSk8L3RoPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBjbGFzc05hbWU9ImRpdmlkZS15IGRpdmlkZS1zbGF0ZS0xMDAgZm9udC1ib2xkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGN1cnJlbnRNb2RlID09PSAnSkFOR0hFT04nKSA/IFtDQVRfUkVWLCBDQVRfQ09OU1QsIENBVF9NRkcsIENBVF9MQUJPUiwgQ0FUX0FETUlOXSA6IFtDQVRfUkVWLCBDQVRfQ09OU1QsIENBVF9BRE1JTl0pLm1hcChjYXQgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdCA9IGNhdCA9PT0gQ0FUX1JFViA/IHN0YXRzLnJldiA6IChzdGF0cy5icmVha2Rvd25bY2F0XSB8fCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBidWQgPSBidWRnZXRzW2N1cnJlbnRNb2RlXVtjYXR0IHx8IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmF0ZSA9IGJ1ZCA+IDAgPyAoYWN0IC8gYnVkICogMTAwKS50b0ZpeGVkKDEpIDogMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIga2V5PXtjYXR9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT0icC00IHBsLTYgZm9udC1ibGFjayBmb250LWJvbGQiPntjYXR9PC90ZD48dGggY2xhc3NOYW1lPSJwLTQgdGV4dC1yaWdodCBmb250LWJvbGQiPnthY3QudG9Mb2NhbGVTdHJpbmcoKX3sm5A8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT0icC00IHRleHQtY2VudGVyIGZvbnQtYm9sZCI+PGlucHV0IHR5cGU9Im51bWJlciIgY2xhc3NOYW1lPSJ3LTMyIGJnLXNsYXRlLTUwIHJvdW5kZWQtbGcgcC0yIHRleHQtcmlnaHQgdGV4dC14cyBvdXRsaW5lLW5vbmUgZm9udC1ib2xkIGZvbnQtYm9sZCIgdmFsdWU9e2J1ZCB8fCAnJ30gb25DaGFuZ2U9e2UgPT4gc2V0QnVkZ2V0cyh7Li4uYnVkZ2V0cywgW2N1cnJlbnRNb2RlXTogey4uLmJ1ZGdldHNbY3VycmVudE1vZGVdLCBbY2F0XTogcGFyc2VGbG9hdChlLnRhcmdldC52YWx1ZSkgfHwgMH19KX0gLz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT0icC00IHRleHQtcmlnaHQgZm9udC1ibGFjayBmb250LWJvbGQgZm9udC1ib2xkIj57cmF0ZX0lPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImxnOmNvbC1zcGFuLTUgc3BhY2UteS02IGZvbnQtYm9sZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iaC1bMzUwcHhdIHctZnVsbCByZWxhdGl2ZSBmb250LWJvbGQgZm9udC1ib2xkIj48Y2FudmFzIHJlZj17Y2hhcnRSZWZ9PjwvY2FudmFzPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICApfQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICB7aXNNYXN0ZXJNb2RhbE9wZW4gJiYgKAogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZml4ZWQgaW5zZXQtMCBiZy1ibGFjay81MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB6LVsxMDAwXSBiYWNrZHJvcC1ibHVyLXNtIiBvbkNsaWNrPXsoKSA9PiBzZXRJc01hc3Rlck1vZGFsT3BlbihmYWxzZSl9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImJnLXdoaXRlIHctOTAlIG1heC13LVs4NTBweF0gbWF4LWgtWzg1dmhdIHJvdW5kZWQtWzJyZW1dIG92ZXJmbG93LWhpZGRlbiBmbGV4IGZsZXgtY29sIHNoYWRvdy0yeGwgZm9udC1ib2xkIiBvbkNsaWNrPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJwLTggYm9yZGVyLWIgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGJnLXNsYXRlLTUwIGZvbnQtYm9sZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9InRleHQteGwgZm9udC1ibGFjayB0ZXh0LXNsYXRlLTgwMCBmb250LWJvbGQiPnttYXN0ZXJNb2RhbFR5cGUgPT09ICdKQU5HSEVPTicgPyAi7J6l7ZeM7IKw7JeFIOuniOyKpO2EsCDqs4TsoJXtkZwiIDogIlBUQyDrp4jsiqTthLAg6rOE7KCV7ZGcIn08L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IHNldElzTWFzdGVyTW9kYWxPcGVuKGZhbHNlKX0gY2xhc3NOYW1lPSJwLTIgaG92ZXI6Ymctc2xhdGUtMjAwIHJvdW5kZWQtZnVsbCB0ZXh0LXNsYXRlLTQwMCBmb250LWJvbGQgZm9udC1ib2xkIj48aSBjbGFzc05hbWU9Imx1Y2lkZS14Ij48L2k+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9InAtNiBvdmVyZmxvdy15LWF1dG8gY3VzdG9tLXNjcm9sbGJhciBmbGV4LTEgZ3JpZCBncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtMyBnYXAtMyBmb250LWJvbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsqT2JqZWN0LmVudHJpZXMobWFzdGVyTW9kYWxUeXBlID09PSAnSkFOR0hFT04nID8gTUFRVJfSkFOR0hFT04gOiBNQVNURVJfUFRDKS5zb3J0KChhLGIpPT5wYXJzZUludChhWzBdKS1wYXJzZUludChiWzBdKSkubWFwKChbaywgdldpID0+ICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtrfSBjbGFzc05hbWU9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHAtMiBiZy1zbGF0ZS01MCByb3VuZGVkLWxnIGZvbnQtYm9sZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSJ0ZXh0LWluZGlnby02MDAgZm9udC1tb25vIHRleHQtWzExcHhdIHctOCBmb250LWJvbGQgZm9udC1ib2xkIj57a308L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSJ0ZXh0LXhzIHRydW5jYXRlIGZvbnQtYm9sZCBmb250LWJvbGQiPnt2fTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0icC02IGJnLXNsYXRlLTUwIGJvcmRlci10IGZsZXgganVzdGlmeS1lbmQgZm9udC1ib2xkIj48YnV0dG9uIG9uQ2xpY2s9eygpID0+IHNldElzTWFzdGVyTW9kYWxPcGVuKGZhbHNlKX0gY2xhc3NOYW1lPSJweC04IHB5LTMgYmctaW5kaWdvLTYwMCB0ZXh0LXdoaXRlIHJvdW5kZWQteGwgZm9udC1ibGFjayBmb250LWJvbGQgZm9udC1ib2xkIj7ri6vquLAPC9idXR0b24+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgY29uc3Qgcm9vdCA9IFJlYWN0RE9NLmNyZWF0ZVJvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKSk7CiAgICAgICAgcm9vdC5yZW5kZXIoPEFwcCAvPik7CiAgICA8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==
\ No newline at end of file