Fußball Arena Liga: Unterschied zwischen den Versionen
Erscheinungsbild
Glanz (Diskussion | Beiträge) Spiele-ZIP kontrolliert geprüft und erstellt |
Glanz (Diskussion | Beiträge) 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 = | ||
Ü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, | <aimoocgame title="Fußball Arena Liga" cover="data:image/png;base64,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" manifest="eyJmb3JtYXQiOiJTcGllbGUiLCJ0aXRsZSI6IkZ1w59iYWxsIEFyZW5hIExpZ2EiLCJzaG9ydERlc2NyaXB0aW9uIjoiRnXDn2JhbGwtTGVybnNwaWVsIG1pdCBkaXJla3RlciBNYXVzLSwgQ3Vyc29yLSwgRmluZ2VyLSB1bmQgVGFzdGF0dXJzdGV1ZXJ1bmcgc293aWUgQXVmc3RpZWdzc3lzdGVtLiIsInN1YmplY3QiOiJTcG9ydCIsImNsYXNzUmFuZ2UiOiJLbGFzc2UgNS0xMCIsImNhdGVnb3JpZXMiOlsiU3BvcnQiLCJGdcOfYmFsbCIsIlNwaWVsZSJdLCJ0YWdzIjpbIkxlcm5zcGllbCIsIkludGVyYWt0aXYiLCJGdcOfYmFsbCIsIlRha3RpayIsIkxpZ2EiLCJUb3VjaCJdLCJjb250cm9scyI6WyJNYXVzIiwiVG91Y2giLCJUYXN0YXR1ciJdLCJmdWxsc2NyZWVuIjp0cnVlLCJlbnRyeUZpbGUiOiJpbmRleC5odG1sIiwic3R5bGVGaWxlIjoic3R5bGUuY3NzIiwic2NyaXB0RmlsZSI6InNjcmlwdC5qcyIsImNvdmVyRmlsZSI6ImFzc2V0cy9jb3Zlci5wbmciLCJ2ZXJzaW9uIjoiMS4xLjAiLCJsYW5ndWFnZSI6ImRlIiwiYWNjZXNzaWJpbGl0eSI6ImtleWJvYXJkLXRvdWNoLW1vdXNlIiwiY29tbW9uc1NvdXJjZXMiOltdfQ==" ziphash="c363730b99070ebc1f748ca67239b2c58950342ff87d7530c8cf0f352ca41cd0"> | ||
PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIj4KPGhlYWQ+ | 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+


aiMOOCs



aiMOOC Projekte


THE MONKEY DANCE





{{#ev:youtube | https://youtu.be/rFhZlg38Zf8?si=9KdMNZYRkRD81YTo%7C 500 | center}}
|
{{#ev:youtube | https://youtu.be/Ob7etf9QuBo?si=t_NBA71bWg3Rq3LI%7C 500 | center}}
| <inputbox>
type=create break=no preload=MOOCit Vorlage default= width=30 placeholder= Dein MOOC Titel buttonlabel=MOOC erstellen </inputbox> |