Zum Inhalt springen

Fußball Arena Liga: Unterschied zwischen den Versionen

Aus MOOCsWiki Staging
Spiele-ZIP kontrolliert geprüft und erstellt
 
Spiele-ZIP kontrolliert geprüft und als neue Version hochgeladen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
{{T}}
{{T}}
= Fußball Arena Liga =
= Fußball Arena Liga =
Fußball-Lernspiel mit Taktikfragen, Siegen und Aufstieg in höhere Ligen.
Überarbeitete Version mit direkter Maus-Cursor-, Finger-/Touch- und Tastatursteuerung für PC, iPad, Tablet und Smartphone.


<aimoocgame title="Fußball Arena Liga" cover="data:image/png;base64,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" manifest="eyJmb3JtYXQiOiJTcGllbGUiLCJ0aXRsZSI6IkZ1w59iYWxsIEFyZW5hIExpZ2EiLCJzaG9ydERlc2NyaXB0aW9uIjoiRnXDn2JhbGwtTGVybnNwaWVsIG1pdCBUYWt0aWtmcmFnZW4sIFNpZWdlbiB1bmQgQXVmc3RpZWcgaW4gaMO2aGVyZSBMaWdlbi4iLCJzdWJqZWN0IjoiU3BvcnQiLCJjbGFzc1JhbmdlIjoiS2xhc3NlIDUtMTAiLCJjYXRlZ29yaWVzIjpbIlNwb3J0IiwiRnXDn2JhbGwiLCJTcGllbGUiXSwidGFncyI6WyJMZXJuc3BpZWwiLCJJbnRlcmFrdGl2IiwiRnXDn2JhbGwiLCJUYWt0aWsiLCJMaWdhIl0sImNvbnRyb2xzIjpbIk1hdXMiLCJUb3VjaCIsIlRhc3RhdHVyIl0sImZ1bGxzY3JlZW4iOnRydWUsImVudHJ5RmlsZSI6ImluZGV4Lmh0bWwiLCJzdHlsZUZpbGUiOiJzdHlsZS5jc3MiLCJzY3JpcHRGaWxlIjoic2NyaXB0LmpzIiwiY292ZXJGaWxlIjoiYXNzZXRzL2NvdmVyLnBuZyIsInZlcnNpb24iOiIxLjAuMCIsImxhbmd1YWdlIjoiZGUiLCJhY2Nlc3NpYmlsaXR5Ijoia2V5Ym9hcmQtdG91Y2gtbW91c2UiLCJjb21tb25zU291cmNlcyI6W119" ziphash="953bfbbcbdceab184faca31f316bb94fc1616b5343496cd9efcfc1de6901aa36">
<aimoocgame title="Fußball Arena Liga" cover="data:image/png;base64,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" manifest="eyJmb3JtYXQiOiJTcGllbGUiLCJ0aXRsZSI6IkZ1w59iYWxsIEFyZW5hIExpZ2EiLCJzaG9ydERlc2NyaXB0aW9uIjoiRnXDn2JhbGwtTGVybnNwaWVsIG1pdCBkaXJla3RlciBNYXVzLSwgQ3Vyc29yLSwgRmluZ2VyLSB1bmQgVGFzdGF0dXJzdGV1ZXJ1bmcgc293aWUgQXVmc3RpZWdzc3lzdGVtLiIsInN1YmplY3QiOiJTcG9ydCIsImNsYXNzUmFuZ2UiOiJLbGFzc2UgNS0xMCIsImNhdGVnb3JpZXMiOlsiU3BvcnQiLCJGdcOfYmFsbCIsIlNwaWVsZSJdLCJ0YWdzIjpbIkxlcm5zcGllbCIsIkludGVyYWt0aXYiLCJGdcOfYmFsbCIsIlRha3RpayIsIkxpZ2EiLCJUb3VjaCJdLCJjb250cm9scyI6WyJNYXVzIiwiVG91Y2giLCJUYXN0YXR1ciJdLCJmdWxsc2NyZWVuIjp0cnVlLCJlbnRyeUZpbGUiOiJpbmRleC5odG1sIiwic3R5bGVGaWxlIjoic3R5bGUuY3NzIiwic2NyaXB0RmlsZSI6InNjcmlwdC5qcyIsImNvdmVyRmlsZSI6ImFzc2V0cy9jb3Zlci5wbmciLCJ2ZXJzaW9uIjoiMS4xLjAiLCJsYW5ndWFnZSI6ImRlIiwiYWNjZXNzaWJpbGl0eSI6ImtleWJvYXJkLXRvdWNoLW1vdXNlIiwiY29tbW9uc1NvdXJjZXMiOltdfQ==" ziphash="c363730b99070ebc1f748ca67239b2c58950342ff87d7530c8cf0f352ca41cd0">
PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiAgPHRpdGxlPkZ1w59iYWxsIEFyZW5hIExpZ2E8L3RpdGxlPgogIAo8c3R5bGU+Cip7Ym94LXNpemluZzpib3JkZXItYm94fTpyb290e2NvbG9yLXNjaGVtZTpkYXJrOy0tYmc6IzA3MTUxMDstLXBhbmVsOiMxMDI1MWRlODstLWxpbmU6I2ZmZmZmZjMwOy0tdHh0OiNmNGZmZjg7LS1tdXRlZDojYmRkOGM5Oy0tYTojNmZmMmE3Oy0tYjojZmZkMTY2Oy0tcjojZmY3MDcwOy0tYmx1ZTojNjViN2ZmfWh0bWwsYm9keXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO21hcmdpbjowO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOiMwNzE1MTA7Y29sb3I6dmFyKC0tdHh0KTtmb250LWZhbWlseTpzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxTZWdvZSBVSSxzYW5zLXNlcmlmfWJ1dHRvbntib3JkZXI6MDtib3JkZXItcmFkaXVzOjFyZW07cGFkZGluZzouODVyZW0gMS4xcmVtO2ZvbnQ6NzAwIDFyZW0gc3lzdGVtLXVpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1hKSwjMjdjNzZmKTtjb2xvcjojMDcyMDEzO2JveC1zaGFkb3c6MCAuNDVyZW0gMS4ycmVtICMwMDA4O2N1cnNvcjpwb2ludGVyO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259YnV0dG9uOmhvdmVye2ZpbHRlcjpicmlnaHRuZXNzKDEuMDYpfWJ1dHRvbjpmb2N1cy12aXNpYmxle291dGxpbmU6LjIycmVtIHNvbGlkICNmZmY7b3V0bGluZS1vZmZzZXQ6LjE1cmVtfS5naG9zdHtiYWNrZ3JvdW5kOiMxNjNiMmZjYztjb2xvcjp2YXIoLS10eHQpO2JvcmRlcjouMDhyZW0gc29saWQgdmFyKC0tbGluZSl9LmFwcHtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDB2dztoZWlnaHQ6MTAwZHZoO21pbi1oZWlnaHQ6MzJyZW07YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDIwJSAxNSUsIzFkNmI0MiwjMGQyZTIwIDQ0JSwjMDcxNTEwIDEwMCUpfWNhbnZhc3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTpibG9ja30uaHVke3Bvc2l0aW9uOmFic29sdXRlO3RvcDouNzVyZW07bGVmdDouNzVyZW07cmlnaHQ6Ljc1cmVtO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsMWZyKTtnYXA6LjU1cmVtO3otaW5kZXg6Mn0uaHVkIGRpdiwucGFuZWwsLm1lbnUsLmNvbnRyb2xzIGJ1dHRvbntiYWNrZHJvcC1maWx0ZXI6Ymx1ciguNnJlbSl9Lmh1ZCBkaXZ7YmFja2dyb3VuZDp2YXIoLS1wYW5lbCk7Ym9yZGVyOi4wOHJlbSBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOjFyZW07cGFkZGluZzouNTVyZW0gLjc1cmVtfS5odWQgc3BhbntkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6Ljc2cmVtfS5odWQgc3Ryb25ne2ZvbnQtc2l6ZToxLjI1cmVtfS5wYW5lbHtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjQ7YmFja2dyb3VuZDp2YXIoLS1wYW5lbCk7Ym9yZGVyOi4wOHJlbSBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOjEuNHJlbTtib3gtc2hhZG93OjAgMXJlbSAzcmVtICMwMDA5fS5zdGFydCwucXVpeiwuZW5ke2xlZnQ6NTAlO3RvcDo1MCU7d2lkdGg6bWluKDQycmVtLDkydncpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtwYWRkaW5nOjEuNHJlbX0uc21hbGx7bGVmdDouNzVyZW07Ym90dG9tOjhyZW07bWF4LXdpZHRoOm1pbigzNXJlbSxjYWxjKDEwMHZ3IC0gMS41cmVtKSk7cGFkZGluZzouNzVyZW0gMXJlbX0uc21hbGwgcHttYXJnaW46MH0uaGlkZGVue2Rpc3BsYXk6bm9uZX0uZXllYnJvd3ttYXJnaW46MCAwIC4zNXJlbTtjb2xvcjp2YXIoLS1iKTtmb250LXdlaWdodDo4MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wOGVtfS5zdGFydCBoMXttYXJnaW46LjFyZW0gMDtmb250LXNpemU6Y2xhbXAoMi4ycmVtLDd2dyw0LjhyZW0pO2xpbmUtaGVpZ2h0Oi45Mn0ucXVpeiBoMiwuZW5kIGgye21hcmdpbjouMnJlbSAwIDFyZW07Zm9udC1zaXplOmNsYW1wKDEuMzVyZW0sNHZ3LDJyZW0pfS5yb3d7ZGlzcGxheTpmbGV4O2dhcDouNzVyZW07ZmxleC13cmFwOndyYXB9LmhpbnR7Y29sb3I6dmFyKC0tbXV0ZWQpfS5hbnN3ZXJze2Rpc3BsYXk6Z3JpZDtnYXA6LjY1cmVtfS5hbnN3ZXJzIGJ1dHRvbnt3aWR0aDoxMDAlO3RleHQtYWxpZ246bGVmdDtiYWNrZ3JvdW5kOiNlOGZmZjA7Y29sb3I6IzA5MjMxNX0uY29udHJvbHN7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDozO2xlZnQ6NTAlO2JvdHRvbTouNzVyZW07dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczo0LjJyZW0gNC4ycmVtIDUuOHJlbSA0LjJyZW0gNC4ycmVtO2dhcDouNDVyZW19LmNvbnRyb2xzIGJ1dHRvbnttaW4taGVpZ2h0OjMuNnJlbTtiYWNrZ3JvdW5kOiMxNzM4MmJjYztjb2xvcjojZmZmO2JvcmRlcjouMDhyZW0gc29saWQgdmFyKC0tbGluZSl9LmNvbnRyb2xzIC5zaG9vdHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tYiksI2ZmOWYxYyk7Y29sb3I6IzI0MTQwMH0ubWVudXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDouNzVyZW07Ym90dG9tOi43NXJlbTt6LWluZGV4OjM7ZGlzcGxheTpmbGV4O2dhcDouNDVyZW19QG1lZGlhIChtYXgtd2lkdGg6NzYwcHgpey5odWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLDFmcik7Zm9udC1zaXplOi45cmVtfS5zbWFsbHtib3R0b206Ni4ycmVtfS5jb250cm9sc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6My41cmVtIDMuNXJlbSA0LjhyZW0gMy41cmVtIDMuNXJlbX0uY29udHJvbHMgYnV0dG9ue21pbi1oZWlnaHQ6My4xNXJlbTtwYWRkaW5nOi40NXJlbX0ubWVudXt0b3A6Ny44cmVtO2JvdHRvbTphdXRvO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uc3RhcnQsLnF1aXosLmVuZHtwYWRkaW5nOjFyZW19fUBtZWRpYSAobWF4LWhlaWdodDo1MjBweCl7Lmh1ZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsMWZyKX0uc21hbGx7ZGlzcGxheTpub25lfS5zdGFydCwucXVpeiwuZW5ke3RvcDo1MiU7bWF4LWhlaWdodDo3NmR2aDtvdmVyZmxvdzphdXRvfS5jb250cm9sc3tib3R0b206LjRyZW19Lm1lbnV7Ym90dG9tOi40cmVtO3RvcDphdXRvfX0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICA8bWFpbiBpZD0iZ2FtZS1yb290IiBjbGFzcz0iYXBwIiBhcmlhLWxhYmVsPSJGdcOfYmFsbCBBcmVuYSBMaWdhIj4KICAgIDxjYW52YXMgaWQ9ImZpZWxkIiByb2xlPSJpbWciIGFyaWEtbGFiZWw9IkZ1w59iYWxsZmVsZCBtaXQgQmFsbCB1bmQgVG9yZW4iPjwvY2FudmFzPgogICAgPHNlY3Rpb24gaWQ9InN0YXJ0LXNjcmVlbiIgY2xhc3M9InBhbmVsIHN0YXJ0Ij4KICAgICAgPHAgY2xhc3M9ImV5ZWJyb3ciPk1PT0N3aWtpIExlcm5zcGllbDwvcD4KICAgICAgPGgxPkZ1w59iYWxsIEFyZW5hIExpZ2E8L2gxPgogICAgICA8cD5HZXdpbm5lIFNwaWVsZSwgYmVhbnR3b3J0ZSBUYWt0aWtmcmFnZW4gdW5kIHN0ZWlnZSBuYWNoIG1laHJlcmVuIFNpZWdlbiBpbiBow7ZoZXJlIExpZ2VuIGF1Zi48L3A+CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGJ1dHRvbiBpZD0ic3RhcnQtYnV0dG9uIj5TcGllbCBzdGFydGVuPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBpZD0iZnVsbHNjcmVlbi1idXR0b24iIGNsYXNzPSJnaG9zdCI+Vm9sbGJpbGQ8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJoaW50Ij5TdGV1ZXJ1bmc6IFBmZWlsZSBvZGVyIFdBU0QgYmV3ZWdlbiwgTGVlcnRhc3RlIHNjaGllw59lbi4gVG91Y2gtQnV0dG9ucyBmdW5rdGlvbmllcmVuIGF1ZiBUYWJsZXQgdW5kIFNtYXJ0cGhvbmUuPC9wPgogICAgPC9zZWN0aW9uPgogICAgPGhlYWRlciBjbGFzcz0iaHVkIj4KICAgICAgPGRpdj48c3Bhbj5TcGllbHN0YW5kPC9zcGFuPjxzdHJvbmcgaWQ9InNjb3JlLWxhYmVsIj4wIDogMDwvc3Ryb25nPjwvZGl2PgogICAgICA8ZGl2PjxzcGFuPkxpZ2E8L3NwYW4+PHN0cm9uZyBpZD0ibGVhZ3VlLWxhYmVsIj5LcmVpc2tsYXNzZTwvc3Ryb25nPjwvZGl2PgogICAgICA8ZGl2PjxzcGFuPlNpZWdlIGJpcyBBdWZzdGllZzwvc3Bhbj48c3Ryb25nIGlkPSJwcm9tb3Rpb24tbGFiZWwiPjAgLyAzPC9zdHJvbmc+PC9kaXY+CiAgICAgIDxkaXY+PHNwYW4+WmVpdDwvc3Bhbj48c3Ryb25nIGlkPSJ0aW1lLWxhYmVsIj45MDwvc3Ryb25nPjwvZGl2PgogICAgPC9oZWFkZXI+CiAgICA8c2VjdGlvbiBpZD0ibWVzc2FnZS1wYW5lbCIgY2xhc3M9InBhbmVsIHNtYWxsIiBhcmlhLWxpdmU9InBvbGl0ZSI+CiAgICAgIDxwIGlkPSJtZXNzYWdlLXRleHQiPkJlcmVpdD88L3A+CiAgICA8L3NlY3Rpb24+CiAgICA8c2VjdGlvbiBpZD0icXVpei1wYW5lbCIgY2xhc3M9InBhbmVsIHF1aXogaGlkZGVuIiBhcmlhLWxpdmU9ImFzc2VydGl2ZSI+CiAgICAgIDxwIGNsYXNzPSJleWVicm93Ij5UYWt0aWtmcmFnZTwvcD4KICAgICAgPGgyIGlkPSJxdWVzdGlvbi10ZXh0Ij5GcmFnZTwvaDI+CiAgICAgIDxkaXYgaWQ9ImFuc3dlci1saXN0IiBjbGFzcz0iYW5zd2VycyI+PC9kaXY+CiAgICA8L3NlY3Rpb24+CiAgICA8c2VjdGlvbiBpZD0icmVzdWx0LXBhbmVsIiBjbGFzcz0icGFuZWwgZW5kIGhpZGRlbiIgYXJpYS1saXZlPSJwb2xpdGUiPgogICAgICA8aDIgaWQ9InJlc3VsdC10aXRsZSI+QWJwZmlmZjwvaDI+CiAgICAgIDxwIGlkPSJyZXN1bHQtdGV4dCI+PC9wPgogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxidXR0b24gaWQ9Im5leHQtYnV0dG9uIj5Ow6RjaHN0ZXMgU3BpZWw8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIGlkPSJyZXNldC1idXR0b24iIGNsYXNzPSJnaG9zdCI+TmV1IHN0YXJ0ZW48L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CiAgICA8bmF2IGNsYXNzPSJjb250cm9scyIgYXJpYS1sYWJlbD0iU3BpZWxzdGV1ZXJ1bmciPgogICAgICA8YnV0dG9uIGRhdGEtYWN0aW9uPSJ1cCI+4payPC9idXR0b24+CiAgICAgIDxidXR0b24gZGF0YS1hY3Rpb249ImxlZnQiPuKXgDwvYnV0dG9uPgogICAgICA8YnV0dG9uIGRhdGEtYWN0aW9uPSJzaG9vdCIgY2xhc3M9InNob290Ij5TY2h1c3M8L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBkYXRhLWFjdGlvbj0icmlnaHQiPuKWtjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGRhdGEtYWN0aW9uPSJkb3duIj7ilrw8L2J1dHRvbj4KICAgIDwvbmF2PgogICAgPGFzaWRlIGNsYXNzPSJtZW51Ij4KICAgICAgPGJ1dHRvbiBpZD0icGF1c2UtYnV0dG9uIiBjbGFzcz0iZ2hvc3QiPlBhdXNlPC9idXR0b24+CiAgICAgIDxidXR0b24gaWQ9Im1lbnUtYnV0dG9uIiBjbGFzcz0iZ2hvc3QiPk1lbsO8PC9idXR0b24+CiAgICA8L2FzaWRlPgogIDwvbWFpbj4KICAKPHNjcmlwdD4KKCgpPT57InVzZSBzdHJpY3QiOwpjb25zdCBlbD1pZD0+ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwpjb25zdCBjYW52YXM9ZWwoImZpZWxkIiksY3R4PWNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwpjb25zdCB1aT17cm9vdDplbCgiZ2FtZS1yb290Iiksc3RhcnQ6ZWwoInN0YXJ0LXNjcmVlbiIpLHF1aXo6ZWwoInF1aXotcGFuZWwiKSxyZXN1bHQ6ZWwoInJlc3VsdC1wYW5lbCIpLG1zZzplbCgibWVzc2FnZS10ZXh0Iiksc2NvcmU6ZWwoInNjb3JlLWxhYmVsIiksbGVhZ3VlOmVsKCJsZWFndWUtbGFiZWwiKSxwcm9tbzplbCgicHJvbW90aW9uLWxhYmVsIiksdGltZTplbCgidGltZS1sYWJlbCIpLHE6ZWwoInF1ZXN0aW9uLXRleHQiKSxhbnN3ZXJzOmVsKCJhbnN3ZXItbGlzdCIpLHJlc3VsdFRpdGxlOmVsKCJyZXN1bHQtdGl0bGUiKSxyZXN1bHRUZXh0OmVsKCJyZXN1bHQtdGV4dCIpfTsKY29uc3Qga2V5cz17dXA6ZmFsc2UsZG93bjpmYWxzZSxsZWZ0OmZhbHNlLHJpZ2h0OmZhbHNlLHNob290OmZhbHNlfTsKY29uc3QgbGVhZ3Vlcz1bIktyZWlza2xhc3NlIiwiQmV6aXJrc2xpZ2EiLCJMYW5kZXNsaWdhIiwiT2JlcmxpZ2EiLCJSZWdpb25hbGxpZ2EiXTsKY29uc3QgcXVlc3Rpb25zPVsKIHtxOiJXYXMgaGlsZnQgYmVpbSBBbmdyaWZmIMO8YmVyIGF1w59lbj8iLGE6WyJCcmVpdGUgZ2ViZW4gdW5kIGFuc3BpZWxiYXIgYmxlaWJlbiIsIkFsbGUgbGF1ZmVuIHp1bSBCYWxsIiwiRGVuIEJhbGwgYWJzaWNodGxpY2ggaW5zIEF1cyBzY2hpZcOfZW4iXSxvazowLHRpcDoiQnJlaXRlIMO2ZmZuZXQgUsOkdW1lIHVuZCBnaWJ0IHNpY2hlcmUgUGFzc3dlZ2UuIn0sCiB7cToiV2FzIGJlZGV1dGV0IFByZXNzaW5nPyIsYTpbIkdlbWVpbnNhbSBEcnVjayBhdWYgYmFsbGbDvGhyZW5kZSBHZWduZXIgYXVzw7xiZW4iLCJUb3J3YXJ0d2VjaHNlbCBuYWNoIGplZGVtIFNjaHVzcyIsIk51ciBsYW5nZSBQw6Rzc2Ugc3BpZWxlbiJdLG9rOjAsdGlwOiJQcmVzc2luZyBmdW5rdGlvbmllcnQgYWxzIGFiZ2VzdGltbXRlIFRlYW1ha3Rpb24uIn0sCiB7cToiV2VsY2hlIEVudHNjaGVpZHVuZyBpc3QgZmFpcj8iLGE6WyJOYWNoIGVpbmVtIEZvdWwgYXVmaMO2cmVuIHVuZCBIaWxmZSBhbmJpZXRlbiIsIk5hY2h0cmV0ZW4iLCJEZW4gU2NoaWVkc3JpY2h0ZXIgYW5zY2hyZWllbiJdLG9rOjAsdGlwOiJGYWlycGxheSBzY2jDvHR6dCBhbGxlIHVuZCBnZWjDtnJ0IHp1bSBTcG9ydC4ifSwKIHtxOiJXYW5uIGlzdCBlaW4ga3VyemVyIFBhc3Mgc2lubnZvbGw/IixhOlsiV2VubiBNaXRzcGllbGVuZGUgZnJlaSBuYWggYW0gQmFsbCBzdGVoZW4iLCJJbW1lciBiZWltIFN0cmFmc3Rvw58iLCJOdXIgbmFjaCBlaW5lbSBHZWdlbnRvciJdLG9rOjAsdGlwOiJLdXJ6ZSBQw6Rzc2Ugc2ljaGVybiBCYWxsYmVzaXR6LiJ9LAoge3E6IldhcnVtIGlzdCBVbXNjaGFsdGVuIHdpY2h0aWc/IixhOlsiTmFjaCBCYWxsZ2V3aW5uIHNjaG5lbGwgQW5ncmlmZiBvZGVyIFNpY2hlcnVuZyB3w6RobGVuIiwiRGFtaXQgYWxsZSBzdGVoZW4gYmxlaWJlbiIsIkRhbWl0IGRpZSBVaHIgc2NobmVsbGVyIGzDpHVmdCJdLG9rOjAsdGlwOiJTY2huZWxsZXMgVW1zY2hhbHRlbiBudXR6dCBmcmVpZSBSw6R1bWUuIn0sCiB7cToiV2FzIG1hY2h0IGVpbmUgZ3V0ZSBBYndlaHI/IixhOlsiUsOkdW1lIHNjaGxpZcOfZW4gdW5kIHp1c2FtbWVuIHZlcnNjaGllYmVuIiwiTnVyIGF1ZiBkZXIgVG9ybGluaWUgd2FydGVuIiwiT2huZSBBYnNwcmFjaGUgZ3LDpHRzY2hlbiJdLG9rOjAsdGlwOiJHdXRlIEFid2VociBpc3QgZ2VvcmRuZXQgdW5kIGdlbWVpbnNhbS4ifQpdOwpsZXQgc3RhdGUsbG9vcElkPTAsbGFzdD0wLHF1aXpJbmRleD0wLHBhdXNlZD1mYWxzZTsKZnVuY3Rpb24gZnJlc2hTdGF0ZSgpe3JldHVybntzY3JlZW46InN0YXJ0Iix3OjAsaDowLHQ6OTAsc2NvcmVBOjAsc2NvcmVCOjAsd2luczowLGxlYWd1ZTowLGJvb3N0OjAscGxheWVyOnt4Oi4yNCx5Oi41LHI6LjAzNH0sYmFsbDp7eDouMzIseTouNSx2eDowLHZ5OjAscjouMDE4fSxvcHA6e3g6LjcyLHk6LjUscjouMDM0fSxub3RpY2U6Ikdld2lubmUgYmlzIGRyZWkgVG9yZS4gRHJlaSBTaWVnZSBicmluZ2VuIGRlbiBBdWZzdGllZy4ifX0KZnVuY3Rpb24gcmVzZXRHYW1lKCl7c3RhdGU9ZnJlc2hTdGF0ZSgpO3BhdXNlZD1mYWxzZTtyZXNpemUoKTtyZW5kZXJVaSgpO2RyYXcoKX0KZnVuY3Rpb24gc3RhcnRNYXRjaCgpe3N0YXRlLnNjcmVlbj0icGxheSI7c3RhdGUudD05MDtzdGF0ZS5zY29yZUE9MDtzdGF0ZS5zY29yZUI9MDtzdGF0ZS5wbGF5ZXIueD0uMjQ7c3RhdGUucGxheWVyLnk9LjU7c3RhdGUuYmFsbC54PS4zMjtzdGF0ZS5iYWxsLnk9LjU7c3RhdGUuYmFsbC52eD0wO3N0YXRlLmJhbGwudnk9MDtzdGF0ZS5vcHAueD0uNzI7c3RhdGUub3BwLnk9LjU7c3RhdGUubm90aWNlPSJBbnBmaWZmISBCZXdlZ2UgZGljaCB6dW0gQmFsbCB1bmQgc2NoaWXDn2UgYXVmcyByZWNodGUgVG9yLiI7aGlkZSh1aS5zdGFydCk7aGlkZSh1aS5xdWl6KTtoaWRlKHVpLnJlc3VsdCk7cmVuZGVyVWkoKTtydW4oKX0KZnVuY3Rpb24gbmV4dE1hdGNoKCl7aGlkZSh1aS5yZXN1bHQpO3N0YXJ0TWF0Y2goKX0KZnVuY3Rpb24gcmVzaXplKCl7Y29uc3QgZD1NYXRoLm1pbihkZXZpY2VQaXhlbFJhdGlvfHwxLDIpO2NhbnZhcy53aWR0aD1NYXRoLmZsb29yKGlubmVyV2lkdGgqZCk7Y2FudmFzLmhlaWdodD1NYXRoLmZsb29yKGlubmVySGVpZ2h0KmQpO2NhbnZhcy5zdHlsZS53aWR0aD1pbm5lcldpZHRoKyJweCI7Y2FudmFzLnN0eWxlLmhlaWdodD1pbm5lckhlaWdodCsicHgiO2N0eC5zZXRUcmFuc2Zvcm0oZCwwLDAsZCwwLDApO3N0YXRlLnc9aW5uZXJXaWR0aDtzdGF0ZS5oPWlubmVySGVpZ2h0fQpmdW5jdGlvbiBzaG93KG4pe24uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9ZnVuY3Rpb24gaGlkZShuKXtuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfQpmdW5jdGlvbiByZXF1ZXN0RnVsbCgpe2NvbnN0IHI9dWkucm9vdDtpZihyLnJlcXVlc3RGdWxsc2NyZWVuKXtyLnJlcXVlc3RGdWxsc2NyZWVuKCkuY2F0Y2goKCk9PnIuY2xhc3NMaXN0LmFkZCgiZmFsbGJhY2stZnVsbCIpKTt9ZWxzZXtyLmNsYXNzTGlzdC50b2dnbGUoImZhbGxiYWNrLWZ1bGwiKX19CmZ1bmN0aW9uIHJ1bigpe2NhbmNlbEFuaW1hdGlvbkZyYW1lKGxvb3BJZCk7bGFzdD1wZXJmb3JtYW5jZS5ub3coKTtsb29wSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHN0ZXApfQpmdW5jdGlvbiBzdGVwKG5vdyl7Y29uc3QgZHQ9TWF0aC5taW4oKG5vdy1sYXN0KS8xMDAwLC4wMzMpO2xhc3Q9bm93O2lmKHN0YXRlLnNjcmVlbj09PSJwbGF5IiYmIXBhdXNlZCl7dXBkYXRlKGR0KX1kcmF3KCk7bG9vcElkPXJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwKX0KZnVuY3Rpb24gdXBkYXRlKGR0KXtzdGF0ZS50LT1kdDtpZihzdGF0ZS50PD0wKXtlbmRNYXRjaCgpfW1vdmVQbGF5ZXIoZHQpO21vdmVPcHAoZHQpO21vdmVCYWxsKGR0KTtjaGVja0dvYWwoKX0KZnVuY3Rpb24gbW92ZVBsYXllcihkdCl7Y29uc3QgcD1zdGF0ZS5wbGF5ZXIsc3BkPSguNDgrc3RhdGUuYm9vc3QpKmR0O2lmKGtleXMubGVmdClwLngtPXNwZDtpZihrZXlzLnJpZ2h0KXAueCs9c3BkO2lmKGtleXMudXApcC55LT1zcGQ7aWYoa2V5cy5kb3duKXAueSs9c3BkO3AueD1jbGFtcChwLngsLjA2LC45NCk7cC55PWNsYW1wKHAueSwuMTMsLjg3KTtpZihkaXN0KHAsc3RhdGUuYmFsbCk8cC5yK3N0YXRlLmJhbGwucisuMDI1KXtzdGF0ZS5iYWxsLng9cC54K3AucisuMDI7c3RhdGUuYmFsbC55Kz0ocC55LXN0YXRlLmJhbGwueSkqLjE4O2lmKGtleXMuc2hvb3Qpe3N0YXRlLmJhbGwudng9Ljg1K3N0YXRlLmJvb3N0O3N0YXRlLmJhbGwudnk9KHN0YXRlLmJhbGwueS0uNSkqLjM1O3N0YXRlLm5vdGljZT0iU2NodXNzISI7a2V5cy5zaG9vdD1mYWxzZX19fQpmdW5jdGlvbiBtb3ZlT3BwKGR0KXtjb25zdCBvPXN0YXRlLm9wcCxiPXN0YXRlLmJhbGwsc3BkPSguMjUrLjA0KnN0YXRlLmxlYWd1ZSkqZHQ7by54Kz1NYXRoLnNpZ24oYi54LW8ueCkqc3BkO28ueSs9TWF0aC5zaWduKGIueS1vLnkpKnNwZDtpZihkaXN0KG8sYik8by5yK2IucisuMDEpe2Iudng9LS42Mi0uMDQqc3RhdGUubGVhZ3VlO2Iudnk9KGIueS1vLnkpKjEuMjtzdGF0ZS5ub3RpY2U9IkdlZ25lciBrbMOkcnQuIE51dHplIFJhdW0gdW5kIFByZXNzaW5nISJ9by54PWNsYW1wKG8ueCwuNDgsLjkyKTtvLnk9Y2xhbXAoby55LC4xNSwuODUpfQpmdW5jdGlvbiBtb3ZlQmFsbChkdCl7Y29uc3QgYj1zdGF0ZS5iYWxsO2IueCs9Yi52eCpkdDtiLnkrPWIudnkqZHQ7Yi52eCo9Ljk5MjtiLnZ5Kj0uOTkyO2lmKGIueTwuMTJ8fGIueT4uODgpe2IueT1jbGFtcChiLnksLjEyLC44OCk7Yi52eSo9LS44fWlmKGIueDwuMDR8fGIueD4uOTYpe2IueD1jbGFtcChiLngsLjA0LC45Nik7Yi52eCo9LS42NX19CmZ1bmN0aW9uIGNoZWNrR29hbCgpe2NvbnN0IGI9c3RhdGUuYmFsbDtpZihiLng+Ljk1NSYmYi55Pi4zOCYmYi55PC42Mil7c3RhdGUuc2NvcmVBKys7c3RhdGUubm90aWNlPSJUb3IhIEVpbmUgVGFrdGlrZnJhZ2UgYnJpbmd0IGRpciBlaW5lbiBCb251cy4iO2FmdGVyUG9pbnQodHJ1ZSl9ZWxzZSBpZihiLng8LjA0NSYmYi55Pi4zOCYmYi55PC42Mil7c3RhdGUuc2NvcmVCKys7c3RhdGUubm90aWNlPSJHZWdlbnRvci4gTGVybmUgYXVzIGRlciBTaXR1YXRpb24hIjthZnRlclBvaW50KGZhbHNlKX19CmZ1bmN0aW9uIGFmdGVyUG9pbnQoYXNrKXtyZW5kZXJVaSgpO3Jlc2V0QmFsbCgpO2lmKHN0YXRlLnNjb3JlQT49M3x8c3RhdGUuc2NvcmVCPj0zKXtlbmRNYXRjaCgpO3JldHVybn1pZihhc2spb3BlblF1aXooKTtlbHNle3N0YXRlLmJhbGwueD0uNDU7c3RhdGUuYmFsbC52eD0uMTJ9fQpmdW5jdGlvbiByZXNldEJhbGwoKXtzdGF0ZS5iYWxsLng9LjU7c3RhdGUuYmFsbC55PS41O3N0YXRlLmJhbGwudng9MDtzdGF0ZS5iYWxsLnZ5PTA7c3RhdGUucGxheWVyLng9LjI0O3N0YXRlLnBsYXllci55PS41O3N0YXRlLm9wcC54PS43MjtzdGF0ZS5vcHAueT0uNX0KZnVuY3Rpb24gb3BlblF1aXooKXtwYXVzZWQ9dHJ1ZTtzdGF0ZS5zY3JlZW49InF1aXoiO3F1aXpJbmRleD0ocXVpekluZGV4KzEpJXF1ZXN0aW9ucy5sZW5ndGg7Y29uc3QgaXRlbT1xdWVzdGlvbnNbcXVpekluZGV4XTt1aS5xLnRleHRDb250ZW50PWl0ZW0ucTt1aS5hbnN3ZXJzLnRleHRDb250ZW50PSIiO2l0ZW0uYS5mb3JFYWNoKCh0eHQsaSk9Pntjb25zdCBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2IudHlwZT0iYnV0dG9uIjtiLnRleHRDb250ZW50PXR4dDtiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+YW5zd2VyUXVpeihpPT09aXRlbS5vayxpdGVtLnRpcCkpO3VpLmFuc3dlcnMuYXBwZW5kQ2hpbGQoYil9KTtzaG93KHVpLnF1aXopfQpmdW5jdGlvbiBhbnN3ZXJRdWl6KG9rLHRpcCl7aGlkZSh1aS5xdWl6KTtzdGF0ZS5zY3JlZW49InBsYXkiO3BhdXNlZD1mYWxzZTtpZihvayl7c3RhdGUuYm9vc3Q9TWF0aC5taW4oc3RhdGUuYm9vc3QrLjAzNSwuMTYpO3N0YXRlLm5vdGljZT0iUmljaHRpZzogIit0aXArIiBEZWluIFRlYW0gc3BpZWx0IHNjaG5lbGxlci4ifWVsc2V7c3RhdGUuc2NvcmVCPU1hdGgubWluKHN0YXRlLnNjb3JlQisxLDIpO3N0YXRlLm5vdGljZT0iTm9jaCBuaWNodDogIit0aXArIiBEZXIgR2VnbmVyIGJla29tbXQgRHJ1Y2suIn1yZW5kZXJVaSgpfQpmdW5jdGlvbiBlbmRNYXRjaCgpe3N0YXRlLnNjcmVlbj0iZW5kIjtjYW5jZWxBbmltYXRpb25GcmFtZShsb29wSWQpO2NvbnN0IHdpbj1zdGF0ZS5zY29yZUE+c3RhdGUuc2NvcmVCO2lmKHdpbil7c3RhdGUud2lucysrO3VpLnJlc3VsdFRpdGxlLnRleHRDb250ZW50PSJTaWVnISI7dWkucmVzdWx0VGV4dC50ZXh0Q29udGVudD0iRHUgaGFzdCBnZXdvbm5lbi4gTmFjaCBkcmVpIFNpZWdlbiBpbiBlaW5lciBMaWdhIHN0ZWlnc3QgZHUgYXVmLiI7aWYoc3RhdGUud2lucz49MyYmc3RhdGUubGVhZ3VlPGxlYWd1ZXMubGVuZ3RoLTEpe3N0YXRlLmxlYWd1ZSsrO3N0YXRlLndpbnM9MDt1aS5yZXN1bHRUZXh0LnRleHRDb250ZW50PSJEcml0dGVyIFNpZWchIERlaW4gVGVhbSBzdGVpZ3QgYXVmIGluIGRpZSAiK2xlYWd1ZXNbc3RhdGUubGVhZ3VlXSsiLiJ9fWVsc2V7c3RhdGUud2lucz1NYXRoLm1heCgwLHN0YXRlLndpbnMtMSk7dWkucmVzdWx0VGl0bGUudGV4dENvbnRlbnQ9IkFicGZpZmYiO3VpLnJlc3VsdFRleHQudGV4dENvbnRlbnQ9Ik5vY2gga2VpbiBTaWVnLiBUcmFpbmllcmUgUMOkc3NlLCBQcmVzc2luZyB1bmQgZ3V0ZSBTY2jDvHNzZS4ifXJlbmRlclVpKCk7c2hvdyh1aS5yZXN1bHQpfQpmdW5jdGlvbiByZW5kZXJVaSgpe3VpLnNjb3JlLnRleHRDb250ZW50PXN0YXRlLnNjb3JlQSsiIDogIitzdGF0ZS5zY29yZUI7dWkubGVhZ3VlLnRleHRDb250ZW50PWxlYWd1ZXNbc3RhdGUubGVhZ3VlXTt1aS5wcm9tby50ZXh0Q29udGVudD1zdGF0ZS53aW5zKyIgLyAzIjt1aS50aW1lLnRleHRDb250ZW50PU1hdGgubWF4KDAsTWF0aC5jZWlsKHN0YXRlLnQpKTt1aS5tc2cudGV4dENvbnRlbnQ9c3RhdGUubm90aWNlfQpmdW5jdGlvbiBkcmF3KCl7Y29uc3Qgdz1pbm5lcldpZHRoLGg9aW5uZXJIZWlnaHQ7Y3R4LmNsZWFyUmVjdCgwLDAsdyxoKTtjdHguZmlsbFN0eWxlPSIjMGI2YjM5IjtjdHguZmlsbFJlY3QoMCwwLHcsaCk7c3RyaXBlKHcsaCk7bGluZSh3Ki41LDAsdyouNSxoKTtjaXJjbGUodyouNSxoKi41LE1hdGgubWluKHcsaCkqLjEzKTtib3goMCxoKi4zLHcqLjEzLGgqLjQpO2JveCh3Ki44NyxoKi4zLHcqLjEzLGgqLjQpO2dvYWwoMCxoKTtnb2FsKHcsaCk7dG9rZW4oc3RhdGUucGxheWVyLCIjNjViN2ZmIiwiRHUiKTt0b2tlbihzdGF0ZS5vcHAsIiNmZjcwNzAiLCJHZWduZXIiKTtiYWxsKCl9CmZ1bmN0aW9uIHN0cmlwZSh3LGgpe2ZvcihsZXQgaT0wO2k8ODtpKyspe2N0eC5maWxsU3R5bGU9aSUyPyIjMGY3YTQyIjoiIzBhNjMzNSI7Y3R4LmZpbGxSZWN0KGkqdy84LDAsdy84LGgpfX0KZnVuY3Rpb24gbGluZSh4MSx5MSx4Mix5Mil7Y3R4LnN0cm9rZVN0eWxlPSIjZmZmZmZmY2MiO2N0eC5saW5lV2lkdGg9MztjdHguYmVnaW5QYXRoKCk7Y3R4Lm1vdmVUbyh4MSx5MSk7Y3R4LmxpbmVUbyh4Mix5Mik7Y3R4LnN0cm9rZSgpfQpmdW5jdGlvbiBjaXJjbGUoeCx5LHIpe2N0eC5zdHJva2VTdHlsZT0iI2ZmZmZmZmNjIjtjdHgubGluZVdpZHRoPTM7Y3R4LmJlZ2luUGF0aCgpO2N0eC5hcmMoeCx5LHIsMCxNYXRoLlBJKjIpO2N0eC5zdHJva2UoKX0KZnVuY3Rpb24gYm94KHgseSx3LGgpe2N0eC5zdHJva2VTdHlsZT0iI2ZmZmZmZmNjIjtjdHgubGluZVdpZHRoPTM7Y3R4LnN0cm9rZVJlY3QoeCx5LHcsaCl9CmZ1bmN0aW9uIGdvYWwoeCxoKXtjdHguZmlsbFN0eWxlPSIjZmZmZmZmMzMiO2N0eC5maWxsUmVjdCh4PDE/MDppbm5lcldpZHRoLTEwLGgqLjM4LDEwLGgqLjI0KX0KZnVuY3Rpb24gdG9rZW4obyxjLG5hbWUpe2NvbnN0IHg9by54KmlubmVyV2lkdGgseT1vLnkqaW5uZXJIZWlnaHQscj1vLnIqTWF0aC5taW4oaW5uZXJXaWR0aCxpbm5lckhlaWdodCk7Y3R4LmZpbGxTdHlsZT1jO2N0eC5iZWdpblBhdGgoKTtjdHguYXJjKHgseSxyLDAsTWF0aC5QSSoyKTtjdHguZmlsbCgpO2N0eC5maWxsU3R5bGU9IiMwNjIwMTUiO2N0eC5mb250PSI3MDAgMTJweCBzeXN0ZW0tdWkiO2N0eC50ZXh0QWxpZ249ImNlbnRlciI7Y3R4LmZpbGxUZXh0KG5hbWUseCx5LXItOCl9CmZ1bmN0aW9uIGJhbGwoKXtjb25zdCBiPXN0YXRlLmJhbGwseD1iLngqaW5uZXJXaWR0aCx5PWIueSppbm5lckhlaWdodCxyPWIucipNYXRoLm1pbihpbm5lcldpZHRoLGlubmVySGVpZ2h0KTtjdHguZmlsbFN0eWxlPSIjZmZmIjtjdHguYmVnaW5QYXRoKCk7Y3R4LmFyYyh4LHksciwwLE1hdGguUEkqMik7Y3R4LmZpbGwoKTtjdHguc3Ryb2tlU3R5bGU9IiMxMTEiO2N0eC5zdHJva2UoKX0KZnVuY3Rpb24gZGlzdChhLGIpe3JldHVybiBNYXRoLmh5cG90KGEueC1iLngsYS55LWIueSl9ZnVuY3Rpb24gY2xhbXAodixhLGIpe3JldHVybiBNYXRoLm1heChhLE1hdGgubWluKGIsdikpfQpmdW5jdGlvbiBwcmVzcyhhLG9uKXtpZihhPT09InVwIilrZXlzLnVwPW9uO2lmKGE9PT0iZG93biIpa2V5cy5kb3duPW9uO2lmKGE9PT0ibGVmdCIpa2V5cy5sZWZ0PW9uO2lmKGE9PT0icmlnaHQiKWtleXMucmlnaHQ9b247aWYoYT09PSJzaG9vdCIpa2V5cy5zaG9vdD1vbn0KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZT0+e2NvbnN0IGs9ZS5rZXkudG9Mb3dlckNhc2UoKTtpZihrPT09ImFycm93dXAifHxrPT09InciKXByZXNzKCJ1cCIsdHJ1ZSk7aWYoaz09PSJhcnJvd2Rvd24ifHxrPT09InMiKXByZXNzKCJkb3duIix0cnVlKTtpZihrPT09ImFycm93bGVmdCJ8fGs9PT0iYSIpcHJlc3MoImxlZnQiLHRydWUpO2lmKGs9PT0iYXJyb3dyaWdodCJ8fGs9PT0iZCIpcHJlc3MoInJpZ2h0Iix0cnVlKTtpZihrPT09IiAiKXByZXNzKCJzaG9vdCIsdHJ1ZSk7aWYoaz09PSJwIilwYXVzZWQ9IXBhdXNlZH0pOwpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsZT0+e2NvbnN0IGs9ZS5rZXkudG9Mb3dlckNhc2UoKTtpZihrPT09ImFycm93dXAifHxrPT09InciKXByZXNzKCJ1cCIsZmFsc2UpO2lmKGs9PT0iYXJyb3dkb3duInx8az09PSJzIilwcmVzcygiZG93biIsZmFsc2UpO2lmKGs9PT0iYXJyb3dsZWZ0Inx8az09PSJhIilwcmVzcygibGVmdCIsZmFsc2UpO2lmKGs9PT0iYXJyb3dyaWdodCJ8fGs9PT0iZCIpcHJlc3MoInJpZ2h0IixmYWxzZSk7aWYoaz09PSIgIilwcmVzcygic2hvb3QiLGZhbHNlKX0pOwpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1hY3Rpb25dIikuZm9yRWFjaChiPT57Y29uc3QgYT1iLmdldEF0dHJpYnV0ZSgiZGF0YS1hY3Rpb24iKTtiLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwoKT0+cHJlc3MoYSx0cnVlKSk7Yi5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLCgpPT5wcmVzcyhhLGZhbHNlKSk7Yi5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybGVhdmUiLCgpPT5wcmVzcyhhLGZhbHNlKSk7fSk7CmVsKCJzdGFydC1idXR0b24iKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsc3RhcnRNYXRjaCk7ZWwoImZ1bGxzY3JlZW4tYnV0dG9uIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHJlcXVlc3RGdWxsKTtlbCgicGF1c2UtYnV0dG9uIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57cGF1c2VkPSFwYXVzZWQ7c3RhdGUubm90aWNlPXBhdXNlZD8iUGF1c2UiOiJXZWl0ZXIgZ2VodCBlcyI7cmVuZGVyVWkoKX0pO2VsKCJtZW51LWJ1dHRvbiIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2NhbmNlbEFuaW1hdGlvbkZyYW1lKGxvb3BJZCk7cmVzZXRHYW1lKCk7c2hvdyh1aS5zdGFydCl9KTtlbCgibmV4dC1idXR0b24iKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbmV4dE1hdGNoKTtlbCgicmVzZXQtYnV0dG9uIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57cmVzZXRHYW1lKCk7c2hvdyh1aS5zdGFydCl9KTthZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHJlc2l6ZSk7CnJlc2V0R2FtZSgpO3Nob3codWkuc3RhcnQpOwp9KSgpOwo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+
PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdmlld3BvcnQtZml0PWNvdmVyIj4KICA8dGl0bGU+RnXDn2JhbGwgQXJlbmEgTGlnYTwvdGl0bGU+CiAgCjxzdHlsZT4KKiB7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKOnJvb3QgewogIGNvbG9yLXNjaGVtZTogZGFyazsKICAtLWJnOiAjMDcxNTEwOwogIC0tcGFuZWw6ICMxMDI1MWRlODsKICAtLWxpbmU6ICNmZmZmZmYzMjsKICAtLXR4dDogI2Y0ZmZmODsKICAtLW11dGVkOiAjYmRkOGM5OwogIC0tYWNjZW50OiAjNmZmMmE3OwogIC0tZ29sZDogI2ZmZDE2NjsKICAtLWRhbmdlcjogI2ZmNzA3MDsKICAtLWJsdWU6ICM2NWI3ZmY7Cn0KCmh0bWwsCmJvZHkgewogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICBtYXJnaW46IDA7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iZyk7CiAgY29sb3I6IHZhcigtLXR4dCk7CiAgZm9udC1mYW1pbHk6IHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgc2Fucy1zZXJpZjsKICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7CiAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KCmJ1dHRvbiB7CiAgYm9yZGVyOiAwOwogIGJvcmRlci1yYWRpdXM6IDFyZW07CiAgbWluLWhlaWdodDogM3JlbTsKICBwYWRkaW5nOiAuODVyZW0gMS4xcmVtOwogIGZvbnQ6IDgwMCAxcmVtIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgIlNlZ29lIFVJIiwgc2Fucy1zZXJpZjsKICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1hY2NlbnQpLCAjMjdjNzZmKTsKICBjb2xvcjogIzA3MjAxMzsKICBib3gtc2hhZG93OiAwIC40NXJlbSAxLjJyZW0gIzAwMDg7CiAgY3Vyc29yOiBwb2ludGVyOwogIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOwp9CgpidXR0b246aG92ZXIgewogIGZpbHRlcjogYnJpZ2h0bmVzcygxLjA2KTsKfQoKYnV0dG9uOmZvY3VzLXZpc2libGUgewogIG91dGxpbmU6IC4yMnJlbSBzb2xpZCAjZmZmOwogIG91dGxpbmUtb2Zmc2V0OiAuMTVyZW07Cn0KCi5naG9zdCB7CiAgYmFja2dyb3VuZDogIzE2M2IyZmNjOwogIGNvbG9yOiB2YXIoLS10eHQpOwogIGJvcmRlcjogLjA4cmVtIHNvbGlkIHZhcigtLWxpbmUpOwp9CgouYXBwIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgd2lkdGg6IDEwMHZ3OwogIGhlaWdodDogMTAwdmg7CiAgaGVpZ2h0OiAxMDBkdmg7CiAgbWluLWhlaWdodDogMzByZW07CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDIwJSAxNSUsICMxZDZiNDIsICMwZDJlMjAgNDQlLCAjMDcxNTEwIDEwMCUpOwogIHRvdWNoLWFjdGlvbjogbm9uZTsKfQoKLmZhbGxiYWNrLWZ1bGwgewogIHBvc2l0aW9uOiBmaXhlZDsKICBpbnNldDogMDsKICB6LWluZGV4OiAyMDsKfQoKY2FudmFzIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgaW5zZXQ6IDA7CiAgZGlzcGxheTogYmxvY2s7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIGN1cnNvcjogY3Jvc3NoYWlyOwogIHRvdWNoLWFjdGlvbjogbm9uZTsKfQoKLmh1ZCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRvcDogbWF4KC43NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKTsKICBsZWZ0OiBtYXgoLjc1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTsKICByaWdodDogbWF4KC43NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpOwogIHotaW5kZXg6IDI7CiAgZGlzcGxheTogZ3JpZDsKICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7CiAgZ2FwOiAuNTVyZW07CiAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCi5odWQgZGl2LAoucGFuZWwsCi5tZW51LAouY29udHJvbHMgYnV0dG9uIHsKICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoLjZyZW0pOwp9CgouaHVkIGRpdiB7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbCk7CiAgYm9yZGVyOiAuMDhyZW0gc29saWQgdmFyKC0tbGluZSk7CiAgYm9yZGVyLXJhZGl1czogMXJlbTsKICBwYWRkaW5nOiAuNTVyZW0gLjc1cmVtOwp9CgouaHVkIHNwYW4gewogIGRpc3BsYXk6IGJsb2NrOwogIGNvbG9yOiB2YXIoLS1tdXRlZCk7CiAgZm9udC1zaXplOiAuNzZyZW07CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLmh1ZCBzdHJvbmcgewogIGRpc3BsYXk6IGJsb2NrOwogIGZvbnQtc2l6ZTogY2xhbXAoMXJlbSwgMi40dncsIDEuMjVyZW0pOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCi5wYW5lbCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHotaW5kZXg6IDQ7CiAgYmFja2dyb3VuZDogdmFyKC0tcGFuZWwpOwogIGJvcmRlcjogLjA4cmVtIHNvbGlkIHZhcigtLWxpbmUpOwogIGJvcmRlci1yYWRpdXM6IDEuNHJlbTsKICBib3gtc2hhZG93OiAwIDFyZW0gM3JlbSAjMDAwOTsKfQoKLnN0YXJ0LAoucXVpeiwKLmVuZCB7CiAgbGVmdDogNTAlOwogIHRvcDogNTAlOwogIHdpZHRoOiBtaW4oNDJyZW0sIDkydncpOwogIG1heC1oZWlnaHQ6IG1pbig4OGR2aCwgNDJyZW0pOwogIG92ZXJmbG93OiBhdXRvOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogIHBhZGRpbmc6IDEuNHJlbTsKfQoKLnNtYWxsIHsKICBsZWZ0OiBtYXgoLjc1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTsKICBib3R0b206IGNhbGMoNy44cmVtICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTsKICBtYXgtd2lkdGg6IG1pbigzOHJlbSwgY2FsYygxMDB2dyAtIDEuNXJlbSkpOwogIHBhZGRpbmc6IC43NXJlbSAxcmVtOwogIHBvaW50ZXItZXZlbnRzOiBub25lOwp9Cgouc21hbGwgcCB7CiAgbWFyZ2luOiAwOwp9CgouaGlkZGVuIHsKICBkaXNwbGF5OiBub25lOwp9CgouZXllYnJvdyB7CiAgbWFyZ2luOiAwIDAgLjM1cmVtOwogIGNvbG9yOiB2YXIoLS1nb2xkKTsKICBmb250LXdlaWdodDogOTAwOwogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgbGV0dGVyLXNwYWNpbmc6IC4wOGVtOwp9Cgouc3RhcnQgaDEgewogIG1hcmdpbjogLjFyZW0gMDsKICBmb250LXNpemU6IGNsYW1wKDIuMnJlbSwgN3Z3LCA0LjhyZW0pOwogIGxpbmUtaGVpZ2h0OiAuOTI7Cn0KCi5xdWl6IGgyLAouZW5kIGgyIHsKICBtYXJnaW46IC4ycmVtIDAgMXJlbTsKICBmb250LXNpemU6IGNsYW1wKDEuMzVyZW0sIDR2dywgMnJlbSk7Cn0KCi5yb3cgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC13cmFwOiB3cmFwOwogIGdhcDogLjc1cmVtOwp9CgouaGludCB7CiAgY29sb3I6IHZhcigtLW11dGVkKTsKfQoKLmFuc3dlcnMgewogIGRpc3BsYXk6IGdyaWQ7CiAgZ2FwOiAuNjVyZW07Cn0KCi5hbnN3ZXJzIGJ1dHRvbiB7CiAgd2lkdGg6IDEwMCU7CiAgdGV4dC1hbGlnbjogbGVmdDsKICBiYWNrZ3JvdW5kOiAjZThmZmYwOwogIGNvbG9yOiAjMDkyMzE1Owp9CgouY29udHJvbHMgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB6LWluZGV4OiAzOwogIGxlZnQ6IDUwJTsKICBib3R0b206IG1heCguNzVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogIGRpc3BsYXk6IGdyaWQ7CiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0LjJyZW0gNC4ycmVtIDUuOHJlbSA0LjJyZW0gNC4ycmVtOwogIGdhcDogLjQ1cmVtOwp9CgouY29udHJvbHMgYnV0dG9uIHsKICBtaW4taGVpZ2h0OiAzLjY1cmVtOwogIGJhY2tncm91bmQ6ICMxNzM4MmJjYzsKICBjb2xvcjogI2ZmZjsKICBib3JkZXI6IC4wOHJlbSBzb2xpZCB2YXIoLS1saW5lKTsKfQoKLmNvbnRyb2xzIC5zaG9vdCB7CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksICNmZjlmMWMpOwogIGNvbG9yOiAjMjQxNDAwOwp9CgoubWVudSB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHJpZ2h0OiBtYXgoLjc1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSk7CiAgYm90dG9tOiBtYXgoLjc1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpOwogIHotaW5kZXg6IDM7CiAgZGlzcGxheTogZmxleDsKICBnYXA6IC40NXJlbTsKfQoKQG1lZGlhIChtYXgtd2lkdGg6IDc2MHB4KSB7CiAgLmh1ZCB7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7CiAgICBmb250LXNpemU6IC45cmVtOwogIH0KCiAgLmh1ZCBkaXYgewogICAgcGFkZGluZzogLjQ1cmVtIC41NXJlbTsKICB9CgogIC5zbWFsbCB7CiAgICBib3R0b206IGNhbGMoNi4ycmVtICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTsKICAgIGZvbnQtc2l6ZTogLjkycmVtOwogIH0KCiAgLmNvbnRyb2xzIHsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMy41cmVtIDMuNXJlbSA0LjhyZW0gMy41cmVtIDMuNXJlbTsKICAgIGdhcDogLjM1cmVtOwogIH0KCiAgLmNvbnRyb2xzIGJ1dHRvbiB7CiAgICBtaW4taGVpZ2h0OiAzLjJyZW07CiAgICBwYWRkaW5nOiAuNDVyZW07CiAgfQoKICAubWVudSB7CiAgICB0b3A6IGNhbGMoNy44cmVtICsgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKTsKICAgIGJvdHRvbTogYXV0bzsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgfQoKICAuc3RhcnQsCiAgLnF1aXosCiAgLmVuZCB7CiAgICBwYWRkaW5nOiAxcmVtOwogIH0KfQoKQG1lZGlhIChtYXgtaGVpZ2h0OiA1NDBweCkgewogIC5odWQgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOwogIH0KCiAgLnNtYWxsIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAuc3RhcnQsCiAgLnF1aXosCiAgLmVuZCB7CiAgICB0b3A6IDUyJTsKICAgIG1heC1oZWlnaHQ6IDc2ZHZoOwogIH0KCiAgLmNvbnRyb2xzIHsKICAgIGJvdHRvbTogbWF4KC40cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpOwogIH0KCiAgLm1lbnUgewogICAgdG9wOiBhdXRvOwogICAgYm90dG9tOiBtYXgoLjRyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogIH0KfQoKQG1lZGlhIChwb2ludGVyOiBmaW5lKSBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHsKICAuY29udHJvbHMgewogICAgb3BhY2l0eTogLjg4OwogIH0KfQoKPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICA8bWFpbiBpZD0iZ2FtZS1yb290IiBjbGFzcz0iYXBwIiBhcmlhLWxhYmVsPSJGdcOfYmFsbCBBcmVuYSBMaWdhIj4KICAgIDxjYW52YXMgaWQ9ImZpZWxkIiByb2xlPSJpbWciIGFyaWEtbGFiZWw9IkZ1w59iYWxsZmVsZCBtaXQgQmFsbCwgZWlnZW5lbSBTcGllbGVyLCBHZWduZXIgdW5kIFRvcmVuIj48L2NhbnZhcz4KCiAgICA8c2VjdGlvbiBpZD0ic3RhcnQtc2NyZWVuIiBjbGFzcz0icGFuZWwgc3RhcnQiPgogICAgICA8cCBjbGFzcz0iZXllYnJvdyI+TU9PQ3dpa2kgTGVybnNwaWVsPC9wPgogICAgICA8aDE+RnXDn2JhbGwgQXJlbmEgTGlnYTwvaDE+CiAgICAgIDxwPlN0ZXVlcmUgZGVuIGVpZ2VuZW4gU3BpZWxlciBkaXJla3QgbWl0IE1hdXMtQ3Vyc29yLCBGaW5nZXIsIFBmZWlsdGFzdGVuIG9kZXIgV0FTRC4gR2V3aW5uZSBTcGllbGUsIGJlYW50d29ydGUgVGFrdGlrZnJhZ2VuIHVuZCBzdGVpZ2UgbmFjaCBtZWhyZXJlbiBTaWVnZW4gaW4gaMO2aGVyZSBMaWdlbiBhdWYuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxidXR0b24gaWQ9InN0YXJ0LWJ1dHRvbiIgdHlwZT0iYnV0dG9uIj5TcGllbCBzdGFydGVuPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBpZD0iZnVsbHNjcmVlbi1idXR0b24iIGNsYXNzPSJnaG9zdCIgdHlwZT0iYnV0dG9uIj5Wb2xsYmlsZDwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImhpbnQiPlBDOiBNYXVzIMO8YmVyIGRhcyBGZWxkIGJld2VnZW4gb2RlciBQZmVpbHRhc3Rlbi9XQVNEIG51dHplbi4gaVBhZC9UYWJsZXQ6IEZpbmdlciBhdWYgZGVtIFNwaWVsZmVsZCBoYWx0ZW4gdW5kIHppZWhlbi4gU2NodXNzOiBMZWVydGFzdGUsIFNjaHVzcy1CdXR0b24gb2RlciBBbnRpcHBlbiBpbiBUb3JyaWNodHVuZy48L3A+CiAgICA8L3NlY3Rpb24+CgogICAgPGhlYWRlciBjbGFzcz0iaHVkIiBhcmlhLWxhYmVsPSJTcGllbHN0YW5kIj4KICAgICAgPGRpdj48c3Bhbj5TcGllbHN0YW5kPC9zcGFuPjxzdHJvbmcgaWQ9InNjb3JlLWxhYmVsIj4wIDogMDwvc3Ryb25nPjwvZGl2PgogICAgICA8ZGl2PjxzcGFuPkxpZ2E8L3NwYW4+PHN0cm9uZyBpZD0ibGVhZ3VlLWxhYmVsIj5LcmVpc2tsYXNzZTwvc3Ryb25nPjwvZGl2PgogICAgICA8ZGl2PjxzcGFuPlNpZWdlIGJpcyBBdWZzdGllZzwvc3Bhbj48c3Ryb25nIGlkPSJwcm9tb3Rpb24tbGFiZWwiPjAgLyAzPC9zdHJvbmc+PC9kaXY+CiAgICAgIDxkaXY+PHNwYW4+WmVpdDwvc3Bhbj48c3Ryb25nIGlkPSJ0aW1lLWxhYmVsIj45MDwvc3Ryb25nPjwvZGl2PgogICAgPC9oZWFkZXI+CgogICAgPHNlY3Rpb24gaWQ9Im1lc3NhZ2UtcGFuZWwiIGNsYXNzPSJwYW5lbCBzbWFsbCIgYXJpYS1saXZlPSJwb2xpdGUiPgogICAgICA8cCBpZD0ibWVzc2FnZS10ZXh0Ij5CZXJlaXQ/PC9wPgogICAgPC9zZWN0aW9uPgoKICAgIDxzZWN0aW9uIGlkPSJxdWl6LXBhbmVsIiBjbGFzcz0icGFuZWwgcXVpeiBoaWRkZW4iIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIj4KICAgICAgPHAgY2xhc3M9ImV5ZWJyb3ciPlRha3Rpa2ZyYWdlPC9wPgogICAgICA8aDIgaWQ9InF1ZXN0aW9uLXRleHQiPkZyYWdlPC9oMj4KICAgICAgPGRpdiBpZD0iYW5zd2VyLWxpc3QiIGNsYXNzPSJhbnN3ZXJzIj48L2Rpdj4KICAgIDwvc2VjdGlvbj4KCiAgICA8c2VjdGlvbiBpZD0icmVzdWx0LXBhbmVsIiBjbGFzcz0icGFuZWwgZW5kIGhpZGRlbiIgYXJpYS1saXZlPSJwb2xpdGUiPgogICAgICA8aDIgaWQ9InJlc3VsdC10aXRsZSI+QWJwZmlmZjwvaDI+CiAgICAgIDxwIGlkPSJyZXN1bHQtdGV4dCI+PC9wPgogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxidXR0b24gaWQ9Im5leHQtYnV0dG9uIiB0eXBlPSJidXR0b24iPk7DpGNoc3RlcyBTcGllbDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gaWQ9InJlc2V0LWJ1dHRvbiIgY2xhc3M9Imdob3N0IiB0eXBlPSJidXR0b24iPk5ldSBzdGFydGVuPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKICAgIDxuYXYgY2xhc3M9ImNvbnRyb2xzIiBhcmlhLWxhYmVsPSJadXPDpHR6bGljaGUgU3BpZWxzdGV1ZXJ1bmciPgogICAgICA8YnV0dG9uIGRhdGEtYWN0aW9uPSJ1cCIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJTcGllbGVyIG5hY2ggb2JlbiBiZXdlZ2VuIj7ilrI8L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBkYXRhLWFjdGlvbj0ibGVmdCIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJTcGllbGVyIG5hY2ggbGlua3MgYmV3ZWdlbiI+4peAPC9idXR0b24+CiAgICAgIDxidXR0b24gZGF0YS1hY3Rpb249InNob290IiBjbGFzcz0ic2hvb3QiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iU2NodXNzIGF1c2bDvGhyZW4iPlNjaHVzczwvYnV0dG9uPgogICAgICA8YnV0dG9uIGRhdGEtYWN0aW9uPSJyaWdodCIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJTcGllbGVyIG5hY2ggcmVjaHRzIGJld2VnZW4iPuKWtjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGRhdGEtYWN0aW9uPSJkb3duIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNwaWVsZXIgbmFjaCB1bnRlbiBiZXdlZ2VuIj7ilrw8L2J1dHRvbj4KICAgIDwvbmF2PgoKICAgIDxhc2lkZSBjbGFzcz0ibWVudSIgYXJpYS1sYWJlbD0iU3BpZWxtZW7DvCI+CiAgICAgIDxidXR0b24gaWQ9InBhdXNlLWJ1dHRvbiIgY2xhc3M9Imdob3N0IiB0eXBlPSJidXR0b24iPlBhdXNlPC9idXR0b24+CiAgICAgIDxidXR0b24gaWQ9Im1lbnUtYnV0dG9uIiBjbGFzcz0iZ2hvc3QiIHR5cGU9ImJ1dHRvbiI+TWVuw7w8L2J1dHRvbj4KICAgIDwvYXNpZGU+CiAgPC9tYWluPgogIAo8c2NyaXB0PgooKCkgPT4gewogICJ1c2Ugc3RyaWN0IjsKCiAgY29uc3QgZWwgPSAoaWQpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKICBjb25zdCBjYW52YXMgPSBlbCgiZmllbGQiKTsKICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKCiAgY29uc3QgdWkgPSB7CiAgICByb290OiBlbCgiZ2FtZS1yb290IiksCiAgICBzdGFydDogZWwoInN0YXJ0LXNjcmVlbiIpLAogICAgcXVpejogZWwoInF1aXotcGFuZWwiKSwKICAgIHJlc3VsdDogZWwoInJlc3VsdC1wYW5lbCIpLAogICAgbXNnOiBlbCgibWVzc2FnZS10ZXh0IiksCiAgICBzY29yZTogZWwoInNjb3JlLWxhYmVsIiksCiAgICBsZWFndWU6IGVsKCJsZWFndWUtbGFiZWwiKSwKICAgIHByb21vOiBlbCgicHJvbW90aW9uLWxhYmVsIiksCiAgICB0aW1lOiBlbCgidGltZS1sYWJlbCIpLAogICAgcTogZWwoInF1ZXN0aW9uLXRleHQiKSwKICAgIGFuc3dlcnM6IGVsKCJhbnN3ZXItbGlzdCIpLAogICAgcmVzdWx0VGl0bGU6IGVsKCJyZXN1bHQtdGl0bGUiKSwKICAgIHJlc3VsdFRleHQ6IGVsKCJyZXN1bHQtdGV4dCIpCiAgfTsKCiAgY29uc3Qga2V5cyA9IHsKICAgIHVwOiBmYWxzZSwKICAgIGRvd246IGZhbHNlLAogICAgbGVmdDogZmFsc2UsCiAgICByaWdodDogZmFsc2UsCiAgICBzaG9vdDogZmFsc2UKICB9OwoKICBjb25zdCBkaXJlY3QgPSB7CiAgICBlbmFibGVkOiBmYWxzZSwKICAgIHByZXNzZWQ6IGZhbHNlLAogICAgdGFyZ2V0WDogMC4yNCwKICAgIHRhcmdldFk6IDAuNSwKICAgIGxhc3RLaW5kOiAiTWF1cyIsCiAgICBraWNrVGltZXI6IDAKICB9OwoKICBjb25zdCBsZWFndWVzID0gWwogICAgIktyZWlza2xhc3NlIiwKICAgICJCZXppcmtzbGlnYSIsCiAgICAiTGFuZGVzbGlnYSIsCiAgICAiT2JlcmxpZ2EiLAogICAgIlJlZ2lvbmFsbGlnYSIKICBdOwoKICBjb25zdCBxdWVzdGlvbnMgPSBbCiAgICB7CiAgICAgIHE6ICJXYXMgaGlsZnQgYmVpbSBBbmdyaWZmIMO8YmVyIGF1w59lbj8iLAogICAgICBhOiBbIkJyZWl0ZSBnZWJlbiB1bmQgYW5zcGllbGJhciBibGVpYmVuIiwgIkFsbGUgbGF1ZmVuIHp1bSBCYWxsIiwgIkRlbiBCYWxsIGFic2ljaHRsaWNoIGlucyBBdXMgc2NoaWXDn2VuIl0sCiAgICAgIG9rOiAwLAogICAgICB0aXA6ICJCcmVpdGUgw7ZmZm5ldCBSw6R1bWUgdW5kIGdpYnQgc2ljaGVyZSBQYXNzd2VnZS4iCiAgICB9LAogICAgewogICAgICBxOiAiV2FzIGJlZGV1dGV0IFByZXNzaW5nPyIsCiAgICAgIGE6IFsiR2VtZWluc2FtIERydWNrIGF1ZiBiYWxsZsO8aHJlbmRlIEdlZ25lciBhdXPDvGJlbiIsICJUb3J3YXJ0d2VjaHNlbCBuYWNoIGplZGVtIFNjaHVzcyIsICJOdXIgbGFuZ2UgUMOkc3NlIHNwaWVsZW4iXSwKICAgICAgb2s6IDAsCiAgICAgIHRpcDogIlByZXNzaW5nIGZ1bmt0aW9uaWVydCBhbHMgYWJnZXN0aW1tdGUgVGVhbWFrdGlvbi4iCiAgICB9LAogICAgewogICAgICBxOiAiV2VsY2hlIEVudHNjaGVpZHVuZyBpc3QgZmFpcj8iLAogICAgICBhOiBbIk5hY2ggZWluZW0gRm91bCBhdWZow7ZyZW4gdW5kIEhpbGZlIGFuYmlldGVuIiwgIk5hY2h0cmV0ZW4iLCAiRGVuIFNjaGllZHNyaWNodGVyIGFuc2NocmVpZW4iXSwKICAgICAgb2s6IDAsCiAgICAgIHRpcDogIkZhaXJwbGF5IHNjaMO8dHp0IGFsbGUgdW5kIGdlaMO2cnQgenVtIFNwb3J0LiIKICAgIH0sCiAgICB7CiAgICAgIHE6ICJXYW5uIGlzdCBlaW4ga3VyemVyIFBhc3Mgc2lubnZvbGw/IiwKICAgICAgYTogWyJXZW5uIE1pdHNwaWVsZW5kZSBmcmVpIG5haCBhbSBCYWxsIHN0ZWhlbiIsICJJbW1lciBiZWltIFN0cmFmc3Rvw58iLCAiTnVyIG5hY2ggZWluZW0gR2VnZW50b3IiXSwKICAgICAgb2s6IDAsCiAgICAgIHRpcDogIkt1cnplIFDDpHNzZSBzaWNoZXJuIEJhbGxiZXNpdHouIgogICAgfSwKICAgIHsKICAgICAgcTogIldhcnVtIGlzdCBVbXNjaGFsdGVuIHdpY2h0aWc/IiwKICAgICAgYTogWyJOYWNoIEJhbGxnZXdpbm4gc2NobmVsbCBBbmdyaWZmIG9kZXIgU2ljaGVydW5nIHfDpGhsZW4iLCAiRGFtaXQgYWxsZSBzdGVoZW4gYmxlaWJlbiIsICJEYW1pdCBkaWUgVWhyIHNjaG5lbGxlciBsw6R1ZnQiXSwKICAgICAgb2s6IDAsCiAgICAgIHRpcDogIlNjaG5lbGxlcyBVbXNjaGFsdGVuIG51dHp0IGZyZWllIFLDpHVtZS4iCiAgICB9LAogICAgewogICAgICBxOiAiV2FzIG1hY2h0IGVpbmUgZ3V0ZSBBYndlaHI/IiwKICAgICAgYTogWyJSw6R1bWUgc2NobGllw59lbiB1bmQgenVzYW1tZW4gdmVyc2NoaWViZW4iLCAiTnVyIGF1ZiBkZXIgVG9ybGluaWUgd2FydGVuIiwgIk9obmUgQWJzcHJhY2hlIGdyw6R0c2NoZW4iXSwKICAgICAgb2s6IDAsCiAgICAgIHRpcDogIkd1dGUgQWJ3ZWhyIGlzdCBnZW9yZG5ldCB1bmQgZ2VtZWluc2FtLiIKICAgIH0KICBdOwoKICBsZXQgc3RhdGUgPSBmcmVzaFN0YXRlKCk7CiAgbGV0IGxvb3BJZCA9IDA7CiAgbGV0IGxhc3QgPSAwOwogIGxldCBxdWl6SW5kZXggPSAwOwogIGxldCBwYXVzZWQgPSBmYWxzZTsKCiAgZnVuY3Rpb24gZnJlc2hTdGF0ZSgpIHsKICAgIHJldHVybiB7CiAgICAgIHNjcmVlbjogInN0YXJ0IiwKICAgICAgdzogMzIwLAogICAgICBoOiA0ODAsCiAgICAgIHQ6IDkwLAogICAgICBzY29yZUE6IDAsCiAgICAgIHNjb3JlQjogMCwKICAgICAgd2luczogMCwKICAgICAgbGVhZ3VlOiAwLAogICAgICBib29zdDogMCwKICAgICAgcGxheWVyOiB7IHg6IDAuMjQsIHk6IDAuNSwgcjogMC4wMzQgfSwKICAgICAgYmFsbDogeyB4OiAwLjMyLCB5OiAwLjUsIHZ4OiAwLCB2eTogMCwgcjogMC4wMTggfSwKICAgICAgb3BwOiB7IHg6IDAuNzIsIHk6IDAuNSwgcjogMC4wMzQgfSwKICAgICAgbm90aWNlOiAiR2V3aW5uZSBiaXMgZHJlaSBUb3JlLiBEcmVpIFNpZWdlIGJyaW5nZW4gZGVuIEF1ZnN0aWVnLiIKICAgIH07CiAgfQoKICBmdW5jdGlvbiByZXNldEdhbWUoKSB7CiAgICBzdGF0ZSA9IGZyZXNoU3RhdGUoKTsKICAgIHBhdXNlZCA9IGZhbHNlOwogICAgc3RvcEFsbElucHV0KCk7CiAgICByZXNpemUoKTsKICAgIHJlbmRlclVpKCk7CiAgICBkcmF3KCk7CiAgfQoKICBmdW5jdGlvbiBzdGFydE1hdGNoKCkgewogICAgc3RhdGUuc2NyZWVuID0gInBsYXkiOwogICAgc3RhdGUudCA9IDkwOwogICAgc3RhdGUuc2NvcmVBID0gMDsKICAgIHN0YXRlLnNjb3JlQiA9IDA7CiAgICBzdGF0ZS5wbGF5ZXIueCA9IDAuMjQ7CiAgICBzdGF0ZS5wbGF5ZXIueSA9IDAuNTsKICAgIHN0YXRlLmJhbGwueCA9IDAuMzI7CiAgICBzdGF0ZS5iYWxsLnkgPSAwLjU7CiAgICBzdGF0ZS5iYWxsLnZ4ID0gMDsKICAgIHN0YXRlLmJhbGwudnkgPSAwOwogICAgc3RhdGUub3BwLnggPSAwLjcyOwogICAgc3RhdGUub3BwLnkgPSAwLjU7CiAgICBkaXJlY3QudGFyZ2V0WCA9IHN0YXRlLnBsYXllci54OwogICAgZGlyZWN0LnRhcmdldFkgPSBzdGF0ZS5wbGF5ZXIueTsKICAgIGRpcmVjdC5lbmFibGVkID0gZmFsc2U7CiAgICBzdGF0ZS5ub3RpY2UgPSAiQW5wZmlmZiEgWmllaGUgZGVuIFNwaWVsZXIgbWl0IE1hdXMgb2RlciBGaW5nZXIgenVtIEJhbGwuIjsKICAgIGhpZGUodWkuc3RhcnQpOwogICAgaGlkZSh1aS5xdWl6KTsKICAgIGhpZGUodWkucmVzdWx0KTsKICAgIHJlbmRlclVpKCk7CiAgICBydW4oKTsKICB9CgogIGZ1bmN0aW9uIG5leHRNYXRjaCgpIHsKICAgIGhpZGUodWkucmVzdWx0KTsKICAgIHN0YXJ0TWF0Y2goKTsKICB9CgogIGZ1bmN0aW9uIHJlc2l6ZSgpIHsKICAgIGNvbnN0IGQgPSBNYXRoLm1pbihkZXZpY2VQaXhlbFJhdGlvIHx8IDEsIDIpOwogICAgY29uc3QgcmVjdCA9IHVpLnJvb3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICBjb25zdCB3ID0gTWF0aC5tYXgoMzIwLCBNYXRoLnJvdW5kKHJlY3Qud2lkdGgpKTsKICAgIGNvbnN0IGggPSBNYXRoLm1heCg0MjAsIE1hdGgucm91bmQocmVjdC5oZWlnaHQpKTsKICAgIGNhbnZhcy53aWR0aCA9IE1hdGguZmxvb3IodyAqIGQpOwogICAgY2FudmFzLmhlaWdodCA9IE1hdGguZmxvb3IoaCAqIGQpOwogICAgY2FudmFzLnN0eWxlLndpZHRoID0gdyArICJweCI7CiAgICBjYW52YXMuc3R5bGUuaGVpZ2h0ID0gaCArICJweCI7CiAgICBjdHguc2V0VHJhbnNmb3JtKGQsIDAsIDAsIGQsIDAsIDApOwogICAgc3RhdGUudyA9IHc7CiAgICBzdGF0ZS5oID0gaDsKICB9CgogIGZ1bmN0aW9uIHNob3cobm9kZSkgewogICAgbm9kZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTsKICB9CgogIGZ1bmN0aW9uIGhpZGUobm9kZSkgewogICAgbm9kZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTsKICB9CgogIGZ1bmN0aW9uIHJlcXVlc3RGdWxsKCkgewogICAgY29uc3Qgcm9vdCA9IHVpLnJvb3Q7CiAgICBpZiAocm9vdC5yZXF1ZXN0RnVsbHNjcmVlbikgewogICAgICByb290LnJlcXVlc3RGdWxsc2NyZWVuKCkuY2F0Y2goKCkgPT4gewogICAgICAgIHJvb3QuY2xhc3NMaXN0LmFkZCgiZmFsbGJhY2stZnVsbCIpOwogICAgICAgIHJlc2l6ZSgpOwogICAgICB9KTsKICAgIH0gZWxzZSB7CiAgICAgIHJvb3QuY2xhc3NMaXN0LnRvZ2dsZSgiZmFsbGJhY2stZnVsbCIpOwogICAgICByZXNpemUoKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHJ1bigpIHsKICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGxvb3BJZCk7CiAgICBsYXN0ID0gcGVyZm9ybWFuY2Uubm93KCk7CiAgICBsb29wSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc3RlcCk7CiAgfQoKICBmdW5jdGlvbiBzdGVwKG5vdykgewogICAgY29uc3QgZHQgPSBNYXRoLm1pbigobm93IC0gbGFzdCkgLyAxMDAwLCAwLjAzMyk7CiAgICBsYXN0ID0gbm93OwogICAgaWYgKHN0YXRlLnNjcmVlbiA9PT0gInBsYXkiICYmICFwYXVzZWQpIHsKICAgICAgdXBkYXRlKGR0KTsKICAgIH0KICAgIGRyYXcoKTsKICAgIGxvb3BJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwKTsKICB9CgogIGZ1bmN0aW9uIHVwZGF0ZShkdCkgewogICAgc3RhdGUudCAtPSBkdDsKICAgIGRpcmVjdC5raWNrVGltZXIgPSBNYXRoLm1heCgwLCBkaXJlY3Qua2lja1RpbWVyIC0gZHQpOwogICAgaWYgKHN0YXRlLnQgPD0gMCkgewogICAgICBlbmRNYXRjaCgpOwogICAgICByZXR1cm47CiAgICB9CiAgICBtb3ZlUGxheWVyKGR0KTsKICAgIG1vdmVPcHAoZHQpOwogICAgbW92ZUJhbGwoZHQpOwogICAgY2hlY2tHb2FsKCk7CiAgfQoKICBmdW5jdGlvbiBtb3ZlUGxheWVyKGR0KSB7CiAgICBjb25zdCBwID0gc3RhdGUucGxheWVyOwogICAgY29uc3Qgc3BlZWQgPSAwLjU2ICsgc3RhdGUuYm9vc3Q7CiAgICBsZXQgdnggPSAwOwogICAgbGV0IHZ5ID0gMDsKICAgIGNvbnN0IGhhc0tleWJvYXJkID0ga2V5cy5sZWZ0IHx8IGtleXMucmlnaHQgfHwga2V5cy51cCB8fCBrZXlzLmRvd247CgogICAgaWYgKGtleXMubGVmdCkgewogICAgICB2eCAtPSAxOwogICAgfQogICAgaWYgKGtleXMucmlnaHQpIHsKICAgICAgdnggKz0gMTsKICAgIH0KICAgIGlmIChrZXlzLnVwKSB7CiAgICAgIHZ5IC09IDE7CiAgICB9CiAgICBpZiAoa2V5cy5kb3duKSB7CiAgICAgIHZ5ICs9IDE7CiAgICB9CgogICAgaWYgKGhhc0tleWJvYXJkKSB7CiAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGguaHlwb3QodngsIHZ5KSB8fCAxOwogICAgICBwLnggKz0gKHZ4IC8gbGVuZ3RoKSAqIHNwZWVkICogZHQ7CiAgICAgIHAueSArPSAodnkgLyBsZW5ndGgpICogc3BlZWQgKiBkdDsKICAgIH0gZWxzZSBpZiAoZGlyZWN0LmVuYWJsZWQpIHsKICAgICAgY29uc3QgZHggPSBkaXJlY3QudGFyZ2V0WCAtIHAueDsKICAgICAgY29uc3QgZHkgPSBkaXJlY3QudGFyZ2V0WSAtIHAueTsKICAgICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmh5cG90KGR4LCBkeSk7CiAgICAgIGlmIChkaXN0YW5jZSA+IDAuMDA0KSB7CiAgICAgICAgY29uc3Qgc3RlcFNpemUgPSBNYXRoLm1pbihkaXN0YW5jZSwgc3BlZWQgKiAxLjA4ICogZHQpOwogICAgICAgIHAueCArPSAoZHggLyBkaXN0YW5jZSkgKiBzdGVwU2l6ZTsKICAgICAgICBwLnkgKz0gKGR5IC8gZGlzdGFuY2UpICogc3RlcFNpemU7CiAgICAgIH0KICAgIH0KCiAgICBwLnggPSBjbGFtcChwLngsIDAuMDYsIDAuOTQpOwogICAgcC55ID0gY2xhbXAocC55LCAwLjEzLCAwLjg3KTsKCiAgICBjb250cm9sQmFsbE5lYXJQbGF5ZXIoKTsKICB9CgogIGZ1bmN0aW9uIGNvbnRyb2xCYWxsTmVhclBsYXllcigpIHsKICAgIGNvbnN0IHAgPSBzdGF0ZS5wbGF5ZXI7CiAgICBjb25zdCBiID0gc3RhdGUuYmFsbDsKICAgIGNvbnN0IGNsb3NlID0gZGlzdChwLCBiKSA8IHAuciArIGIuciArIDAuMDI4OwogICAgaWYgKCFjbG9zZSkgewogICAgICByZXR1cm47CiAgICB9CgogICAgYi54ID0gY2xhbXAocC54ICsgcC5yICsgYi5yICsgMC4wMDYsIDAuMDQsIDAuOTYpOwogICAgYi55ICs9IChwLnkgLSBiLnkpICogMC4yODsKICAgIGIudnggPSBNYXRoLm1heChiLnZ4LCAwLjA4ICsgc3RhdGUuYm9vc3QgKiAwLjQpOwogICAgYi52eSAqPSAwLjcyOwoKICAgIGNvbnN0IGRpcmVjdFNob3QgPSBkaXJlY3Qua2lja1RpbWVyID4gMCAmJiBkaXJlY3QudGFyZ2V0WCA+IHAueCArIDAuMDU7CiAgICBjb25zdCBrZXlib2FyZFNob3QgPSBrZXlzLnNob290OwogICAgaWYgKGRpcmVjdFNob3QgfHwga2V5Ym9hcmRTaG90KSB7CiAgICAgIGNvbnN0IGFpbVkgPSBkaXJlY3QuZW5hYmxlZCA/IGRpcmVjdC50YXJnZXRZIDogYi55OwogICAgICBiLnZ4ID0gMC45ICsgc3RhdGUuYm9vc3Q7CiAgICAgIGIudnkgPSBjbGFtcCgoYWltWSAtIGIueSkgKiAxLjQgKyAoYi55IC0gMC41KSAqIDAuMjUsIC0wLjQyLCAwLjQyKTsKICAgICAgc3RhdGUubm90aWNlID0gIlNjaHVzcyEgWmllbGUgaW5zIHJlY2h0ZSBUb3IuIjsKICAgICAga2V5cy5zaG9vdCA9IGZhbHNlOwogICAgICBkaXJlY3Qua2lja1RpbWVyID0gMDsKICAgICAgcmVuZGVyVWkoKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIG1vdmVPcHAoZHQpIHsKICAgIGNvbnN0IG8gPSBzdGF0ZS5vcHA7CiAgICBjb25zdCBiID0gc3RhdGUuYmFsbDsKICAgIGNvbnN0IHNwZWVkID0gKDAuMjUgKyAwLjA0ICogc3RhdGUubGVhZ3VlKSAqIGR0OwogICAgY29uc3QgZHggPSBiLnggLSBvLng7CiAgICBjb25zdCBkeSA9IGIueSAtIG8ueTsKICAgIGNvbnN0IGxlbmd0aCA9IE1hdGguaHlwb3QoZHgsIGR5KSB8fCAxOwogICAgby54ICs9IChkeCAvIGxlbmd0aCkgKiBzcGVlZDsKICAgIG8ueSArPSAoZHkgLyBsZW5ndGgpICogc3BlZWQ7CgogICAgaWYgKGRpc3QobywgYikgPCBvLnIgKyBiLnIgKyAwLjAxMikgewogICAgICBiLnZ4ID0gLTAuNjIgLSAwLjA0ICogc3RhdGUubGVhZ3VlOwogICAgICBiLnZ5ID0gKGIueSAtIG8ueSkgKiAxLjI7CiAgICAgIHN0YXRlLm5vdGljZSA9ICJHZWduZXIga2zDpHJ0LiBOdXR6ZSBSYXVtLCBUZW1wbyB1bmQgUHJlc3NpbmchIjsKICAgICAgcmVuZGVyVWkoKTsKICAgIH0KCiAgICBvLnggPSBjbGFtcChvLngsIDAuNDgsIDAuOTIpOwogICAgby55ID0gY2xhbXAoby55LCAwLjE1LCAwLjg1KTsKICB9CgogIGZ1bmN0aW9uIG1vdmVCYWxsKGR0KSB7CiAgICBjb25zdCBiID0gc3RhdGUuYmFsbDsKICAgIGIueCArPSBiLnZ4ICogZHQ7CiAgICBiLnkgKz0gYi52eSAqIGR0OwogICAgYi52eCAqPSAwLjk5MjsKICAgIGIudnkgKj0gMC45OTI7CgogICAgaWYgKGIueSA8IDAuMTIgfHwgYi55ID4gMC44OCkgewogICAgICBiLnkgPSBjbGFtcChiLnksIDAuMTIsIDAuODgpOwogICAgICBiLnZ5ICo9IC0wLjg7CiAgICB9CiAgICBpZiAoYi54IDwgMC4wNCB8fCBiLnggPiAwLjk2KSB7CiAgICAgIGIueCA9IGNsYW1wKGIueCwgMC4wNCwgMC45Nik7CiAgICAgIGIudnggKj0gLTAuNjU7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBjaGVja0dvYWwoKSB7CiAgICBjb25zdCBiID0gc3RhdGUuYmFsbDsKICAgIGlmIChiLnggPiAwLjk1NSAmJiBiLnkgPiAwLjM4ICYmIGIueSA8IDAuNjIpIHsKICAgICAgc3RhdGUuc2NvcmVBICs9IDE7CiAgICAgIHN0YXRlLm5vdGljZSA9ICJUb3IhIEVpbmUgVGFrdGlrZnJhZ2UgYnJpbmd0IGRpciBlaW5lbiBCb251cy4iOwogICAgICBhZnRlclBvaW50KHRydWUpOwogICAgfSBlbHNlIGlmIChiLnggPCAwLjA0NSAmJiBiLnkgPiAwLjM4ICYmIGIueSA8IDAuNjIpIHsKICAgICAgc3RhdGUuc2NvcmVCICs9IDE7CiAgICAgIHN0YXRlLm5vdGljZSA9ICJHZWdlbnRvci4gTGVybmUgYXVzIGRlciBTaXR1YXRpb24hIjsKICAgICAgYWZ0ZXJQb2ludChmYWxzZSk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhZnRlclBvaW50KGFza1F1ZXN0aW9uKSB7CiAgICByZW5kZXJVaSgpOwogICAgcmVzZXRCYWxsKCk7CiAgICBpZiAoc3RhdGUuc2NvcmVBID49IDMgfHwgc3RhdGUuc2NvcmVCID49IDMpIHsKICAgICAgZW5kTWF0Y2goKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGFza1F1ZXN0aW9uKSB7CiAgICAgIG9wZW5RdWl6KCk7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5iYWxsLnggPSAwLjQ1OwogICAgICBzdGF0ZS5iYWxsLnZ4ID0gMC4xMjsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHJlc2V0QmFsbCgpIHsKICAgIHN0YXRlLmJhbGwueCA9IDAuNTsKICAgIHN0YXRlLmJhbGwueSA9IDAuNTsKICAgIHN0YXRlLmJhbGwudnggPSAwOwogICAgc3RhdGUuYmFsbC52eSA9IDA7CiAgICBzdGF0ZS5wbGF5ZXIueCA9IDAuMjQ7CiAgICBzdGF0ZS5wbGF5ZXIueSA9IDAuNTsKICAgIHN0YXRlLm9wcC54ID0gMC43MjsKICAgIHN0YXRlLm9wcC55ID0gMC41OwogICAgZGlyZWN0LnRhcmdldFggPSBzdGF0ZS5wbGF5ZXIueDsKICAgIGRpcmVjdC50YXJnZXRZID0gc3RhdGUucGxheWVyLnk7CiAgICBkaXJlY3QuZW5hYmxlZCA9IGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gb3BlblF1aXooKSB7CiAgICBwYXVzZWQgPSB0cnVlOwogICAgc3RhdGUuc2NyZWVuID0gInF1aXoiOwogICAgcXVpekluZGV4ID0gKHF1aXpJbmRleCArIDEpICUgcXVlc3Rpb25zLmxlbmd0aDsKICAgIGNvbnN0IGl0ZW0gPSBxdWVzdGlvbnNbcXVpekluZGV4XTsKICAgIHVpLnEudGV4dENvbnRlbnQgPSBpdGVtLnE7CiAgICB1aS5hbnN3ZXJzLnRleHRDb250ZW50ID0gIiI7CiAgICBpdGVtLmEuZm9yRWFjaCgodHh0LCBpbmRleCkgPT4gewogICAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKICAgICAgYnV0dG9uLnR5cGUgPSAiYnV0dG9uIjsKICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gdHh0OwogICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiBhbnN3ZXJRdWl6KGluZGV4ID09PSBpdGVtLm9rLCBpdGVtLnRpcCkpOwogICAgICB1aS5hbnN3ZXJzLmFwcGVuZENoaWxkKGJ1dHRvbik7CiAgICB9KTsKICAgIHNob3codWkucXVpeik7CiAgfQoKICBmdW5jdGlvbiBhbnN3ZXJRdWl6KG9rLCB0aXApIHsKICAgIGhpZGUodWkucXVpeik7CiAgICBzdGF0ZS5zY3JlZW4gPSAicGxheSI7CiAgICBwYXVzZWQgPSBmYWxzZTsKICAgIGlmIChvaykgewogICAgICBzdGF0ZS5ib29zdCA9IE1hdGgubWluKHN0YXRlLmJvb3N0ICsgMC4wMzUsIDAuMTYpOwogICAgICBzdGF0ZS5ub3RpY2UgPSAiUmljaHRpZzogIiArIHRpcCArICIgRGVpbiBUZWFtIHNwaWVsdCBzY2huZWxsZXIuIjsKICAgIH0gZWxzZSB7CiAgICAgIHN0YXRlLnNjb3JlQiA9IE1hdGgubWluKHN0YXRlLnNjb3JlQiArIDEsIDIpOwogICAgICBzdGF0ZS5ub3RpY2UgPSAiTm9jaCBuaWNodDogIiArIHRpcCArICIgRGVyIEdlZ25lciBiZWtvbW10IERydWNrLiI7CiAgICB9CiAgICByZW5kZXJVaSgpOwogIH0KCiAgZnVuY3Rpb24gZW5kTWF0Y2goKSB7CiAgICBzdGF0ZS5zY3JlZW4gPSAiZW5kIjsKICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGxvb3BJZCk7CiAgICBzdG9wQWxsSW5wdXQoKTsKICAgIGNvbnN0IHdpbiA9IHN0YXRlLnNjb3JlQSA+IHN0YXRlLnNjb3JlQjsKICAgIGlmICh3aW4pIHsKICAgICAgc3RhdGUud2lucyArPSAxOwogICAgICB1aS5yZXN1bHRUaXRsZS50ZXh0Q29udGVudCA9ICJTaWVnISI7CiAgICAgIHVpLnJlc3VsdFRleHQudGV4dENvbnRlbnQgPSAiRHUgaGFzdCBnZXdvbm5lbi4gTmFjaCBkcmVpIFNpZWdlbiBpbiBlaW5lciBMaWdhIHN0ZWlnc3QgZHUgYXVmLiI7CiAgICAgIGlmIChzdGF0ZS53aW5zID49IDMgJiYgc3RhdGUubGVhZ3VlIDwgbGVhZ3Vlcy5sZW5ndGggLSAxKSB7CiAgICAgICAgc3RhdGUubGVhZ3VlICs9IDE7CiAgICAgICAgc3RhdGUud2lucyA9IDA7CiAgICAgICAgdWkucmVzdWx0VGV4dC50ZXh0Q29udGVudCA9ICJEcml0dGVyIFNpZWchIERlaW4gVGVhbSBzdGVpZ3QgYXVmIGluIGRpZSAiICsgbGVhZ3Vlc1tzdGF0ZS5sZWFndWVdICsgIi4iOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS53aW5zID0gTWF0aC5tYXgoMCwgc3RhdGUud2lucyAtIDEpOwogICAgICB1aS5yZXN1bHRUaXRsZS50ZXh0Q29udGVudCA9ICJBYnBmaWZmIjsKICAgICAgdWkucmVzdWx0VGV4dC50ZXh0Q29udGVudCA9ICJOb2NoIGtlaW4gU2llZy4gVHJhaW5pZXJlIFDDpHNzZSwgUHJlc3NpbmcgdW5kIGdlemllbHRlIFNjaMO8c3NlLiI7CiAgICB9CiAgICByZW5kZXJVaSgpOwogICAgc2hvdyh1aS5yZXN1bHQpOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyVWkoKSB7CiAgICB1aS5zY29yZS50ZXh0Q29udGVudCA9IHN0YXRlLnNjb3JlQSArICIgOiAiICsgc3RhdGUuc2NvcmVCOwogICAgdWkubGVhZ3VlLnRleHRDb250ZW50ID0gbGVhZ3Vlc1tzdGF0ZS5sZWFndWVdOwogICAgdWkucHJvbW8udGV4dENvbnRlbnQgPSBzdGF0ZS53aW5zICsgIiAvIDMiOwogICAgdWkudGltZS50ZXh0Q29udGVudCA9IFN0cmluZyhNYXRoLm1heCgwLCBNYXRoLmNlaWwoc3RhdGUudCkpKTsKICAgIHVpLm1zZy50ZXh0Q29udGVudCA9IHN0YXRlLm5vdGljZTsKICB9CgogIGZ1bmN0aW9uIGRyYXcoKSB7CiAgICBjb25zdCB3ID0gc3RhdGUudzsKICAgIGNvbnN0IGggPSBzdGF0ZS5oOwogICAgY3R4LmNsZWFyUmVjdCgwLCAwLCB3LCBoKTsKICAgIGN0eC5maWxsU3R5bGUgPSAiIzBiNmIzOSI7CiAgICBjdHguZmlsbFJlY3QoMCwgMCwgdywgaCk7CiAgICBzdHJpcGUodywgaCk7CiAgICBsaW5lKHcgKiAwLjUsIDAsIHcgKiAwLjUsIGgpOwogICAgY2lyY2xlKHcgKiAwLjUsIGggKiAwLjUsIE1hdGgubWluKHcsIGgpICogMC4xMyk7CiAgICBib3goMCwgaCAqIDAuMywgdyAqIDAuMTMsIGggKiAwLjQpOwogICAgYm94KHcgKiAwLjg3LCBoICogMC4zLCB3ICogMC4xMywgaCAqIDAuNCk7CiAgICBnb2FsKDAsIGgpOwogICAgZ29hbCh3LCBoKTsKICAgIGRyYXdQb2ludGVyVGFyZ2V0KHcsIGgpOwogICAgdG9rZW4oc3RhdGUucGxheWVyLCAiIzY1YjdmZiIsICJEdSIpOwogICAgdG9rZW4oc3RhdGUub3BwLCAiI2ZmNzA3MCIsICJHZWduZXIiKTsKICAgIGJhbGwoKTsKICB9CgogIGZ1bmN0aW9uIHN0cmlwZSh3LCBoKSB7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDg7IGkgKz0gMSkgewogICAgICBjdHguZmlsbFN0eWxlID0gaSAlIDIgPyAiIzBmN2E0MiIgOiAiIzBhNjMzNSI7CiAgICAgIGN0eC5maWxsUmVjdChpICogdyAvIDgsIDAsIHcgLyA4LCBoKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGxpbmUoeDEsIHkxLCB4MiwgeTIpIHsKICAgIGN0eC5zdHJva2VTdHlsZSA9ICIjZmZmZmZmY2MiOwogICAgY3R4LmxpbmVXaWR0aCA9IDM7CiAgICBjdHguYmVnaW5QYXRoKCk7CiAgICBjdHgubW92ZVRvKHgxLCB5MSk7CiAgICBjdHgubGluZVRvKHgyLCB5Mik7CiAgICBjdHguc3Ryb2tlKCk7CiAgfQoKICBmdW5jdGlvbiBjaXJjbGUoeCwgeSwgcikgewogICAgY3R4LnN0cm9rZVN0eWxlID0gIiNmZmZmZmZjYyI7CiAgICBjdHgubGluZVdpZHRoID0gMzsKICAgIGN0eC5iZWdpblBhdGgoKTsKICAgIGN0eC5hcmMoeCwgeSwgciwgMCwgTWF0aC5QSSAqIDIpOwogICAgY3R4LnN0cm9rZSgpOwogIH0KCiAgZnVuY3Rpb24gYm94KHgsIHksIHcsIGgpIHsKICAgIGN0eC5zdHJva2VTdHlsZSA9ICIjZmZmZmZmY2MiOwogICAgY3R4LmxpbmVXaWR0aCA9IDM7CiAgICBjdHguc3Ryb2tlUmVjdCh4LCB5LCB3LCBoKTsKICB9CgogIGZ1bmN0aW9uIGdvYWwoeCwgaCkgewogICAgY3R4LmZpbGxTdHlsZSA9ICIjZmZmZmZmMzMiOwogICAgY29uc3QgZWRnZSA9IHggPCAxID8gMCA6IHN0YXRlLncgLSAxMDsKICAgIGN0eC5maWxsUmVjdChlZGdlLCBoICogMC4zOCwgMTAsIGggKiAwLjI0KTsKICB9CgogIGZ1bmN0aW9uIGRyYXdQb2ludGVyVGFyZ2V0KHcsIGgpIHsKICAgIGlmICghZGlyZWN0LmVuYWJsZWQgfHwgc3RhdGUuc2NyZWVuICE9PSAicGxheSIpIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgeCA9IGRpcmVjdC50YXJnZXRYICogdzsKICAgIGNvbnN0IHkgPSBkaXJlY3QudGFyZ2V0WSAqIGg7CiAgICBjdHguc3Ryb2tlU3R5bGUgPSAiI2ZmZDE2NmNjIjsKICAgIGN0eC5saW5lV2lkdGggPSAyOwogICAgY3R4LmJlZ2luUGF0aCgpOwogICAgY3R4LmFyYyh4LCB5LCAxNCwgMCwgTWF0aC5QSSAqIDIpOwogICAgY3R4LnN0cm9rZSgpOwogICAgY3R4LmJlZ2luUGF0aCgpOwogICAgY3R4Lm1vdmVUbyh4IC0gMTgsIHkpOwogICAgY3R4LmxpbmVUbyh4ICsgMTgsIHkpOwogICAgY3R4Lm1vdmVUbyh4LCB5IC0gMTgpOwogICAgY3R4LmxpbmVUbyh4LCB5ICsgMTgpOwogICAgY3R4LnN0cm9rZSgpOwogIH0KCiAgZnVuY3Rpb24gdG9rZW4ob2JqLCBjb2xvciwgbmFtZSkgewogICAgY29uc3QgeCA9IG9iai54ICogc3RhdGUudzsKICAgIGNvbnN0IHkgPSBvYmoueSAqIHN0YXRlLmg7CiAgICBjb25zdCByID0gb2JqLnIgKiBNYXRoLm1pbihzdGF0ZS53LCBzdGF0ZS5oKTsKICAgIGN0eC5maWxsU3R5bGUgPSBjb2xvcjsKICAgIGN0eC5iZWdpblBhdGgoKTsKICAgIGN0eC5hcmMoeCwgeSwgciwgMCwgTWF0aC5QSSAqIDIpOwogICAgY3R4LmZpbGwoKTsKICAgIGN0eC5zdHJva2VTdHlsZSA9ICIjZmZmZmZmZGQiOwogICAgY3R4LmxpbmVXaWR0aCA9IDI7CiAgICBjdHguc3Ryb2tlKCk7CiAgICBjdHguZmlsbFN0eWxlID0gIiMwNjIwMTUiOwogICAgY3R4LmZvbnQgPSAiNzAwIDEycHggc3lzdGVtLXVpIjsKICAgIGN0eC50ZXh0QWxpZ24gPSAiY2VudGVyIjsKICAgIGN0eC5maWxsVGV4dChuYW1lLCB4LCB5IC0gciAtIDgpOwogIH0KCiAgZnVuY3Rpb24gYmFsbCgpIHsKICAgIGNvbnN0IGIgPSBzdGF0ZS5iYWxsOwogICAgY29uc3QgeCA9IGIueCAqIHN0YXRlLnc7CiAgICBjb25zdCB5ID0gYi55ICogc3RhdGUuaDsKICAgIGNvbnN0IHIgPSBiLnIgKiBNYXRoLm1pbihzdGF0ZS53LCBzdGF0ZS5oKTsKICAgIGN0eC5maWxsU3R5bGUgPSAiI2ZmZmZmZiI7CiAgICBjdHguYmVnaW5QYXRoKCk7CiAgICBjdHguYXJjKHgsIHksIHIsIDAsIE1hdGguUEkgKiAyKTsKICAgIGN0eC5maWxsKCk7CiAgICBjdHguc3Ryb2tlU3R5bGUgPSAiIzExMTExMSI7CiAgICBjdHgubGluZVdpZHRoID0gMjsKICAgIGN0eC5zdHJva2UoKTsKICB9CgogIGZ1bmN0aW9uIGRpc3QoYSwgYikgewogICAgcmV0dXJuIE1hdGguaHlwb3QoYS54IC0gYi54LCBhLnkgLSBiLnkpOwogIH0KCiAgZnVuY3Rpb24gY2xhbXAodmFsdWUsIG1pbiwgbWF4KSB7CiAgICByZXR1cm4gTWF0aC5tYXgobWluLCBNYXRoLm1pbihtYXgsIHZhbHVlKSk7CiAgfQoKICBmdW5jdGlvbiBwcmVzcyhhY3Rpb24sIG9uKSB7CiAgICBpZiAoYWN0aW9uID09PSAidXAiKSB7CiAgICAgIGtleXMudXAgPSBvbjsKICAgIH0KICAgIGlmIChhY3Rpb24gPT09ICJkb3duIikgewogICAgICBrZXlzLmRvd24gPSBvbjsKICAgIH0KICAgIGlmIChhY3Rpb24gPT09ICJsZWZ0IikgewogICAgICBrZXlzLmxlZnQgPSBvbjsKICAgIH0KICAgIGlmIChhY3Rpb24gPT09ICJyaWdodCIpIHsKICAgICAga2V5cy5yaWdodCA9IG9uOwogICAgfQogICAgaWYgKGFjdGlvbiA9PT0gInNob290IikgewogICAgICBrZXlzLnNob290ID0gb247CiAgICB9CiAgfQoKICBmdW5jdGlvbiBzdG9wQWxsSW5wdXQoKSB7CiAgICBrZXlzLnVwID0gZmFsc2U7CiAgICBrZXlzLmRvd24gPSBmYWxzZTsKICAgIGtleXMubGVmdCA9IGZhbHNlOwogICAga2V5cy5yaWdodCA9IGZhbHNlOwogICAga2V5cy5zaG9vdCA9IGZhbHNlOwogICAgZGlyZWN0LnByZXNzZWQgPSBmYWxzZTsKICAgIGRpcmVjdC5raWNrVGltZXIgPSAwOwogIH0KCiAgZnVuY3Rpb24gc2V0RGlyZWN0VGFyZ2V0KGNsaWVudFgsIGNsaWVudFksIGtpbmQpIHsKICAgIGlmIChzdGF0ZS5zY3JlZW4gIT09ICJwbGF5IikgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCByZWN0ID0gY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgaWYgKHJlY3Qud2lkdGggPD0gMCB8fCByZWN0LmhlaWdodCA8PSAwKSB7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnN0IHggPSAoY2xpZW50WCAtIHJlY3QubGVmdCkgLyByZWN0LndpZHRoOwogICAgY29uc3QgeSA9IChjbGllbnRZIC0gcmVjdC55KSAvIHJlY3QuaGVpZ2h0OwogICAgZGlyZWN0LnRhcmdldFggPSBjbGFtcCh4LCAwLjA2LCAwLjk0KTsKICAgIGRpcmVjdC50YXJnZXRZID0gY2xhbXAoeSwgMC4xMywgMC44Nyk7CiAgICBkaXJlY3QuZW5hYmxlZCA9IHRydWU7CiAgICBkaXJlY3QubGFzdEtpbmQgPSBraW5kOwogIH0KCiAgZnVuY3Rpb24gYmVnaW5EaXJlY3QoY2xpZW50WCwgY2xpZW50WSwga2luZCkgewogICAgc2V0RGlyZWN0VGFyZ2V0KGNsaWVudFgsIGNsaWVudFksIGtpbmQpOwogICAgZGlyZWN0LnByZXNzZWQgPSB0cnVlOwogICAgZGlyZWN0LmtpY2tUaW1lciA9IDAuMjsKICAgIGlmIChzdGF0ZS5zY3JlZW4gPT09ICJwbGF5IikgewogICAgICBzdGF0ZS5ub3RpY2UgPSBraW5kID09PSAiRmluZ2VyIiA/ICJGaW5nZXJzdGV1ZXJ1bmcgYWt0aXY6IFppZWhlIMO8YmVyIGRhcyBTcGllbGZlbGQuIiA6ICJDdXJzb3JzdGV1ZXJ1bmcgYWt0aXY6IERlciBTcGllbGVyIGZvbGd0IGRlbSBaaWVscHVua3QuIjsKICAgICAgcmVuZGVyVWkoKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIG1vdmVEaXJlY3QoY2xpZW50WCwgY2xpZW50WSwga2luZCkgewogICAgc2V0RGlyZWN0VGFyZ2V0KGNsaWVudFgsIGNsaWVudFksIGtpbmQpOwogIH0KCiAgZnVuY3Rpb24gZW5kRGlyZWN0KGtpbmQpIHsKICAgIGRpcmVjdC5wcmVzc2VkID0gZmFsc2U7CiAgICBpZiAoa2luZCA9PT0gIkZpbmdlciIpIHsKICAgICAgZGlyZWN0LmVuYWJsZWQgPSBmYWxzZTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGlzQ29udHJvbEtleShrZXkpIHsKICAgIHJldHVybiBrZXkgPT09ICJhcnJvd3VwIiB8fCBrZXkgPT09ICJhcnJvd2Rvd24iIHx8IGtleSA9PT0gImFycm93bGVmdCIgfHwga2V5ID09PSAiYXJyb3dyaWdodCIgfHwga2V5ID09PSAidyIgfHwga2V5ID09PSAiYSIgfHwga2V5ID09PSAicyIgfHwga2V5ID09PSAiZCIgfHwga2V5ID09PSAiICI7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgKGV2ZW50KSA9PiB7CiAgICBjb25zdCBrZXkgPSBldmVudC5rZXkudG9Mb3dlckNhc2UoKTsKICAgIGlmIChpc0NvbnRyb2xLZXkoa2V5KSkgewogICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgfQogICAgaWYgKGtleSA9PT0gImFycm93dXAiIHx8IGtleSA9PT0gInciKSB7CiAgICAgIHByZXNzKCJ1cCIsIHRydWUpOwogICAgfQogICAgaWYgKGtleSA9PT0gImFycm93ZG93biIgfHwga2V5ID09PSAicyIpIHsKICAgICAgcHJlc3MoImRvd24iLCB0cnVlKTsKICAgIH0KICAgIGlmIChrZXkgPT09ICJhcnJvd2xlZnQiIHx8IGtleSA9PT0gImEiKSB7CiAgICAgIHByZXNzKCJsZWZ0IiwgdHJ1ZSk7CiAgICB9CiAgICBpZiAoa2V5ID09PSAiYXJyb3dyaWdodCIgfHwga2V5ID09PSAiZCIpIHsKICAgICAgcHJlc3MoInJpZ2h0IiwgdHJ1ZSk7CiAgICB9CiAgICBpZiAoa2V5ID09PSAiICIpIHsKICAgICAgcHJlc3MoInNob290IiwgdHJ1ZSk7CiAgICB9CiAgICBpZiAoa2V5ID09PSAicCIpIHsKICAgICAgcGF1c2VkID0gIXBhdXNlZDsKICAgICAgc3RhdGUubm90aWNlID0gcGF1c2VkID8gIlBhdXNlIiA6ICJXZWl0ZXIgZ2VodCBlcy4iOwogICAgICByZW5kZXJVaSgpOwogICAgfQogIH0pOwoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIChldmVudCkgPT4gewogICAgY29uc3Qga2V5ID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCk7CiAgICBpZiAoaXNDb250cm9sS2V5KGtleSkpIHsKICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgIH0KICAgIGlmIChrZXkgPT09ICJhcnJvd3VwIiB8fCBrZXkgPT09ICJ3IikgewogICAgICBwcmVzcygidXAiLCBmYWxzZSk7CiAgICB9CiAgICBpZiAoa2V5ID09PSAiYXJyb3dkb3duIiB8fCBrZXkgPT09ICJzIikgewogICAgICBwcmVzcygiZG93biIsIGZhbHNlKTsKICAgIH0KICAgIGlmIChrZXkgPT09ICJhcnJvd2xlZnQiIHx8IGtleSA9PT0gImEiKSB7CiAgICAgIHByZXNzKCJsZWZ0IiwgZmFsc2UpOwogICAgfQogICAgaWYgKGtleSA9PT0gImFycm93cmlnaHQiIHx8IGtleSA9PT0gImQiKSB7CiAgICAgIHByZXNzKCJyaWdodCIsIGZhbHNlKTsKICAgIH0KICAgIGlmIChrZXkgPT09ICIgIikgewogICAgICBwcmVzcygic2hvb3QiLCBmYWxzZSk7CiAgICB9CiAgfSk7CgogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWFjdGlvbl0iKS5mb3JFYWNoKChidXR0b24pID0+IHsKICAgIGNvbnN0IGFjdGlvbiA9IGJ1dHRvbi5nZXRBdHRyaWJ1dGUoImRhdGEtYWN0aW9uIik7CiAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLCAoZXZlbnQpID0+IHsKICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgcHJlc3MoYWN0aW9uLCB0cnVlKTsKICAgIH0pOwogICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsIChldmVudCkgPT4gewogICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICBwcmVzcyhhY3Rpb24sIGZhbHNlKTsKICAgIH0pOwogICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLCAoKSA9PiBwcmVzcyhhY3Rpb24sIGZhbHNlKSk7CiAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxlYXZlIiwgKCkgPT4gcHJlc3MoYWN0aW9uLCBmYWxzZSkpOwogIH0pOwoKICBmdW5jdGlvbiBhdHRhY2hQb2ludGVyQ29udHJvbCgpIHsKICAgIGNvbnN0IGhhc1BvaW50ZXIgPSB0eXBlb2YgUG9pbnRlckV2ZW50ICE9PSAidW5kZWZpbmVkIjsKICAgIGlmIChoYXNQb2ludGVyKSB7CiAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsIChldmVudCkgPT4gewogICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgYmVnaW5EaXJlY3QoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSwgZXZlbnQucG9pbnRlclR5cGUgPT09ICJ0b3VjaCIgPyAiRmluZ2VyIiA6ICJNYXVzIik7CiAgICAgICAgaWYgKGNhbnZhcy5zZXRQb2ludGVyQ2FwdHVyZSkgewogICAgICAgICAgY2FudmFzLnNldFBvaW50ZXJDYXB0dXJlKGV2ZW50LnBvaW50ZXJJZCk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIiwgKGV2ZW50KSA9PiB7CiAgICAgICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlID09PSAibW91c2UiIHx8IGRpcmVjdC5wcmVzc2VkKSB7CiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgbW92ZURpcmVjdChldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZLCBldmVudC5wb2ludGVyVHlwZSA9PT0gInRvdWNoIiA/ICJGaW5nZXIiIDogIk1hdXMiKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIiwgKGV2ZW50KSA9PiB7CiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICBlbmREaXJlY3QoZXZlbnQucG9pbnRlclR5cGUgPT09ICJ0b3VjaCIgPyAiRmluZ2VyIiA6ICJNYXVzIik7CiAgICAgIH0pOwogICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsIChldmVudCkgPT4gewogICAgICAgIGVuZERpcmVjdChldmVudC5wb2ludGVyVHlwZSA9PT0gInRvdWNoIiA/ICJGaW5nZXIiIDogIk1hdXMiKTsKICAgICAgfSk7CiAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybGVhdmUiLCAoZXZlbnQpID0+IHsKICAgICAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgPT09ICJtb3VzZSIpIHsKICAgICAgICAgIGRpcmVjdC5lbmFibGVkID0gZmFsc2U7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCAoZXZlbnQpID0+IHsKICAgICAgbW92ZURpcmVjdChldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZLCAiTWF1cyIpOwogICAgfSk7CiAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgKGV2ZW50KSA9PiB7CiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGJlZ2luRGlyZWN0KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFksICJNYXVzIik7CiAgICB9KTsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCAoKSA9PiB7CiAgICAgIGVuZERpcmVjdCgiTWF1cyIpOwogICAgfSk7CiAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsIChldmVudCkgPT4gewogICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICBjb25zdCB0b3VjaCA9IGV2ZW50LnRvdWNoZXMuaXRlbSgwKTsKICAgICAgaWYgKHRvdWNoKSB7CiAgICAgICAgYmVnaW5EaXJlY3QodG91Y2guY2xpZW50WCwgdG91Y2guY2xpZW50WSwgIkZpbmdlciIpOwogICAgICB9CiAgICB9LCB7IHBhc3NpdmU6IGZhbHNlIH0pOwogICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIChldmVudCkgPT4gewogICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICBjb25zdCB0b3VjaCA9IGV2ZW50LnRvdWNoZXMuaXRlbSgwKTsKICAgICAgaWYgKHRvdWNoKSB7CiAgICAgICAgbW92ZURpcmVjdCh0b3VjaC5jbGllbnRYLCB0b3VjaC5jbGllbnRZLCAiRmluZ2VyIik7CiAgICAgIH0KICAgIH0sIHsgcGFzc2l2ZTogZmFsc2UgfSk7CiAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCAoKSA9PiB7CiAgICAgIGVuZERpcmVjdCgiRmluZ2VyIik7CiAgICB9KTsKICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsICgpID0+IHsKICAgICAgZW5kRGlyZWN0KCJGaW5nZXIiKTsKICAgIH0pOwogIH0KCiAgZWwoInN0YXJ0LWJ1dHRvbiIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgc3RhcnRNYXRjaCk7CiAgZWwoImZ1bGxzY3JlZW4tYnV0dG9uIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCByZXF1ZXN0RnVsbCk7CiAgZWwoInBhdXNlLWJ1dHRvbiIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgcGF1c2VkID0gIXBhdXNlZDsKICAgIHN0YXRlLm5vdGljZSA9IHBhdXNlZCA/ICJQYXVzZSIgOiAiV2VpdGVyIGdlaHQgZXMuIjsKICAgIHJlbmRlclVpKCk7CiAgfSk7CiAgZWwoIm1lbnUtYnV0dG9uIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CiAgICBjYW5jZWxBbmltYXRpb25GcmFtZShsb29wSWQpOwogICAgcmVzZXRHYW1lKCk7CiAgICBzaG93KHVpLnN0YXJ0KTsKICB9KTsKICBlbCgibmV4dC1idXR0b24iKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG5leHRNYXRjaCk7CiAgZWwoInJlc2V0LWJ1dHRvbiIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgcmVzZXRHYW1lKCk7CiAgICBzaG93KHVpLnN0YXJ0KTsKICB9KTsKCiAgYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgcmVzaXplKTsKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwgKCkgPT4gewogICAgaWYgKGRvY3VtZW50LmhpZGRlbiAmJiBzdGF0ZS5zY3JlZW4gPT09ICJwbGF5IikgewogICAgICBwYXVzZWQgPSB0cnVlOwogICAgICBzdGF0ZS5ub3RpY2UgPSAiUGF1c2UiOwogICAgICByZW5kZXJVaSgpOwogICAgfQogIH0pOwoKICBhdHRhY2hQb2ludGVyQ29udHJvbCgpOwogIHJlc2V0R2FtZSgpOwogIHNob3codWkuc3RhcnQpOwp9KSgpOwoKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==
</aimoocgame>
</aimoocgame>



Aktuelle Version vom 22. Juni 2026, 10:58 Uhr



Fußball Arena Liga


Fußball Arena Liga

Überarbeitete Version mit direkter Maus-Cursor-, Finger-/Touch- und Tastatursteuerung für PC, iPad, Tablet und Smartphone.

MOOCwiki Spiele

Fußball Arena Liga





Schulfach+

Prüfungsliteratur 2026
Bundesland Bücher Kurzbeschreibung
Baden-Württemberg

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Heimsuchung - Jenny Erpenbeck

Mittlere Reife

  1. Der Markisenmann - Jan Weiler oder Als die Welt uns gehörte - Liz Kessler
  2. Ein Schatten wie ein Leopard - Myron Levoy oder Pampa Blues - Rolf Lappert

Abitur Dorfrichter-Komödie über Wahrheit/Schuld; Roman über einen Ort und deutsche Geschichte. Mittlere Reife Wahllektüren (Roadtrip-Vater-Sohn / Jugendroman im NS-Kontext / Coming-of-age / Provinzroman).

Bayern

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Heimsuchung - Jenny Erpenbeck

Abitur Lustspiel über Machtmissbrauch und Recht; Roman als Zeitschnitt deutscher Geschichte an einem Haus/Grundstück.

Berlin/Brandenburg

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Woyzeck - Georg Büchner
  3. Der Biberpelz - Gerhart Hauptmann
  4. Heimsuchung - Jenny Erpenbeck

Abitur Gerichtskomödie; soziales Drama um Ausbeutung/Armut; Komödie/Satire um Diebstahl und Obrigkeit; Roman über Erinnerungsräume und Umbrüche.

Bremen

Abitur

  1. Nach Mitternacht - Irmgard Keun
  2. Mario und der Zauberer - Thomas Mann
  3. Emilia Galotti - Gotthold Ephraim Lessing oder Miss Sara Sampson - Gotthold Ephraim Lessing

Abitur Roman in der NS-Zeit (Alltag, Anpassung, Angst); Novelle über Verführung/Massenpsychologie; bürgerliche Trauerspiele (Moral, Macht, Stand).

Hamburg

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Das kunstseidene Mädchen - Irmgard Keun

Abitur Justiz-/Machtkritik als Komödie; Großstadtroman der Weimarer Zeit (Rollenbilder, Aufstiegsträume, soziale Realität).

Hessen

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Woyzeck - Georg Büchner
  3. Heimsuchung - Jenny Erpenbeck
  4. Der Prozess - Franz Kafka

Abitur Gerichtskomödie; Fragmentdrama über Gewalt/Entmenschlichung; Erinnerungsroman über deutsche Brüche; moderner Roman über Schuld, Macht und Bürokratie.

Niedersachsen

Abitur

  1. Der zerbrochene Krug - Heinrich von Kleist
  2. Das kunstseidene Mädchen - Irmgard Keun
  3. Die Marquise von O. - Heinrich von Kleist
  4. Über das Marionettentheater - Heinrich von Kleist

Abitur Schwerpunkt auf Drama/Roman sowie Kleist-Prosatext und Essay (Ehre, Gewalt, Unschuld; Ästhetik/„Anmut“).

Nordrhein-Westfalen

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Heimsuchung - Jenny Erpenbeck

Abitur Komödie über Wahrheit und Autorität; Roman als literarische „Geschichtsschichtung“ an einem Ort.

Saarland

Abitur

  1. Heimsuchung - Jenny Erpenbeck
  2. Furor - Lutz Hübner und Sarah Nemitz
  3. Bahnwärter Thiel - Gerhart Hauptmann

Abitur Erinnerungsroman an einem Ort; zeitgenössisches Drama über Eskalation/Populismus; naturalistische Novelle (Pflicht/Überforderung/Abgrund).

Sachsen (berufliches Gymnasium)

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Woyzeck - Georg Büchner
  3. Irrungen, Wirrungen - Theodor Fontane
  4. Der gute Mensch von Sezuan - Bertolt Brecht
  5. Heimsuchung - Jenny Erpenbeck
  6. Der Trafikant - Robert Seethaler

Abitur Mischung aus Klassiker-Drama, sozialem Drama, realistischem Roman, epischem Theater und Gegenwarts-/Erinnerungsroman; zusätzlich Coming-of-age im historischen Kontext.

Sachsen-Anhalt

Abitur

  1. (keine fest benannte landesweite Pflichtlektüre veröffentlicht; Themenfelder)

Abitur Schwerpunktsetzung über Themenfelder (u. a. Literatur um 1900; Sprache in politisch-gesellschaftlichen Kontexten), ohne feste Einzeltitel.

Schleswig-Holstein

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Heimsuchung - Jenny Erpenbeck

Abitur Recht/Gerechtigkeit und historische Tiefenschichten eines Ortes – umgesetzt über Drama und Gegenwartsroman.

Thüringen

Abitur

  1. (keine fest benannte landesweite Pflichtlektüre veröffentlicht; Orientierung am gemeinsamen Aufgabenpool)

Abitur In der Praxis häufig Orientierung am gemeinsamen Aufgabenpool; landesweite Einzeltitel je nach Vorgabe/Handreichung nicht einheitlich ausgewiesen.

Mecklenburg-Vorpommern

Abitur

  1. (Quelle aktuell technisch nicht abrufbar; Beteiligung am gemeinsamen Aufgabenpool bekannt)

Abitur Land beteiligt sich am länderübergreifenden Aufgabenpool; konkrete, veröffentlichte Einzeltitel konnten hier nicht ausgelesen werden.

Rheinland-Pfalz

Abitur

  1. (keine landesweit einheitliche Pflichtlektüre; schulische Auswahl)

Abitur Keine landesweite Einheitsliste; Auswahl kann schul-/kursbezogen erfolgen.




aiMOOCs



aiMOOC Projekte












THE MONKEY DANCE



{{#ev:youtube | https://youtu.be/rFhZlg38Zf8?si=9KdMNZYRkRD81YTo%7C 500 | center}}

The Monkey DanceaiMOOCs

  1. Trust Me It's True: #Verschwörungstheorie #FakeNews
  2. Gregor Samsa Is You: #Kafka #Verwandlung
  3. Who Owns Who: #Musk #Geld
  4. Lump: #Trump #Manipulation
  5. Filth Like You: #Konsum #Heuchelei
  6. Your Poverty Pisses Me Off: #SozialeUngerechtigkeit #Musk
  7. Hello I'm Pump: #Trump #Kapitalismus
  8. Monkey Dance Party: #Lebensfreude
  9. God Hates You Too: #Religionsfanatiker
  10. You You You: #Klimawandel #Klimaleugner
  11. Monkey Free: #Konformität #Macht #Kontrolle
  12. Pure Blood: #Rassismus
  13. Monkey World: #Chaos #Illusion #Manipulation
  14. Uh Uh Uh Poor You: #Kafka #BerichtAkademie #Doppelmoral
  15. The Monkey Dance Song: #Gesellschaftskritik
  16. Will You Be Mine: #Love
  17. Arbeitsheft
  18. And Thanks for Your Meat: #AntiFactoryFarming #AnimalRights #MeatIndustry


© The Monkey Dance on Spotify, YouTube, Amazon, MOOCit, Deezer, ...

{{#ev:youtube | https://youtu.be/Ob7etf9QuBo?si=t_NBA71bWg3Rq3LI%7C 500 | center}}



Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen

<inputbox>

type=create break=no preload=MOOCit Vorlage default= width=30 placeholder= Dein MOOC Titel buttonlabel=MOOC erstellen </inputbox>