Webinare: Unterschied zwischen den Versionen

Aus Dokumentation
Wechseln zu:Navigation, Suche
Zeile 1: Zeile 1:
 
<html>
 
<html>
 +
<div id="vg-root"></div>
 
<script>
 
<script>
(function ($) {
+
(function() {
     'use strict';
+
     var s = document.createElement("script");
 
+
    s.textContent = atob("KGZ1bmN0aW9uICgkKSB7CiAgICAndXNlIHN0cmljdCc7CgogICAgdmFyIFdFQklOQVJFID0gWwogICAgICAgIHsgdGl0ZWw6ICdLYW5hYmlzIFJlbGVhc2UgVjExJywgZGF0dW06ICcyOC4wMS4yMDI2JywgdGFnOiAna2FuYWJpcycsIHZpZGVvOiAnMjAyNjAxMjggS0FOQUJJUyBSZWxlYXNlIFYxMS5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0JldHJpZWJzZnVlaHJ1bmc6IERpZ2l0YWwgXHgyNiBCZWRhcmZzb3JpZW50aWVydCcsIGRhdHVtOiAnMTcuMTIuMjAyNScsIHRhZzogJ3RvZ28nLCB2aWRlbzogJ0JldHJpZWJzZsO8aHJ1bmcgRGlnaXRhbCBCZWRhcmZzb3JpZW50aWVydCB2b24gZGVyIElkZWUgaW4gZGllIFByYXhpcy5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0F1dG9tYXRpc2NoZSBLYW5hbHNhbmllcnVuZ3NwbGFudW5nJywgZGF0dW06ICcxMi4xMS4yMDI1JywgdGFnOiAna2FzYScsIHZpZGVvOiAnQXV0b21hdGlzY2hlIEthbmFsc2FuaWVydW5nc3BsYW51bmcgR2FzdGJlaXRyYWcgQXF1YWRvY3MgMjUxMTEyLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnRFdBIEEgMTE4IC8gRFdBIE0gMTE5IC0gVWViZXJzdGF1IFx4MjYgUmlzaWtvbWFuYWdlbWVudCcsIGRhdHVtOiAnMDguMTAuMjAyNScsIHRhZzogJ2h5ZHJhdWxpaycsIHZpZGVvOiAnUmlzaWtvbWFuYWdlbWVudCBuYWNoIERXQUExMTggRFdBTTExOSAyMDI1MTAwOC5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1YxNyAtIFJlbGVhc2VuZXdzJywgZGF0dW06ICcwNC4wNi4yMDI1JywgdGFnOiAncmVsZWFzZScsIHZpZGVvOiAnMjAyNTA2MDQgUmVsZWFzZSBMZWNoIFYxNy5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0dlb0NQTSAtIFdvcmF1ZiBpc3QgYmVpIGRlciBNb2RlbGxpZXJ1bmcgenUgYWNodGVuPycsIGRhdHVtOiAnMDkuMDQuMjAyNScsIHRhZzogJ2dlb2NwbScsIHZpZGVvOiAnR2VvQ1BNIC0gV29yYXVmIGlzdCBiZWkgZGVyIE1vZGVsbGllcnVuZyB6dSBhY2h0ZW4ubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdHZW9DUE0gLSBLb21tdW5hbGUgU3R1cnpmbHV0ZW4gLyBSaXNpa29tYW5hZ2VtZW50JywgZGF0dW06ICcxMi4wMy4yMDI1JywgdGFnOiAnZ2VvY3BtJywgdmlkZW86ICcyNTAzMTIgQkVTVCBQUkFDVElDRSBTdGFya3JlZ2VuYmVyZWNobnVuZ2VuLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnTUVHQU1BUCAtIERpZSBpbnRlbGxpZ2VudGUgTGVpdHVuZ3NhdXNrdW5mdCcsIGRhdHVtOiAnMDUuMDMuMjAyNScsIHRhZzogJ2FsbGdlbWVpbicsIHZpZGVvOiAnTUVHQU1BUCAtIERpZSBpbnRlbGxpZ2VudGUgTGVpdHVuZ3NhdXNrdW5mdCBmw7xyIE5ldHpiZXRyZWliZXIubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdBUVVBKysgLSBUaGVvcmllLCBNb2RlbGxpZXJ1bmcgdW5kIEZlaGxlcnN1Y2hlJywgZGF0dW06ICcxOS4wMi4yMDI1JywgdGFnOiAnYXF1YScsIHZpZGVvOiAnRHJ1Y2tuZXR6YmVyZWNobnVuZyB2b24gV2Fzc2VydmVyc29yZ3VuZ3NuZXR6ZW4ubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdUb0dvIC0gRGlnaXRhbGlzaWVydW5nIGltIEthbmFsYmV0cmllYicsIGRhdHVtOiAnMTkuMTIuMjAyNCcsIHRhZzogJ3RvZ28nLCB2aWRlbzogJ0JldHJpZWJUb0dvIC0gRGlnaXRhbGlzaWVydW5nIGltIEthbmFsYmV0cmllYiBXZWJpbmFyIDI0MTIxOS5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0RhdGVudWJlcm5haG1lIGF1cyBHSVMtU3lzdGVtZW4nLCBkYXR1bTogJzA2LjExLjIwMjQnLCB0YWc6ICdhbGxnZW1laW4nLCB2aWRlbzogJ0RhdGVuw7xiZXJuYWhtZSBhdXMgYmVzdGVoZW5kZW4gR0lTLVN5c3RlbWVuIC0gYW0gQmVpc3BpZWwgU1RSQUtBVCBXZWJpbmFyIDI0MTEwNi5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0tJIGluIGRlciBadXN0YW5kc2VyZmFzc3VuZycsIGRhdHVtOiAnMDkuMTAuMjAyNCcsIHRhZzogJ2thc2EnLCB2aWRlbzogJ0tJIEthbmFsenVzdGFuZHNlcmZhc3N1bmcgV2ViaW5hciAyNDEwMDkubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdJTlNJRGUtUHJvamVrdCcsIGRhdHVtOiAnMDIuMTAuMjAyNCcsIHRhZzogJ2FsbGdlbWVpbicsIHZpZGVvOiAnSU5TSURlIFdlYmluYXIgMjQxMDAyLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnVjE2IC0gSW1wb3J0IFJhZGtsaW0nLCBkYXR1bTogJzAzLjA2LjIwMjQnLCB0YWc6ICdyZWxlYXNlJywgdmlkZW86ICcyMDI0MDYwMyBSYWRrbGltIFYxNi5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1YxNiAtIFplaWNoZW50b29sJywgZGF0dW06ICcyNy4wNi4yMDI0JywgdGFnOiAncmVsZWFzZScsIHZpZGVvOiAnMjAyNDA2MjcgVjE2IFplaWNoZW50b29sLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnVjE2IC0gR2VvM0QgRXJuZXVlcnVuZ2VuJywgZGF0dW06ICcyNS4wNi4yMDI0JywgdGFnOiAnZ2VvY3BtJywgdmlkZW86ICcyNTA2MjAyNCBHZW8zRC5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1YxNiAtIEdlb0NQTSBOZXVlcnVuZ2VuOiBEdXJjaGxhZXNzZScsIGRhdHVtOiAnMjAuMDYuMjAyNCcsIHRhZzogJ2dlb2NwbScsIHZpZGVvOiAnMjAyNDA2MjAgVjE2IEdlb0NQTS5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1YxNiAtIFJlbGVhc2VuZXdzJywgZGF0dW06ICcxOC4wNi4yMDI0JywgdGFnOiAncmVsZWFzZScsIHZpZGVvOiAnMjAyNDYxOCBSZWxlYXNlIFYxNi5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0dlb0NQTSAtIERHTS1BdXNkdWVubnVuZyBUaXBwcyBceDI2IFRyaWNrcycsIGRhdHVtOiAnMjQuMDQuMjAyNCcsIHRhZzogJ2dlb2NwbScsIHZpZGVvOiAnMjAyNDA0MjQgV2ViaW5hciBBdXNkw7xubnVuZy5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0thbmFiaXMgUmVsZWFzZSBWMTAnLCBkYXR1bTogJzA5LjA0LjIwMjQnLCB0YWc6ICdrYW5hYmlzJywgdmlkZW86ICcyMDI0MDQwOSBLQU5BQklTIFJlbGVhc2UgVjEwLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnV0lLSSAtIFVtZnJhZ2UgXHgyNiBFcm5ldWVydW5nZW4nLCBkYXR1bTogJzIwLjAzLjIwMjQnLCB0YWc6ICdhbGxnZW1laW4nLCB2aWRlbzogJzIwMjQwMzE5IFdpa2kgdW5kIFVtZnJhZ2UubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdHZW9DUE0gLSBTdHVyemZsdXQtUmlzaWtvbWFuYWdlbWVudCBCYXllcm4nLCBkYXR1bTogJzE2LjExLjIwMjMnLCB0YWc6ICdnZW9jcG0nLCB2aWRlbzogJ0dlb0NQTSBLb256ZXB0ZSB6dW0ga29tbXVuYWxlbiBTdHVyemZsdXQtUmlzaWtvbWFuYWdlbWVudCBpbiBCYXllcm4ubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdGbG93IFYxNTogTmV1ZXJ1bmdlbicsIGRhdHVtOiAnMDkuMTEuMjAyMycsIHRhZzogJ2Zsb3cnLCB2aWRlbzogJzIwMjMxMTA5IFdlYmluYXIgRkxPVy1CZXN0cHJhY3RpY2UubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdHZW9DUE0gQmVzdCBQcmFjdGljZSBWMTU6IFN0cnVrdHVyZW4nLCBkYXR1bTogJzAyLjExLjIwMjMnLCB0YWc6ICdnZW9jcG0nLCB2aWRlbzogJzIwMjMxMTA3IEdlb0NQTSBCZXN0cHJhY3RpY2UubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdHZW9DUE0gRXJuZXVlcnVuZ2VuIFYxNTogT0JPcycsIGRhdHVtOiAnMTkuMTAuMjAyMycsIHRhZzogJ2dlb2NwbScsIHZpZGVvOiAnMjAyMzEwMTkgR2VvQ1BNIFYxNS5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1JlbGVhc2UgVmVyc2lvbiAxNTogSW5uJywgZGF0dW06ICcxOC4xMC4yMDIzJywgdGFnOiAncmVsZWFzZScsIHZpZGVvOiAnMjAyMzEwMTggSW5uIFJlbGVhc2UgMTUtMDAtMDAubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdLYW5hYmlzIFJlbGVhc2UgVjknLCBkYXR1bTogJzA5LjAyLjIwMjMnLCB0YWc6ICdrYW5hYmlzJywgdmlkZW86ICcyMDIzMDIxMC1LQU5BQklTLVJlbGVhc2UgVmVyc2lvbiA5Lm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnTmV1ZXJ1bmdlbiBLQVNBbm92YScsIGRhdHVtOiAnMDEuMTIuMjAyMicsIHRhZzogJ2thc2EnLCB2aWRlbzogJzIwMjIxMTI5IFdlYmluYXIgS2FzYU5vdmEgMTQgMTAgMDAubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdSZWxlYXNlIFZlcnNpb24gMTQuMTAuMDA6IE1haW4nLCBkYXR1bTogJzI0LjExLjIwMjInLCB0YWc6ICdyZWxlYXNlJywgdmlkZW86ICcyMDIyMTEyNCBSZWxlYXNlIFYxNC4xMC4wMC5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0dlb0NQTSAtIEdlbmF1aWdrZWl0IHZvbiBHZWxhZW5kZW1vZGVsbGVuJywgZGF0dW06ICcwMy4wNS4yMDIyJywgdGFnOiAnZ2VvY3BtJywgdmlkZW86ICcyMDIyMDUwMyBHZW9DUE0gUHJheGlzIEF1c2TDvG5udW5nLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnQTEwMiBceDI2IEZsb3cgXHgyNiBQcmFjdGljZScsIGRhdHVtOiAnMDUuMDQuMjAyMicsIHRhZzogJ2Zsb3cnLCB2aWRlbzogJzIwMjIwNDA1IEZsb3cgQTEwMiBCZXN0LVByYWN0aWNlLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnUmFkb2xhbiBEYXRlbiBmdWVyIEdlb0NQTScsIGRhdHVtOiAnMjIuMDMuMjAyMicsIHRhZzogJ2dlb2NwbScsIHZpZGVvOiAnMjAyMjAzMjMgUmFkb2xhbiBhdXMgQXF1YXppcy5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1JlbGVhc2UgVmVyc2lvbiAxNDogTWFpbicsIGRhdHVtOiAnMDguMDIuMjAyMicsIHRhZzogJ3JlbGVhc2UnLCB2aWRlbzogJzIwMjIwMjA4IFJlbGVhc2UgTWFpbiBWMTQubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdLYW5hYmlzIFJlbGVhc2UgVmVyc2lvbiA4JywgZGF0dW06ICcwOS4xMi4yMDIxJywgdGFnOiAna2FuYWJpcycsIHZpZGVvOiAnMjAyMTEyMDkgS0FOQUJJUyBSZWxlYXNlIFY4LjAuMC5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0dlbzNEIEJlc3QtUHJhY3RpY2UnLCBkYXR1bTogJzI0LjExLjIwMjEnLCB0YWc6ICdnZW9jcG0nLCB2aWRlbzogJzIwMjExMTI0IEdlbzNEIEJlc3RQcmFjdGlzZS5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ051bWVyaXNjaGUgU2ltdWxhdGlvbicsIGRhdHVtOiAnMTcuMTEuMjAyMScsIHRhZzogJ2h5ZHJhdWxpaycsIHZpZGVvOiAnMjAyMTExMTcgTnVtZXJpc2NoZVNpbXVsYXRpb25lbi5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0ExMDIgXHgyNiBGbG93JywgZGF0dW06ICcwOS4xMS4yMDIxJywgdGFnOiAnZmxvdycsIHZpZGVvOiAnMjAyMTExMDkgQTEwMiBGbG93Lm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnKytTWVNURU1TIFByb2pla3RkYXRlaW1hbmFnZW1lbnQgMi4wJywgZGF0dW06ICcyNy4xMC4yMDIxJywgdGFnOiAnYWxsZ2VtZWluJywgdmlkZW86ICcyMDIxMTAyNyBQcm9qZWt0ZGF0ZWltYW5hZ2VtZW50IDIubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdNYW51ZWxsZXIgTGFlbmdzc2Nobml0dCcsIGRhdHVtOiAnMDYuMTAuMjAyMScsIHRhZzogJ2h5ZHJhdWxpaycsIHZpZGVvOiAnMjAyMTEwMDYgTMOkbmdzc2Nobml0dC5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1N0YXJrcmVnZW4gLSBLb21tdW5hbGVzIFJpc2lrb21hbmFnZW1lbnQnLCBkYXR1bTogJzIwLjEwLjIwMjEnLCB0YWc6ICdnZW9jcG0nLCB2aWRlbzogJzIwMjExMDIwIEdlb0NQTSBLU1JSTS5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0JJTSBceDI2IEJldHJpZWJzcHJvemVzc2UnLCBkYXR1bTogJzEzLjEwLjIwMjEnLCB0YWc6ICd0b2dvJywgdmlkZW86ICcyMDIxMTAxMyBCSU0gdW5kIEJldHJpZWJzcHJvemVzc2UubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdWZXJzaW9uIDEzIERvbmF1M0QgRXJuZXVlcnVuZ2VuJywgZGF0dW06ICcyMC4wNS4yMDIxJywgdGFnOiAncmVsZWFzZScsIHZpZGVvOiAnUmVsZWFzZSArK1NZU1RFTVMgRG9uYXUubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdWaXN1YWxpc2llcnVuZyBtaXQgZGVtIG5ldWVuIDNEVG9vbCcsIGRhdHVtOiAnMjIuMDQuMjAyMScsIHRhZzogJ2dlb2NwbScsIHZpZGVvOiAnMjAyMS0wNC0yMSBHZW8zRC5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0F1ZmJlcmVpdHVuZyB2b24gRWluZ2FuZ3NkYXRlbiBtaXQgUUdJUycsIGRhdHVtOiAnMTMuMDQuMjAyMScsIHRhZzogJ2FsbGdlbWVpbicsIHZpZGVvOiAnMjAyMTA0MTMgUUdJUyBFaW5nYW5nc2RhdGVuLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnVm9yc3RlbGx1bmcgZGVyIG5ldWVuIERva3VtZW50YXRpb25zcGxhdHRmb3JtIFdJS0knLCBkYXR1bTogJzI0LjAzLjIwMjEnLCB0YWc6ICdhbGxnZW1laW4nLCB2aWRlbzogJzIwMjEtMDMtMjQgV0lLSS5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJysrU1lTVEVNUyBLYW5hbHp1c3RhbmQgdW5kIFNhbmllcnVuZycsIGRhdHVtOiAnMTAuMDMuMjAyMScsIHRhZzogJ2thc2EnLCB2aWRlbzogJ1dlYmluYXIgS2FzYW5vdmEgMjAyMTAzMTAubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdNdWx0aS1Vc2VyLVBsYXR0Zm9ybWVuJywgZGF0dW06ICcwMy4wMy4yMDIxJywgdGFnOiAnYWxsZ2VtZWluJywgdmlkZW86ICcyMDIxLTAzLTAzIDEwLjAwIERhdGVuYmFua2VuIC0gTXVsdGktVXNlci1QbGF0dGZvcm0ubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdFcm5ldWVydW5nZW4gdW5kIEJlc3QtUHJhY3RpY2UgRmViIDIwMjEnLCBkYXR1bTogJzE3LjAyLjIwMjEnLCB0YWc6ICdyZWxlYXNlJywgdmlkZW86ICcrK1NZU1RFTVMgSXNhciBOZXVlcnVuZ2VuIFx4MjYgQmVzdCBQcmFjdGlzZS5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0VudHd1cmZzcGxhbnVuZycsIGRhdHVtOiAnMDkuMTIuMjAyMCcsIHRhZzogJ2h5ZHJhdWxpaycsIHZpZGVvOiAnMDkxMjIwMjAgRW50d3VyZnNwbGFudW5nLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnR2VvQ1BNIEJlc3QgUHJhY3RpY2UgRGV6IDIwMjAnLCBkYXR1bTogJzAzLjEyLjIwMjAnLCB0YWc6ICdnZW9jcG0nLCB2aWRlbzogJ0dlb0NQTSBOZXVlcnVuZ2VuIHVuZCBCZXN0IFByYWN0aXNlIGNvbXAubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdGbG93IC0gQmVzdCBQcmFjdGljZScsIGRhdHVtOiAnMTguMTEuMjAyMCcsIHRhZzogJ2Zsb3cnLCB2aWRlbzogJ0Zsb3cgQmVzdCBQcmFjdGljZSAyMDIwMTIxNS5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0VybmV1ZXJ1bmdlbiB1bmQgQmVzdC1QcmFjdGljZSBOb3YgMjAyMCcsIGRhdHVtOiAnMTEuMTEuMjAyMCcsIHRhZzogJ3JlbGVhc2UnLCB2aWRlbzogJzIwMjAxMTExIFNZU1RFTVMgUmVsZWFzZUlzYXIyLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnQmVkYXJmc29yaWVudGllcnRlIEthbmFscmVpbmlndW5nJywgZGF0dW06ICcxMi4wNS4yMDIwJywgdGFnOiAndG9nbycsIHZpZGVvOiAnMjAyMDA1MTIgVG9nbyBLYW5hbHJlaW5pZ3VuZy5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0VybmV1ZXJ1bmdlbiB1bmQgQmVzdC1QcmFjdGljZSBBcHIgMjAyMCcsIGRhdHVtOiAnMzAuMDQuMjAyMCcsIHRhZzogJ3JlbGVhc2UnLCB2aWRlbzogJzIwMjAwNDMwIFNZU1RFTVMgRXJuZXVlcnVuZ2VuLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnUmVsZWFzZSBWMTIgLSBOZXVlcyBMb29rIGFuZCBGZWVsJywgZGF0dW06ICcyOC4wNC4yMDIwJywgdGFnOiAncmVsZWFzZScsIHZpZGVvOiAnMjAyMDA0MjggU1lTVEVNUyBJU0FSIFJlbGVhc2UgTmV1ZXMgTG9vayBGZWVsLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnQW5iaW5kdW5nIHZvbiBEYXRlbmJhbmtlbicsIGRhdHVtOiAnMDcuMDMuMjAyMCcsIHRhZzogJ2FsbGdlbWVpbicsIHZpZGVvOiAnQW5iaW5kdW5nIERhdGVuYmFua2VuIDIwMTgwMzA3Lm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnU3RhcmtyZWdlbnJpc2lrb21hbmFnZW1lbnQgTFVCVyBJSScsIGRhdHVtOiAnMjkuMDUuMjAxOScsIHRhZzogJ2dlb2NwbScsIHZpZGVvOiAnTGVpdGZhZGVuIExVQlcgR2VvQ1BNIDIwMTkwNTIyOS5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0JydWNoa2FudGVuJywgZGF0dW06ICcyMi4wNS4yMDE5JywgdGFnOiAnZ2VvY3BtJywgdmlkZW86ICdHZW9DUE0gQnJ1Y2hrYW50ZW4gMjAxOTA1MjIubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICcrK1NZU1RFTVMgUHJvamVrdGRhdGVpbWFuYWdlbWVudCAyMDE5JywgZGF0dW06ICcxNS4wNS4yMDE5JywgdGFnOiAnYWxsZ2VtZWluJywgdmlkZW86ICdQcm9qZWt0ZGF0ZWltYW5hZ2VtZW50IDIwMTkwNTE1Lm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnS29vcmRpbmF0ZW50cmFuc2Zvcm1hdGlvbicsIGRhdHVtOiAnMzAuMDQuMjAxOScsIHRhZzogJ2FsbGdlbWVpbicsIHZpZGVvOiAnS29vcmRpbmF0ZW50cmFuc2Zvcm1hdGlvbiAyMDE5MDQzMC5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1BsYW5hdXNnYWJlJywgZGF0dW06ICcxMC4wNC4yMDE5JywgdGFnOiAnYWxsZ2VtZWluJywgdmlkZW86ICdQbGFuYXVzZ2FiZSAyMDE5MDQxMC5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1JlbGVhc2UgVjExJywgZGF0dW06ICcxMS4wMy4yMDE5JywgdGFnOiAncmVsZWFzZScsIHZpZGVvOiAnKytTWVNURU1TIFJlbGVhc2UgMTEgMDMgMDAgMjAxOTA1MDgubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdCZXN0YW5kc2RhdGVuIFx4MjYgRG9rdW1lbnRhdGlvbiAyMDE4JywgZGF0dW06ICcwNS4xMi4yMDE4JywgdGFnOiAndG9nbycsIHZpZGVvOiAnMjAxODEyMDUgVE9HTy5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0Z1bmt0aW9uYWxlIEVpbmhlaXRlbiAtIEVyZ2VibmlzbGlzdGVuJywgZGF0dW06ICcyOC4xMS4yMDE4JywgdGFnOiAnZmxvdycsIHZpZGVvOiAnRmxvdyAyMDE4MTEyOC5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0tBU0Fub3ZhIDIuMCAtIFNhbmllcnVuZ3Ntb2R1bCBWZXJzaW9uIDExJywgZGF0dW06ICcxNC4xMS4yMDE4JywgdGFnOiAna2FzYScsIHZpZGVvOiAnV2ViaW5hciBLQVNBTm92YSAyMDE4MTExNC5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1JlbGVhc2UgVmVyc2lvbiAxMScsIGRhdHVtOiAnMDguMTEuMjAxOCcsIHRhZzogJ3JlbGVhc2UnLCB2aWRlbzogJ0dlb0NQTSBWMTEgMjAxODExMDgubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdLQVNBbm92YSAyLjAgLSBTYW5pZXJ1bmdzbW9kdWwgbmV1IGF1ZmdlbGVndCcsIGRhdHVtOiAnMTguMDQuMjAxOCcsIHRhZzogJ2thc2EnLCB2aWRlbzogJ1dlYmluYXIgS0FTQW5vdmEgMjAxODA0MTgubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdEWU5BIC0gUmVjaG5ldCBuaWNodCcsIGRhdHVtOiAnMjEuMDMuMjAxOCcsIHRhZzogJ2h5ZHJhdWxpaycsIHZpZGVvOiAnSHlkcmF1bGlrUmVjaG5ldE5pY2h0IDIwMTgwMzIxLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnRGF0ZW5iYW5rZW4gMjAxOCcsIGRhdHVtOiAnMDcuMDMuMjAxOCcsIHRhZzogJ2FsbGdlbWVpbicsIHZpZGVvOiAnQW5iaW5kdW5nIERhdGVuYmFua2VuIDIwMTgwMzA3Lm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnU3RhcmtyZWdlbnJpc2lrb21hbmFnZW1lbnQgTFVCVyBJJywgZGF0dW06ICcxOS4wNy4yMDE3JywgdGFnOiAnZ2VvY3BtJywgdmlkZW86ICdMVUJXIEdlb0NQTSAyMDE3MDcxOS5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0ltcG9ydC9FeHBvcnQgLSBYTUwgRm9ybWF0ZScsIGRhdHVtOiAnMTUuMDMuMjAxNycsIHRhZzogJ2FsbGdlbWVpbicsIHZpZGVvOiAnSW1wb3J0RXhwb3J0VGVpbDIgMjAxNzAzMTUubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdJbXBvcnQvRXhwb3J0IC0gRFhGIHVuZCBFU1JJIFNoYXBlJywgZGF0dW06ICcwNy4xMi4yMDE2JywgdGFnOiAnYWxsZ2VtZWluJywgdmlkZW86ICdJbXBvcnRFeHBvcnRUZWlsMSAyMDE2MTIwNy5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0xpc3RlbmdlbmVyYXRvcicsIGRhdHVtOiAnMjMuMTEuMjAxNicsIHRhZzogJ2FsbGdlbWVpbicsIHZpZGVvOiAnKytTWVNURU1TIExpc3RlbmdlbmVyYXRvciAyMDE2MTEyMy5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1dhc3NlcmF1c3RhdXNjaCAtIEJpLURpcmVrdGlvbmFsZSBLb3BwbHVuZycsIGRhdHVtOiAnMTEuMTAuMjAxNicsIHRhZzogJ2h5ZHJhdWxpaycsIHZpZGVvOiAnR2VvQ1BNIDIwMTYxMDExLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnVmVydGVpbHZvcnNjaHJpZnQgUmVnZW5zcGVuZGVuIEtPU1RSQScsIGRhdHVtOiAnMjIuMDkuMjAxNicsIHRhZzogJ2h5ZHJhdWxpaycsIHZpZGVvOiAnS09TVFJBIDIwMTYwOTIyLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnVGhlbWVucGxhbicsIGRhdHVtOiAnMzAuMDYuMjAxNicsIHRhZzogJ2FsbGdlbWVpbicsIHZpZGVvOiAnVGhlbWVucGxhbiAyMDE2MDYzMC5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1NjaGx1c3MgbWl0IGRlciBaZXR0ZWx3aXJ0c2NoYWZ0JywgZGF0dW06ICcxNi4wNi4yMDE2JywgdGFnOiAndG9nbycsIHZpZGVvOiAnMjAxNjA2MTYgVE9HTy5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ0Jlc3RhbmRzZGF0ZW4gXHgyNiBEb2t1bWVudGF0aW9uIDIwMTUnLCBkYXR1bTogJzE2LjEyLjIwMTUnLCB0YWc6ICd0b2dvJywgdmlkZW86ICcyMDE1MTIxNiBUT0dPLm1wNCcgfSwKICAgICAgICB7IHRpdGVsOiAnRWluenVnc2dlYmlldHNtYW5hZ2VtZW50JywgZGF0dW06ICcxNi4wNi4yMDE1JywgdGFnOiAnaHlkcmF1bGlrJywgdmlkZW86ICdFaW56dWdzZ2ViaWV0c21hbmFnZW1lbnQgMjAxNTA2MTYubXA0JyB9LAogICAgICAgIHsgdGl0ZWw6ICdJbnRlZ3JpZXJ0ZSBadXN0YW5kc2Jld2VydHVuZyB1bmQgU2FuaWVydW5nc3BsYW51bmcnLCBkYXR1bTogJzA5LjA1LjIwMTUnLCB0YWc6ICdrYXNhJywgdmlkZW86ICdLYXNhbm92YSAyMDE1MDUxOS5tcDQnIH0sCiAgICAgICAgeyB0aXRlbDogJ1VudGVyc3VjaHVuZ3N2ZXJ3YWx0dW5nIC0gWnVzdGFuZHNiZXdlcnR1bmcgLSBTYW5pZXJ1bmcnLCBkYXR1bTogJzIxLjEwLjIwMTQnLCB0YWc6ICdrYXNhJywgdmlkZW86ICdXZWJpbmFyIEthbmFsenVzdGFuZCBTYW5pZXJ1bmcgMjAxNDEyMjEubXA0JyB9LAogICAgXTsKCiAgICB2YXIgVEFHUyA9IHsKICAgICAgICBhbGxlOiAgICAgIHsgbGFiZWw6ICdBbGxlJywgICAgICAgZmFyYmU6ICcjNjY2Njk5JyB9LAogICAgICAgIGdlb2NwbTogICAgeyBsYWJlbDogJ0dlb0NQTScsICAgICBmYXJiZTogJyMxRDlFNzUnIH0sCiAgICAgICAgaHlkcmF1bGlrOiB7IGxhYmVsOiAnSHlkcmF1bGlrJywgIGZhcmJlOiAnIzE4NUZBNScgfSwKICAgICAgICBmbG93OiAgICAgIHsgbGFiZWw6ICdGbG93JywgICAgICAgZmFyYmU6ICcjQkE3NTE3JyB9LAogICAgICAgIHRvZ286ICAgICAgeyBsYWJlbDogJ1RvR28nLCAgICAgICBmYXJiZTogJyM1MzRBQjcnIH0sCiAgICAgICAga2FzYTogICAgICB7IGxhYmVsOiAnS0FTQW5vdmEnLCAgIGZhcmJlOiAnIzk5M0MxRCcgfSwKICAgICAgICBhcXVhOiAgICAgIHsgbGFiZWw6ICdBUVVBKysnLCAgICAgZmFyYmU6ICcjMEY2RTU2JyB9LAogICAgICAgIGthbmFiaXM6ICAgeyBsYWJlbDogJ0thbmFiaXMnLCAgICBmYXJiZTogJyMzQjZEMTEnIH0sCiAgICAgICAgcmVsZWFzZTogICB7IGxhYmVsOiAnUmVsZWFzZScsICAgIGZhcmJlOiAnIzVGNUU1QScgfSwKICAgICAgICBhbGxnZW1laW46IHsgbGFiZWw6ICdBbGxnZW1laW4nLCAgZmFyYmU6ICcjNDQ0NDQxJyB9LAogICAgfTsKCiAgICBmdW5jdGlvbiB2aWRlb1VybChkYXRlaW5hbWUpIHsKICAgICAgICByZXR1cm4gJy9pbWFnZXMvJyArIGRhdGVpbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArCiAgICAgICAgICAgICAgICcvJyArIGRhdGVpbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGRhdGVpbmFtZS5jaGFyQXQoMSkgKwogICAgICAgICAgICAgICAnLycgKyBlbmNvZGVVUklDb21wb25lbnQoZGF0ZWluYW1lKTsKICAgIH0KCiAgICBmdW5jdGlvbiBpbmppemllckNTUygpIHsKICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZnLXN0eWxlcycpKSByZXR1cm47CiAgICAgICAgdmFyIGNzcyA9IFsKICAgICAgICAgICAgJyN2Zy1jb250YWluZXJ7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjttYXJnaW46MXJlbSAwfScsCiAgICAgICAgICAgICcjdmctY29udHJvbHN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo4cHg7bWFyZ2luLWJvdHRvbToxMnB4O2FsaWduLWl0ZW1zOmNlbnRlcn0nLAogICAgICAgICAgICAnI3ZnLXN1Y2hle2ZsZXg6MTttaW4td2lkdGg6MTgwcHg7cGFkZGluZzo2cHggMTBweDtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC1zaXplOjEzcHh9JywKICAgICAgICAgICAgJy52Zy1maWx0ZXItYnRue3BhZGRpbmc6NHB4IDEycHg7Ym9yZGVyLXJhZGl1czoyMHB4O2JvcmRlcjoxcHggc29saWQgI2NjYztiYWNrZ3JvdW5kOiNmOGY4Zjg7Zm9udC1zaXplOjEycHg7Y3Vyc29yOnBvaW50ZXJ9JywKICAgICAgICAgICAgJy52Zy1maWx0ZXItYnRuLmFrdGl2e2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fScsCiAgICAgICAgICAgICcjdmctYW56YWhse2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiM4ODg7bWFyZ2luLWJvdHRvbTo4cHh9JywKICAgICAgICAgICAgJyN2Zy1ncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZmlsbCxtaW5tYXgoMjIwcHgsMWZyKSk7Z2FwOjE0cHh9JywKICAgICAgICAgICAgJy52Zy1rYXJ0ZXtib3JkZXI6MXB4IHNvbGlkICNlMGUwZTA7Ym9yZGVyLXJhZGl1czoxMHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOiNmZmY7Y3Vyc29yOnBvaW50ZXJ9JywKICAgICAgICAgICAgJy52Zy1rYXJ0ZTpob3Zlcntib3gtc2hhZG93OjAgNHB4IDE2cHggcmdiYSgwLDAsMCwuMTIpfScsCiAgICAgICAgICAgICcudmcta2FydGUuYWt0aXZ7Ym9yZGVyOjJweCBzb2xpZCAjNjY2Njk5fScsCiAgICAgICAgICAgICcudmctdGh1bWJ7d2lkdGg6MTAwJTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMxYTFhMmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfScsCiAgICAgICAgICAgICcudmctcGxheXt3aWR0aDowO2hlaWdodDowO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MThweCAwIDE4cHggMzBweDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgcmdiYSgyNTUsMjU1LDI1NSwwLjg1KX0nLAogICAgICAgICAgICAnLnZnLWJhZGdle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDhweDtib3JkZXItcmFkaXVzOjEycHg7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDB9JywKICAgICAgICAgICAgJy52Zy1ib2R5e3BhZGRpbmc6MTBweCAxMnB4IDEycHh9JywKICAgICAgICAgICAgJy52Zy10aXRlbHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7Y29sb3I6IzIyMjtsaW5lLWhlaWdodDoxLjQ7bWFyZ2luOjZweCAwIDRweH0nLAogICAgICAgICAgICAnLnZnLWRhdHVte2ZvbnQtc2l6ZToxMXB4O2NvbG9yOiM4ODh9JywKICAgICAgICAgICAgJy52Zy1sZWVye3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MnJlbTtjb2xvcjojODg4O2ZvbnQtc2l6ZToxNHB4O2dyaWQtY29sdW1uOjEvLTF9JywKICAgICAgICAgICAgJyN2Zy1wbGF5ZXItYm94e2Rpc3BsYXk6bm9uZTttYXJnaW4tYm90dG9tOjIwcHg7YmFja2dyb3VuZDojMDAwO2JvcmRlci1yYWRpdXM6MTBweDtvdmVyZmxvdzpoaWRkZW59JywKICAgICAgICAgICAgJyN2Zy1wbGF5ZXItYm94IHZpZGVve3dpZHRoOjEwMCU7bWF4LWhlaWdodDo0ODBweDtkaXNwbGF5OmJsb2NrfScsCiAgICAgICAgICAgICcjdmctcGxheWVyLXRpdGVse3BhZGRpbmc6MTBweCAxNHB4O2JhY2tncm91bmQ6I2Y1ZjVmNTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7Y29sb3I6IzMzMztkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyfScsCiAgICAgICAgICAgICcjdmctcGxheWVyLWNsb3Nle2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxOHB4O2NvbG9yOiM5OTk7bGluZS1oZWlnaHQ6MX0nLAogICAgICAgIF0uam9pbignXG4nKTsKICAgICAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7CiAgICAgICAgcy5pZCA9ICd2Zy1zdHlsZXMnOwogICAgICAgIHMudGV4dENvbnRlbnQgPSBjc3M7CiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTsKICAgIH0KCiAgICBmdW5jdGlvbiBiYXVlR2FsZXJpZShjb250YWluZXIpIHsKICAgICAgICBpbmppemllckNTUygpOwogICAgICAgIHZhciBha3R1ZWxsZXJUYWcgPSAnYWxsZSc7CiAgICAgICAgdmFyIGFrdGl2ZUthcnRlID0gbnVsbDsKCiAgICAgICAgdmFyIGh0bWwgPSAnPGRpdiBpZD0idmctY29udGFpbmVyIj4nOwogICAgICAgIGh0bWwgKz0gJzxkaXYgaWQ9InZnLWNvbnRyb2xzIj4nOwogICAgICAgIGh0bWwgKz0gJzxpbnB1dCBpZD0idmctc3VjaGUiIHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJXZWJpbmFyIHN1Y2hlbi4uLiIgLz4nOwogICAgICAgIE9iamVjdC5rZXlzKFRBR1MpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgICB2YXIgdCA9IFRBR1Nba2V5XTsKICAgICAgICAgICAgdmFyIHN0aWwgPSBrZXkgPT09ICdhbGxlJyA/ICcgc3R5bGU9ImJhY2tncm91bmQ6JyArIHQuZmFyYmUgKyAnO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOicgKyB0LmZhcmJlICsgJzsiJyA6ICcnOwogICAgICAgICAgICBodG1sICs9ICc8YnV0dG9uIGNsYXNzPSJ2Zy1maWx0ZXItYnRuJyArIChrZXkgPT09ICdhbGxlJyA/ICcgYWt0aXYnIDogJycpICsgJyIgZGF0YS10YWc9IicgKyBrZXkgKyAnIicgKyBzdGlsICsgJz4nICsgdC5sYWJlbCArICc8L2J1dHRvbj4nOwogICAgICAgIH0pOwogICAgICAgIGh0bWwgKz0gJzwvZGl2Pic7CiAgICAgICAgaHRtbCArPSAnPGRpdiBpZD0idmctYW56YWhsIj48L2Rpdj4nOwogICAgICAgIGh0bWwgKz0gJzxkaXYgaWQ9InZnLXBsYXllci1ib3giPjxkaXYgaWQ9InZnLXBsYXllci10aXRlbCI+PHNwYW4gaWQ9InZnLXBsYXllci1uYW1lIj48L3NwYW4+PHNwYW4gaWQ9InZnLXBsYXllci1jbG9zZSI+XHgyNiMxMDAwNTs8L3NwYW4+PC9kaXY+PHZpZGVvIGlkPSJ2Zy1wbGF5ZXIiIGNvbnRyb2xzIGNvbnRyb2xzTGlzdD0ibm9kb3dubG9hZCI+PC92aWRlbz48L2Rpdj4nOwogICAgICAgIGh0bWwgKz0gJzxkaXYgaWQ9InZnLWdyaWQiPjwvZGl2Pic7CiAgICAgICAgaHRtbCArPSAnPC9kaXY+JzsKICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gaHRtbDsKCiAgICAgICAgdmFyIHN1Y2hmZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZnLXN1Y2hlJyk7CiAgICAgICAgdmFyIGdyaWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmctZ3JpZCcpOwogICAgICAgIHZhciBhbnphaGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmctYW56YWhsJyk7CiAgICAgICAgdmFyIHBsYXllckJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2Zy1wbGF5ZXItYm94Jyk7CiAgICAgICAgdmFyIHBsYXllciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2Zy1wbGF5ZXInKTsKICAgICAgICB2YXIgcGxheWVyTmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2Zy1wbGF5ZXItbmFtZScpOwogICAgICAgIHZhciBwbGF5ZXJDbG9zZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2Zy1wbGF5ZXItY2xvc2UnKTsKCiAgICAgICAgcGxheWVyQ2xvc2UuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHBsYXllci5wYXVzZSgpOwogICAgICAgICAgICBwbGF5ZXJCb3guc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgaWYgKGFrdGl2ZUthcnRlKSBha3RpdmVLYXJ0ZS5jbGFzc0xpc3QucmVtb3ZlKCdha3RpdicpOwogICAgICAgICAgICBha3RpdmVLYXJ0ZSA9IG51bGw7CiAgICAgICAgfSk7CgogICAgICAgIGZ1bmN0aW9uIHNwaWVsZVZpZGVvKHcsIGthcnRlKSB7CiAgICAgICAgICAgIGlmIChha3RpdmVLYXJ0ZSkgYWt0aXZlS2FydGUuY2xhc3NMaXN0LnJlbW92ZSgnYWt0aXYnKTsKICAgICAgICAgICAgYWt0aXZlS2FydGUgPSBrYXJ0ZTsKICAgICAgICAgICAga2FydGUuY2xhc3NMaXN0LmFkZCgnYWt0aXYnKTsKICAgICAgICAgICAgdmFyIHVybCA9IHZpZGVvVXJsKHcudmlkZW8pOwogICAgICAgICAgICBwbGF5ZXIuc3JjID0gdXJsOwogICAgICAgICAgICBwbGF5ZXJOYW1lLnRleHRDb250ZW50ID0gdy50aXRlbCArICcgKCcgKyB3LmRhdHVtICsgJyknOwogICAgICAgICAgICBwbGF5ZXJCb3guc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgICAgIHBsYXllci5wbGF5KCk7CiAgICAgICAgICAgIHBsYXllckJveC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdzdGFydCcgfSk7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiByZW5kZXJLYXJ0ZW4oKSB7CiAgICAgICAgICAgIHZhciBxID0gc3VjaGZlbGQudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCk7CiAgICAgICAgICAgIHZhciBnZWZpbHRlcnQgPSBXRUJJTkFSRS5maWx0ZXIoZnVuY3Rpb24gKHcpIHsKICAgICAgICAgICAgICAgIHZhciB0YWdPayA9IGFrdHVlbGxlclRhZyA9PT0gJ2FsbGUnIHx8IHcudGFnID09PSBha3R1ZWxsZXJUYWc7CiAgICAgICAgICAgICAgICB2YXIgc3VjaE9rID0gIXEgfHwgdy50aXRlbC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocSkgPiAtMTsKICAgICAgICAgICAgICAgIHJldHVybiB0YWdPayA/IHN1Y2hPayA6IGZhbHNlOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgYW56YWhsLnRleHRDb250ZW50ID0gZ2VmaWx0ZXJ0Lmxlbmd0aCArICcgV2ViaW5hcicgKyAoZ2VmaWx0ZXJ0Lmxlbmd0aCAhPT0gMSA/ICdlJyA6ICcnKTsKICAgICAgICAgICAgaWYgKCFnZWZpbHRlcnQubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBncmlkLmlubmVySFRNTCA9ICc8cCBjbGFzcz0idmctbGVlciI+S2VpbmUgV2ViaW5hcmUgZ2VmdW5kZW4uPC9wPic7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZ3JpZC5pbm5lckhUTUwgPSAnJzsKICAgICAgICAgICAgZ2VmaWx0ZXJ0LmZvckVhY2goZnVuY3Rpb24gKHcpIHsKICAgICAgICAgICAgICAgIHZhciBmYXJiZSA9IFRBR1Nbdy50YWddID8gVEFHU1t3LnRhZ10uZmFyYmUgOiAnIzY2NjY5OSc7CiAgICAgICAgICAgICAgICB2YXIgbGFiZWwgPSBUQUdTW3cudGFnXSA/IFRBR1Nbdy50YWddLmxhYmVsIDogdy50YWc7CiAgICAgICAgICAgICAgICB2YXIga2FydGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICAgIGthcnRlLmNsYXNzTmFtZSA9ICd2Zy1rYXJ0ZSc7CiAgICAgICAgICAgICAgICBrYXJ0ZS5pbm5lckhUTUwgPQogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJ2Zy10aHVtYiI+PGRpdiBjbGFzcz0idmctcGxheSI+PC9kaXY+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InZnLWJvZHkiPicgKwogICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0idmctYmFkZ2UiIHN0eWxlPSJiYWNrZ3JvdW5kOicgKyBmYXJiZSArICciPicgKyBsYWJlbCArICc8L3NwYW4+JyArCiAgICAgICAgICAgICAgICAgICAgJzxwIGNsYXNzPSJ2Zy10aXRlbCI+JyArIHcudGl0ZWwgKyAnPC9wPicgKwogICAgICAgICAgICAgICAgICAgICc8cCBjbGFzcz0idmctZGF0dW0iPicgKyB3LmRhdHVtICsgJzwvcD4nICsKICAgICAgICAgICAgICAgICAgICAnPC9kaXY+JzsKICAgICAgICAgICAgICAgIGthcnRlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgeyBzcGllbGVWaWRlbyh3LCBrYXJ0ZSk7IH0pOwogICAgICAgICAgICAgICAgZ3JpZC5hcHBlbmRDaGlsZChrYXJ0ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJy52Zy1maWx0ZXItYnRuJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICBha3R1ZWxsZXJUYWcgPSAkKHRoaXMpLmRhdGEoJ3RhZycpOwogICAgICAgICAgICAkKCcudmctZmlsdGVyLWJ0bicpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWt0aXYnKS5jc3MoeyBiYWNrZ3JvdW5kOiAnJywgY29sb3I6ICcnLCBib3JkZXJDb2xvcjogJycgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgZmFyYmUgPSBUQUdTW2FrdHVlbGxlclRhZ10gPyBUQUdTW2FrdHVlbGxlclRhZ10uZmFyYmUgOiAnIzY2NjY5OSc7CiAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2FrdGl2JykuY3NzKHsgYmFja2dyb3VuZDogZmFyYmUsIGNvbG9yOiAnI2ZmZicsIGJvcmRlckNvbG9yOiBmYXJiZSB9KTsKICAgICAgICAgICAgcmVuZGVyS2FydGVuKCk7CiAgICAgICAgfSk7CgogICAgICAgICQoc3VjaGZlbGQpLm9uKCdpbnB1dCcsIHJlbmRlckthcnRlbik7CiAgICAgICAgcmVuZGVyS2FydGVuKCk7CiAgICB9CgogICAgJChmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGluaGFsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtdy1jb250ZW50LXRleHQnKTsKICAgICAgICBpZiAoIWluaGFsdCkgcmV0dXJuOwogICAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBjb250YWluZXIuaWQgPSAndmlkZW8tZ2FsZXJpZSc7CiAgICAgICAgdmFyIGFsdGVUYWJlbGxlID0gaW5oYWx0LnF1ZXJ5U2VsZWN0b3IoJ3RhYmxlJyk7CiAgICAgICAgaWYgKGFsdGVUYWJlbGxlKSBhbHRlVGFiZWxsZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIGluaGFsdC5pbnNlcnRCZWZvcmUoY29udGFpbmVyLCBpbmhhbHQuZmlyc3RDaGlsZCk7CiAgICAgICAgYmF1ZUdhbGVyaWUoY29udGFpbmVyKTsKICAgIH0pOwoKfShqUXVlcnkpKTs=");
    var WEBINARE = [
+
     document.head.appendChild(s);
        { titel: 'Kanabis Release V11', datum: '28.01.2026', tag: 'kanabis', video: '20260128 KANABIS Release V11.mp4' },
+
})();
        { titel: 'Betriebsfuehrung: Digital & Bedarfsorientiert', datum: '17.12.2025', tag: 'togo', video: 'Betriebsführung Digital Bedarfsorientiert von der Idee in die Praxis.mp4' },
 
        { titel: 'Automatische Kanalsanierungsplanung', datum: '12.11.2025', tag: 'kasa', video: 'Automatische Kanalsanierungsplanung Gastbeitrag Aquadocs 251112.mp4' },
 
        { titel: 'DWA A 118 / DWA M 119 - Ueberstau & Risikomanagement', datum: '08.10.2025', tag: 'hydraulik', video: 'Risikomanagement nach DWAA118 DWAM119 20251008.mp4' },
 
        { titel: 'V17 - Releasenews', datum: '04.06.2025', tag: 'release', video: '20250604 Release Lech V17.mp4' },
 
        { titel: 'GeoCPM - Worauf ist bei der Modellierung zu achten?', datum: '09.04.2025', tag: 'geocpm', video: 'GeoCPM - Worauf ist bei der Modellierung zu achten.mp4' },
 
        { titel: 'GeoCPM - Kommunale Sturzfluten / Risikomanagement', datum: '12.03.2025', tag: 'geocpm', video: '250312 BEST PRACTICE Starkregenberechnungen.mp4' },
 
        { titel: 'MEGAMAP - Die intelligente Leitungsauskunft', datum: '05.03.2025', tag: 'allgemein', video: 'MEGAMAP - Die intelligente Leitungsauskunft für Netzbetreiber.mp4' },
 
        { titel: 'AQUA++ - Theorie, Modellierung und Fehlersuche', datum: '19.02.2025', tag: 'aqua', video: 'Drucknetzberechnung von Wasserversorgungsnetzen.mp4' },
 
        { titel: 'ToGo - Digitalisierung im Kanalbetrieb', datum: '19.12.2024', tag: 'togo', video: 'BetriebToGo - Digitalisierung im Kanalbetrieb Webinar 241219.mp4' },
 
        { titel: 'Datenubernahme aus GIS-Systemen', datum: '06.11.2024', tag: 'allgemein', video: 'Datenübernahme aus bestehenden GIS-Systemen - am Beispiel STRAKAT Webinar 241106.mp4' },
 
        { titel: 'KI in der Zustandserfassung', datum: '09.10.2024', tag: 'kasa', video: 'KI Kanalzustandserfassung Webinar 241009.mp4' },
 
        { titel: 'INSIDe-Projekt', datum: '02.10.2024', tag: 'allgemein', video: 'INSIDe Webinar 241002.mp4' },
 
        { titel: 'V16 - Import Radklim', datum: '03.06.2024', tag: 'release', video: '20240603 Radklim V16.mp4' },
 
        { titel: 'V16 - Zeichentool', datum: '27.06.2024', tag: 'release', video: '20240627 V16 Zeichentool.mp4' },
 
        { titel: 'V16 - Geo3D Erneuerungen', datum: '25.06.2024', tag: 'geocpm', video: '25062024 Geo3D.mp4' },
 
        { titel: 'V16 - GeoCPM Neuerungen: Durchlaesse', datum: '20.06.2024', tag: 'geocpm', video: '20240620 V16 GeoCPM.mp4' },
 
        { titel: 'V16 - Releasenews', datum: '18.06.2024', tag: 'release', video: '2024618 Release V16.mp4' },
 
        { titel: 'GeoCPM - DGM-Ausduennung Tipps & Tricks', datum: '24.04.2024', tag: 'geocpm', video: '20240424 Webinar Ausdünnung.mp4' },
 
        { titel: 'Kanabis Release V10', datum: '09.04.2024', tag: 'kanabis', video: '20240409 KANABIS Release V10.mp4' },
 
        { titel: 'WIKI - Umfrage & Erneuerungen', datum: '20.03.2024', tag: 'allgemein', video: '20240319 Wiki&Umfrage.mp4' },
 
        { titel: 'GeoCPM - Sturzflut-Risikomanagement Bayern', datum: '16.11.2023', tag: 'geocpm', video: 'GeoCPM Konzepte zum kommunalen Sturzflut-Risikomanagement in Bayern.mp4' },
 
        { titel: 'Flow V15: Neuerungen', datum: '09.11.2023', tag: 'flow', video: '20231109 Webinar FLOW-Bestpractice.mp4' },
 
        { titel: 'GeoCPM Best Practice V15: Strukturen', datum: '02.11.2023', tag: 'geocpm', video: '20231107 GeoCPM Bestpractice.mp4' },
 
        { titel: 'GeoCPM Erneuerungen V15: OBOs', datum: '19.10.2023', tag: 'geocpm', video: '20231019 GeoCPM V15.mp4' },
 
        { titel: 'Release Version 15: Inn', datum: '18.10.2023', tag: 'release', video: '20231018 Inn Release 15-00-00.mp4' },
 
        { titel: 'Kanabis Release V9', datum: '09.02.2023', tag: 'kanabis', video: '20230210-KANABIS-Release Version 9.mp4' },
 
        { titel: 'Neuerungen KASAnova', datum: '01.12.2022', tag: 'kasa', video: '20221129 Webinar KasaNova 14 10 00.mp4' },
 
        { titel: 'Release Version 14.10.00: Main', datum: '24.11.2022', tag: 'release', video: '20221124 Release V14.10.00.mp4' },
 
        { titel: 'GeoCPM - Genauigkeit von Gelaendemodellen', datum: '03.05.2022', tag: 'geocpm', video: '20220503 GeoCPM Praxis Ausdünnung.mp4' },
 
        { titel: 'A102 & Flow & Practice', datum: '05.04.2022', tag: 'flow', video: '20220405 Flow A102 Best-Practice.mp4' },
 
        { titel: 'Radolan Daten fuer GeoCPM', datum: '22.03.2022', tag: 'geocpm', video: '20220323 Radolan aus Aquazis.mp4' },
 
        { titel: 'Release Version 14: Main', datum: '08.02.2022', tag: 'release', video: '20220208 Release Main V14.mp4' },
 
        { titel: 'Kanabis Release Version 8', datum: '09.12.2021', tag: 'kanabis', video: '20211209 KANABIS Release V8.0.0.mp4' },
 
        { titel: 'Geo3D Best-Practice', datum: '24.11.2021', tag: 'geocpm', video: '20211124 Geo3D BestPractise.mp4' },
 
        { titel: 'Numerische Simulation', datum: '17.11.2021', tag: 'hydraulik', video: '20211117 NumerischeSimulationen.mp4' },
 
        { titel: 'A102 & Flow', datum: '09.11.2021', tag: 'flow', video: '20211109 A102 Flow.mp4' },
 
        { titel: '++SYSTEMS Projektdateimanagement 2.0', datum: '27.10.2021', tag: 'allgemein', video: '20211027 Projektdateimanagement 2.mp4' },
 
        { titel: 'Manueller Laengsschnitt', datum: '06.10.2021', tag: 'hydraulik', video: '20211006 Längsschnitt.mp4' },
 
        { titel: 'Starkregen - Kommunales Risikomanagement', datum: '20.10.2021', tag: 'geocpm', video: '20211020 GeoCPM KSRRM.mp4' },
 
        { titel: 'BIM & Betriebsprozesse', datum: '13.10.2021', tag: 'togo', video: '20211013 BIM&Betriebsprozesse.mp4' },
 
        { titel: 'Version 13 Donau3D Erneuerungen', datum: '20.05.2021', tag: 'release', video: 'Release ++SYSTEMS Donau.mp4' },
 
        { titel: 'Visualisierung mit dem neuen 3DTool', datum: '22.04.2021', tag: 'geocpm', video: '2021-04-21 Geo3D.mp4' },
 
        { titel: 'Aufbereitung von Eingangsdaten mit QGIS', datum: '13.04.2021', tag: 'allgemein', video: '20210413 QGIS Eingangsdaten.mp4' },
 
        { titel: 'Vorstellung der neuen Dokumentationsplattform WIKI', datum: '24.03.2021', tag: 'allgemein', video: '2021-03-24 WIKI.mp4' },
 
        { titel: '++SYSTEMS Kanalzustand und Sanierung', datum: '10.03.2021', tag: 'kasa', video: 'Webinar Kasanova 20210310.mp4' },
 
        { titel: 'Multi-User-Plattformen', datum: '03.03.2021', tag: 'allgemein', video: '2021-03-03 10.00 Datenbanken - Multi-User-Plattform.mp4' },
 
        { titel: 'Erneuerungen und Best-Practice Feb 2021', datum: '17.02.2021', tag: 'release', video: '++SYSTEMS Isar Neuerungen & Best Practise.mp4' },
 
        { titel: 'Entwurfsplanung', datum: '09.12.2020', tag: 'hydraulik', video: '09122020 Entwurfsplanung.mp4' },
 
        { titel: 'GeoCPM Best Practice Dez 2020', datum: '03.12.2020', tag: 'geocpm', video: 'GeoCPM Neuerungen und Best Practise comp.mp4' },
 
        { titel: 'Flow - Best Practice', datum: '18.11.2020', tag: 'flow', video: 'Flow Best Practice 20201215.mp4' },
 
        { titel: 'Erneuerungen und Best-Practice Nov 2020', datum: '11.11.2020', tag: 'release', video: '20201111 SYSTEMS ReleaseIsar2.mp4' },
 
        { titel: 'Bedarfsorientierte Kanalreinigung', datum: '12.05.2020', tag: 'togo', video: '20200512 Togo Kanalreinigung.mp4' },
 
        { titel: 'Erneuerungen und Best-Practice Apr 2020', datum: '30.04.2020', tag: 'release', video: '20200430 SYSTEMS Erneuerungen.mp4' },
 
        { titel: 'Release V12 - Neues Look and Feel', datum: '28.04.2020', tag: 'release', video: '20200428 SYSTEMS ISAR Release Neues Look Feel.mp4' },
 
        { titel: 'Anbindung von Datenbanken', datum: '07.03.2020', tag: 'allgemein', video: 'Anbindung Datenbanken 20180307.mp4' },
 
        { titel: 'Starkregenrisikomanagement LUBW II', datum: '29.05.2019', tag: 'geocpm', video: 'Leitfaden LUBW GeoCPM 201905229.mp4' },
 
        { titel: 'Bruchkanten', datum: '22.05.2019', tag: 'geocpm', video: 'GeoCPM Bruchkanten 20190522.mp4' },
 
        { titel: '++SYSTEMS Projektdateimanagement 2019', datum: '15.05.2019', tag: 'allgemein', video: 'Projektdateimanagement 20190515.mp4' },
 
        { titel: 'Koordinatentransformation', datum: '30.04.2019', tag: 'allgemein', video: 'Koordinatentransformation 20190430.mp4' },
 
        { titel: 'Planausgabe', datum: '10.04.2019', tag: 'allgemein', video: 'Planausgabe 20190410.mp4' },
 
        { titel: 'Release V11', datum: '11.03.2019', tag: 'release', video: '++SYSTEMS Release 11 03 00 20190508.mp4' },
 
        { titel: 'Bestandsdaten & Dokumentation 2018', datum: '05.12.2018', tag: 'togo', video: '20181205 TOGO.mp4' },
 
        { titel: 'Funktionale Einheiten - Ergebnislisten', datum: '28.11.2018', tag: 'flow', video: 'Flow 20181128.mp4' },
 
        { titel: 'KASAnova 2.0 - Sanierungsmodul Version 11', datum: '14.11.2018', tag: 'kasa', video: 'Webinar KASANova 20181114.mp4' },
 
        { titel: 'Release Version 11', datum: '08.11.2018', tag: 'release', video: 'GeoCPM V11 20181108.mp4' },
 
        { titel: 'KASAnova 2.0 - Sanierungsmodul neu aufgelegt', datum: '18.04.2018', tag: 'kasa', video: 'Webinar KASAnova 20180418.mp4' },
 
        { titel: 'DYNA - Rechnet nicht', datum: '21.03.2018', tag: 'hydraulik', video: 'HydraulikRechnetNicht 20180321.mp4' },
 
        { titel: 'Datenbanken 2018', datum: '07.03.2018', tag: 'allgemein', video: 'Anbindung Datenbanken 20180307.mp4' },
 
        { titel: 'Starkregenrisikomanagement LUBW I', datum: '19.07.2017', tag: 'geocpm', video: 'LUBW GeoCPM 20170719.mp4' },
 
        { titel: 'Import/Export - XML Formate', datum: '15.03.2017', tag: 'allgemein', video: 'ImportExportTeil2 20170315.mp4' },
 
        { titel: 'Import/Export - DXF und ESRI Shape', datum: '07.12.2016', tag: 'allgemein', video: 'ImportExportTeil1 20161207.mp4' },
 
        { titel: 'Listengenerator', datum: '23.11.2016', tag: 'allgemein', video: '++SYSTEMS Listengenerator 20161123.mp4' },
 
        { titel: 'Wasseraustausch - Bi-Direktionale Kopplung', datum: '11.10.2016', tag: 'hydraulik', video: 'GeoCPM 20161011.mp4' },
 
        { titel: 'Verteilvorschrift Regenspenden KOSTRA', datum: '22.09.2016', tag: 'hydraulik', video: 'KOSTRA 20160922.mp4' },
 
        { titel: 'Themenplan', datum: '30.06.2016', tag: 'allgemein', video: 'Themenplan 20160630.mp4' },
 
        { titel: 'Schluss mit der Zettelwirtschaft', datum: '16.06.2016', tag: 'togo', video: '20160616 TOGO.mp4' },
 
        { titel: 'Bestandsdaten & Dokumentation 2015', datum: '16.12.2015', tag: 'togo', video: '20151216 TOGO.mp4' },
 
        { titel: 'Einzugsgebietsmanagement', datum: '16.06.2015', tag: 'hydraulik', video: 'Einzugsgebietsmanagement 20150616.mp4' },
 
        { titel: 'Integrierte Zustandsbewertung und Sanierungsplanung', datum: '09.05.2015', tag: 'kasa', video: 'Kasanova 20150519.mp4' },
 
        { titel: 'Untersuchungsverwaltung - Zustandsbewertung - Sanierung', datum: '21.10.2014', tag: 'kasa', video: 'Webinar Kanalzustand Sanierung 20141221.mp4' },
 
    ];
 
 
 
    var TAGS = {
 
        alle:      { label: 'Alle',      farbe: '#666699' },
 
        geocpm:    { label: 'GeoCPM',    farbe: '#1D9E75' },
 
        hydraulik: { label: 'Hydraulik',  farbe: '#185FA5' },
 
        flow:      { label: 'Flow',      farbe: '#BA7517' },
 
        togo:      { label: 'ToGo',      farbe: '#534AB7' },
 
        kasa:      { label: 'KASAnova',  farbe: '#993C1D' },
 
        aqua:      { label: 'AQUA++',    farbe: '#0F6E56' },
 
        kanabis:  { label: 'Kanabis',    farbe: '#3B6D11' },
 
        release:  { label: 'Release',    farbe: '#5F5E5A' },
 
        allgemein: { label: 'Allgemein',  farbe: '#444441' },
 
    };
 
 
 
    function videoUrl(dateiname) {
 
        return '/images/' + dateiname.charAt(0).toUpperCase() +
 
              '/' + dateiname.charAt(0).toUpperCase() + dateiname.charAt(1) +
 
              '/' + encodeURIComponent(dateiname);
 
    }
 
 
 
    function injizierCSS() {
 
        if (document.getElementById('vg-styles')) return;
 
        var css = [
 
            '#vg-container{font-family:sans-serif;margin:1rem 0}',
 
            '#vg-controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;align-items:center}',
 
            '#vg-suche{flex:1;min-width:180px;padding:6px 10px;border:1px solid #ccc;border-radius:6px;font-size:13px}',
 
            '.vg-filter-btn{padding:4px 12px;border-radius:20px;border:1px solid #ccc;background:#f8f8f8;font-size:12px;cursor:pointer}',
 
            '.vg-filter-btn.aktiv{color:#fff;border-color:transparent}',
 
            '#vg-anzahl{font-size:12px;color:#888;margin-bottom:8px}',
 
            '#vg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}',
 
            '.vg-karte{border:1px solid #e0e0e0;border-radius:10px;overflow:hidden;background:#fff;cursor:pointer}',
 
            '.vg-karte:hover{box-shadow:0 4px 16px rgba(0,0,0,.12)}',
 
            '.vg-karte.aktiv{border:2px solid #666699}',
 
            '.vg-thumb{width:100%;aspect-ratio:16/9;background:#1a1a2e;display:flex;align-items:center;justify-content:center;position:relative}',
 
            '.vg-play{width:0;height:0;border-style:solid;border-width:18px 0 18px 30px;border-color:transparent transparent transparent rgba(255,255,255,0.85)}',
 
            '.vg-badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:12px;color:#fff;font-weight:500}',
 
            '.vg-body{padding:10px 12px 12px}',
 
            '.vg-titel{font-size:13px;font-weight:600;color:#222;line-height:1.4;margin:6px 0 4px}',
 
            '.vg-datum{font-size:11px;color:#888}',
 
            '.vg-leer{text-align:center;padding:2rem;color:#888;font-size:14px;grid-column:1/-1}',
 
            '#vg-player-box{display:none;margin-bottom:20px;background:#000;border-radius:10px;overflow:hidden}',
 
            '#vg-player-box video{width:100%;max-height:480px;display:block}',
 
            '#vg-player-titel{padding:10px 14px;background:#f5f5f5;font-size:14px;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center}',
 
            '#vg-player-close{cursor:pointer;font-size:18px;color:#999;line-height:1}',
 
        ].join('\n');
 
        var s = document.createElement('style');
 
        s.id = 'vg-styles';
 
        s.textContent = css;
 
        document.head.appendChild(s);
 
    }
 
 
 
    function baueGalerie(container) {
 
        injizierCSS();
 
        var aktuellerTag = 'alle';
 
        var aktiveKarte = null;
 
 
 
        var html = '<div id="vg-container">';
 
        html += '<div id="vg-controls">';
 
        html += '<input id="vg-suche" type="text" placeholder="Webinar suchen..." />';
 
        Object.keys(TAGS).forEach(function (key) {
 
            var t = TAGS[key];
 
            var stil = key === 'alle' ? ' style="background:' + t.farbe + ';color:#fff;border-color:' + t.farbe + ';"' : '';
 
            html += '<button class="vg-filter-btn' + (key === 'alle' ? ' aktiv' : '') + '" data-tag="' + key + '"' + stil + '>' + t.label + '</button>';
 
        });
 
        html += '</div>';
 
        html += '<div id="vg-anzahl"></div>';
 
        html += '<div id="vg-player-box"><div id="vg-player-titel"><span id="vg-player-name"></span><span id="vg-player-close">&#10005;</span></div><video id="vg-player" controls controlsList="nodownload"></video></div>';
 
        html += '<div id="vg-grid"></div>';
 
        html += '</div>';
 
        container.innerHTML = html;
 
 
 
        var suchfeld = document.getElementById('vg-suche');
 
        var grid = document.getElementById('vg-grid');
 
        var anzahl = document.getElementById('vg-anzahl');
 
        var playerBox = document.getElementById('vg-player-box');
 
        var player = document.getElementById('vg-player');
 
        var playerName = document.getElementById('vg-player-name');
 
        var playerClose = document.getElementById('vg-player-close');
 
 
 
        playerClose.addEventListener('click', function () {
 
            player.pause();
 
            playerBox.style.display = 'none';
 
            if (aktiveKarte) aktiveKarte.classList.remove('aktiv');
 
            aktiveKarte = null;
 
        });
 
 
 
        function spieleVideo(w, karte) {
 
            if (aktiveKarte) aktiveKarte.classList.remove('aktiv');
 
            aktiveKarte = karte;
 
            karte.classList.add('aktiv');
 
            var url = videoUrl(w.video);
 
            player.src = url;
 
            playerName.textContent = w.titel + ' (' + w.datum + ')';
 
            playerBox.style.display = 'block';
 
            player.play();
 
            playerBox.scrollIntoView({ behavior: 'smooth', block: 'start' });
 
        }
 
 
 
        function renderKarten() {
 
            var q = suchfeld.value.toLowerCase().trim();
 
            var gefiltert = WEBINARE.filter(function (w) {
 
                var tagOk = aktuellerTag === 'alle' || w.tag === aktuellerTag;
 
                var suchOk = !q || w.titel.toLowerCase().indexOf(q) > -1;
 
                return tagOk ? suchOk : false;
 
            });
 
            anzahl.textContent = gefiltert.length + ' Webinar' + (gefiltert.length !== 1 ? 'e' : '');
 
            if (!gefiltert.length) {
 
                grid.innerHTML = '<p class="vg-leer">Keine Webinare gefunden.</p>';
 
                return;
 
            }
 
            grid.innerHTML = '';
 
            gefiltert.forEach(function (w) {
 
                var farbe = TAGS[w.tag] ? TAGS[w.tag].farbe : '#666699';
 
                var label = TAGS[w.tag] ? TAGS[w.tag].label : w.tag;
 
                var karte = document.createElement('div');
 
                karte.className = 'vg-karte';
 
                karte.innerHTML =
 
                    '<div class="vg-thumb"><div class="vg-play"></div></div>' +
 
                    '<div class="vg-body">' +
 
                    '<span class="vg-badge" style="background:' + farbe + '">' + label + '</span>' +
 
                    '<p class="vg-titel">' + w.titel + '</p>' +
 
                    '<p class="vg-datum">' + w.datum + '</p>' +
 
                    '</div>';
 
                karte.addEventListener('click', function () { spieleVideo(w, karte); });
 
                grid.appendChild(karte);
 
            });
 
        }
 
 
 
        $(document).on('click', '.vg-filter-btn', function () {
 
            aktuellerTag = $(this).data('tag');
 
            $('.vg-filter-btn').each(function () {
 
                $(this).removeClass('aktiv').css({ background: '', color: '', borderColor: '' });
 
            });
 
            var farbe = TAGS[aktuellerTag] ? TAGS[aktuellerTag].farbe : '#666699';
 
            $(this).addClass('aktiv').css({ background: farbe, color: '#fff', borderColor: farbe });
 
            renderKarten();
 
        });
 
 
 
        $(suchfeld).on('input', renderKarten);
 
        renderKarten();
 
    }
 
 
 
     $(function () {
 
        var inhalt = document.getElementById('mw-content-text');
 
        if (!inhalt) return;
 
        var container = document.createElement('div');
 
        container.id = 'video-galerie';
 
        var alteTabelle = inhalt.querySelector('table');
 
        if (alteTabelle) alteTabelle.style.display = 'none';
 
        inhalt.insertBefore(container, inhalt.firstChild);
 
        baueGalerie(container);
 
    });
 
 
 
}(jQuery));
 
 
</script>
 
</script>
 
</html>
 
</html>

Version vom 19. Mai 2026, 10:01 Uhr