Quiz Perruno – ¿Cuánto sabes sobre tu perro?

Sentido Animal
🐾

¿Cuánto sabes realmente sobre tu perro?

12 preguntas que van de lo básico a lo experto. Descubre tu nivel de conocimiento en educación canina y demuestra que eres la mejor compañía para tu peludo.

12 preguntas
4 niveles
Diploma digital
Premios reales

🎁 Cada nivel tiene un premio exclusivo. Desde guías gratuitas hasta 1 semana gratis en La Tribu

🕐

Ya completaste el Quiz Perruno

Sólo se puede realizar una vez cada 6 meses. ¡Pero no te preocupes, aquí tienes tu resultado anterior!

Descubrir La Tribu

Visitar sentidoanimal.es

Pregunta 1 de 12
Fácil

Quiz Perruno · Certificado
Sentido Animal
certifica que
ha alcanzado el nivel
🐾

eval(atob(«CnZhciBzYVN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwpzYVN0eWxlRWwudGV4dENvbnRlbnQgPSBgLyogSGlkZSBXb3JkUHJlc3MgcGFnZSB0aXRsZSAtIHF1aXogaGFzIGl0cyBvd24gKi8KICAgIC5lbnRyeS1oZWFkZXIsIGFydGljbGUgPiAuZW50cnktY29udGVudC13cmFwID4gaDEsCiAgICBhcnRpY2xlIGgxLmVudHJ5LXRpdGxlLCAucGFnZS1oZWFkZXIsIC5lbnRyeS10aXRsZSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qIFJlZHVjZSBXb3JkUHJlc3MgdGhlbWUgc3BhY2luZyBvbiBxdWl6IHBhZ2UgKG1vYmlsZSkgKi8KICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5zaXRlLW1haW4geyBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH0KICAgICAgICAuaW5zaWRlLWFydGljbGUgeyBwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50OyBwYWRkaW5nLWJvdHRvbTogMTBweCAhaW1wb3J0YW50OyB9CiAgICAgICAgLmVudHJ5LWNvbnRlbnQgeyBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDsgfQogICAgfQoKICAgIC5zYS1xdWl6ICosIC5zYS1xdWl6ICo6OmJlZm9yZSwgLnNhLXF1aXogKjo6YWZ0ZXIgewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICB9CgogICAgLnNhLXF1aXogewogICAgICAgIC0tdGVhbDogIzA2ODE4MTsKICAgICAgICAtLXRlYWwtbGlnaHQ6ICNEOUYyRjI7CiAgICAgICAgLS10ZWFsLWRhcms6ICMwNDY1NjU7CiAgICAgICAgLS1kYXJrOiAjMjIyMjIyOwogICAgICAgIC0tZ3JheTogIzU3NTc2MDsKICAgICAgICAtLWdyYXktbGlnaHQ6ICNiMmIyYmU7CiAgICAgICAgLS1iYXNlOiAjZjBmMGYwOwogICAgICAgIC0tYmFzZS0yOiAjZjdmOGY5OwogICAgICAgIC0td2hpdGU6ICNmZmZmZmY7CiAgICAgICAgLS1jb3JyZWN0OiAjMmVjYzcxOwogICAgICAgIC0tY29ycmVjdC1saWdodDogI2Q1ZjVlMzsKICAgICAgICAtLWluY29ycmVjdDogI2U3NGMzYzsKICAgICAgICAtLWluY29ycmVjdC1saWdodDogI2ZhZGJkODsKICAgICAgICAtLWdvbGQ6ICNmMzljMTI7CiAgICAgICAgLS1nb2xkLWRhcms6ICNjMTdkMGU7CiAgICAgICAgLS1zaGFkb3c6IDAgNHB4IDI0cHggcmdiYSgwLDAsMCwwLjA4KTsKICAgICAgICAtLXNoYWRvdy1sZzogMCA4cHggNDBweCByZ2JhKDAsMCwwLDAuMTIpOwogICAgICAgIC0tcmFkaXVzOiAxNnB4OwogICAgICAgIC0tcmFkaXVzLXNtOiAxMHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7CiAgICAgICAgY29sb3I6IHZhcigtLWRhcmspOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICB9CgogICAgLnNhLXF1aXogLmNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiA2ODBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICBwYWRkaW5nOiAyMHB4IDE2cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5zYS1xdWl6IC5oZWFkZXIgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICB9CgogICAgLnNhLXF1aXogLmhlYWRlciBpbWcgewogICAgICAgIG1heC13aWR0aDogMTgwcHg7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuc2NyZWVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIGFuaW1hdGlvbjogc2FGYWRlSW5VcCAwLjVzIGVhc2U7CiAgICB9CgogICAgLnNhLXF1aXogLnNjcmVlbi5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgfQoKICAgIEBrZXlmcmFtZXMgc2FGYWRlSW5VcCB7CiAgICAgICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsgfQogICAgICAgIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9CiAgICB9CgogICAgLnNhLXF1aXogLmludHJvLWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOwogICAgICAgIHBhZGRpbmc6IDQwcHggMzJweDsKICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3cpOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KCiAgICAuc2EtcXVpeiAuaW50cm8taWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA2NHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYW5pbWF0aW9uOiBzYUJvdW5jZSAycyBlYXNlIGluZmluaXRlOwogICAgfQoKICAgIEBrZXlmcmFtZXMgc2FCb3VuY2UgewogICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9CiAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsgfQogICAgfQoKICAgIC5zYS1xdWl6IC5pbnRyby1jYXJkIGgxIHsKICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGFyayk7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgfQoKICAgIC5zYS1xdWl6IC5pbnRyby1jYXJkIGgxIHNwYW4gewogICAgICAgIGNvbG9yOiB2YXIoLS10ZWFsKTsKICAgIH0KCiAgICAuc2EtcXVpeiAuaW50cm8tY2FyZCBwIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ3JheSk7CiAgICAgICAgZm9udC1zaXplOiAxN3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuaW50cm8tZmVhdHVyZXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgfQoKICAgIC5zYS1xdWl6IC5pbnRyby1mZWF0dXJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10ZWFsLWxpZ2h0KTsKICAgICAgICBjb2xvcjogdmFyKC0tdGVhbC1kYXJrKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC5zYS1xdWl6IC5pbnRyby1wcml6ZS1ob29rIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ29sZC1kYXJrKTsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBtYXJnaW46IC0xMnB4IDAgMjhweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgfQogICAgLnNhLXF1aXogLmludHJvLXByaXplLWhvb2sgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgfQoKICAgIC5zYS1xdWl6IC5idG4gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGVhbCk7CiAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlKSAhaW1wb3J0YW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxNnB4IDQwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5zYS1xdWl6IC5idG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRlYWwtZGFyayk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSg2LDEyOSwxMjksMC4zKTsKICAgICAgICBjb2xvcjogdmFyKC0td2hpdGUpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNhLXF1aXogLmJ0bjphY3RpdmUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KCiAgICAuc2EtcXVpeiAuYnRuLXNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpOwogICAgICAgIGNvbG9yOiB2YXIoLS10ZWFsKSAhaW1wb3J0YW50OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXRlYWwpOwogICAgfQoKICAgIC5zYS1xdWl6IC5idG4tc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10ZWFsLWxpZ2h0KTsKICAgICAgICBjb2xvcjogdmFyKC0tdGVhbCkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuc2EtcXVpeiAuYnRuLWdvbGQgewogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCAjZTY3ZTIyKTsKICAgIH0KCiAgICAuc2EtcXVpeiAuYnRuLWdvbGQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlNjdlMjIsICNkMzU0MDApOwogICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgyNDMsMTU2LDE4LDAuMyk7CiAgICB9CgogICAgLnNhLXF1aXogLnByb2dyZXNzLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7CiAgICAgICAgcGFkZGluZzogMjBweCAyNHB4OwogICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdyk7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgIH0KCiAgICAuc2EtcXVpeiAucHJvZ3Jlc3MtaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgfQoKICAgIC5zYS1xdWl6IC5wcm9ncmVzcy10ZXh0IHsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kYXJrKTsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICB9CgogICAgLnNhLXF1aXogLnByb2dyZXNzLWRpZmZpY3VsdHkgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICB9CgogICAgLnNhLXF1aXogLmRpZmZpY3VsdHktZWFzeSB7IGJhY2tncm91bmQ6ICNkNWY1ZTM7IGNvbG9yOiAjMjdhZTYwOyB9CiAgICAuc2EtcXVpeiAuZGlmZmljdWx0eS1tZWRpdW0geyBiYWNrZ3JvdW5kOiAjZmVmOWU3OyBjb2xvcjogI2YzOWMxMjsgfQogICAgLnNhLXF1aXogLmRpZmZpY3VsdHktaGFyZCB7IGJhY2tncm91bmQ6ICNmYWRiZDg7IGNvbG9yOiAjZTc0YzNjOyB9CgogICAgLnNhLXF1aXogLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFzZSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC5zYS1xdWl6IC5wcm9ncmVzcy1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS10ZWFsKSwgIzBhYjViNSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjVzIGVhc2U7CiAgICAgICAgd2lkdGg6IDAlOwogICAgfQoKICAgIC5zYS1xdWl6IC5xdWVzdGlvbi1jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS13aGl0ZSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsKICAgICAgICBwYWRkaW5nOiAzMnB4IDI4cHg7CiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTsKICAgICAgICBhbmltYXRpb246IHNhRmFkZUluVXAgMC40cyBlYXNlOwogICAgfQoKICAgIC5zYS1xdWl6IC5xdWVzdGlvbi1udW1iZXIgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10ZWFsKTsKICAgICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIHBhZGRpbmc6IDRweCAxNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KCiAgICAuc2EtcXVpeiAucXVlc3Rpb24tdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1kYXJrKTsKICAgIH0KCiAgICAuc2EtcXVpeiAub3B0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAuc2EtcXVpeiAub3B0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYXNlLTIpOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICB9CgogICAgLnNhLXF1aXogLm9wdGlvbjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10ZWFsKTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10ZWFsLWxpZ2h0KTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTsKICAgIH0KCiAgICAuc2EtcXVpeiAub3B0aW9uLmRpc2FibGVkIHsgY3Vyc29yOiBkZWZhdWx0OyB9CgogICAgLnNhLXF1aXogLm9wdGlvbi1sZXR0ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS13aGl0ZSk7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZ3JheS1saWdodCk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWdyYXkpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC5zYS1xdWl6IC5vcHRpb246aG92ZXI6bm90KC5kaXNhYmxlZCkgLm9wdGlvbi1sZXR0ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGVhbCk7CiAgICAgICAgY29sb3I6IHZhcigtLXRlYWwpOwogICAgfQoKICAgIC5zYS1xdWl6IC5vcHRpb24uY29ycmVjdCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb3JyZWN0KTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb3JyZWN0LWxpZ2h0KTsKICAgIH0KCiAgICAuc2EtcXVpeiAub3B0aW9uLmNvcnJlY3QgLm9wdGlvbi1sZXR0ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvcnJlY3QpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29ycmVjdCk7CiAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgIH0KCiAgICAuc2EtcXVpeiAub3B0aW9uLmluY29ycmVjdCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbmNvcnJlY3QpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWluY29ycmVjdC1saWdodCk7CiAgICB9CgogICAgLnNhLXF1aXogLm9wdGlvbi5pbmNvcnJlY3QgLm9wdGlvbi1sZXR0ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWluY29ycmVjdCk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbmNvcnJlY3QpOwogICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICB9CgogICAgLnNhLXF1aXogLmV4cGxhbmF0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10ZWFsLWxpZ2h0KTsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXRlYWwpOwogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBzYUZhZGVJblVwIDAuM3MgZWFzZTsKICAgIH0KCiAgICAuc2EtcXVpeiAuZXhwbGFuYXRpb24uc2hvdyB7IGRpc3BsYXk6IGJsb2NrOyB9CgogICAgLnNhLXF1aXogLmV4cGxhbmF0aW9uLXRpdGxlIHsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGNvbG9yOiB2YXIoLS10ZWFsLWRhcmspOwogICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICB9CgogICAgLnNhLXF1aXogLmV4cGxhbmF0aW9uIHAgewogICAgICAgIGNvbG9yOiB2YXIoLS1ncmF5KTsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIH0KCiAgICAuc2EtcXVpeiAubmV4dC1idG4tY29udGFpbmVyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC5zYS1xdWl6IC5uZXh0LWJ0bi1jb250YWluZXIuc2hvdyB7IGRpc3BsYXk6IGJsb2NrOyB9CgogICAgLnNhLXF1aXogLmVtYWlsLWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOwogICAgICAgIHBhZGRpbmc6IDQwcHggMzJweDsKICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KCiAgICAuc2EtcXVpeiAuZW1haWwtY2FyZCBoMiB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuZW1haWwtY2FyZCBwIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ3JheSk7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjhweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIH0KCiAgICAuc2EtcXVpeiAuZm9ybS1ncm91cCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgfQoKICAgIC5zYS1xdWl6IC5mb3JtLWdyb3VwIGxhYmVsIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGFyayk7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgfQoKICAgIC5zYS1xdWl6IC5mb3JtLWdyb3VwIGlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAxNHB4IDE4cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYmFzZSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgICAgICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zczsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgIH0KCiAgICAuc2EtcXVpeiAuZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB7IGJvcmRlci1jb2xvcjogdmFyKC0tdGVhbCk7IH0KICAgIC5zYS1xdWl6IC5mb3JtLWdyb3VwIGlucHV0OjpwbGFjZWhvbGRlciB7IGNvbG9yOiB2YXIoLS1ncmF5LWxpZ2h0KTsgfQoKICAgIC5zYS1xdWl6IC5wcml2YWN5LW5vdGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tZ3JheS1saWdodCk7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgfQoKICAgIC5zYS1xdWl6IC5za2lwLWxpbmsgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1ncmF5LWxpZ2h0KTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7CiAgICB9CgogICAgLnNhLXF1aXogLnNraXAtbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS1ncmF5KTsgfQoKICAgIC5zYS1xdWl6IC5wcml2YWN5LWNoZWNrYm94IHsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgIH0KCiAgICAuc2EtcXVpeiAucHJpdmFjeS1jaGVjay1sYWJlbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWdyYXkpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICB9CgogICAgLnNhLXF1aXogLnByaXZhY3ktY2hlY2stbGFiZWwgaW5wdXRbdHlwZT0iY2hlY2tib3giXSB7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICAgIGFjY2VudC1jb2xvcjogdmFyKC0tdGVhbCk7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgfQoKICAgIC5zYS1xdWl6IC5wcml2YWN5LWNoZWNrLWxhYmVsIGEgewogICAgICAgIGNvbG9yOiB2YXIoLS10ZWFsKTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgIH0KCiAgICAuc2EtcXVpeiAucHJpdmFjeS1jaGVjay1sYWJlbCBhOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGVhbC1kYXJrKTsKICAgIH0KCiAgICAuc2EtcXVpeiAucHJpdmFjeS1lcnJvciB7CiAgICAgICAgY29sb3I6IHZhcigtLWluY29ycmVjdCk7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC5zYS1xdWl6IC5wcml6ZS1ib3gtbm9lbWFpbCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10ZWFsKTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10ZWFsLWxpZ2h0KTsKICAgIH0KCiAgICAuc2EtcXVpeiAucmVzdWx0cy1jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS13aGl0ZSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsKICAgICAgICBwYWRkaW5nOiA0MHB4IDI4cHg7CiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnKTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnNhLXF1aXogLnJlc3VsdHMtY2FyZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLXRlYWwpLCAjMGFiNWI1LCB2YXIoLS1nb2xkKSk7CiAgICB9CgogICAgLnNhLXF1aXogLnJlc3VsdC1pY29uIHsgZm9udC1zaXplOiA3MnB4OyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQoKICAgIC5zYS1xdWl6IC5yZXN1bHQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICBmb250LXdlaWdodDogOTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1kYXJrKTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICB9CgogICAgLnNhLXF1aXogLnJlc3VsdC1zY29yZSB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS10ZWFsKTsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CgogICAgLnNhLXF1aXogLnJlc3VsdC1kZXNjcmlwdGlvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLWdyYXkpOwogICAgICAgIGZvbnQtc2l6ZTogMTdweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7CiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICB9CgogICAgLyogPT09PT09PT09PSBQUkVNSVVNIERJUExPTUEgPT09PT09PT09PSAqLwogICAgLnNhLXF1aXogLmRpcGxvbWEtY29udGFpbmVyIHsgbWFyZ2luOiAyOHB4IDA7IH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYSB7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgI2ZkZmFmMSwgI2ZlZjZkYywgI2ZkZjBjNCwgI2ZlZjZkYywgI2ZkZmFmMSk7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXgtd2lkdGg6IDUyMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYXNwZWN0LXJhdGlvOiA0IC8gMzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYS1pbm5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMjhweCAyNHB4IDIwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQoKICAgIC8qIFBhdyB3YXRlcm1hcmsgcGF0dGVybiAqLwogICAgLnNhLXF1aXogLmRpcGxvbWE6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOgogICAgICAgICAgICB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNDAnIGhlaWdodD0nNDAnIHZpZXdCb3g9JzAgMCA0MCA0MCclM0UlM0NwYXRoIGQ9J00yMCAyMmMtMiAwLTMuNSAyLTMuNSA0czEuNSAzIDMuNSAzIDMuNS0xIDMuNS0zLTEuNS00LTMuNS00em0tNi00Yy0xLjIgMC0yIDEuMi0yIDIuNVMxMi44IDIzIDE0IDIzczItMS4yIDItMi41UzE1LjIgMTggMTQgMTh6bTEyIDBjLTEuMiAwLTIgMS4yLTIgMi41cy44IDIuNSAyIDIuNSAyLTEuMiAyLTIuNS0uOC0yLjUtMi0yLjV6bS05LTNjLTEuMiAwLTIgMS0yIDIuMnMuOCAyLjIgMiAyLjIgMi0xIDItMi4yLS44LTIuMi0yLTIuMnptNiAwYy0xLjIgMC0yIDEtMiAyLjJzLjggMi4yIDIgMi4yIDItMSAyLTIuMi0uOC0yLjItMi0yLjJ6JyBmaWxsPSclMjNlOGQ1YTAnIG9wYWNpdHk9JzAuMTgnLyUzRSUzQy9zdmclM0UiKTsKICAgICAgICB6LWluZGV4OiAxOwogICAgfQoKICAgIC8qIElubmVyIG9ybmFtZW50YWwgYm9yZGVyICovCiAgICAuc2EtcXVpeiAuZGlwbG9tYS1ib3JkZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDZweDsgbGVmdDogNnB4OyByaWdodDogNnB4OyBib3R0b206IDZweDsKICAgICAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHJnYmEoMTkzLDEyNSwxNCwwLjMpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC8qIENvcm5lciBvcm5hbWVudHMgKi8KICAgIC5zYS1xdWl6IC5kaXBsb21hLWNvcm5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICB6LWluZGV4OiAzOwogICAgfQogICAgLnNhLXF1aXogLmRpcGxvbWEtY29ybmVyIHN2ZyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KICAgIC5zYS1xdWl6IC5kaXBsb21hLWNvcm5lci50bCB7IHRvcDogMTBweDsgbGVmdDogMTBweDsgfQogICAgLnNhLXF1aXogLmRpcGxvbWEtY29ybmVyLnRyIHsgdG9wOiAxMHB4OyByaWdodDogMTBweDsgdHJhbnNmb3JtOiBzY2FsZVgoLTEpOyB9CiAgICAuc2EtcXVpeiAuZGlwbG9tYS1jb3JuZXIuYmwgeyBib3R0b206IDEwcHg7IGxlZnQ6IDEwcHg7IHRyYW5zZm9ybTogc2NhbGVZKC0xKTsgfQogICAgLnNhLXF1aXogLmRpcGxvbWEtY29ybmVyLmJyIHsgYm90dG9tOiAxMHB4OyByaWdodDogMTBweDsgdHJhbnNmb3JtOiBzY2FsZSgtMSwtMSk7IH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYS10b3AtdGV4dCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkLWRhcmspOwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgfQoKICAgIC5zYS1xdWl6IC5kaXBsb21hLWJyYW5kLXRpdGxlIHsKICAgICAgICBmb250LWZhbWlseTogJ1VidW50dScsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAyMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6IHZhcigtLXRlYWwpOwogICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYS1kaXZpZGVyIHsKICAgICAgICB3aWR0aDogMTIwcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgdmFyKC0tZ29sZCksIHRyYW5zcGFyZW50KTsKICAgICAgICBtYXJnaW46IDZweCBhdXRvOwogICAgfQoKICAgIC5zYS1xdWl6IC5kaXBsb21hLWNlcnRpZmllcyB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLWdyYXkpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBtYXJnaW46IDZweCAwIDRweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYS1uYW1lIHsKICAgICAgICBmb250LWZhbWlseTogJ1VidW50dScsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAyNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWRhcmspOwogICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYS1zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWdyYXkpOwogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICB9CgogICAgLyogTGV2ZWwgYmFkZ2Uvc2VhbCAqLwogICAgLnNhLXF1aXogLmRpcGxvbWEtc2VhbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiA5MHB4OwogICAgICAgIGhlaWdodDogOTBweDsKICAgICAgICBtYXJnaW46IDRweCBhdXRvIDhweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYS1zZWFsLWNpcmNsZSB7CiAgICAgICAgd2lkdGg6IDkwcHg7CiAgICAgICAgaGVpZ2h0OiA5MHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCB2YXIoLS1nb2xkKSwgI2U4YTkxMiwgdmFyKC0tZ29sZC1kYXJrKSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSgxOTMsMTI1LDE0LDAuMzUpLCBpbnNldCAwIDFweCAycHggcmdiYSgyNTUsMjU1LDI1NSwwLjMpOwogICAgfQoKICAgIC5zYS1xdWl6IC5kaXBsb21hLXNlYWwtaW5uZXIgewogICAgICAgIHdpZHRoOiA3NHB4OwogICAgICAgIGhlaWdodDogNzRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICB9CgogICAgLnNhLXF1aXogLmRpcGxvbWEtc2VhbC1wYXcgeyBmb250LXNpemU6IDI0cHg7IGxpbmUtaGVpZ2h0OiAxOyB9CiAgICAuc2EtcXVpeiAuZGlwbG9tYS1zZWFsLXRleHQgewogICAgICAgIGZvbnQtZmFtaWx5OiAnVWJ1bnR1Jywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDlweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYS1zdGFycyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgIH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYS1zdGFycyAuc3Rhci1lbXB0eSB7IG9wYWNpdHk6IDAuMjU7IH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYS1zY29yZS10ZXh0IHsKICAgICAgICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tZ3JheSk7CiAgICB9CgogICAgLnNhLXF1aXogLmRpcGxvbWEtZGF0ZSB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWdyYXktbGlnaHQpOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYS1mb290ZXItbGluZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYS1mb290ZXItbG9nbyB7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHdpZHRoOiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgIH0KCiAgICAuc2EtcXVpeiAuZGlwbG9tYS1mb290ZXItdGV4dCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWdyYXktbGlnaHQpOwogICAgfQoKICAgIC5zYS1xdWl6IC5kaXBsb21hLWRvd25sb2FkLWJ0biB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICNmMzljMTIsICNlOGE5MTIsICNjMTdkMGUpOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICAgIHBhZGRpbmc6IDEycHggMjhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgxOTMsMTI1LDE0LDAuMyk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzLCBib3gtc2hhZG93IDAuMTVzOwogICAgfQogICAgLnNhLXF1aXogLmRpcGxvbWEtZG93bmxvYWQtYnRuOmhvdmVyIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDE5MywxMjUsMTQsMC40KTsKICAgIH0KICAgIC5zYS1xdWl6IC5kaXBsb21hLWRvd25sb2FkLWJ0bjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgIH0KCiAgICAvKiA9PT09PT09PT09IFBSSVpFIEJPWCA9PT09PT09PT09ICovCiAgICAuc2EtcXVpeiAucHJpemUtYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS10ZWFsKSwgIzBhYjViNSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgICAgbWFyZ2luOiAyNHB4IDA7CiAgICB9CgogICAgLnNhLXF1aXogLnByaXplLWJveCBoMyB7IGZvbnQtc2l6ZTogMjBweDsgbWFyZ2luLWJvdHRvbTogOHB4OyBjb2xvcjogdmFyKC0td2hpdGUpOyB9CiAgICAuc2EtcXVpeiAucHJpemUtYm94IHAgeyBmb250LXNpemU6IDE1cHg7IG9wYWNpdHk6IDAuOTsgbGluZS1oZWlnaHQ6IDEuNTsgbWFyZ2luLWJvdHRvbTogMTZweDsgY29sb3I6IHZhcigtLXdoaXRlKTsgfQoKICAgIC5zYS1xdWl6IC5wcml6ZS1jb2RlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIpOwogICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpOwogICAgICAgIHBhZGRpbmc6IDEwcHggMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOwogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogOTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCByZ2JhKDI1NSwyNTUsMjU1LDAuNCk7CiAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgIH0KCiAgICAuc2EtcXVpeiAucHJpemUtaW5zdHJ1Y3Rpb25zIHsgZm9udC1zaXplOiAxM3B4OyBvcGFjaXR5OiAwLjg7IH0KCiAgICAvKiA9PT09PT09PT09IFNIQVJFID09PT09PT09PT0gKi8KICAgIC5zYS1xdWl6IC5zaGFyZS1zZWN0aW9uIHsgbWFyZ2luLXRvcDogMjhweDsgfQogICAgLnNhLXF1aXogLnNoYXJlLXNlY3Rpb24gaDMgeyBmb250LXNpemU6IDE2cHg7IGNvbG9yOiB2YXIoLS1kYXJrKTsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQoKICAgIC5zYS1xdWl6IC5zaGFyZS1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnNhLXF1aXogLnNoYXJlLWJ0biB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlKSAhaW1wb3J0YW50OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmOwogICAgfQoKICAgIC5zYS1xdWl6IC5zaGFyZS1idG46aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwwLDAsMC4yKTsKICAgICAgICBjb2xvcjogdmFyKC0td2hpdGUpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLnNhLXF1aXogLnNoYXJlLWJ0bi53aGF0c2FwcCB7IGJhY2tncm91bmQ6ICMyNUQzNjY7IH0KICAgIC5zYS1xdWl6IC5zaGFyZS1idG4udHdpdHRlciB7IGJhY2tncm91bmQ6ICMxREExRjI7IH0KICAgIC5zYS1xdWl6IC5zaGFyZS1idG4uZmFjZWJvb2sgeyBiYWNrZ3JvdW5kOiAjMTg3N0YyOyB9CiAgICAuc2EtcXVpeiAuc2hhcmUtYnRuLmNvcHktbGluayB7IGJhY2tncm91bmQ6IHZhcigtLWdyYXkpOyB9CgogICAgLnNhLXF1aXogLmN0YS1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAyOHB4OwogICAgICAgIHBhZGRpbmctdG9wOiAyNHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1iYXNlKTsKICAgIH0KCiAgICAuc2EtcXVpeiAuY3RhLXNlY3Rpb24gcCB7IGNvbG9yOiB2YXIoLS1ncmF5KTsgZm9udC1zaXplOiAxNXB4OyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CgogICAgLnNhLXF1aXogLnNjb3JlLWRvdHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5zYS1xdWl6IC5zY29yZS1kb3QgewogICAgICAgIHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgfQoKICAgIC5zYS1xdWl6IC5zY29yZS1kb3QuY29ycmVjdCB7IGJhY2tncm91bmQ6IHZhcigtLWNvcnJlY3QpOyB9CiAgICAuc2EtcXVpeiAuc2NvcmUtZG90LmluY29ycmVjdCB7IGJhY2tncm91bmQ6IHZhcigtLWluY29ycmVjdCk7IH0KCiAgICAvKiA9PT09PT09PT09IEFMUkVBRFkgQ09NUExFVEVEIFNDUkVFTiA9PT09PT09PT09ICovCiAgICAuc2EtcXVpeiAuY29vbGRvd24tY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7CiAgICAgICAgcGFkZGluZzogNDBweCAzMnB4OwogICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdyk7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQoKICAgIC5zYS1xdWl6IC5jb29sZG93bi1jYXJkIGgyIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZGFyayk7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuY29vbGRvd24tY2FyZCBwIHsKICAgICAgICBjb2xvcjogdmFyKC0tZ3JheSk7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuY29vbGRvd24taW5mbyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGVhbC1saWdodCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIH0KCiAgICAuc2EtcXVpeiAuY29vbGRvd24taW5mby1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDZweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIH0KCiAgICAuc2EtcXVpeiAuY29vbGRvd24taW5mby1sYWJlbCB7IGNvbG9yOiB2YXIoLS1ncmF5KTsgZm9udC13ZWlnaHQ6IDQwMDsgfQogICAgLnNhLXF1aXogLmNvb2xkb3duLWluZm8tdmFsdWUgeyBjb2xvcjogdmFyKC0tZGFyayk7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KCiAgICAvKiA9PT09PT09PT09IENPTkZFVFRJID09PT09PT09PT0gKi8KICAgIC5zYS1xdWl6IC5jb25mZXR0aS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnNhLXF1aXogLmNvbmZldHRpLXBpZWNlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAtMTBweDsKICAgICAgICB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBhbmltYXRpb246IHNhQ29uZmV0dGlGYWxsIGxpbmVhciBmb3J3YXJkczsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIHNhQ29uZmV0dGlGYWxsIHsKICAgICAgICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgcm90YXRlKDBkZWcpOyBvcGFjaXR5OiAxOyB9CiAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDB2aCkgcm90YXRlKDcyMGRlZyk7IG9wYWNpdHk6IDA7IH0KICAgIH0KCiAgICAuc2EtcXVpeiAucXVpei1mb290ZXIgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAzMnB4IDAgMTZweDsKICAgICAgICBjb2xvcjogdmFyKC0tZ3JheS1saWdodCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgfQoKICAgIC5zYS1xdWl6IC5xdWl6LWZvb3RlciBhIHsgY29sb3I6IHZhcigtLXRlYWwpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KCiAgICAuc2EtcXVpeiAubXQtMTYgeyBtYXJnaW4tdG9wOiAxNnB4OyB9CgogICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7CiAgICAgICAgLnNhLXF1aXogLmNvbnRhaW5lciB7IHBhZGRpbmc6IDEycHggMTJweDsgfQogICAgICAgIC5zYS1xdWl6IC5pbnRyby1jYXJkLCAuc2EtcXVpeiAucXVlc3Rpb24tY2FyZCwgLnNhLXF1aXogLmVtYWlsLWNhcmQsIC5zYS1xdWl6IC5yZXN1bHRzLWNhcmQsIC5zYS1xdWl6IC5jb29sZG93bi1jYXJkIHsgcGFkZGluZzogMjhweCAyMHB4OyB9CiAgICAgICAgLnNhLXF1aXogLmludHJvLWNhcmQgaDEgeyBmb250LXNpemU6IDI0cHg7IH0KICAgICAgICAuc2EtcXVpeiAucXVlc3Rpb24tdGV4dCB7IGZvbnQtc2l6ZTogMThweDsgfQogICAgICAgIC5zYS1xdWl6IC5yZXN1bHQtdGl0bGUgeyBmb250LXNpemU6IDI2cHg7IH0KICAgICAgICAuc2EtcXVpeiAuZGlwbG9tYSB7IG1heC13aWR0aDogMTAwJTsgfQogICAgICAgIC5zYS1xdWl6IC5kaXBsb21hLWlubmVyIHsgcGFkZGluZzogMjBweCAxNnB4IDE0cHg7IH0KICAgICAgICAuc2EtcXVpeiAuZGlwbG9tYS1icmFuZC10aXRsZSB7IGZvbnQtc2l6ZTogMThweDsgfQogICAgICAgIC5zYS1xdWl6IC5kaXBsb21hLW5hbWUgeyBmb250LXNpemU6IDIwcHg7IH0KICAgICAgICAuc2EtcXVpeiAuZGlwbG9tYS1zZWFsIHsgd2lkdGg6IDcycHg7IGhlaWdodDogNzJweDsgfQogICAgICAgIC5zYS1xdWl6IC5kaXBsb21hLXNlYWwtY2lyY2xlIHsgd2lkdGg6IDcycHg7IGhlaWdodDogNzJweDsgfQogICAgICAgIC5zYS1xdWl6IC5kaXBsb21hLXNlYWwtaW5uZXIgeyB3aWR0aDogNThweDsgaGVpZ2h0OiA1OHB4OyB9CiAgICAgICAgLnNhLXF1aXogLmRpcGxvbWEtc2VhbC1wYXcgeyBmb250LXNpemU6IDE4cHg7IH0KICAgICAgICAuc2EtcXVpeiAuZGlwbG9tYS1zZWFsLXRleHQgeyBmb250LXNpemU6IDhweDsgfQogICAgICAgIC5zYS1xdWl6IC5zaGFyZS1idXR0b25zIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH0KICAgICAgICAuc2EtcXVpeiAuc2hhcmUtYnRuIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0KICAgIH1gOwpkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNhU3R5bGVFbCk7CgooZnVuY3Rpb24oKSB7CnZhciBlYXN5UG9vbCA9IFsKICAgIHsgcXVlc3Rpb246ICJUdSBwZXJybyBib3N0ZXphIGZ1ZXJhIGRlIGxhcyBob3JhcyBkZSBzdWVcdTAwZjFvLiBcdTAwYmZRdVx1MDBlOSBwdWVkZSBlc3RhciBjb211bmljYW5kbz8iLCBvcHRpb25zOiBbIlF1ZSBlc3RcdTAwZTEgYWJ1cnJpZG8geSBxdWllcmUganVnYXIsIHBvcnF1ZSBlbCBib3N0ZXpvIHNpZW1wcmUgaW5kaWNhIGdhbmFzIGRlIGFjdGl2aWRhZCBmXHUwMGVkc2ljYSIsICJVbmEgc2VcdTAwZjFhbCBkZSBjYWxtYTogcHVlZGUgZXN0YXIgYWxnbyBlc3RyZXNhZG8gbyBpbmNcdTAwZjNtb2RvIiwgIlF1ZSB0aWVuZSBoYW1icmUiLCAiTmFkYSBlbiBwYXJ0aWN1bGFyLCBsb3MgcGVycm9zIGJvc3RlemFuIHNpbiBtb3Rpdm8iXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJFbCBib3N0ZXpvIGVzIHVuYSBkZSBsYXMgXHUwMGFic2VcdTAwZjFhbGVzIGRlIGNhbG1hXHUwMGJiIG1cdTAwZTFzIGNvbm9jaWRhcy4gTG9zIHBlcnJvcyBsYXMgdXNhbiBwYXJhIGdlc3Rpb25hciBzdSBlc3RyXHUwMGU5cyB5IGNvbXVuaWNhciBxdWUgbmVjZXNpdGFuIGVzcGFjaW8gbyB0cmFucXVpbGlkYWQuIFx1MDBhMU9ic2VydmEgZW4gcXVcdTAwZTkgY29udGV4dG8gYm9zdGV6YSB0dSBwZXJybyEiIH0sCiAgICB7IHF1ZXN0aW9uOiAiXHUwMGJmQ3VcdTAwZTFsIGVzIGxhIGZvcm1hIGNvcnJlY3RhIGRlIHNhbHVkYXIgYSB1biBwZXJybyBxdWUgbm8gY29ub2Nlcz8iLCBvcHRpb25zOiBbIkFjYXJpY2lhcmxlIGxhIGNhYmV6YSBkaXJlY3RhbWVudGUgcGFyYSBxdWUgdmVhIHF1ZSBlcmVzIGFtaWdhYmxlIiwgIk1pcmFybGUgZmlqYW1lbnRlIGEgbG9zIG9qb3MgeSBzb25yZVx1MDBlZHIiLCAiRGVqYXIgcXVlIGVsIHBlcnJvIHNlIGFjZXJxdWUgYSB0aSBhIHN1IHJpdG1vLCBzaW4gaW52YWRpciBzdSBlc3BhY2lvIiwgIkFnYWNoYXJ0ZSB5IGxsYW1hcmxlIGNvbiB2b3ogYWd1ZGEiXSwgY29ycmVjdDogMiwgZXhwbGFuYXRpb246ICJSZXNwZXRhciBlbCBlc3BhY2lvIGRlbCBwZXJybyB5IGRlamFyIHF1ZSBzZWEgcXVpZW4gZGVjaWRhIGFjZXJjYXJzZSBlcyBmdW5kYW1lbnRhbC4gVG9jYXIgbGEgY2FiZXphIGRlIHVuIHBlcnJvIGRlc2Nvbm9jaWRvIG8gbWlyYXJsZSBmaWphbWVudGUgcHVlZGUgc2VyIHBlcmNpYmlkbyBjb21vIGFtZW5hemFudGUuIiB9LAogICAgeyBxdWVzdGlvbjogIkN1YW5kbyB1biBwZXJybyBtdWV2ZSBsYSBjb2xhLCBcdTAwYmZzaWduaWZpY2Egc2llbXByZSBxdWUgZXN0XHUwMGUxIGNvbnRlbnRvPyIsIG9wdGlvbnM6IFsiU1x1MDBlZCwgbGEgY29sYSBlcyBlbCBpbmRpY2Fkb3IgdW5pdmVyc2FsIGRlIGZlbGljaWRhZCBjYW5pbmEsIHkgY3VhbnRvIG1cdTAwZTFzIHJcdTAwZTFwaWRvIGxhIG11ZXZlIG1cdTAwZTFzIGNvbnRlbnRvIGVzdFx1MDBlMSwgaW5kZXBlbmRpZW50ZW1lbnRlIGRlbCByZXN0byBkZSBzdSBsZW5ndWFqZSBjb3Jwb3JhbCIsICJObywgaW5kaWNhIGFjdGl2YWNpXHUwMGYzbiBlbW9jaW9uYWwgcXVlIHB1ZWRlIHNlciBhbGVnclx1MDBlZGEsIHBlcm8gdGFtYmlcdTAwZTluIGVzdHJcdTAwZTlzLCBtaWVkbyBvIGV4Y2l0YWNpXHUwMGYzbiIsICJTXHUwMGYzbG8gc2kgbGEgbXVldmUgbXV5IHJcdTAwZTFwaWRvIiwgIkRlcGVuZGUgZGUgbGEgcmF6YSBkZWwgcGVycm8iXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJcdTAwYTFNaXRvIGRlcnJpYmFkbyEgRWwgbW92aW1pZW50byBkZSBjb2xhIGluZGljYSBhY3RpdmFjaVx1MDBmM24gZW1vY2lvbmFsLCBubyBuZWNlc2FyaWFtZW50ZSBhbGVnclx1MDBlZGEuIFVuIHBlcnJvIHB1ZWRlIG1vdmVyIGxhIGNvbGEgZXN0YW5kbyBlc3RyZXNhZG8sIGluc2VndXJvIG8gc29icmVleGNpdGFkby4gRlx1MDBlZGphdGUgZW4gbGEgdmVsb2NpZGFkLCBhbHR1cmEgeSBkaXJlY2NpXHUwMGYzbiBkZWwgbW92aW1pZW50by4iIH0sCiAgICB7IHF1ZXN0aW9uOiAiXHUwMGJmQ3VcdTAwZTFsIGVzIGVsIHNlbnRpZG8gcHJpbmNpcGFsIGNvbiBlbCBxdWUgbG9zIHBlcnJvcyBleHBsb3JhbiBlbCBtdW5kbz8iLCBvcHRpb25zOiBbIkxhIHZpc3RhLCBpZ3VhbCBxdWUgbG9zIGh1bWFub3MiLCAiRWwgb1x1MDBlZGRvLCBncmFjaWFzIGEgc3VzIG9yZWphcyBtXHUwMGYzdmlsZXMiLCAiRWwgb2xmYXRvLCBzdSBzZW50aWRvIG1cdTAwZTFzIGRlc2Fycm9sbGFkbyIsICJFbCB0YWN0bywgYSB0cmF2XHUwMGU5cyBkZSBzdXMgYmlnb3RlcyAodmlicmlzYXMpIl0sIGNvcnJlY3Q6IDIsIGV4cGxhbmF0aW9uOiAiRWwgb2xmYXRvIGVzIGVsIHN1cGVycG9kZXIgZGUgdHUgcGVycm8uIFN1IG5hcml6IHRpZW5lIGhhc3RhIDMwMCBtaWxsb25lcyBkZSByZWNlcHRvcmVzIG9sZmF0aXZvcyAobG9zIGh1bWFub3MgdGVuZW1vcyB1bm9zIDYgbWlsbG9uZXMpLiBEZWphcmxlIG9sZXIgZW4gZWwgcGFzZW8gbm8gZXMgXHUwMGFicGVyZGVyIGVsIHRpZW1wb1x1MDBiYiwgXHUwMGExZXMgc3UgZm9ybWEgZGUgbGVlciBlbCBwZXJpXHUwMGYzZGljbyEiIH0sCiAgICB7IHF1ZXN0aW9uOiAiXHUwMGJmQ3VcdTAwZTFudGFzIGhvcmFzIGFsIGRcdTAwZWRhIGR1ZXJtZSB1biBwZXJybyBhZHVsdG8gZW4gcHJvbWVkaW8/Iiwgb3B0aW9uczogWyI2LTggaG9yYXMsIGNvbW8gbG9zIGh1bWFub3MiLCAiMTItMTQgaG9yYXMgZW50cmUgc3VlXHUwMGYxbyBub2N0dXJubyB5IHNpZXN0YXMiLCAiMTgtMjAgaG9yYXMsIGNhc2kgdG9kbyBlbCBkXHUwMGVkYSIsICJTXHUwMGYzbG8gZHVlcm1lbiBwb3IgbGEgbm9jaGUsIGRlIHVuIHRpclx1MDBmM24iXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJMb3MgcGVycm9zIGFkdWx0b3MgbmVjZXNpdGFuIGVudHJlIDEyIHkgMTQgaG9yYXMgZGUgc3VlXHUwMGYxbyBkaWFyaW8sIGluY2x1eWVuZG8gc2llc3Rhcy4gTG9zIGNhY2hvcnJvcyB5IHBlcnJvcyBzZW5pb3IgcHVlZGVuIG5lY2VzaXRhciBhXHUwMGZhbiBtXHUwMGUxcy4gUmVzcGV0YXIgc3UgZGVzY2Fuc28gZXMgZnVuZGFtZW50YWwgcGFyYSBzdSBiaWVuZXN0YXIgZW1vY2lvbmFsLiIgfSwKICAgIHsgcXVlc3Rpb246ICJUdSBwZXJybyBzZSBzYWN1ZGUgdG9kbyBlbCBjdWVycG8gc2luIGVzdGFyIG1vamFkby4gXHUwMGJmUXVcdTAwZTkgcHVlZGUgc2lnbmlmaWNhcj8iLCBvcHRpb25zOiBbIlF1ZSB0aWVuZSBmclx1MDBlZG8iLCAiUXVlIGxlIHBpY2EgYWxnbyBlbiBsYSBwaWVsIiwgIkVzIHVuYSBmb3JtYSBkZSBsaWJlcmFyIHRlbnNpXHUwMGYzbiBvIGVzdHJcdTAwZTlzIGFjdW11bGFkbyIsICJObyB0aWVuZSBuaW5nXHUwMGZhbiBzaWduaWZpY2FkbyBlc3BlY2lhbCwgZXMgdW4gbW92aW1pZW50byByZWZsZWpvIGludm9sdW50YXJpbyBzaW4gY2FyZ2EgZW1vY2lvbmFsIG5pIGNvbXVuaWNhdGl2YSJdLCBjb3JyZWN0OiAyLCBleHBsYW5hdGlvbjogIkxhIHNhY3VkaWRhIGNvcnBvcmFsIGVzIHVuYSBmb3JtYSBxdWUgdGllbmVuIGxvcyBwZXJyb3MgZGUgXHUwMGFicmVzZXRlYXJcdTAwYmIgdHJhcyB1bmEgc2l0dWFjaVx1MDBmM24gZGUgdGVuc2lcdTAwZjNuLiBTaSB2ZXMgcXVlIHR1IHBlcnJvIHNlIHNhY3VkZSBkZXNwdVx1MDBlOXMgZGUgdW4gZW5jdWVudHJvIGNvbiBvdHJvIHBlcnJvIG8gdW5hIHNpdHVhY2lcdTAwZjNuIGluY1x1MDBmM21vZGEsIGVzdFx1MDBlMSBsaWJlcmFuZG8gZXN0clx1MDBlOXMuIFx1MDBhMUVzIHVuYSBzZVx1MDBmMWFsIG11eSBcdTAwZmF0aWwgcGFyYSBlbnRlbmRlcmxlISIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZMb3MgcGVycm9zIHZlbiBlbiBibGFuY28geSBuZWdybz8iLCBvcHRpb25zOiBbIlNcdTAwZWQsIG5vIGRpc3Rpbmd1ZW4gbmluZ1x1MDBmYW4gY29sb3IiLCAiTm8sIHZlbiBleGFjdGFtZW50ZSBpZ3VhbCBxdWUgbG9zIGh1bWFub3MiLCAiTm8sIHNvbiBkaWNyb21cdTAwZTF0aWNvczogdmVuIHRvbm9zIGRlIGF6dWwgeSBhbWFyaWxsbywgcGVybyBubyByb2pvIG5pIHZlcmRlIiwgIlNcdTAwZjNsbyBkaXN0aW5ndWVuIGVsIHJvam8iXSwgY29ycmVjdDogMiwgZXhwbGFuYXRpb246ICJMb3MgcGVycm9zIHRpZW5lbiB2aXNpXHUwMGYzbiBkaWNyb21cdTAwZTF0aWNhOiBwZXJjaWJlbiB0b25vcyBkZSBhenVsIHkgYW1hcmlsbG8sIHBlcm8gbm8gZGlzdGluZ3VlbiBlbCByb2pvIGRlbCB2ZXJkZS4gU3UgdmlzaVx1MDBmM24gbm8gZXMgZW4gYmxhbmNvIHkgbmVncm8sIHBlcm8gc1x1MDBlZCBlcyBkaWZlcmVudGUgYSBsYSBudWVzdHJhLiBFc3RvIGV4cGxpY2EgcG9yIHF1XHUwMGU5IGFsZ3Vub3MganVndWV0ZXMgZGUgY2llcnRvcyBjb2xvcmVzIGxlcyByZXN1bHRhbiBtXHUwMGUxcyBmXHUwMGUxY2lsZXMgZGUgdmVyLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZRdVx1MDBlOSBuZWNlc2lkYWQgZnVuZGFtZW50YWwgY3VicmUgZWwgcGFzZW8gcGFyYSB1biBwZXJybz8iLCBvcHRpb25zOiBbIlNcdTAwZjNsbyBsYSBuZWNlc2lkYWQgZGUgaGFjZXIgc3VzIG5lY2VzaWRhZGVzIGZpc2lvbFx1MDBmM2dpY2FzIiwgIlNcdTAwZjNsbyBsYSBuZWNlc2lkYWQgZGUgZWplcmNpY2lvIGZcdTAwZWRzaWNvIiwgIkV4cGxvcmFjaVx1MDBmM24sIHNvY2lhbGl6YWNpXHUwMGYzbiwgZWplcmNpY2lvIHkgZXN0aW11bGFjaVx1MDBmM24gbWVudGFsIiwgIk5vIGVzIG5lY2VzYXJpbyBzaSB0aWVuZSBqYXJkXHUwMGVkbiBvIHRlcnJhemEiXSwgY29ycmVjdDogMiwgZXhwbGFuYXRpb246ICJFbCBwYXNlbyBlcyBtdWNobyBtXHUwMGUxcyBxdWUgXHUwMGFiaXIgYWwgYmFcdTAwZjFvXHUwMGJiLiBQZXJtaXRlIGV4cGxvcmFyIGNvbiBlbCBvbGZhdG8sIHNvY2lhbGl6YXIgY29uIGVsIGVudG9ybm8sIGhhY2VyIGVqZXJjaWNpbyB5IHJlY2liaXIgZXN0aW11bGFjaVx1MDBmM24gbWVudGFsLiBVbiBqYXJkXHUwMGVkbiBubyBzdXN0aXR1eWUgbGFzIG5lY2VzaWRhZGVzIHF1ZSBjdWJyZSB1biBidWVuIHBhc2VvLiIgfSwKICAgIHsgcXVlc3Rpb246ICJDdWFuZG8gdW4gcGVycm8gZ2lyYSBzb2JyZSBzXHUwMGVkIG1pc21vIGFudGVzIGRlIHR1bWJhcnNlLCBcdTAwYmZhIHF1XHUwMGU5IHNlIGRlYmU/Iiwgb3B0aW9uczogWyJFcyB1biBjb21wb3J0YW1pZW50byBpbnN0aW50aXZvIGhlcmVkYWRvIHBhcmEgcHJlcGFyYXIgdW4gZXNwYWNpbyBzZWd1cm8geSBjXHUwMGYzbW9kbyIsICJFc3RcdTAwZTEgY29uZnVuZGlkbyB5IG5vIHNhYmUgY1x1MDBmM21vIGVjaGFyc2UgcG9ycXVlIGxlIGZhbHRhIGVudHJlbmFtaWVudG8gYlx1MDBlMXNpY28gZGUgb2JlZGllbmNpYSBwYXJhIHR1bWJhcnNlIGEgbGEgb3JkZW4iLCAiVGllbmUgdW4gcHJvYmxlbWEgbmV1cm9sXHUwMGYzZ2ljbyIsICJTXHUwMGYzbG8gbG8gaGFjZW4gcXVpZW5lcyBubyB0aWVuZW4gY2FtYSBwcm9waWEiXSwgY29ycmVjdDogMCwgZXhwbGFuYXRpb246ICJFc3RlIGNvbXBvcnRhbWllbnRvIGVzIHVuIGluc3RpbnRvIGFuY2VzdHJhbC4gTG9zIGFudGVwYXNhZG9zIGRlIG51ZXN0cm9zIHBlcnJvcyBnaXJhYmFuIHBhcmEgYXBsYXN0YXIgbGEgaGllcmJhLCBlc3BhbnRhciBpbnNlY3RvcyB5IGNyZWFyIHVuIGVzcGFjaW8gY1x1MDBmM21vZG8geSBzZWd1cm8gcGFyYSBkZXNjYW5zYXIuIEVzIHVuIHJpdHVhbCBuYXR1cmFsIHF1ZSBtdWNob3MgcGVycm9zIGNvbnNlcnZhbiBpbmNsdXNvIGVuIGVsIHNvZlx1MDBlMSBtXHUwMGUxcyBjXHUwMGYzbW9kby4iIH0sCiAgICB7IHF1ZXN0aW9uOiAiXHUwMGJmUG9yIHF1XHUwMGU5IGxvcyBwZXJyb3Mgb2xmYXRlYW4gZWwgdHJhc2VybyBkZSBvdHJvcyBwZXJyb3MgYWwgZW5jb250cmFyc2U/Iiwgb3B0aW9uczogWyJFcyB1bmEgZmFsdGEgZGUgZWR1Y2FjaVx1MDBmM24gcXVlIGhhYnJcdTAwZWRhIHF1ZSBjb3JyZWdpciIsICJFcyBzdSBmb3JtYSBkZSBvYnRlbmVyIGluZm9ybWFjaVx1MDBmM246IGlkZW50aWRhZCwgZXN0YWRvIGVtb2Npb25hbCwgc2FsdWQgeSBtXHUwMGUxcyIsICJTXHUwMGYzbG8gbG8gaGFjZW4gbG9zIG1hY2hvcyIsICJFcyB1biBzaWdubyBkZSBkb21pbmFuY2lhIHNvYnJlIGVsIG90cm8gcGVycm8sIHVuYSBmb3JtYSBkZSBlc3RhYmxlY2VyIGplcmFycXVcdTAwZWRhIHkgZGVtb3N0cmFyIHF1aVx1MDBlOW4gbWFuZGEgZW4gbGEgbWFuYWRhIl0sIGNvcnJlY3Q6IDEsIGV4cGxhbmF0aW9uOiAiTGFzIGdsXHUwMGUxbmR1bGFzIGFuYWxlcyBjb250aWVuZW4gaW5mb3JtYWNpXHUwMGYzbiBxdVx1MDBlZG1pY2EgXHUwMGZhbmljYTogZWRhZCwgc2V4bywgZXN0YWRvIGVtb2Npb25hbCwgc2FsdWQgZSBpbmNsdXNvIGRpZXRhLiBPbGZhdGVhciBlcyBlbCBlcXVpdmFsZW50ZSBjYW5pbm8gYSBwcmVzZW50YXJzZS4gSW50ZXJydW1waXIgZXN0ZSByaXR1YWwgcHVlZGUgZ2VuZXJhciBmcnVzdHJhY2lcdTAwZjNuIGUgaW5zZWd1cmlkYWQgc29jaWFsLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZRdVx1MDBlOSBwdWVkZSBpbmRpY2FyIHF1ZSB1biBwZXJybyBqYWRlZSBtdWNobyBzaW4gaGFiZXIgaGVjaG8gZWplcmNpY2lvPyIsIG9wdGlvbnM6IFsiU2llbXByZSBlcyBub3JtYWwsIGxvcyBwZXJyb3MgamFkZWFuIHRvZG8gZWwgdGllbXBvIiwgIlB1ZWRlIGluZGljYXIgZXN0clx1MDBlOXMsIGRvbG9yLCBhbnNpZWRhZCBvIHByb2JsZW1hcyBkZSBzYWx1ZCIsICJUaWVuZSBoYW1icmUiLCAiRXN0XHUwMGUxIGNvbnRlbnRvIHkgcmVsYWphZG8iXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJFbCBqYWRlbyBlcyBsYSBmb3JtYSBwcmluY2lwYWwgZGUgcmVndWxhciBsYSB0ZW1wZXJhdHVyYSwgcGVybyB0YW1iaVx1MDBlOW4gcHVlZGUgc2VyIHNlXHUwMGYxYWwgZGUgZXN0clx1MDBlOXMsIGRvbG9yLCBhbnNpZWRhZCBvIG1hbGVzdGFyLiBTaSB0dSBwZXJybyBqYWRlYSBzaW4gbW90aXZvIGFwYXJlbnRlIChzaW4gY2Fsb3IgbmkgZWplcmNpY2lvKSwgbWVyZWNlIGxhIHBlbmEgb2JzZXJ2YXIgZWwgY29udGV4dG8geSBjb25zdWx0YXIgY29uIHByb2Zlc2lvbmFsZXMgc2kgcGVyc2lzdGUuIiB9LAogICAgeyBxdWVzdGlvbjogIlx1MDBiZkN1XHUwMGUxbCBkZSBlc3RhcyBlcyB1bmEgc2VcdTAwZjFhbCBkZSBxdWUgdW4gcGVycm8gZXN0XHUwMGUxIHJlbGFqYWRvIHkgY1x1MDBmM21vZG8/Iiwgb3B0aW9uczogWyJDdWVycG8gdGVuc28geSBvcmVqYXMgaGFjaWEgYXRyXHUwMGUxcywgcXVlIGluZGljYW4gcXVlIGVzdFx1MDBlMSBjb25jZW50cmFkbyB5IGF0ZW50byBhIGN1YWxxdWllciBlc3RcdTAwZWRtdWxvIGRlbCBlbnRvcm5vIiwgIkNvbGEgZW50cmUgbGFzIHBhdGFzIHkgY3VlcnBvIGVuY29naWRvIiwgIkN1ZXJwbyBzdWVsdG8sIGJvY2EgZW50cmVhYmllcnRhLCBjb2xhIGVuIHBvc2ljaVx1MDBmM24gbmF0dXJhbCIsICJQdXBpbGFzIGRpbGF0YWRhcyB5IHBlbG8gZXJpemFkbyJdLCBjb3JyZWN0OiAyLCBleHBsYW5hdGlvbjogIlVuIHBlcnJvIHJlbGFqYWRvIG11ZXN0cmEgdW4gY3VlcnBvIHN1ZWx0byB5IHNpbiB0ZW5zaVx1MDBmM24sIGNvbiBsYSBjb2xhIGVuIHN1IHBvc2ljaVx1MDBmM24gbmF0dXJhbCAodmFyXHUwMGVkYSBzZWdcdTAwZmFuIGxhIHJhemEpLCBib2NhIGxpZ2VyYW1lbnRlIGFiaWVydGEgeSBleHByZXNpXHUwMGYzbiBmYWNpYWwgc3VhdmUuIEFwcmVuZGVyIGEgcmVjb25vY2VyIGN1XHUwMGUxbmRvIHR1IHBlcnJvIGVzdFx1MDBlMSBjXHUwMGYzbW9kbyBlcyB0YW4gaW1wb3J0YW50ZSBjb21vIGlkZW50aWZpY2FyIGN1XHUwMGUxbmRvIG5vIGxvIGVzdFx1MDBlMS4iIH0sCiAgICB7IHF1ZXN0aW9uOiAiXHUwMGJmQ29uIGN1XHUwMGUxbnRhcyBzZW1hbmFzIHNlIHJlY29taWVuZGEgY29tbyBtXHUwMGVkbmltbyBxdWUgdW4gY2FjaG9ycm8gZGVqZSBkZSBlc3RhciBjb24gc3UgbWFkcmUgeSBjYW1hZGE/Iiwgb3B0aW9uczogWyJDb24gNCBzZW1hbmFzIHlhIHB1ZWRlbiBzZXBhcmFyc2UiLCAiQSBwYXJ0aXIgZGUgbGFzIDggc2VtYW5hcyAoMiBtZXNlcykgY29tbyBtXHUwMGVkbmltbyIsICJDb24gMyBzZW1hbmFzIGVzIHN1ZmljaWVudGUiLCAiRGEgaWd1YWwgbGEgZWRhZCwgZGVwZW5kZSBkZWwgdGFtYVx1MDBmMW8iXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJMb3MgY2FjaG9ycm9zIG5lY2VzaXRhbiBhbCBtZW5vcyA4IHNlbWFuYXMgY29uIHN1IG1hZHJlIHkgaGVybWFub3MgcGFyYSBkZXNhcnJvbGxhciBoYWJpbGlkYWRlcyBzb2NpYWxlcyBmdW5kYW1lbnRhbGVzLCBhcHJlbmRlciBsYSBpbmhpYmljaVx1MDBmM24gZGUgbGEgbW9yZGlkYSB5IHJlZ3VsYXIgc3VzIGVtb2Npb25lcy4gU2VwYXJhcmxvcyBhbnRlcyBwdWVkZSBnZW5lcmFyIHByb2JsZW1hcyBkZSBjb21wb3J0YW1pZW50byBlbiBlbCBmdXR1cm8uIiB9LAogICAgeyBxdWVzdGlvbjogIlx1MDBiZlBvciBxdVx1MDBlOSB1biBwZXJybyBwdWVkZSBsYW1lcnRlIGxhIGNhcmE/Iiwgb3B0aW9uczogWyJTaWVtcHJlIGVzIHVuIGJlc28gZGUgYW1vciIsICJQdWVkZSBzZXIgYXBhY2lndWFtaWVudG8sIGJcdTAwZmFzcXVlZGEgZGUgYXRlbmNpXHUwMGYzbiwgZXhwbG9yYWNpXHUwMGYzbiBvIGluY2x1c28gZXN0clx1MDBlOXMiLCAiU1x1MDBmM2xvIGxvIGhhY2VuIGN1YW5kbyB0aWVuZW4gaGFtYnJlIiwgIkVzIHVuIHNpZ25vIGRlIHF1ZSBxdWllcmUgZG9taW5hciJdLCBjb3JyZWN0OiAxLCBleHBsYW5hdGlvbjogIkVsIGxhbWlkbyBmYWNpYWwgdGllbmUgbVx1MDBmYWx0aXBsZXMgc2lnbmlmaWNhZG9zLiBFbiBjYWNob3Jyb3MsIGVzIHVuYSBjb25kdWN0YSBpbnN0aW50aXZhIHBhcmEgcGVkaXIgYWxpbWVudG8uIEVuIGFkdWx0b3MsIHB1ZWRlIHNlciBhcGFjaWd1YW1pZW50bywgYlx1MDBmYXNxdWVkYSBkZSBhdGVuY2lcdTAwZjNuLCBleHBsb3JhY2lcdTAwZjNuIGRlbCBzYWJvciBkZSB0dSBwaWVsIG8gdW5hIGZvcm1hIGRlIGdlc3Rpb25hciBzdSBlc3RyXHUwMGU5cy4gRWwgY29udGV4dG8gbG8gZXMgdG9kby4iIH0sCiAgICB7IHF1ZXN0aW9uOiAiXHUwMGJmQ3VcdTAwZTFudGFzIHNlXHUwMGYxYWxlcyBkZSBjb211bmljYWNpXHUwMGYzbiBkaWZlcmVudGVzIHNlIGVzdGltYSBxdWUgdXNhbiBsb3MgcGVycm9zPyIsIG9wdGlvbnM6IFsiVW5hcyA1LTEwIHNlXHUwMGYxYWxlcyBiXHUwMGUxc2ljYXMiLCAiU1x1MDBmM2xvIGNvbXVuaWNhbiBjb24gbGEgY29sYSB5IGxvcyBsYWRyaWRvcyIsICJNXHUwMGUxcyBkZSAzMCBzZVx1MDBmMWFsZXMsIGluY2x1eWVuZG8gcG9zdHVyYXMsIGV4cHJlc2lvbmVzIGZhY2lhbGVzIHkgdm9jYWxpemFjaW9uZXMiLCAiTm8gdGllbmVuIHVuIHNpc3RlbWEgZGUgY29tdW5pY2FjaVx1MDBmM24gZXN0cnVjdHVyYWRvIl0sIGNvcnJlY3Q6IDIsIGV4cGxhbmF0aW9uOiAiTG9zIHBlcnJvcyBwb3NlZW4gdW4gcmVwZXJ0b3JpbyBkZSBjb211bmljYWNpXHUwMGYzbiBtdXkgcmljbzogc2VcdTAwZjFhbGVzIGRlIGNhbG1hLCBwb3N0dXJhcyBjb3Jwb3JhbGVzLCBleHByZXNpb25lcyBmYWNpYWxlcywgdm9jYWxpemFjaW9uZXMsIHBvc2ljaVx1MDBmM24gZGUgb3JlamFzLCBjb2xhIHkgcGVsby4gQXByZW5kZXIgYSBsZWVyIGVzdGFzIHNlXHUwMGYxYWxlcyB0cmFuc2Zvcm1hIGxhIHJlbGFjaVx1MDBmM24gY29uIHR1IHBlcnJvLiIgfQpdOwp2YXIgbWVkaXVtUG9vbCA9IFsKICAgIHsgcXVlc3Rpb246ICJFbiBlZHVjYWNpXHUwMGYzbiBjYW5pbmEsIFx1MDBiZnF1XHUwMGU5IGVzIGVsIFx1MDBhYnJlZnVlcnpvIHBvc2l0aXZvXHUwMGJiPyIsIG9wdGlvbnM6IFsiRGFybGUgY2h1Y2hlcyBhIHR1IHBlcnJvIHRvZG8gZWwgcmF0byBwYXJhIHF1ZSBlc3RcdTAwZTkgY29udGVudG8sIHNpbiBpbXBvcnRhciBlbCBtb21lbnRvIG5pIGxhIGNvbmR1Y3RhIHF1ZSBoYXlhIHJlYWxpemFkbyIsICJBXHUwMGYxYWRpciBhbGdvIHF1ZSBsZSBndXN0YSBhbCBwZXJybyBwYXJhIGF1bWVudGFyIGxhIHByb2JhYmlsaWRhZCBkZSBxdWUgcmVwaXRhIHVuYSBjb25kdWN0YSIsICJOdW5jYSBkZWNpcmxlIFx1MDBhYm5vXHUwMGJiIGEgdHUgcGVycm8iLCAiSGFibGFybGUgc2llbXByZSBjb24gdm96IGR1bGNlIHkgY2FyaVx1MDBmMW9zYSJdLCBjb3JyZWN0OiAxLCBleHBsYW5hdGlvbjogIkVsIHJlZnVlcnpvIHBvc2l0aXZvIChSKykgZXMgdW4gcHJpbmNpcGlvIGNpZW50XHUwMGVkZmljbyBkZWwgYXByZW5kaXphamU6IGN1YW5kbyBhXHUwMGYxYWRpbW9zIGFsZ28gYWdyYWRhYmxlIHRyYXMgdW5hIGNvbmR1Y3RhLCBlc2EgY29uZHVjdGEgc2UgZm9ydGFsZWNlLiBObyBzZSB0cmF0YSBzXHUwMGYzbG8gZGUgcHJlbWlvcyBkZSBjb21pZGE6IHB1ZWRlIHNlciBqdWVnbywgYXRlbmNpXHUwMGYzbiwgYWNjZXNvIGFsIGVudG9ybm8uLi4gXHUwMGExTG8gaW1wb3J0YW50ZSBlcyBjb25vY2VyIHF1XHUwMGU5IG1vdGl2YSBhIHR1IHBlcnJvISIgfSwKICAgIHsgcXVlc3Rpb246ICJUdSBwZXJybyBkZXN0cm96YSBjb3NhcyBjdWFuZG8gc2UgcXVlZGEgYSBzb2xhcyBlbiBjYXNhLiBcdTAwYmZDdVx1MDBlMWwgZXMgbGEgZXhwbGljYWNpXHUwMGYzbiBtXHUwMGUxcyBwcm9iYWJsZT8iLCBvcHRpb25zOiBbIlNlIGVzdFx1MDBlMSB2ZW5nYW5kbyBwb3JxdWUgbm8gbGUgZ3VzdGEgcXVlZGFyc2UgYSBzb2xhcyB5IGRlc3RydXllIGNvc2FzIGEgcHJvcFx1MDBmM3NpdG8gcGFyYSBjYXN0aWdhciBhIHN1IGZhbWlsaWEgaHVtYW5hIHBvciBoYWJlcmxlIGRlamFkbyIsICJFcyB1biBwZXJybyBkb21pbmFudGUgcXVlIHF1aWVyZSBjb250cm9sYXIgbGEgY2FzYSIsICJQdWVkZSBlc3RhciBleHBlcmltZW50YW5kbyBhbnNpZWRhZCBwb3Igc2VwYXJhY2lcdTAwZjNuLCBlc3RyXHUwMGU5cyBvIGZhbHRhIGRlIGVzdGltdWxhY2lcdTAwZjNuIiwgIk5lY2VzaXRhIHVuIGNhc3RpZ28gbVx1MDBlMXMgZmlybWUgcGFyYSBhcHJlbmRlciJdLCBjb3JyZWN0OiAyLCBleHBsYW5hdGlvbjogIkxvcyBwZXJyb3Mgbm8gc2UgdmVuZ2FuIG5pIGFjdFx1MDBmYWFuIHBvciByZW5jb3IgKGVzbyBlcyB1bmEgYXRyaWJ1Y2lcdTAwZjNuIGh1bWFuYSkuIExhIGRlc3RydWNjaVx1MDBmM24gZW4gc29sZWRhZCBzdWVsZSBpbmRpY2FyIGFuc2llZGFkIHBvciBzZXBhcmFjaVx1MDBmM24sIGFidXJyaW1pZW50byBvIGZhbHRhIGRlIGVqZXJjaWNpbyBtZW50YWwuIExhIHNvbHVjaVx1MDBmM24gcGFzYSBwb3IgdHJhYmFqYXIgbGEgZ2VzdGlcdTAwZjNuIGVtb2Npb25hbCwgbnVuY2EgcG9yIGVsIGNhc3RpZ28uIiB9LAogICAgeyBxdWVzdGlvbjogIlx1MDBiZkN1XHUwMGUxbnRvIGRlYmVyXHUwMGVkYSBkdXJhciB1bmEgc2VzaVx1MDBmM24gZGUgZW50cmVuYW1pZW50byBjb24gdHUgcGVycm8gYWR1bHRvIHBhcmEgc2VyIGVmZWN0aXZhPyIsIG9wdGlvbnM6IFsiTVx1MDBlZG5pbW8gMzAgbWludXRvcyBwYXJhIHF1ZSBhcHJlbmRhIGRlIHZlcmRhZCIsICJFbnRyZSA1IHkgMTAgbWludXRvcywgdmFyaWFzIHZlY2VzIGFsIGRcdTAwZWRhIHNpIHNlIHF1aWVyZSIsICJDdWFudG8gbVx1MDBlMXMgbGFyZ2EsIG1lam9yOiBhc1x1MDBlZCBzZSBjb25zb2xpZGEgZWwgYXByZW5kaXphamUiLCAiVW5hIGhvcmEgc2VndWlkYSwgY29uIGRlc2NhbnNvcyBkZSA1IG1pbnV0b3MiXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJcdTAwYTFNZW5vcyBlcyBtXHUwMGUxcyEgTGFzIHNlc2lvbmVzIGNvcnRhcyAoNS0xMCBtaW51dG9zKSBtYW50aWVuZW4gbGEgbW90aXZhY2lcdTAwZjNuIGFsdGEgeSBldml0YW4gbGEgZmF0aWdhIG1lbnRhbC4gVW4gcGVycm8gY2Fuc2FkbyBtZW50YWxtZW50ZSBubyBhcHJlbmRlLCBzZSBmcnVzdHJhLiBNZWpvciAzIHNlc2lvbmVzIGRlIDUgbWludXRvcyBxdWUgdW5hIGRlIDMwLiIgfSwKICAgIHsgcXVlc3Rpb246ICJUdSBwZXJybyBnaXJhIGxhIGNhYmV6YSwgc2UgbGFtZSBlbCBob2NpY28geSBtdWVzdHJhIGxhIFx1MDBhYm1lZGlhIGx1bmFcdTAwYmIgZGVsIG9qbyAoc2UgdmUgbGEgcGFydGUgYmxhbmNhKS4gXHUwMGJmUXVcdTAwZTkgZXN0XHUwMGUxIGNvbXVuaWNhbmRvPyIsIG9wdGlvbnM6IFsiRXN0XHUwMGUxIGp1Z2FuZG8geSBwaWRpZW5kbyBhdGVuY2lcdTAwZjNuIiwgIlRpZW5lIHN1ZVx1MDBmMW8geSBxdWllcmUgZG9ybWlyIiwgIkVzdFx1MDBlMSBpbmNcdTAwZjNtb2RvLCBlc3RyZXNhZG8gbyBwaWRpZW5kbyBlc3BhY2lvIiwgIkVzdFx1MDBlMSBvbGllbmRvIGFsZ28gaW50ZXJlc2FudGUiXSwgY29ycmVjdDogMiwgZXhwbGFuYXRpb246ICJMYSBcdTAwYWJ3aGFsZSBleWVcdTAwYmIgKG1lZGlhIGx1bmEgYmxhbmNhIGRlbCBvam8pLCBlbCBsYW1pZG8gZGUgaG9jaWNvIHkgZWwgZ2lybyBkZSBjYWJlemEgc29uIHNlXHUwMGYxYWxlcyBkZSBpbmNvbW9kaWRhZC4gU2kgdmVzIHZhcmlhcyBkZSBlc3RhcyBzZVx1MDBmMWFsZXMganVudGFzLCB0dSBwZXJybyB0ZSBlc3RcdTAwZTEgZGljaWVuZG8gXHUwMGFicG9yIGZhdm9yLCBuZWNlc2l0byBxdWUgZXN0YSBzaXR1YWNpXHUwMGYzbiBjYW1iaWVcdTAwYmIuIFx1MDBhMUVzY1x1MDBmYWNoYWxlISIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZRdVx1MDBlOSBlcyBlbCBcdTAwYWJlbnJpcXVlY2ltaWVudG8gYW1iaWVudGFsXHUwMGJiIHBhcmEgcGVycm9zPyIsIG9wdGlvbnM6IFsiQ29tcHJhcmxlIG11Y2hvcyBqdWd1ZXRlcyBjYXJvcyBkZSBsYXMgbWVqb3JlcyBtYXJjYXMgeSBjYW1iaWFybG9zIGNhZGEgc2VtYW5hIHBhcmEgcXVlIHNpZW1wcmUgdGVuZ2EgYWxnbyBudWV2byIsICJQcm9wb3JjaW9uYXJsZSBhY3RpdmlkYWRlcyBxdWUgZXN0aW11bGVuIHN1IG1lbnRlLCBvbGZhdG8geSBjb25kdWN0YXMgbmF0dXJhbGVzIiwgIkRlY29yYXIgc3UgZXNwYWNpbyBjb24gY29sb3JlcyBsbGFtYXRpdm9zIiwgIlRlbmVyIG11Y2hvcyBwZXJyb3MgcGFyYSBxdWUgc2UgaGFnYW4gY29tcGFcdTAwZjFcdTAwZWRhIl0sIGNvcnJlY3Q6IDEsIGV4cGxhbmF0aW9uOiAiRWwgZW5yaXF1ZWNpbWllbnRvIGFtYmllbnRhbCBidXNjYSBzYXRpc2ZhY2VyIGxhcyBuZWNlc2lkYWRlcyBjb2duaXRpdmFzIHkgc2Vuc29yaWFsZXMuIEluY2x1eWUganVlZ29zIGRlIG9sZmF0bywgbW9yZGVkb3JlcywganVndWV0ZXMgaW50ZXJhY3Rpdm9zLCBwYXNlb3MgdmFyaWFkb3MgeSBvcG9ydHVuaWRhZGVzIGRlIGV4cGxvcmFyLiBVbiBwZXJybyBtZW50YWxtZW50ZSBlc3RpbXVsYWRvIGVzIG1cdTAwZTFzIGVxdWlsaWJyYWRvIHkgbWVub3MgcHJvcGVuc28gYSBjb25kdWN0YXMgcHJvYmxlbVx1MDBlMXRpY2FzLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZRdVx1MDBlOSBlcyBsYSBcdTAwYWJlc2NhbGVyYSBkZSBsYSBhZ3Jlc2lcdTAwZjNuXHUwMGJiIGVuIHBlcnJvcz8iLCBvcHRpb25zOiBbIlVuIGVqZXJjaWNpbyBkZSBlbnRyZW5hbWllbnRvIHBhcmEgcGVycm9zIGFncmVzaXZvcyIsICJVbmEgc2VjdWVuY2lhIHByb2dyZXNpdmEgZGUgc2VcdTAwZjFhbGVzIHF1ZSB1biBwZXJybyBtdWVzdHJhIGFudGVzIGRlIG1vcmRlciwgZGVzZGUgbGFzIG1cdTAwZTFzIHN1dGlsZXMgaGFzdGEgbGFzIG1cdTAwZTFzIGludGVuc2FzIiwgIkxhIGplcmFycXVcdTAwZWRhIGVudHJlIHBlcnJvcyBkZSB1biBncnVwbyIsICJVbiB0aXBvIGRlIGp1ZWdvIGVudHJlIHBlcnJvcyJdLCBjb3JyZWN0OiAxLCBleHBsYW5hdGlvbjogIkxhIGVzY2FsZXJhIGRlIGxhIGFncmVzaVx1MDBmM24gbXVlc3RyYSBxdWUgYW50ZXMgZGUgbW9yZGVyLCB1biBwZXJybyBwYXNhIHBvciBtdWNoYXMgc2VcdTAwZjFhbGVzIHByZXZpYXM6IGRlc3ZpYXIgbGEgbWlyYWRhLCBsYW1lcnNlLCBnaXJhciBsYSBjYWJlemEsIHRlbnNhciBlbCBjdWVycG8sIGdydVx1MDBmMWlyLCBlbnNlXHUwMGYxYXIgZGllbnRlcy4uLiBFbCBtb3JkaXNjbyBlcyBzaWVtcHJlIGVsIFx1MDBmYWx0aW1vIHJlY3Vyc28uIFNpIGNhc3RpZ2Ftb3MgbGFzIHNlXHUwMGYxYWxlcyBwcmV2aWFzIChjb21vIGVsIGdydVx1MDBmMWlkbyksIGVsIHBlcnJvIHB1ZWRlIHNhbHRhciBkaXJlY3RhbWVudGUgYWwgbW9yZGlzY28uIiB9LAogICAgeyBxdWVzdGlvbjogIlVuIHBlcnJvIGdydVx1MDBmMWUgY3VhbmRvIHRlIGFjZXJjYXMgYSBzdSBjb21pZGEuIFx1MDBiZkN1XHUwMGUxbCBlcyBsYSByZXNwdWVzdGEgbVx1MDBlMXMgYWRlY3VhZGE/Iiwgb3B0aW9uczogWyJDYXN0aWdhcmxvIHBhcmEgcXVlIGFwcmVuZGEgcXVlIGVzbyBubyBzZSBoYWNlLCByaVx1MDBmMVx1MDBlOW5kb2xlIGNvbiBmaXJtZXphIGNhZGEgdmV6IHF1ZSBncnVcdTAwZjFhIGhhc3RhIHF1ZSBkZWplIGRlIGhhY2VybG8gcG9yIGNvbXBsZXRvIiwgIlF1aXRhcmxlIGxhIGNvbWlkYSBwYXJhIG1vc3RyYXIgcXVpXHUwMGU5biBtYW5kYSIsICJSZXNwZXRhciBsYSBzZVx1MDBmMWFsIHkgdHJhYmFqYXIgbGEgcHJvdGVjY2lcdTAwZjNuIGRlIHJlY3Vyc29zIGRlIGZvcm1hIGdyYWR1YWwgeSBwb3NpdGl2YSIsICJJZ25vcmFybG8gY29tcGxldGFtZW50ZSwgeWEgc2UgbGUgcGFzYXJcdTAwZTEiXSwgY29ycmVjdDogMiwgZXhwbGFuYXRpb246ICJFbCBncnVcdTAwZjFpZG8gZXMgY29tdW5pY2FjaVx1MDBmM24sIG5vIGRlc29iZWRpZW5jaWEuIENhc3RpZ2FyIGVsIGdydVx1MDBmMWlkbyBlcyBjb21vIHRhcGFyIGxhIGFsYXJtYSBkZSBpbmNlbmRpb3M6IGVsIHByb2JsZW1hIHNpZ3VlIGFoXHUwMGVkIHBlcm8gc2luIGF2aXNvIHByZXZpby4gTGEgcHJvdGVjY2lcdTAwZjNuIGRlIHJlY3Vyc29zIHNlIHRyYWJhamEgY29uIGNvbnRyYWNvbmRpY2lvbmFtaWVudG86IGFzb2NpYXIgdHUgcHJlc2VuY2lhIGNlcmNhIGRlIGxhIGNvbWlkYSBjb24gY29zYXMgYnVlbmFzLCBkZSBmb3JtYSBncmFkdWFsIHkgc2luIGZvcnphci4iIH0sCiAgICB7IHF1ZXN0aW9uOiAiXHUwMGJmQ3VcdTAwZTFsIGVzIGxhIHJlbGFjaVx1MDBmM24gZW50cmUgbWllZG8geSBhZ3Jlc2l2aWRhZCBlbiBwZXJyb3M/Iiwgb3B0aW9uczogWyJTb24gZW1vY2lvbmVzIHRvdGFsbWVudGUgaW5kZXBlbmRpZW50ZXMiLCAiRWwgbWllZG8gZXMgbGEgZW1vY2lcdTAwZjNuIHN1YnlhY2VudGUgZW4gbGEgZ3JhbiBtYXlvclx1MDBlZGEgZGUgY29uZHVjdGFzIHF1ZSBldGlxdWV0YW1vcyBjb21vIFx1MDBhYmFncmVzaXZpZGFkXHUwMGJiIiwgIlNvbiBsbyBtaXNtbyIsICJMYSBhZ3Jlc2l2aWRhZCBlcyBnZW5cdTAwZTl0aWNhIHkgZWwgbWllZG8gZXMgYXByZW5kaWRvIl0sIGNvcnJlY3Q6IDEsIGV4cGxhbmF0aW9uOiAiTGEgbWF5b3JcdTAwZWRhIGRlIGNvbmR1Y3RhcyBxdWUgc2UgZXRpcXVldGFuIGNvbW8gXHUwMGFiYWdyZXNpdmlkYWRcdTAwYmIgdGllbmVuIGVsIG1pZWRvIGNvbW8gcmFcdTAwZWR6LiBVbiBwZXJybyBxdWUgbXVlc3RyYSBsb3MgZGllbnRlcyBvIGxhZHJhIGEgb3Ryb3MgcGVycm9zIHN1ZWxlIGVzdGFyIGFzdXN0YWRvLCBubyBpbnRlbnRhbmRvIGRvbWluYXIuIEVudGVuZGVyIGVzdG8gY2FtYmlhIHJhZGljYWxtZW50ZSBlbCBlbmZvcXVlOiBlbiBsdWdhciBkZSBjYXN0aWdhciwgdHJhYmFqYW1vcyBsYSBzZWd1cmlkYWQgZW1vY2lvbmFsLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZQb3IgcXVcdTAwZTkgdW4gcGVycm8gcHVlZGUgdGlyYXIgZGUgbGEgY29ycmVhIGR1cmFudGUgZWwgcGFzZW8/Iiwgb3B0aW9uczogWyJQb3JxdWUgcXVpZXJlIGRvbWluYXIgeSBsaWRlcmFyIGxhIG1hbmFkYSBmYW1pbGlhciwgZGVtb3N0cmFuZG8gcXVlIFx1MDBlOWwgZGVjaWRlIGxhIGRpcmVjY2lcdTAwZjNuIHkgZWwgcml0bW8gZGVsIHBhc2VvIHBvciBlbmNpbWEgZGUgc3UgaHVtYW5vIiwgIlBvcnF1ZSBlbCBlbnRvcm5vIGVzIGVzdGltdWxhbnRlIHkgbm8gaGEgYXByZW5kaWRvIHF1ZSBjYW1pbmFyIHNpbiB0ZW5zaVx1MDBmM24gZXMgbVx1MDBlMXMgYmVuZWZpY2lvc28iLCAiUG9ycXVlIGVzIHVuIHBlcnJvIG1hbG8geSBkZXNvYmVkaWVudGUiLCAiUG9ycXVlIGxhIGNvcnJlYSBlcyBpbmNcdTAwZjNtb2RhIl0sIGNvcnJlY3Q6IDEsIGV4cGxhbmF0aW9uOiAiTG9zIHBlcnJvcyB0aXJhbiBkZSBsYSBjb3JyZWEgcG9ycXVlIGVsIG11bmRvIGV4dGVyaW9yIGVzIGZhc2NpbmFudGUgeSBjYW1pbmFyIGEgbnVlc3RybyByaXRtbyBubyBlcyBhbGdvIG5hdHVyYWwgcGFyYSBlbGxvcy4gTm8gZXMgdW4gaW50ZW50byBkZSBkb21pbmFjaVx1MDBmM24uIExhIHNvbHVjaVx1MDBmM24gcGFzYSBwb3IgZW5zZVx1MDBmMWFybGVzLCBjb24gcGFjaWVuY2lhIHkgcmVmdWVyem8gcG9zaXRpdm8sIHF1ZSBjYW1pbmFyIGNvbiBjYWxtYSB0cmFlIGJ1ZW5hcyBjb25zZWN1ZW5jaWFzLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZRdVx1MDBlOSBzb24gbGFzIFx1MDBhYmNvbmR1Y3RhcyBkZSBkZXNwbGF6YW1pZW50b1x1MDBiYiBlbiBwZXJyb3M/Iiwgb3B0aW9uczogWyJDdWFuZG8gdW4gcGVycm8gc2UgbXVldmUgZGUgdW4gbHVnYXIgYSBvdHJvIiwgIkNvbmR1Y3RhcyBub3JtYWxlcyBxdWUgYXBhcmVjZW4gZnVlcmEgZGUgY29udGV4dG8gY3VhbmRvIGVsIHBlcnJvIGV4cGVyaW1lbnRhIGNvbmZsaWN0byBlbW9jaW9uYWwiLCAiQ29uZHVjdGFzIHF1ZSBzXHUwMGYzbG8gYXBhcmVjZW4gZW4gcGVycm9zIGNvbiBwcm9ibGVtYXMgbWVudGFsZXMiLCAiTG9zIG1vdmltaWVudG9zIHF1ZSBoYWNlIHVuIHBlcnJvIGFsIGp1Z2FyIl0sIGNvcnJlY3Q6IDEsIGV4cGxhbmF0aW9uOiAiTGFzIGNvbmR1Y3RhcyBkZSBkZXNwbGF6YW1pZW50byBzb24gY29tcG9ydGFtaWVudG9zIG5vcm1hbGVzIHF1ZSBhcGFyZWNlbiBmdWVyYSBkZSBjb250ZXh0bzogcmFzY2Fyc2Ugc2luIHBpY29yLCBib3N0ZXphciBzaW4gc3VlXHUwMGYxbywgb2xmYXRlYXIgZWwgc3VlbG8gc2luIG1vdGl2byBhcGFyZW50ZS4uLiBTdXJnZW4gY3VhbmRvIGVsIHBlcnJvIGVzdFx1MDBlMSBlbiBjb25mbGljdG8gZW50cmUgZG9zIG1vdGl2YWNpb25lcyBvIGV4cGVyaW1lbnRhIGVzdHJcdTAwZTlzLiBSZWNvbm9jZXJsYXMgYXl1ZGEgYSBlbnRlbmRlciBxdVx1MDBlOSBzaWVudGUgdHUgcGVycm8gZW4gY2FkYSBtb21lbnRvLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZDXHUwMGYzbW8gYWZlY3RhIGVsIGVzdHJcdTAwZTlzIGNyXHUwMGYzbmljbyBhIGxhIHNhbHVkIGRlIHVuIHBlcnJvPyIsIG9wdGlvbnM6IFsiTm8gbGUgYWZlY3RhLCBsb3MgcGVycm9zIG5vIHNlIGVzdHJlc2FuIiwgIlNcdTAwZjNsbyBhZmVjdGEgYSBzdSBjb21wb3J0YW1pZW50bywgbm8gYSBzdSBzYWx1ZCBmXHUwMGVkc2ljYSIsICJQdWVkZSBjYXVzYXIgcHJvYmxlbWFzIGRpZ2VzdGl2b3MsIGRlcm1hdG9sXHUwMGYzZ2ljb3MsIGlubXVub2xcdTAwZjNnaWNvcyB5IGRlIGNvbXBvcnRhbWllbnRvIiwgIlNcdTAwZjNsbyBhZmVjdGEgYSBwZXJyb3MgZGUgcmF6YXMgcGVxdWVcdTAwZjFhcyJdLCBjb3JyZWN0OiAyLCBleHBsYW5hdGlvbjogIkVsIGVzdHJcdTAwZTlzIGNyXHUwMGYzbmljbyBlbGV2YSBsb3Mgbml2ZWxlcyBkZSBjb3J0aXNvbCBkZSBmb3JtYSBzb3N0ZW5pZGEsIGxvIHF1ZSBwdWVkZSBwcm92b2NhciBwcm9ibGVtYXMgZ2FzdHJvaW50ZXN0aW5hbGVzLCBkZXJtYXRpdGlzLCBiYWphZGEgZGUgZGVmZW5zYXMsIGFsdGVyYWNpb25lcyBkZWwgc3VlXHUwMGYxbyB5IGNvbmR1Y3RhcyBjb21wdWxzaXZhcy4gRWwgYmllbmVzdGFyIGVtb2Npb25hbCBkZSB0dSBwZXJybyBlc3RcdTAwZTEgZGlyZWN0YW1lbnRlIGNvbmVjdGFkbyBjb24gc3Ugc2FsdWQgZlx1MDBlZHNpY2EuIiB9LAogICAgeyBxdWVzdGlvbjogIlx1MDBiZlF1XHUwMGU5IHNpZ25pZmljYSBxdWUgdW4gcGVycm8gdGVuZ2EgbGEgY29sYSBtdXkgYWx0YSB5IHJcdTAwZWRnaWRhIG1pZW50cmFzIHNlIGFjZXJjYSBhIG90cm8gcGVycm8/Iiwgb3B0aW9uczogWyJFc3RcdTAwZTEgbXV5IGNvbnRlbnRvIHkgZW1vY2lvbmFkbyBwb3JxdWUgaGEgZW5jb250cmFkbyB1biBudWV2byBhbWlnbyBjb24gZWwgcXVlIHF1aWVyZSBqdWdhciBpbm1lZGlhdGFtZW50ZSIsICJFcyB1bmEgc2VcdTAwZjFhbCBkZSBhbGVydGE6IGFsdGEgYWN0aXZhY2lcdTAwZjNuIHF1ZSBwdWVkZSBpbmRpY2FyIHRlbnNpXHUwMGYzbiIsICJRdWllcmUganVnYXIiLCAiRXN0XHUwMGUxIHNhbHVkYW5kbyBlZHVjYWRhbWVudGUiXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJVbmEgY29sYSBhbHRhIHkgclx1MDBlZGdpZGEgaW5kaWNhIHVuIGVzdGFkbyBkZSBhbHRhIGFjdGl2YWNpXHUwMGYzbiBlbW9jaW9uYWwsIHF1ZSBwdWVkZSBkZXJpdmFyIGVuIHRlbnNpXHUwMGYzbi4gQSBkaWZlcmVuY2lhIGRlbCBtb3ZpbWllbnRvIGFtcGxpbyB5IHN1ZWx0byBxdWUgaW5kaWNhIGFsZWdyXHUwMGVkYSwgbGEgcmlnaWRleiBpbmRpY2EgcXVlIGVsIHBlcnJvIGVzdFx1MDBlMSBldmFsdWFuZG8gbGEgc2l0dWFjaVx1MDBmM24gY29uIGludGVuc2lkYWQuIEVzIGltcG9ydGFudGUgb2JzZXJ2YXIgZWwgcmVzdG8gZGVsIGN1ZXJwbyBwYXJhIGludGVycHJldGFyIGNvcnJlY3RhbWVudGUuIiB9LAogICAgeyBxdWVzdGlvbjogIlx1MDBiZlF1XHUwMGU5IGltcG9ydGFuY2lhIHRpZW5lIGxhIHJ1dGluYSBwYXJhIHVuIHBlcnJvPyIsIG9wdGlvbnM6IFsiTm8gdGllbmUgbmluZ3VuYSBpbXBvcnRhbmNpYSwgbG9zIHBlcnJvcyBzZSBhZGFwdGFuIGEgdG9kbyIsICJQcm9wb3JjaW9uYSBwcmV2aXNpYmlsaWRhZCB5IHNlZ3VyaWRhZCBlbW9jaW9uYWwsIHJlZHVjaWVuZG8gZWwgZXN0clx1MDBlOXMiLCAiU1x1MDBmM2xvIGltcG9ydGEgcGFyYSBsb3MgaG9yYXJpb3MgZGUgY29taWRhIiwgIkRlbWFzaWFkYSBydXRpbmEgYWJ1cnJlIGEgbG9zIHBlcnJvcyJdLCBjb3JyZWN0OiAxLCBleHBsYW5hdGlvbjogIkxhIHByZXZpc2liaWxpZGFkIGVzIHVuYSBuZWNlc2lkYWQgZW1vY2lvbmFsIGJcdTAwZTFzaWNhLiBTYWJlciBjdVx1MDBlMW5kbyB2YW4gYSBwYXNlYXIsIGNvbWVyIHkgZGVzY2Fuc2FyIHJlZHVjZSBsYSBhbnNpZWRhZCB5IHBlcm1pdGUgZ2VzdGlvbmFyIG1lam9yIGxhIGVuZXJnXHUwMGVkYSBlbW9jaW9uYWwuIEVzdG8gbm8gc2lnbmlmaWNhIHF1ZSB0b2RvIGRlYmEgc2VyIGlkXHUwMGU5bnRpY28sIHNpbm8gcXVlIGV4aXN0YSB1bmEgZXN0cnVjdHVyYSBxdWUgZFx1MDBlOSBzZWd1cmlkYWQuIiB9LAogICAgeyBxdWVzdGlvbjogIlx1MDBiZkN1XHUwMGUxbCBkZSBlc3RhcyBoZXJyYW1pZW50YXMgZXMgaW5jb21wYXRpYmxlIGNvbiBsYSBlZHVjYWNpXHUwMGYzbiBjYW5pbmEgZW4gcG9zaXRpdm8/Iiwgb3B0aW9uczogWyJBcm5cdTAwZTlzIGFudGktdGlyb25lcyIsICJDb2xsYXIgZGUgYWhvcnF1ZSBvIGRlIHBpbmNob3MiLCAiQ2xpY2tlciIsICJDb3JyZWEgbGFyZ2EgZGUgNSBtZXRyb3MiXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJMb3MgY29sbGFyZXMgZGUgYWhvcnF1ZSB5IGRlIHBpbmNob3MgZnVuY2lvbmFuIG1lZGlhbnRlIGRvbG9yIHkgbWllZG8sIGxvIHF1ZSBnZW5lcmEgZXN0clx1MDBlOXMsIGRhXHUwMGYxYSBsYSByZWxhY2lcdTAwZjNuIGNvbiBlbCBwZXJybyB5IHB1ZWRlIGNhdXNhciBsZXNpb25lcyBmXHUwMGVkc2ljYXMgKHRyXHUwMGUxcXVlYSwgdGlyb2lkZXMsIHZcdTAwZTlydGVicmFzIGNlcnZpY2FsZXMpLiBMYSBlZHVjYWNpXHUwMGYzbiBlbiBwb3NpdGl2byB1dGlsaXphIGhlcnJhbWllbnRhcyByZXNwZXR1b3NhcyBjb21vIGFyblx1MDBlOXNlcywgY2xpY2tlcnMgeSBjb3JyZWFzIHF1ZSBwZXJtaXRlbiBsaWJlcnRhZCBkZSBtb3ZpbWllbnRvLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZRdVx1MDBlOSBwYXBlbCB0aWVuZSBlbCBqdWVnbyBlbiBsYSByZWxhY2lcdTAwZjNuIGVudHJlIHVuIHBlcnJvIHkgc3UgZmFtaWxpYSBodW1hbmE/Iiwgb3B0aW9uczogWyJTXHUwMGYzbG8gc2lydmUgcGFyYSBxdWUgZWwgcGVycm8gc2UgY2Fuc2UiLCAiRXMgdW4gcGlsYXIgZnVuZGFtZW50YWwgcXVlIGZvcnRhbGVjZSBlbCB2XHUwMGVkbmN1bG8sIHBlcm1pdGUgYXByZW5kaXphamUgeSBtZWpvcmEgZWwgYmllbmVzdGFyIGVtb2Npb25hbCIsICJIYXkgcXVlIGxpbWl0YXJsbyBwb3JxdWUgc2kgbm8gZWwgcGVycm8gc2UgdnVlbHZlIGhpcGVyYWN0aXZvIiwgIlNcdTAwZjNsbyBlcyBpbXBvcnRhbnRlIGVuIGNhY2hvcnJvcyJdLCBjb3JyZWN0OiAxLCBleHBsYW5hdGlvbjogIkVsIGp1ZWdvIGVzIG11Y2hvIG1cdTAwZTFzIHF1ZSBkaXZlcnNpXHUwMGYzbjogZm9ydGFsZWNlIGVsIHZcdTAwZWRuY3VsbywgcGVybWl0ZSBwcmFjdGljYXIgY29uZHVjdGFzIHNvY2lhbGVzLCBsaWJlcmEgZW5kb3JmaW5hcywgbWVqb3JhIGxhIGNvbmZpYW56YSB5IGVzIHVuYSBoZXJyYW1pZW50YSBlZHVjYXRpdmEgZXh0cmFvcmRpbmFyaWEuIFVuIHBlcnJvIHF1ZSBqdWVnYSBjb24gc3UgZmFtaWxpYSBodW1hbmEgZXMgdW4gcGVycm8gY29uIG1lam9yIHNhbHVkIGVtb2Npb25hbC4iIH0KXTsKdmFyIGhhcmRQb29sID0gWwogICAgeyBxdWVzdGlvbjogIlNlZ1x1MDBmYW4gbGEgZXRvbG9nXHUwMGVkYSBtb2Rlcm5hLCBlbCBjb25jZXB0byBkZSBcdTAwYWJwZXJybyBhbGZhXHUwMGJiIG8gXHUwMGFiZG9taW5hbmNpYVx1MDBiYiBlbnRyZSBwZXJyb3MgZG9tXHUwMGU5c3RpY29zIHkgaHVtYW5vcyBlczoiLCBvcHRpb25zOiBbIlRvdGFsbWVudGUgdlx1MDBlMWxpZG8geSBkZW1vc3RyYWRvIGNpZW50XHUwMGVkZmljYW1lbnRlIHBvciBkXHUwMGU5Y2FkYXMgZGUgaW52ZXN0aWdhY2lcdTAwZjNuIGNvbiBsb2JvcyBzYWx2YWplcyB5IHBlcnJvcyBkb21cdTAwZTlzdGljb3MgcXVlIGNvbmZpcm1hbiBsYSBqZXJhcnF1XHUwMGVkYSBhbGZhIiwgIlVuIGNvbmNlcHRvIG9ic29sZXRvLCBiYXNhZG8gZW4gZXN0dWRpb3MgYW50aWd1b3MgY29uIGxvYm9zIGVuIGNhdXRpdmlkYWQgcXVlIGxhIGNpZW5jaWEgYWN0dWFsIGhhIGRlc2NhcnRhZG8iLCAiVlx1MDBlMWxpZG8gc1x1MDBmM2xvIHBhcmEgY2llcnRhcyByYXphcyBncmFuZGVzIiwgIkNvcnJlY3RvIHBlcm8gc1x1MDBmM2xvIHNlIGFwbGljYSBjdWFuZG8gaGF5IHZhcmlvcyBwZXJyb3MgZW4gY2FzYSJdLCBjb3JyZWN0OiAxLCBleHBsYW5hdGlvbjogIkxhIFx1MDBhYnRlb3JcdTAwZWRhIGRlIGxhIGRvbWluYW5jaWFcdTAwYmIgc2UgYmFzXHUwMGYzIGVuIGVzdHVkaW9zIGRlIGxvcyBhXHUwMGYxb3MgNDAgY29uIGxvYm9zIGNhdXRpdm9zIChubyBlbXBhcmVudGFkb3MsIGVuIGNvbmRpY2lvbmVzIGFydGlmaWNpYWxlcykuIEVsIHByb3BpbyBhdXRvciwgRGF2aWQgTWVjaCwgbGEgcmV0cmFjdFx1MDBmMy4gTG9zIHBlcnJvcyBkb21cdTAwZTlzdGljb3Mgbm8gYnVzY2FuIFx1MDBhYnNlciBhbGZhXHUwMGJiIHNvYnJlIGxvcyBodW1hbm9zLiBMYSBjaWVuY2lhIGFjdHVhbCB0cmFiYWphIGRlc2RlIGxhIGNvb3BlcmFjaVx1MDBmM24sIG5vIGRlc2RlIGxhIGplcmFycXVcdTAwZWRhLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZRdVx1MDBlOSBlcyBsYSBcdTAwYWJpbmRlZmVuc2lcdTAwZjNuIGFwcmVuZGlkYVx1MDBiYiAobGVhcm5lZCBoZWxwbGVzc25lc3MpIGVuIGVsIGNvbnRleHRvIGRlbCBhZGllc3RyYW1pZW50byBjYW5pbm8/Iiwgb3B0aW9uczogWyJDdWFuZG8gdW4gcGVycm8gYXByZW5kZSBhIHBlZGlyIGF5dWRhIGEgc3UgaHVtYW5vIiwgIkN1YW5kbyB1biBwZXJybyBkZWphIGRlIGludGVudGFyIGNvc2FzIHBvcnF1ZSBoYSBhcHJlbmRpZG8gcXVlIG5hZGEgZGUgbG8gcXVlIGhhZ2EgY2FtYmlhIGVsIHJlc3VsdGFkbyAoc3VlbGUgb2N1cnJpciBjb24gZWwgdXNvIGRlIGNhc3RpZ28pIiwgIlVuYSB0XHUwMGU5Y25pY2EgcGFyYSBlbnNlXHUwMGYxYXIgYWwgcGVycm8gYSBkZXBlbmRlciBkZSBub3NvdHJvcyIsICJDdWFuZG8gdW4gcGVycm8gbnVldm8gbm8gc2FiZSBoYWNlciBuYWRhIHkgbmVjZXNpdGEgYXByZW5kZXIgZGVzZGUgY2VybyJdLCBjb3JyZWN0OiAxLCBleHBsYW5hdGlvbjogIkxhIGluZGVmZW5zaVx1MDBmM24gYXByZW5kaWRhIGVzIHVubyBkZSBsb3MgZWZlY3RvcyBtXHUwMGUxcyBncmF2ZXMgZGVsIHVzbyBzaXN0ZW1cdTAwZTF0aWNvIGRlbCBjYXN0aWdvIG8gZGUgaGVycmFtaWVudGFzIGF2ZXJzaXZhcy4gRWwgcGVycm8gXHUwMGFic2UgYXBhZ2FcdTAwYmIsIGRlamEgZGUgb2ZyZWNlciBjb25kdWN0YXMgeSBwYXJlY2UgXHUwMGFib2JlZGllbnRlXHUwMGJiLCBwZXJvIGVuIHJlYWxpZGFkIGhhIHBlcmRpZG8gbGEgY2FwYWNpZGFkIGRlIGFjdHVhciBwb3IgbWllZG8uIEVzIGxvIG9wdWVzdG8gYSB1biBwZXJybyBlbW9jaW9uYWxtZW50ZSBzYW5vLiIgfSwKICAgIHsgcXVlc3Rpb246ICJMYSB0ZW9yXHUwMGVkYSBkZSBsYXMgXHUwMGFic2VcdTAwZjFhbGVzIGRlIGNhbG1hXHUwMGJiIGVuIHBlcnJvcyBmdWUgc2lzdGVtYXRpemFkYSBwb3I6Iiwgb3B0aW9uczogWyJDXHUwMGU5c2FyIE1pbGxcdTAwZTFuIiwgIlR1cmlkIFJ1Z2FhcyIsICJLYXJlbiBQcnlvciIsICJLb25yYWQgTG9yZW56Il0sIGNvcnJlY3Q6IDEsIGV4cGxhbmF0aW9uOiAiVHVyaWQgUnVnYWFzLCBlZHVjYWRvcmEgY2FuaW5hIG5vcnVlZ2EsIGlkZW50aWZpY1x1MDBmMyB5IHNpc3RlbWF0aXpcdTAwZjMgdW5hcyAzMCBzZVx1MDBmMWFsZXMgZGUgY29tdW5pY2FjaVx1MDBmM24gcXVlIGxvcyBwZXJyb3MgdXNhbiBwYXJhIGNhbG1hcnNlIGEgc1x1MDBlZCBtaXNtb3MgeSBhIG90cm9zLiBTdSBsaWJybyBcdTAwYWJFbCBsZW5ndWFqZSBkZSBsb3MgcGVycm9zOiBsYXMgc2VcdTAwZjFhbGVzIGRlIGNhbG1hXHUwMGJiIGVzIHVuIGNsXHUwMGUxc2ljby4gS2FyZW4gUHJ5b3IgZnVlIHBpb25lcmEgZGVsIGNsaWNrZXIgdHJhaW5pbmcgeSBLb25yYWQgTG9yZW56IGZ1ZSBldFx1MDBmM2xvZ28gZnVuZGFjaW9uYWwsIHBlcm8gbGFzIHNlXHUwMGYxYWxlcyBkZSBjYWxtYSBzb24gZGUgUnVnYWFzLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZDdVx1MDBlMWwgZXMgZWwgcGVyXHUwMGVkb2RvIGNyXHUwMGVkdGljbyBkZSBzb2NpYWxpemFjaVx1MDBmM24gZW4gY2FjaG9ycm9zPyIsIG9wdGlvbnM6IFsiTG9zIHByaW1lcm9zIDYgbWVzZXMgZGUgdmlkYSwgZHVyYW50ZSBsb3MgY3VhbGVzIGhheSBxdWUgZXhwb25lcmxlIGFsIG1heW9yIG5cdTAwZmFtZXJvIHBvc2libGUgZGUgZXN0XHUwMGVkbXVsb3Mgc2luIGltcG9ydGFyIGxhIGludGVuc2lkYWQiLCAiQXByb3hpbWFkYW1lbnRlIGVudHJlIGxhcyAzIHkgbGFzIDE2IHNlbWFuYXMgZGUgdmlkYSIsICJUb2RvIGVsIHByaW1lciBhXHUwMGYxbyBkZSB2aWRhIiwgIkVudHJlIGxvcyA2IHkgbG9zIDEyIG1lc2VzIl0sIGNvcnJlY3Q6IDEsIGV4cGxhbmF0aW9uOiAiRW50cmUgbGFzIDMgeSBsYXMgMTYgc2VtYW5hcyAoYXByb3guKSBzZSBhYnJlIHVuYSBcdTAwYWJ2ZW50YW5hXHUwMGJiIGRvbmRlIGVsIGNhY2hvcnJvIGVzdFx1MDBlMSBlc3BlY2lhbG1lbnRlIHJlY2VwdGl2byBhIGVzdFx1MDBlZG11bG9zIG51ZXZvcy4gTGFzIGV4cGVyaWVuY2lhcyBwb3NpdGl2YXMgZW4gZXN0ZSBwZXJcdTAwZWRvZG8gc29uIGNydWNpYWxlcyBwYXJhIHVuIHBlcnJvIGFkdWx0byBlcXVpbGlicmFkby4gU29jaWFsaXphciBubyBlcyBcdTAwYWJleHBvbmVybG8gYSB0b2RvXHUwMGJiLCBzaW5vIHByZXNlbnRhcmxlIGVsIG11bmRvIGRlIGZvcm1hIGdyYWR1YWwsIHNlZ3VyYSB5IHBvc2l0aXZhLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZRdVx1MDBlOSBlcyBlbCBcdTAwYWJ1bWJyYWwgZGUgcmVhY3RpdmlkYWRcdTAwYmIgZW4gdW4gcGVycm8/Iiwgb3B0aW9uczogWyJMYSBkaXN0YW5jaWEgbVx1MDBlMXhpbWEgYSBsYSBxdWUgcHVlZGUgdmVyIGEgb3RybyBwZXJybyIsICJFbCBwdW50byBhIHBhcnRpciBkZWwgY3VhbCBlbCBuaXZlbCBkZSBlc3RyXHUwMGU5cyBlcyB0YW4gYWx0byBxdWUgeWEgbm8gcHVlZGUgcHJvY2VzYXIgaW5mb3JtYWNpXHUwMGYzbiBuaSBhcHJlbmRlciIsICJFbCBuaXZlbCBkZSBydWlkbyBxdWUgdW4gcGVycm8gcHVlZGUgdG9sZXJhciIsICJMYSBjYW50aWRhZCBkZSBjb21pZGEgbmVjZXNhcmlhIHBhcmEgbW90aXZhciBhIHVuIHBlcnJvIl0sIGNvcnJlY3Q6IDEsIGV4cGxhbmF0aW9uOiAiRWwgdW1icmFsIGRlIHJlYWN0aXZpZGFkIGVzIHVuIGNvbmNlcHRvIGNsYXZlIGVuIG1vZGlmaWNhY2lcdTAwZjNuIGRlIGNvbmR1Y3RhLiBDdWFuZG8gdW4gcGVycm8gc3VwZXJhIHN1IHVtYnJhbCwgZW50cmEgZW4gbW9kbyByZWFjdGl2byAobGFkcmFyLCB0aXJhciwgaHVpcikgeSBlcyBpbmNhcGF6IGRlIGFwcmVuZGVyIG8gcmVzcG9uZGVyIGEgaW5kaWNhY2lvbmVzLiBTaWVtcHJlIGRlYmVtb3MgdHJhYmFqYXIgcG9yIGRlYmFqbyBkZWwgdW1icmFsIHBhcmEgcXVlIGVsIGFwcmVuZGl6YWplIHNlYSBlZmVjdGl2by4iIH0sCiAgICB7IHF1ZXN0aW9uOiAiXHUwMGJmQ3VcdTAwZTFsIGVzIGxhIGRpZmVyZW5jaWEgZW50cmUgY2FzdGlnbyBwb3NpdGl2byB5IGNhc3RpZ28gbmVnYXRpdm8gZW4gdFx1MDBlOXJtaW5vcyBkZSBhcHJlbmRpemFqZT8iLCBvcHRpb25zOiBbIlBvc2l0aXZvID0gYnVlbm8geSBiZW5lZmljaW9zbyBwYXJhIGVsIHBlcnJvIHBvcnF1ZSBsZSBnZW5lcmEgZW1vY2lvbmVzIGFncmFkYWJsZXM7IG5lZ2F0aXZvID0gbWFsbyB5IHBlcmp1ZGljaWFsIHBvcnF1ZSBsZSBnZW5lcmEgZW1vY2lvbmVzIGRlc2FncmFkYWJsZXMgeSBkYVx1MDBmMWEgZWwgdlx1MDBlZG5jdWxvIiwgIlBvc2l0aXZvID0gYVx1MDBmMWFkaXIgYWxnbyBkZXNhZ3JhZGFibGUgcGFyYSByZWR1Y2lyIHVuYSBjb25kdWN0YTsgbmVnYXRpdm8gPSByZXRpcmFyIGFsZ28gYWdyYWRhYmxlIHBhcmEgcmVkdWNpciB1bmEgY29uZHVjdGEiLCAiTm8gaGF5IGRpZmVyZW5jaWEsIGFtYm9zIHNvbiBsbyBtaXNtbyIsICJQb3NpdGl2byA9IHByZW1pYXI7IG5lZ2F0aXZvID0gaWdub3JhciJdLCBjb3JyZWN0OiAxLCBleHBsYW5hdGlvbjogIkVuIGxhIGNpZW5jaWEgZGVsIGFwcmVuZGl6YWplLCBcdTAwYWJwb3NpdGl2b1x1MDBiYiB5IFx1MDBhYm5lZ2F0aXZvXHUwMGJiIG5vIHNpZ25pZmljYW4gYnVlbm8gbyBtYWxvLCBzaW5vIFx1MDBhYmFcdTAwZjFhZGlyXHUwMGJiIHkgXHUwMGFicmV0aXJhclx1MDBiYi4gRWwgY2FzdGlnbyBwb3NpdGl2byBhXHUwMGYxYWRlIGFsZ28gYXZlcnNpdm8gKHVuIHRpclx1MDBmM24gZGUgY29ycmVhKS4gRWwgY2FzdGlnbyBuZWdhdGl2byByZXRpcmEgYWxnbyBkZXNlYWJsZSAoYXBhcnRhciBsYSBhdGVuY2lcdTAwZjNuIGN1YW5kbyBzYWx0YSkuIEFtYm9zIHJlZHVjZW4gY29uZHVjdGFzLCBwZXJvIHN1IGltcGFjdG8gZW1vY2lvbmFsIGVzIG11eSBkaWZlcmVudGUuIiB9LAogICAgeyBxdWVzdGlvbjogIlx1MDBiZlF1XHUwMGU5IHNvbiBsYXMgXHUwMGFiNSBsaWJlcnRhZGVzIGRlbCBiaWVuZXN0YXIgYW5pbWFsXHUwMGJiPyIsIG9wdGlvbnM6IFsiTG9zIDUgcGFzZW9zIGRpYXJpb3MgZGUgYWwgbWVub3MgMzAgbWludXRvcyBjYWRhIHVubyBxdWUgbmVjZXNpdGEgdW4gcGVycm8gcGFyYSBjdWJyaXIgc3VzIG5lY2VzaWRhZGVzIGZcdTAwZWRzaWNhcywgZW1vY2lvbmFsZXMsIHNvY2lhbGVzLCBjb2duaXRpdmFzIHkgZGUgZXhwbG9yYWNpXHUwMGYzbiBzZWdcdTAwZmFuIGxhIG5vcm1hdGl2YSBldXJvcGVhIGRlIGJpZW5lc3RhciBhbmltYWwiLCAiVW4gbWFyY28gXHUwMGU5dGljbyBxdWUgaW5jbHV5ZTogbGliZXJ0YWQgZGUgaGFtYnJlIHkgc2VkLCBkZSBpbmNvbW9kaWRhZCwgZGUgZG9sb3IgeSBlbmZlcm1lZGFkLCBkZSBtaWVkbyB5IGFuZ3VzdGlhLCB5IHBhcmEgZXhwcmVzYXIgY29tcG9ydGFtaWVudG8gbmF0dXJhbCIsICJMb3MgNSB0aXBvcyBkZSBqdWVnb3MgcXVlIG5lY2VzaXRhIHVuIHBlcnJvIiwgIkxvcyA1IHNlbnRpZG9zIHF1ZSB1c2FuIGxvcyBwZXJyb3MiXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJMYXMgNSBsaWJlcnRhZGVzIGZ1ZXJvbiBlc3RhYmxlY2lkYXMgcG9yIGVsIEZhcm0gQW5pbWFsIFdlbGZhcmUgQ291bmNpbCBlbiAxOTc5IHkgc29uIGVsIGVzdFx1MDBlMW5kYXIgbVx1MDBlZG5pbW8gZGUgYmllbmVzdGFyIGFuaW1hbCBtdW5kaWFsbWVudGUgcmVjb25vY2lkby4gQXBsaWNhZGFzIGEgcGVycm9zLCBpbXBsaWNhbiBubyBzXHUwMGYzbG8gY3VicmlyIG5lY2VzaWRhZGVzIGZcdTAwZWRzaWNhcywgc2lubyB0YW1iaVx1MDBlOW4gZW1vY2lvbmFsZXMgeSBkZSBjb21wb3J0YW1pZW50by4gU29uIGxhIGJhc2UgZGUgY3VhbHF1aWVyIGVuZm9xdWUgXHUwMGU5dGljbyBlbiBlZHVjYWNpXHUwMGYzbiBjYW5pbmEuIiB9LAogICAgeyBxdWVzdGlvbjogIlx1MDBiZlF1XHUwMGU5IG5ldXJvdHJhbnNtaXNvciBwcmluY2lwYWwgc2UgbGliZXJhIGVuIGVsIGNlcmVicm8gZGVsIHBlcnJvIGN1YW5kbyBleHBlcmltZW50YSB1bmEgcmVjb21wZW5zYT8iLCBvcHRpb25zOiBbIkFkcmVuYWxpbmEiLCAiQ29ydGlzb2wiLCAiRG9wYW1pbmEiLCAiTWVsYXRvbmluYSJdLCBjb3JyZWN0OiAyLCBleHBsYW5hdGlvbjogIkxhIGRvcGFtaW5hIGVzIGVsIG5ldXJvdHJhbnNtaXNvciBkZWwgXHUwMGFicXVlcmVyIG1cdTAwZTFzXHUwMGJiLiBDdWFuZG8gdW4gcGVycm8gcmVjaWJlIHVuIHJlZnVlcnpvIChjb21pZGEsIGp1ZWdvLCBhdGVuY2lcdTAwZjNuKSwgc3UgY2VyZWJybyBsaWJlcmEgZG9wYW1pbmEsIGNyZWFuZG8gdW5hIGFzb2NpYWNpXHUwMGYzbiBwb3NpdGl2YSBjb24gbGEgY29uZHVjdGEgcXVlIGFjYWJhIGRlIHJlYWxpemFyLiBFc3RlIGVzIGVsIG1lY2FuaXNtbyBuZXVyb2xcdTAwZjNnaWNvIHF1ZSBoYWNlIHF1ZSBlbCByZWZ1ZXJ6byBwb3NpdGl2byBzZWEgdGFuIGVmZWN0aXZvLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZRdVx1MDBlOSBkaWZlcmVuY2lhIGhheSBlbnRyZSBoYWJpdHVhY2lcdTAwZjNuIHkgc2Vuc2liaWxpemFjaVx1MDBmM24/Iiwgb3B0aW9uczogWyJTb24gbG8gbWlzbW8gcGVybyBjb24gbm9tYnJlcyBkaWZlcmVudGVzIiwgIkhhYml0dWFjaVx1MDBmM24gZXMgZGVqYXIgZGUgcmVhY2Npb25hciBhIHVuIGVzdFx1MDBlZG11bG8gcmVwZXRpZG87IHNlbnNpYmlsaXphY2lcdTAwZjNuIGVzIGxvIG9wdWVzdG8sIGNhZGEgZXhwb3NpY2lcdTAwZjNuIGdlbmVyYSB1bmEgcmVzcHVlc3RhIG1cdTAwZTFzIGludGVuc2EiLCAiSGFiaXR1YWNpXHUwMGYzbiBlcyBwYXJhIGNhY2hvcnJvcyB5IHNlbnNpYmlsaXphY2lcdTAwZjNuIHBhcmEgYWR1bHRvcyIsICJMYSBoYWJpdHVhY2lcdTAwZjNuIGVzIHZvbHVudGFyaWEgeSBsYSBzZW5zaWJpbGl6YWNpXHUwMGYzbiBlcyBpbnZvbHVudGFyaWEiXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJTb24gZG9zIHByb2Nlc29zIGRlIGFwcmVuZGl6YWplIG9wdWVzdG9zLiBVbiBwZXJybyBxdWUgc2UgaGFiaXRcdTAwZmFhIGFsIHJ1aWRvIGRlbCB0clx1MDBlMWZpY28gZGVqYSBkZSByZWFjY2lvbmFyLiBQZXJvIHNpIGxhIGV4cG9zaWNpXHUwMGYzbiBlcyBkZW1hc2lhZG8gaW50ZW5zYSBvIG5lZ2F0aXZhLCBwdWVkZSBzZW5zaWJpbGl6YXJzZTogY2FkYSB2ZXogcmVhY2Npb25hIG1cdTAwZTFzLiBQb3IgZXNvIGxhIHNvY2lhbGl6YWNpXHUwMGYzbiBkZWJlIHNlciBncmFkdWFsIHkgcG9zaXRpdmE7IGZvcnphciBsYSBleHBvc2ljaVx1MDBmM24gcHVlZGUgZW1wZW9yYXIgbGFzIGNvc2FzLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZRdWlcdTAwZTluIGRlc2Fycm9sbFx1MDBmMyBsYSB0ZW9yXHUwMGVkYSBkZWwgY29uZGljaW9uYW1pZW50byBvcGVyYW50ZSwgYmFzZSBkZWwgYWRpZXN0cmFtaWVudG8gbW9kZXJubz8iLCBvcHRpb25zOiBbIkl2XHUwMGUxbiBQXHUwMGUxdmxvdiIsICJCLkYuIFNraW5uZXIiLCAiS29ucmFkIExvcmVueiIsICJDaGFybGVzIERhcndpbiJdLCBjb3JyZWN0OiAxLCBleHBsYW5hdGlvbjogIkIuRi4gU2tpbm5lciAoMTkwNC0xOTkwKSBkZXNjcmliaVx1MDBmMyBsb3MgcHJpbmNpcGlvcyBkZWwgY29uZGljaW9uYW1pZW50byBvcGVyYW50ZTogcmVmdWVyem8gcG9zaXRpdm8sIHJlZnVlcnpvIG5lZ2F0aXZvLCBjYXN0aWdvIHBvc2l0aXZvIHkgY2FzdGlnbyBuZWdhdGl2by4gRXMgbGEgYmFzZSBjaWVudFx1MDBlZGZpY2EgZGUgdG9kYSBsYSBlZHVjYWNpXHUwMGYzbiBjYW5pbmEgbW9kZXJuYS4gUFx1MDBlMXZsb3YgdHJhYmFqXHUwMGYzIGVsIGNvbmRpY2lvbmFtaWVudG8gY2xcdTAwZTFzaWNvIChhc29jaWFjaW9uZXMgYXV0b21cdTAwZTF0aWNhcyksIHF1ZSB0YW1iaVx1MDBlOW4gc2UgdXNhIHBlcm8gZXMgdW4gcHJvY2VzbyBkaWZlcmVudGUuIiB9LAogICAgeyBxdWVzdGlvbjogIlx1MDBiZlF1XHUwMGU5IGVzIGVsIFx1MDBhYnRyaWdnZXIgc3RhY2tpbmdcdTAwYmIgKGFjdW11bGFjaVx1MDBmM24gZGUgZGVzZW5jYWRlbmFudGVzKT8iLCBvcHRpb25zOiBbIkN1YW5kbyB1biBwZXJybyB0aWVuZSBtdWNob3MganVndWV0ZXMgYWN1bXVsYWRvcyBlbiBzdSBlc3BhY2lvIHkgbm8gcXVpZXJlIGNvbXBhcnRpcmxvcyBjb24gb3Ryb3MgcGVycm9zIG5pIGNvbiBzdXMgaHVtYW5vcywgbG8gcXVlIGluZGljYSB1biBwcm9ibGVtYSBkZSBwb3Nlc2lcdTAwZjNuIGRlIG9iamV0b3MgcXVlIGhheSBxdWUgY29ycmVnaXIgY29uIGZpcm1lemEiLCAiTGEgYWN1bXVsYWNpXHUwMGYzbiBkZSBwZXF1ZVx1MDBmMW9zIGVzdHJlc29yZXMgcXVlLCBpbmRpdmlkdWFsbWVudGUgbm8gcHJvdm9jYXJcdTAwZWRhbiByZWFjY2lcdTAwZjNuLCBwZXJvIGp1bnRvcyBoYWNlbiBxdWUgZWwgcGVycm8gc3VwZXJlIHN1IHVtYnJhbCIsICJDdWFuZG8gc2UgYWN1bXVsYW4gcHJlbWlvcyBlbiBlbCBlbnRyZW5hbWllbnRvIiwgIkVsIGVmZWN0byBkZSB0ZW5lciBkZW1hc2lhZG9zIHBlcnJvcyBlbiB1biBob2dhciJdLCBjb3JyZWN0OiAxLCBleHBsYW5hdGlvbjogIkltYWdpbmEgcXVlIHR1IHBlcnJvIGVzdFx1MDBlMSB1biBwb2NvIG5lcnZpb3NvIHBvcnF1ZSBoYSBvXHUwMGVkZG8gdW4gdHJ1ZW5vLCBsdWVnbyBzZSBjcnV6YSBjb24gdW4gcGVycm8gcXVlIGxlIGxhZHJhLCB5IGRlc3B1XHUwMGU5cyBhbGd1aWVuIGxlIHRvY2Egc2luIGF2aXNhci4gQ2FkYSBldmVudG8gcG9yIHNlcGFyYWRvIHF1aXpcdTAwZTEgbm8gY2F1c2FyXHUwMGVkYSByZWFjY2lcdTAwZjNuLCBwZXJvIGFjdW11bGFkb3MsIGVsIHBlcnJvIHN1cGVyYSBzdSB1bWJyYWwuIEVudGVuZGVyIGVsIHRyaWdnZXIgc3RhY2tpbmcgZXhwbGljYSBwb3IgcXVcdTAwZTkgXHUwMGFiZGUgcmVwZW50ZVx1MDBiYiB1biBwZXJybyByZWFjY2lvbmEgYSBhbGdvIHF1ZSBub3JtYWxtZW50ZSB0b2xlcmEuIiB9LAogICAgeyBxdWVzdGlvbjogIlx1MDBiZlF1XHUwMGU5IGVzIGxhIFx1MDBhYnRhc2EgZGUgcmVmdWVyem9cdTAwYmIgeSBwb3IgcXVcdTAwZTkgZXMgaW1wb3J0YW50ZT8iLCBvcHRpb25zOiBbIkVsIG5cdTAwZmFtZXJvIGRlIHByZW1pb3MgcXVlIGNhYmUgZW4gdHUgYm9sc2lsbG8iLCAiTGEgZnJlY3VlbmNpYSBjb24gbGEgcXVlIHJlZm9yemFtb3MgdW5hIGNvbmR1Y3RhLCBxdWUgZGViZSBzZXIgYWx0YSBhbCBwcmluY2lwaW8geSBwdWVkZSByZWR1Y2lyc2UgZ3JhZHVhbG1lbnRlIiwgIkVsIHByZWNpbyBkZSBsb3MgcHJlbWlvcyBkZSBjYWxpZGFkIiwgIkxhIGNhbnRpZGFkIGRlIGNhbG9yXHUwMGVkYXMgZGUgbG9zIHByZW1pb3MiXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJMYSB0YXNhIGRlIHJlZnVlcnpvIGVzIGNsYXZlIHBhcmEgdW4gZW50cmVuYW1pZW50byBlZmVjdGl2by4gQWwgZW5zZVx1MDBmMWFyIGFsZ28gbnVldm8sIHJlZm9yemFtb3MgY2FkYSBhY2llcnRvICh0YXNhIGNvbnRpbnVhKS4gQ3VhbmRvIGxhIGNvbmR1Y3RhIHNlIGFzaWVudGEsIHBhc2Ftb3MgYSByZWZ1ZXJ6byBpbnRlcm1pdGVudGUgKGEgdmVjZXMgc1x1MDBlZCwgYSB2ZWNlcyBubyksIGxvIHF1ZSBwYXJhZFx1MDBmM2ppY2FtZW50ZSBoYWNlIGxhIGNvbmR1Y3RhIG1cdTAwZTFzIHJlc2lzdGVudGUgYSBsYSBleHRpbmNpXHUwMGYzbi4iIH0sCiAgICB7IHF1ZXN0aW9uOiAiXHUwMGJmUXVcdTAwZTkgZXMgbGEgXHUwMGFiZnJ1c3RyYWNpXHUwMGYzbiBwb3IgYmFycmVyYVx1MDBiYiB5IGNcdTAwZjNtbyBzZSBtYW5pZmllc3RhPyIsIG9wdGlvbnM6IFsiQ3VhbmRvIHVuIHBlcnJvIGRlc3RydXllIHB1ZXJ0YXMgeSB2YWxsYXMiLCAiTGEgcmVhY3RpdmlkYWQgcXVlIHNlIHByb2R1Y2UgY3VhbmRvIHVuIHBlcnJvIGVzdFx1MDBlMSBpbXBlZGlkbyBmXHUwMGVkc2ljYW1lbnRlIGRlIGFjY2VkZXIgYSB1biBlc3RcdTAwZWRtdWxvIChjb3JyZWEsIHZhbGxhLCB2ZW50YW5hKSIsICJFbCBhYnVycmltaWVudG8gZGUgdW4gcGVycm8gZW5jZXJyYWRvIiwgIkxhIGZydXN0cmFjaVx1MDBmM24gZGUgbm8gcG9kZXIgYXByZW5kZXIgdW4gdHJ1Y28gbnVldm8iXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJNdWNob3MgcGVycm9zIHF1ZSBsYWRyYW4geSB0aXJhbiBkZSBsYSBjb3JyZWEgYWwgdmVyIG90cm9zIHBlcnJvcyBubyBzb24gYWdyZXNpdm9zOiBleHBlcmltZW50YW4gZnJ1c3RyYWNpXHUwMGYzbiBwb3IgYmFycmVyYS4gTGEgY29ycmVhIGxlcyBpbXBpZGUgaGFjZXIgbG8gcXVlIGRlc2VhbiAoYWNlcmNhcnNlLCBpbnZlc3RpZ2FyKS4gRXN0YSBmcnVzdHJhY2lcdTAwZjNuIHNlIG1hbmlmaWVzdGEgY29tbyBsYWRyaWRvcywgdGlyb25lcyB5IGNvbmR1Y3RhcyBxdWUgc2UgY29uZnVuZGVuIGNvbiBhZ3Jlc2l2aWRhZC4gVHJhYmFqYXIgbGEgZ2VzdGlcdTAwZjNuIGRlIGxhIGZydXN0cmFjaVx1MDBmM24gZXMgZnVuZGFtZW50YWwuIiB9LAogICAgeyBxdWVzdGlvbjogIkVuIG1vZGlmaWNhY2lcdTAwZjNuIGRlIGNvbmR1Y3RhLCBcdTAwYmZxdVx1MDBlOSBlcyB1biBcdTAwYWJwcm90b2NvbG8gZGUgZGVzZW5zaWJpbGl6YWNpXHUwMGYzbiBzaXN0ZW1cdTAwZTF0aWNhXHUwMGJiPyIsIG9wdGlvbnM6IFsiRXhwb25lciBhbCBwZXJybyBkaXJlY3RhbWVudGUgYSBsbyBxdWUgbGUgZGEgbWllZG8gcGFyYSBxdWUgc2UgYWNvc3R1bWJyZSwgcmVwaXRpZW5kbyBsYSBleHBvc2ljaVx1MDBmM24gdGFudGFzIHZlY2VzIGNvbW8gc2VhIG5lY2VzYXJpbyBoYXN0YSBxdWUgZGVqZSBkZSByZWFjY2lvbmFyIiwgIlVuYSBleHBvc2ljaVx1MDBmM24gZ3JhZHVhbCB5IGNvbnRyb2xhZGEgYWwgZXN0XHUwMGVkbXVsbyB0ZW1pZG8sIGNvbWVuemFuZG8gbXV5IHBvciBkZWJham8gZGVsIHVtYnJhbCBkZSByZWFjY2lcdTAwZjNuIiwgIk1lZGljYXIgYWwgcGVycm8gcGFyYSBxdWUgbm8gc2llbnRhIG1pZWRvIiwgIklnbm9yYXIgYWwgcGVycm8gY3VhbmRvIHRpZW5lIG1pZWRvIHBhcmEgcXVlIG5vIHNlIHJlZnVlcmNlIl0sIGNvcnJlY3Q6IDEsIGV4cGxhbmF0aW9uOiAiTGEgZGVzZW5zaWJpbGl6YWNpXHUwMGYzbiBzaXN0ZW1cdTAwZTF0aWNhIGVzIGxhIHRcdTAwZTljbmljYSBnb2xkIHN0YW5kYXJkIHBhcmEgdHJhYmFqYXIgbWllZG9zIHkgZm9iaWFzLiBTZSBjb21iaW5hIGZyZWN1ZW50ZW1lbnRlIGNvbiBjb250cmFjb25kaWNpb25hbWllbnRvIChhc29jaWFyIGVsIGVzdFx1MDBlZG11bG8gY29uIGFsZ28gcG9zaXRpdm8pLiBMYSBjbGF2ZSBlcyBudW5jYSBzdXBlcmFyIGVsIHVtYnJhbCBkZWwgcGVycm8uIEVzIHVuIHByb2Nlc28gbGVudG8sIG1ldFx1MDBmM2RpY28geSBxdWUgcmVxdWllcmUgb2JzZXJ2YWNpXHUwMGYzbiBjb25zdGFudGUgZGVsIGxlbmd1YWplIGNvcnBvcmFsLiIgfSwKICAgIHsgcXVlc3Rpb246ICJcdTAwYmZRdVx1MDBlOSBjb25jZXB0byBkZXNjcmliZSBtZWpvciBlbCBtb2RlbG8gTElNQSAoTGVhc3QgSW50cnVzaXZlLCBNaW5pbWFsbHkgQXZlcnNpdmUpIGVuIGVkdWNhY2lcdTAwZjNuIGNhbmluYT8iLCBvcHRpb25zOiBbIlVuIHRpcG8gZGUgZW50cmVuYW1pZW50byBzXHUwMGYzbG8gY29uIGNvbWlkYSIsICJVbiBwcmluY2lwaW8gXHUwMGU5dGljbyBxdWUgcHJvcG9uZSB1dGlsaXphciBzaWVtcHJlIGxhcyB0XHUwMGU5Y25pY2FzIG1lbm9zIGludmFzaXZhcyB5IG1lbm9zIGF2ZXJzaXZhcyBxdWUgc2VhbiBlZmVjdGl2YXMiLCAiVW4gcHJvZ3JhbWEgZXNwZWNcdTAwZWRmaWNvIGRlIGFkaWVzdHJhbWllbnRvIGRlIDEyIHNlbWFuYXMiLCAiVW5hIGNlcnRpZmljYWNpXHUwMGYzbiBleGNsdXNpdmEgcGFyYSBlZHVjYWRvcmVzIGNhbmlub3MiXSwgY29ycmVjdDogMSwgZXhwbGFuYXRpb246ICJMSU1BIGVzIHVuIHByaW5jaXBpbyByZWN0b3IgcGFyYSBwcm9mZXNpb25hbGVzIGRlbCBjb21wb3J0YW1pZW50byBhbmltYWwuIEVzdGFibGVjZSBxdWUgc2llbXByZSBkZWJlbW9zIGVsZWdpciBsYSBpbnRlcnZlbmNpXHUwMGYzbiBtZW5vcyBpbnRydXNpdmEgcXVlIGZ1bmNpb25lLiBFbiBsYSBwclx1MDBlMWN0aWNhLCBlc3RvIHNpZ25pZmljYSBhZ290YXIgcHJpbWVybyBsYXMgb3BjaW9uZXMgbVx1MDBlMXMgcmVzcGV0dW9zYXMgKGdlc3RpXHUwMGYzbiBhbWJpZW50YWwsIHJlZnVlcnpvIHBvc2l0aXZvKSBhbnRlcyBkZSBjb25zaWRlcmFyIHRcdTAwZTljbmljYXMgbVx1MDBlMXMgaW52YXNpdmFzLiBFcyBlbCBlc3RcdTAwZTFuZGFyIGRlIGxhIElBQUJDLiIgfQpdOwp2YXIgbGV2ZWxzID0gWwogICAgeyBtaW46IDAsIG1heDogNCwgaWNvbjogIlx1ZDgzZFx1ZGMzNiIsIHRpdGxlOiAiQ2FjaG9ycm8gQ3VyaW9zbyIsIGRlc2NyaXB0aW9uOiAiXHUwMGExRXN0XHUwMGUxcyBlbXBlemFuZG8gdHUgY2FtaW5vIGVuIGxhIGVkdWNhY2lcdTAwZjNuIGNhbmluYSEgVGllbmVzIG11Y2hvIHBvciBkZXNjdWJyaXIsIHBlcm8gbG8gbVx1MDBlMXMgaW1wb3J0YW50ZSB5YSBsbyB0aWVuZXM6IGxhcyBnYW5hcyBkZSBhcHJlbmRlci4gVHUgcGVycm8gdGllbmUgbXVjaGEgc3VlcnRlIGRlIHF1ZSBxdWllcmFzIGVudGVuZGVybGUgbWVqb3IuIiwgaGFzUHJpemU6IHRydWUsIHByaXplVGl0bGU6ICJUdSBndVx1MDBlZGEgZ3JhdHVpdGEgdGUgZXNwZXJhIGVuIHR1IGVtYWlsIiwgcHJpemVUZXh0OiAiSGVtb3MgZW52aWFkbyBhIHR1IGNvcnJlbyBsYSBHdVx1MDBlZGEgZGUgQmllbmVzdGFyIEFuaW1hbCB5IE5lY2VzaWRhZGVzIEJcdTAwZTFzaWNhcy4gUmV2aXNhIHR1IGJhbmRlamEgZGUgZW50cmFkYS4iLCBwcml6ZUluc3RydWN0aW9uczogIlNpIG5vIGxvIGVuY3VlbnRyYXMsIHJldmlzYSBsYSBjYXJwZXRhIGRlIHNwYW0gbyBwcm9tb2Npb25lcy4iLCBjdGE6ICJIYXkgdW4gbXVuZG8gcG9yIGRlc2N1YnJpciBzb2JyZSB0dSBwZXJyby4gRW4gTGEgVHJpYnUgZW5jb250cmFyXHUwMGUxcyBtXHUwMGUxcyBkZSAxMDAgdlx1MDBlZGRlb3MsIHJldG9zIHkgdW5hIGNvbXVuaWRhZCBxdWUgdGUgYWNvbXBhXHUwMGYxYSBlbiBlbCBjYW1pbm8uIiwgY3RhQnRuOiAiRGVzY3VicmlyIExhIFRyaWJ1Iiwgc3RhcnM6IDEgfSwKICAgIHsgbWluOiA1LCBtYXg6IDgsIGljb246ICJcdWQ4M2RcdWRjMTUiLCB0aXRsZTogIkNvbXBhXHUwMGYxXHUwMGVkYSBGaWVsIiwgZGVzY3JpcHRpb246ICJcdTAwYTFOYWRhIG1hbCEgQ29ub2NlcyBsYXMgYmFzZXMgeSBzZSBub3RhIHF1ZSB0ZSBwcmVvY3VwYXMgcG9yIHR1IHBlcnJvLiBUb2Rhdlx1MDBlZGEgaGF5IHRlcnJlbm8gcG9yIGV4cGxvcmFyIGVuIGNvbXVuaWNhY2lcdTAwZjNuIGNhbmluYSB5IHByaW5jaXBpb3MgZGUgYXByZW5kaXphamUsIHBlcm8gdmFzIHBvciBidWVuIGNhbWluby4iLCBoYXNQcml6ZTogdHJ1ZSwgcHJpemVUaXRsZTogIlR1IG1hc3RlcmNsYXNzIGdyYXR1aXRhIHRlIGVzcGVyYSBlbiB0dSBlbWFpbCIsIHByaXplVGV4dDogIlRlIGhlbW9zIGVudmlhZG8gYWNjZXNvIGEgdW5hIG1hc3RlcmNsYXNzIGV4Y2x1c2l2YS4gUmV2aXNhIHR1IGJhbmRlamEgZGUgZW50cmFkYS4iLCBwcml6ZUluc3RydWN0aW9uczogIlNpIG5vIGxvIGVuY3VlbnRyYXMsIHJldmlzYSBsYSBjYXJwZXRhIGRlIHNwYW0gbyBwcm9tb2Npb25lcy4iLCBjdGE6ICJFc3RcdTAwZTFzIGNlcmNhIGRlIGFsY2FuemFyIGVsIHNpZ3VpZW50ZSBuaXZlbC4gRW4gTGEgVHJpYnUgcHJvZnVuZGl6YXJcdTAwZTFzIGVuIHRvZG8gbG8gcXVlIGhhcyB2aXN0byBob3kgeSBtdWNobyBtXHUwMGUxcywgY29uIHByb2Zlc2lvbmFsZXMgcXVlIHRlIGd1XHUwMGVkYW4gY2FkYSBzZW1hbmEuIiwgY3RhQnRuOiAiRGVzY3VicmlyIExhIFRyaWJ1Iiwgc3RhcnM6IDIgfSwKICAgIHsgbWluOiA5LCBtYXg6IDExLCBpY29uOiAiXHVkODNjXHVkZmM1IiwgdGl0bGU6ICJHdVx1MDBlZGEgRXNwZWNpYWxpc3RhIiwgZGVzY3JpcHRpb246ICJcdTAwYTFJbXByZXNpb25hbnRlISBUaWVuZXMgdW4gY29ub2NpbWllbnRvIHNcdTAwZjNsaWRvIHNvYnJlIGVkdWNhY2lcdTAwZjNuIGNhbmluYSBlbiBwb3NpdGl2by4gVHUgcGVycm8gY3VlbnRhIGNvbiB1bmEgY29tcGFcdTAwZjFcdTAwZWRhIGh1bWFuYSBxdWUgZW50aWVuZGUgc3UgbGVuZ3VhamUgeSByZXNwZXRhIHN1IG5hdHVyYWxlemEuIiwgaGFzUHJpemU6IHRydWUsIHByaXplVGl0bGU6ICJUdSBjdXJzbyBncmF0dWl0byB0ZSBlc3BlcmEgZW4gdHUgZW1haWwiLCBwcml6ZVRleHQ6ICJUZSBoZW1vcyBlbnZpYWRvIGFjY2VzbyBhbCBDdXJzbyBkZSBDb211bmljYWNpXHUwMGYzbiBDYW5pbmEuIFJldmlzYSB0dSBiYW5kZWphIGRlIGVudHJhZGEuIiwgcHJpemVJbnN0cnVjdGlvbnM6ICJTaSBubyBsbyBlbmN1ZW50cmFzLCByZXZpc2EgbGEgY2FycGV0YSBkZSBzcGFtIG8gcHJvbW9jaW9uZXMuIiwgY3RhOiAiWWEgdGllbmVzIGVsIGNvbm9jaW1pZW50by4gSW1hZ2luYSBsbyBxdWUgcHVlZGVzIGxvZ3JhciBjb24gYXNlc29yYW1pZW50byBwcm9mZXNpb25hbCBkaXJlY3RvIHkgdW5hIGNvbXVuaWRhZCBxdWUgY29tcGFydGUgdHUgZmlsb3NvZlx1MDBlZGEuIiwgY3RhQnRuOiAiRGVzY3VicmlyIExhIFRyaWJ1Iiwgc3RhcnM6IDMgfSwKICAgIHsgbWluOiAxMiwgbWF4OiAxMiwgaWNvbjogIlx1ZDgzY1x1ZGZjNiIsIHRpdGxlOiAiQWxtYSBQZXJydW5hIiwgZGVzY3JpcHRpb246ICJcdTAwYTExMiBkZSAxMiEgVW5hIG1lbnRlIGJyaWxsYW50ZSBkZSBsYSBlZHVjYWNpXHUwMGYzbiBjYW5pbmEuIFR1IG5pdmVsIGRlIGNvbm9jaW1pZW50byBlcyBkaWdubyBkZSB1biBwcm9mZXNpb25hbC4gVHUgcGVycm8gcHVlZGUgcHJlc3VtaXIgZGUgZmFtaWxpYSBodW1hbmEuIiwgaGFzUHJpemU6IHRydWUsIHByaXplVGl0bGU6ICJUdSBzZW1hbmEgZ3JhdGlzIGVuIExhIFRyaWJ1IHRlIGVzcGVyYSBlbiB0dSBlbWFpbCIsIHByaXplVGV4dDogIlRlIGhlbW9zIGVudmlhZG8gdHUgYWNjZXNvIGdyYXR1aXRvIGRlIDEgc2VtYW5hIGEgTGEgVHJpYnUuIFJldmlzYSB0dSBiYW5kZWphIGRlIGVudHJhZGEuIiwgcHJpemVJbnN0cnVjdGlvbnM6ICJTaSBubyBsbyBlbmN1ZW50cmFzLCByZXZpc2EgbGEgY2FycGV0YSBkZSBzcGFtIG8gcHJvbW9jaW9uZXMuIiwgY3RhOiAiQ29uIGxvIHF1ZSBzYWJlcywgaW1hZ2luYSBsbyBxdWUgcHVlZGVzIGFwb3J0YXIgKHkgYXByZW5kZXIpIGVuIHVuYSBjb211bmlkYWQgZGUgYWx0byBuaXZlbC4gXHUwMGJmVGUgYW5pbWFzPyIsIGN0YUJ0bjogIlVuaXJtZSBhIExhIFRyaWJ1Iiwgc3RhcnM6IDQgfQpdOwpmdW5jdGlvbiBzZWVkZWRSYW5kb20oc2VlZCkgewogICAgdmFyIHMgPSBzZWVkOwogICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgIHMgPSAocyAqIDE2NjQ1MjUgKyAxMDEzOTA0MjIzKSAmIDB4RkZGRkZGRkY7CiAgICAgICAgcmV0dXJuIChzID4+PiAwKSAvIDB4RkZGRkZGRkY7CiAgICB9Owp9CmZ1bmN0aW9uIGdldFRvZGF5U2VlZCgpIHsKICAgIHZhciBkID0gbmV3IERhdGUoKTsKICAgIHJldHVybiBkLmdldEZ1bGxZZWFyKCkgKiAxMDAwMCArIChkLmdldE1vbnRoKCkgKyAxKSAqIDEwMCArIGQuZ2V0RGF0ZSgpOwp9CmZ1bmN0aW9uIHNodWZmbGVXaXRoU2VlZChhcnIsIHNlZWQpIHsKICAgIHZhciBhID0gYXJyLnNsaWNlKCk7CiAgICB2YXIgcm5nID0gc2VlZGVkUmFuZG9tKHNlZWQpOwogICAgZm9yICh2YXIgaSA9IGEubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkgewogICAgICAgIHZhciBqID0gTWF0aC5mbG9vcihybmcoKSAqIChpICsgMSkpOwogICAgICAgIHZhciB0ZW1wID0gYVtpXTsKICAgICAgICBhW2ldID0gYVtqXTsKICAgICAgICBhW2pdID0gdGVtcDsKICAgIH0KICAgIHJldHVybiBhOwp9CmZ1bmN0aW9uIHNlbGVjdERhaWx5UXVlc3Rpb25zKCkgewogICAgdmFyIHNlZWQgPSBnZXRUb2RheVNlZWQoKTsKICAgIHZhciBlYXN5ID0gc2h1ZmZsZVdpdGhTZWVkKGVhc3lQb29sLCBzZWVkKS5zbGljZSgwLCA0KTsKICAgIHZhciBtZWRpdW0gPSBzaHVmZmxlV2l0aFNlZWQobWVkaXVtUG9vbCwgc2VlZCArIDEpLnNsaWNlKDAsIDQpOwogICAgdmFyIGhhcmQgPSBzaHVmZmxlV2l0aFNlZWQoaGFyZFBvb2wsIHNlZWQgKyAyKS5zbGljZSgwLCA0KTsKICAgIHJldHVybiBlYXN5LmNvbmNhdChtZWRpdW0pLmNvbmNhdChoYXJkKTsKfQp2YXIgU1RPUkFHRV9LRVkgPSAnc2EtcXVpei1jb21wbGV0ZWQnOwp2YXIgU0lYX01PTlRIU19NUyA9IDYgKiAzMCAqIDI0ICogNjAgKiA2MCAqIDEwMDA7CmZ1bmN0aW9uIGNoZWNrUXVpekF2YWlsYWJpbGl0eSgpIHsKICAgIHRyeSB7CiAgICAgICAgdmFyIHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKTsKICAgICAgICBpZiAoIXN0b3JlZCkgcmV0dXJuIHsgYXZhaWxhYmxlOiB0cnVlIH07CiAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKHN0b3JlZCk7CiAgICAgICAgdmFyIGVsYXBzZWQgPSBEYXRlLm5vdygpIC0gZGF0YS50aW1lc3RhbXA7CiAgICAgICAgaWYgKGVsYXBzZWQgPj0gU0lYX01PTlRIU19NUykgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShTVE9SQUdFX0tFWSk7CiAgICAgICAgICAgIHJldHVybiB7IGF2YWlsYWJsZTogdHJ1ZSB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgICBhdmFpbGFibGU6IGZhbHNlLAogICAgICAgICAgICBjb21wbGV0ZWREYXRlOiBuZXcgRGF0ZShkYXRhLnRpbWVzdGFtcCksCiAgICAgICAgICAgIG5leHREYXRlOiBuZXcgRGF0ZShkYXRhLnRpbWVzdGFtcCArIFNJWF9NT05USFNfTVMpLAogICAgICAgICAgICBwcmV2aW91c1Jlc3VsdDogZGF0YQogICAgICAgIH07CiAgICB9IGNhdGNoKGUpIHsKICAgICAgICByZXR1cm4geyBhdmFpbGFibGU6IHRydWUgfTsKICAgIH0KfQpmdW5jdGlvbiBzYXZlUXVpelJlc3VsdChzY29yZSwgdG90YWwsIGxldmVsVGl0bGUsIHVzZXJOYW1lKSB7CiAgICB0cnkgewogICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeSh7CiAgICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSwKICAgICAgICAgICAgc2NvcmU6IHNjb3JlLAogICAgICAgICAgICB0b3RhbDogdG90YWwsCiAgICAgICAgICAgIGxldmVsOiBsZXZlbFRpdGxlLAogICAgICAgICAgICBuYW1lOiB1c2VyTmFtZQogICAgICAgIH0pKTsKICAgIH0gY2F0Y2goZSkge30KfQpmdW5jdGlvbiBmb3JtYXREYXRlKGQpIHsKICAgIHZhciBtb250aHMgPSBbJ2VuZXJvJywnZmVicmVybycsJ21hcnpvJywnYWJyaWwnLCdtYXlvJywnanVuaW8nLCdqdWxpbycsJ2Fnb3N0bycsJ3NlcHRpZW1icmUnLCdvY3R1YnJlJywnbm92aWVtYnJlJywnZGljaWVtYnJlJ107CiAgICByZXR1cm4gZC5nZXREYXRlKCkgKyAnIGRlICcgKyBtb250aHNbZC5nZXRNb250aCgpXSArICcgZGUgJyArIGQuZ2V0RnVsbFllYXIoKTsKfQp2YXIgcXVlc3Rpb25zID0gW107CnZhciBjdXJyZW50UXVlc3Rpb24gPSAwLCBzY29yZSA9IDAsIGFuc3dlcnMgPSBbXSwgdXNlck5hbWUgPSAnJywgdXNlckVtYWlsID0gJyc7CmZ1bmN0aW9uIHNob3dTY3JlZW4oaWQpIHsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zYS1xdWl6IC5zY3JlZW4nKS5mb3JFYWNoKGZ1bmN0aW9uKHMpIHsgcy5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsgfSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTsKfQpmdW5jdGlvbiBpbml0UXVpeigpIHsKICAgIHZhciBzdGF0dXMgPSBjaGVja1F1aXpBdmFpbGFiaWxpdHkoKTsKICAgIGlmICghc3RhdHVzLmF2YWlsYWJsZSkgewogICAgICAgIHNob3dDb29sZG93blNjcmVlbihzdGF0dXMpOwogICAgfQp9CmZ1bmN0aW9uIHNob3dDb29sZG93blNjcmVlbihzdGF0dXMpIHsKICAgIHZhciBpbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nvb2xkb3duLWluZm8nKTsKICAgIHZhciBwcmV2ID0gc3RhdHVzLnByZXZpb3VzUmVzdWx0OwogICAgaW5mby5pbm5lckhUTUwgPSAnXHgzY2RpdiBjbGFzcz0iY29vbGRvd24taW5mby1yb3ciXHgzZVx4M2NzcGFuIGNsYXNzPSJjb29sZG93bi1pbmZvLWxhYmVsIlx4M2VSZXN1bHRhZG8gYW50ZXJpb3JceDNjL3NwYW5ceDNlXHgzY3NwYW4gY2xhc3M9ImNvb2xkb3duLWluZm8tdmFsdWUiXHgzZScgKyAoKHByZXYuc2NvcmUgIT0gbnVsbCA/IHByZXYuc2NvcmUgOiAnPycpKSArICcvJyArIChwcmV2LnRvdGFsIHx8IDEyKSArICcgYWNpZXJ0b3NceDNjL3NwYW5ceDNlXHgzYy9kaXZceDNlJyArICdceDNjZGl2IGNsYXNzPSJjb29sZG93bi1pbmZvLXJvdyJceDNlXHgzY3NwYW4gY2xhc3M9ImNvb2xkb3duLWluZm8tbGFiZWwiXHgzZU5pdmVsIGFsY2FuemFkb1x4M2Mvc3Bhblx4M2VceDNjc3BhbiBjbGFzcz0iY29vbGRvd24taW5mby12YWx1ZSJceDNlJyArIChwcmV2LmxldmVsIHx8ICc/JykgKyAnXHgzYy9zcGFuXHgzZVx4M2MvZGl2XHgzZScgKyAnXHgzY2RpdiBjbGFzcz0iY29vbGRvd24taW5mby1yb3ciXHgzZVx4M2NzcGFuIGNsYXNzPSJjb29sZG93bi1pbmZvLWxhYmVsIlx4M2VGZWNoYSBkZWwgcXVpelx4M2Mvc3Bhblx4M2VceDNjc3BhbiBjbGFzcz0iY29vbGRvd24taW5mby12YWx1ZSJceDNlJyArIGZvcm1hdERhdGUoc3RhdHVzLmNvbXBsZXRlZERhdGUpICsgJ1x4M2Mvc3Bhblx4M2VceDNjL2Rpdlx4M2UnICsgJ1x4M2NkaXYgY2xhc3M9ImNvb2xkb3duLWluZm8tcm93Ilx4M2VceDNjc3BhbiBjbGFzcz0iY29vbGRvd24taW5mby1sYWJlbCJceDNlRGlzcG9uaWJsZSBkZSBudWV2b1x4M2Mvc3Bhblx4M2VceDNjc3BhbiBjbGFzcz0iY29vbGRvd24taW5mby12YWx1ZSJceDNlJyArIGZvcm1hdERhdGUoc3RhdHVzLm5leHREYXRlKSArICdceDNjL3NwYW5ceDNlXHgzYy9kaXZceDNlJzsKICAgIHNob3dTY3JlZW4oJ3NjcmVlbi1jb29sZG93bicpOwp9CndpbmRvdy5zYVN0YXJ0UXVpeiA9IGZ1bmN0aW9uKCkgewogICAgdmFyIHN0YXR1cyA9IGNoZWNrUXVpekF2YWlsYWJpbGl0eSgpOwogICAgaWYgKCFzdGF0dXMuYXZhaWxhYmxlKSB7CiAgICAgICAgc2hvd0Nvb2xkb3duU2NyZWVuKHN0YXR1cyk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgcXVlc3Rpb25zID0gc2VsZWN0RGFpbHlRdWVzdGlvbnMoKTsKICAgIGN1cnJlbnRRdWVzdGlvbiA9IDA7CiAgICBzY29yZSA9IDA7CiAgICBhbnN3ZXJzID0gW107CiAgICBzaG93U2NyZWVuKCdzY3JlZW4tcXVpeicpOwogICAgcmVuZGVyUXVlc3Rpb24oKTsKfTsKZnVuY3Rpb24gZ2V0RGlmZmljdWx0eUxhYmVsKGluZGV4KSB7CiAgICBpZiAoaW5kZXggPCA0KSByZXR1cm4geyB0ZXh0OiAnRlx1MDBlMWNpbCcsIGNsczogJ2RpZmZpY3VsdHktZWFzeScgfTsKICAgIGlmIChpbmRleCA8IDgpIHJldHVybiB7IHRleHQ6ICdJbnRlcm1lZGlvJywgY2xzOiAnZGlmZmljdWx0eS1tZWRpdW0nIH07CiAgICByZXR1cm4geyB0ZXh0OiAnRGlmXHUwMGVkY2lsJywgY2xzOiAnZGlmZmljdWx0eS1oYXJkJyB9Owp9CmZ1bmN0aW9uIHJlbmRlclF1ZXN0aW9uKCkgewogICAgdmFyIHEgPSBxdWVzdGlvbnNbY3VycmVudFF1ZXN0aW9uXTsKICAgIHZhciBudW0gPSBjdXJyZW50UXVlc3Rpb24gKyAxOwogICAgdmFyIHRvdGFsID0gcXVlc3Rpb25zLmxlbmd0aDsKICAgIHZhciBkaWZmID0gZ2V0RGlmZmljdWx0eUxhYmVsKGN1cnJlbnRRdWVzdGlvbik7CiAgICB2YXIgbGV0dGVycyA9IFsnQScsJ0InLCdDJywnRCddOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2dyZXNzLXRleHQnKS50ZXh0Q29udGVudCA9ICdQcmVndW50YSAnICsgbnVtICsgJyBkZSAnICsgdG90YWw7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZ3Jlc3MtZmlsbCcpLnN0eWxlLndpZHRoID0gKChudW0gLyB0b3RhbCkgKiAxMDApICsgJyUnOwogICAgdmFyIGRpZmZFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9ncmVzcy1kaWZmaWN1bHR5Jyk7CiAgICBkaWZmRWwudGV4dENvbnRlbnQgPSBkaWZmLnRleHQ7CiAgICBkaWZmRWwuY2xhc3NOYW1lID0gJ3Byb2dyZXNzLWRpZmZpY3VsdHkgJyArIGRpZmYuY2xzOwogICAgdmFyIGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncXVlc3Rpb24tYXJlYScpOwogICAgYXJlYS5pbm5lckhUTUwgPSAnXHgzY2RpdiBjbGFzcz0icXVlc3Rpb24tY2FyZCJceDNlJyArICdceDNjc3BhbiBjbGFzcz0icXVlc3Rpb24tbnVtYmVyIlx4M2UnICsgZGlmZi50ZXh0LnRvVXBwZXJDYXNlKCkgKyAnIFx1MDBiNyAnICsgbnVtICsgJy8nICsgdG90YWwgKyAnXHgzYy9zcGFuXHgzZScgKyAnXHgzY2gyIGNsYXNzPSJxdWVzdGlvbi10ZXh0Ilx4M2UnICsgcS5xdWVzdGlvbiArICdceDNjL2gyXHgzZScgKyAnXHgzY2RpdiBjbGFzcz0ib3B0aW9ucyJceDNlJyArIHEub3B0aW9ucy5tYXAoZnVuY3Rpb24ob3B0LCBpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdceDNjZGl2IGNsYXNzPSJvcHRpb24iIG9uY2xpY2s9InNhU2VsZWN0QW5zd2VyKCcgKyBpICsgJykiIGRhdGEtaW5kZXg9IicgKyBpICsgJyJceDNlJyArICdceDNjc3BhbiBjbGFzcz0ib3B0aW9uLWxldHRlciJceDNlJyArIGxldHRlcnNbaV0gKyAnXHgzYy9zcGFuXHgzZScgKyAnXHgzY3NwYW5ceDNlJyArIG9wdCArICdceDNjL3NwYW5ceDNlXHgzYy9kaXZceDNlJzsKICAgICAgICAgICAgICAgIH0pLmpvaW4oJycpICsgJ1x4M2MvZGl2XHgzZScgKyAnXHgzY2RpdiBjbGFzcz0iZXhwbGFuYXRpb24iIGlkPSJleHBsYW5hdGlvbiJceDNlJyArICdceDNjZGl2IGNsYXNzPSJleHBsYW5hdGlvbi10aXRsZSJceDNlXHUwMGJmU2FiXHUwMGVkYXMgcXVlLi4uP1x4M2MvZGl2XHgzZScgKyAnXHgzY3BceDNlJyArIHEuZXhwbGFuYXRpb24gKyAnXHgzYy9wXHgzZScgKyAnXHgzYy9kaXZceDNlJyArICdceDNjZGl2IGNsYXNzPSJuZXh0LWJ0bi1jb250YWluZXIiIGlkPSJuZXh0LWJ0bi1jb250YWluZXIiXHgzZScgKyAnXHgzY2J1dHRvbiBjbGFzcz0iYnRuIiBvbmNsaWNrPSJzYU5leHRRdWVzdGlvbigpIlx4M2UnICsgKGN1cnJlbnRRdWVzdGlvbiA8IHF1ZXN0aW9ucy5sZW5ndGggLSAxID8gJ1NpZ3VpZW50ZSBwcmVndW50YScgOiAnVmVyIG1pIHJlc3VsdGFkbycpICsgJyBceDNjc3ZnIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCJceDNlXHgzY3BhdGggZD0iTTUgMTJoMTRNMTIgNWw3IDctNyA3Ii9ceDNlXHgzYy9zdmdceDNlJyArICdceDNjL2J1dHRvblx4M2UnICsgJ1x4M2MvZGl2XHgzZScgKyAnXHgzYy9kaXZceDNlJzsKfQp3aW5kb3cuc2FTZWxlY3RBbnN3ZXIgPSBmdW5jdGlvbihpbmRleCkgewogICAgdmFyIHEgPSBxdWVzdGlvbnNbY3VycmVudFF1ZXN0aW9uXTsKICAgIHZhciBvcHRpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnNhLXF1aXogLm9wdGlvbicpOwogICAgaWYgKG9wdGlvbnNbMF0uY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKSByZXR1cm47CiAgICBvcHRpb25zLmZvckVhY2goZnVuY3Rpb24ob3B0KSB7IG9wdC5jbGFzc0xpc3QuYWRkKCdkaXNhYmxlZCcpOyB9KTsKICAgIGlmIChpbmRleCA9PT0gcS5jb3JyZWN0KSB7CiAgICAgICAgb3B0aW9uc1tpbmRleF0uY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpOwogICAgICAgIHNjb3JlKys7CiAgICAgICAgYW5zd2Vycy5wdXNoKHRydWUpOwogICAgfSBlbHNlIHsKICAgICAgICBvcHRpb25zW2luZGV4XS5jbGFzc0xpc3QuYWRkKCdpbmNvcnJlY3QnKTsKICAgICAgICBvcHRpb25zW3EuY29ycmVjdF0uY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpOwogICAgICAgIGFuc3dlcnMucHVzaChmYWxzZSk7CiAgICB9CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwbGFuYXRpb24nKS5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV4dC1idG4tY29udGFpbmVyJykuY2xhc3NMaXN0LmFkZCgnc2hvdycpOwp9Owp3aW5kb3cuc2FOZXh0UXVlc3Rpb24gPSBmdW5jdGlvbigpIHsKICAgIGN1cnJlbnRRdWVzdGlvbisrOwogICAgaWYgKGN1cnJlbnRRdWVzdGlvbiA8IHF1ZXN0aW9ucy5sZW5ndGgpIHsKICAgICAgICByZW5kZXJRdWVzdGlvbigpOwogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zYS1xdWl6IC5wcm9ncmVzcy1jb250YWluZXInKS5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTsKICAgIH0gZWxzZSB7CiAgICAgICAgc2hvd1NjcmVlbignc2NyZWVuLWVtYWlsJyk7CiAgICB9Cn07CndpbmRvdy5zYVN1Ym1pdEVtYWlsID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYS1pbnB1dC1uYW1lJykudmFsdWUudHJpbSgpOwogICAgdmFyIGVtYWlsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhLWlucHV0LWVtYWlsJykudmFsdWUudHJpbSgpOwogICAgdmFyIHByaXZhY3lDaGVjayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYS1wcml2YWN5LWNoZWNrJyk7CiAgICB2YXIgcHJpdmFjeUVycm9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhLXByaXZhY3ktZXJyb3InKTsKICAgIHZhciBzdWJtaXRCdG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc2NyZWVuLWVtYWlsIC5idG4nKTsKICAgIGlmICghbmFtZSkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2EtaW5wdXQtbmFtZScpLnN0eWxlLmJvcmRlckNvbG9yID0gJyNlNzRjM2MnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2EtaW5wdXQtbmFtZScpLmZvY3VzKCk7IHJldHVybjsgfQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhLWlucHV0LW5hbWUnKS5zdHlsZS5ib3JkZXJDb2xvciA9ICcnOwogICAgaWYgKCFlbWFpbCB8fCBlbWFpbC5pbmRleE9mKCdAJykgPT09IC0xKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYS1pbnB1dC1lbWFpbCcpLnN0eWxlLmJvcmRlckNvbG9yID0gJyNlNzRjM2MnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2EtaW5wdXQtZW1haWwnKS5mb2N1cygpOyByZXR1cm47IH0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYS1pbnB1dC1lbWFpbCcpLnN0eWxlLmJvcmRlckNvbG9yID0gJyc7CiAgICBpZiAoIXByaXZhY3lDaGVjay5jaGVja2VkKSB7CiAgICAgICAgaWYgKHByaXZhY3lFcnJvcikgcHJpdmFjeUVycm9yLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChwcml2YWN5RXJyb3IpIHByaXZhY3lFcnJvci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgdXNlck5hbWUgPSBuYW1lOwogICAgdXNlckVtYWlsID0gZW1haWw7CiAgICBzdWJtaXRCdG4uZGlzYWJsZWQgPSB0cnVlOwogICAgc3VibWl0QnRuLnRleHRDb250ZW50ID0gJ0VudmlhbmRvLi4uJzsKICAgIHZhciBsZXZlbCA9IGdldExldmVsKHNjb3JlKTsKICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKICAgIHhoci5vcGVuKCdQT1NUJywgJy93cC1qc29uL3NhL3YxL3F1aXotbGVhZCcsIHRydWUpOwogICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7CiAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7CiAgICAgICAgICAgIHN1Ym1pdEJ0bi5kaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgICBzdWJtaXRCdG4udGV4dENvbnRlbnQgPSAnVmVyIG1pIHJlc3VsdGFkbyc7CiAgICAgICAgICAgIHNhU2hvd1Jlc3VsdHMoKTsKICAgICAgICB9CiAgICB9OwogICAgeGhyLnNlbmQoSlNPTi5zdHJpbmdpZnkoewogICAgICAgIG5hbWU6IG5hbWUsCiAgICAgICAgZW1haWw6IGVtYWlsLAogICAgICAgIHNjb3JlOiBzY29yZSwKICAgICAgICB0b3RhbDogcXVlc3Rpb25zLmxlbmd0aCwKICAgICAgICBsZXZlbDogbGV2ZWwudGl0bGUKICAgIH0pKTsKfTsKZnVuY3Rpb24gZ2V0TGV2ZWwocykgewogICAgcmV0dXJuIGxldmVscy5maW5kKGZ1bmN0aW9uKGwpIHsgcmV0dXJuIHMgPj0gbC5taW4gJiYgcyA8PSBsLm1heDsgfSk7Cn0Kd2luZG93LnNhU2hvd1Jlc3VsdHMgPSBmdW5jdGlvbigpIHsKICAgIHZhciBsZXZlbCA9IGdldExldmVsKHNjb3JlKTsKICAgIGlmICghdXNlck5hbWUpIHsKICAgICAgICB2YXIgbmFtZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhLWlucHV0LW5hbWUnKTsKICAgICAgICBpZiAobmFtZUlucHV0ICYmIG5hbWVJbnB1dC52YWx1ZS50cmltKCkpIHVzZXJOYW1lID0gbmFtZUlucHV0LnZhbHVlLnRyaW0oKTsKICAgICAgICBlbHNlIHVzZXJOYW1lID0gJ0FtYW50ZSBwZXJydW5vJzsKICAgIH0KICAgIHNhdmVRdWl6UmVzdWx0KHNjb3JlLCBxdWVzdGlvbnMubGVuZ3RoLCBsZXZlbC50aXRsZSwgdXNlck5hbWUpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC1pY29uJykudGV4dENvbnRlbnQgPSBsZXZlbC5pY29uOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC10aXRsZScpLnRleHRDb250ZW50ID0gbGV2ZWwudGl0bGU7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LXNjb3JlJykudGV4dENvbnRlbnQgPSBzY29yZSArICcgZGUgJyArIHF1ZXN0aW9ucy5sZW5ndGggKyAnIGFjaWVydG9zJzsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtZGVzY3JpcHRpb24nKS50ZXh0Q29udGVudCA9IGxldmVsLmRlc2NyaXB0aW9uOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njb3JlLWRvdHMnKS5pbm5lckhUTUwgPSBhbnN3ZXJzLm1hcChmdW5jdGlvbihjLCBpKSB7CiAgICAgICAgcmV0dXJuICdceDNjZGl2IGNsYXNzPSJzY29yZS1kb3QgJyArIChjID8gJ2NvcnJlY3QnIDogJ2luY29ycmVjdCcpICsgJyJceDNlJyArIChpKzEpICsgJ1x4M2MvZGl2XHgzZSc7CiAgICB9KS5qb2luKCcnKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXBsb21hLW5hbWUnKS50ZXh0Q29udGVudCA9IHVzZXJOYW1lOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpcGxvbWEtc2VhbC10ZXh0JykudGV4dENvbnRlbnQgPSBsZXZlbC50aXRsZTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXBsb21hLXNjb3JlLXRleHQnKS50ZXh0Q29udGVudCA9IHNjb3JlICsgJy8nICsgcXVlc3Rpb25zLmxlbmd0aCArICcgYWNpZXJ0b3MgZW4gZWwgUXVpeiBQZXJydW5vJzsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXBsb21hLWRhdGUnKS50ZXh0Q29udGVudCA9IGZvcm1hdERhdGUobmV3IERhdGUoKSk7CiAgICB2YXIgc3RhcnNIdG1sID0gJyc7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKykgewogICAgICAgIHN0YXJzSHRtbCArPSAnXHgzY3NwYW4gY2xhc3M9IicgKyAoaSA8IGxldmVsLnN0YXJzID8gJycgOiAnc3Rhci1lbXB0eScpICsgJyJceDNlXHUyNjA1XHgzYy9zcGFuXHgzZSc7CiAgICB9CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGlwbG9tYS1zdGFycycpLmlubmVySFRNTCA9IHN0YXJzSHRtbDsKICAgIGlmIChsZXZlbC5oYXNQcml6ZSAmJiB1c2VyRW1haWwpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpemUtYm94Jykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaXplLWJveCcpLmNsYXNzTmFtZSA9ICdwcml6ZS1ib3gnOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZS10aXRsZScpLnRleHRDb250ZW50ID0gbGV2ZWwucHJpemVUaXRsZTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpemUtdGV4dCcpLnRleHRDb250ZW50ID0gbGV2ZWwucHJpemVUZXh0OwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZS1pbnN0cnVjdGlvbnMnKS50ZXh0Q29udGVudCA9IGxldmVsLnByaXplSW5zdHJ1Y3Rpb25zOwogICAgfSBlbHNlIGlmIChsZXZlbC5oYXNQcml6ZSAmJiAhdXNlckVtYWlsKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaXplLWJveCcpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZS1ib3gnKS5jbGFzc05hbWUgPSAncHJpemUtYm94IHByaXplLWJveC1ub2VtYWlsJzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpemUtdGl0bGUnKS50ZXh0Q29udGVudCA9ICdcdTAwYTFUaWVuZXMgdW4gcHJlbWlvIGVzcGVyYW5kbyEnOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZS10ZXh0JykudGV4dENvbnRlbnQgPSAnUGFyYSByZWNpYmlyIHR1IHByZW1pbywgbmVjZXNpdGFtb3MgdHUgZW1haWwuJzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpemUtaW5zdHJ1Y3Rpb25zJykudGV4dENvbnRlbnQgPSAnJzsKICAgICAgICB2YXIgcHJpemVBY3Rpb25CdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpemUtYWN0aW9uLWJ0bicpOwogICAgICAgIHByaXplQWN0aW9uQnRuLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJzsKICAgICAgICBwcml6ZUFjdGlvbkJ0bi50ZXh0Q29udGVudCA9ICdSZWdpc3RyYXJtZSBwYXJhIHJlY2liaXIgbWkgcHJlbWlvJzsKICAgICAgICBwcml6ZUFjdGlvbkJ0bi5ocmVmID0gJyMnOwogICAgICAgIHByaXplQWN0aW9uQnRuLm9uY2xpY2sgPSBmdW5jdGlvbihlKSB7IGUucHJldmVudERlZmF1bHQoKTsgc2hvd1NjcmVlbignc2NyZWVuLWVtYWlsJyk7IH07CiAgICB9CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3RhLXRleHQnKS50ZXh0Q29udGVudCA9IGxldmVsLmN0YTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdGEtYnV0dG9uJykudGV4dENvbnRlbnQgPSBsZXZlbC5jdGFCdG4gfHwgJ0Rlc2N1YnJpciBMYSBUcmlidSc7CiAgICBzaG93U2NyZWVuKCdzY3JlZW4tcmVzdWx0cycpOwogICAgaWYgKHNjb3JlID49IDkpIGxhdW5jaENvbmZldHRpKCk7CiAgICBpZiAodXNlckVtYWlsKSB7CiAgICAgICAgZ2VuZXJhdGVEaXBsb21hQ2FudmFzKGZ1bmN0aW9uKGNhbnZhcykgewogICAgICAgICAgICBpZiAoY2FudmFzKSBzYVVwbG9hZERpcGxvbWEoY2FudmFzKTsKICAgICAgICB9KTsKICAgIH0KfTsKZnVuY3Rpb24gZ2V0U2hhcmVUZXh0KCkgewogICAgdmFyIGwgPSBnZXRMZXZlbChzY29yZSk7CiAgICByZXR1cm4gJ0hlIGNvbnNlZ3VpZG8gJyArIHNjb3JlICsgJy8nICsgcXVlc3Rpb25zLmxlbmd0aCArICcgZW4gZWwgUXVpeiBQZXJydW5vIGRlIEBzZW50aWRvYW5pbWFsRVMgeSBzb3kgJyArIGwudGl0bGUgKyAnLiBcdTAwYmZDdVx1MDBlMW50byBzYWJlcyB0XHUwMGZhIHNvYnJlIHR1IHBlcnJvPyc7Cn0KZnVuY3Rpb24gZ2V0U2hhcmVVcmwoKSB7IHJldHVybiAnaHR0cHM6Ly93d3cuc2VudGlkb2FuaW1hbC5lcy9xdWl6Lyc7IH0Kd2luZG93LnNhU2hhcmVXaGF0c0FwcCA9IGZ1bmN0aW9uKCkgeyB3aW5kb3cub3BlbignaHR0cHM6Ly93YS5tZS8/dGV4dD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGdldFNoYXJlVGV4dCgpICsgJ1xuXG4nICsgZ2V0U2hhcmVVcmwoKSksICdfYmxhbmsnKTsgfTsKd2luZG93LnNhU2hhcmVUd2l0dGVyID0gZnVuY3Rpb24oKSB7IHdpbmRvdy5vcGVuKCdodHRwczovL3R3aXR0ZXIuY29tL2ludGVudC90d2VldD90ZXh0PScgKyBlbmNvZGVVUklDb21wb25lbnQoZ2V0U2hhcmVUZXh0KCkpICsgJyZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChnZXRTaGFyZVVybCgpKSwgJ19ibGFuaycpOyB9Owp3aW5kb3cuc2FTaGFyZUZhY2Vib29rID0gZnVuY3Rpb24oKSB7IHdpbmRvdy5vcGVuKCdodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA/dT0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGdldFNoYXJlVXJsKCkpLCAnX2JsYW5rJyk7IH07CndpbmRvdy5zYUNvcHlMaW5rID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgYnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNhLXF1aXogLnNoYXJlLWJ0bi5jb3B5LWxpbmsnKTsKICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGdldFNoYXJlVXJsKCkpLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIG9yaWdpbmFsID0gYnRuLmlubmVySFRNTDsKICAgICAgICBidG4uaW5uZXJIVE1MID0gJ1x4M2Nzdmcgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCJceDNlXHgzY3BhdGggZD0iTTIwIDZMOSAxN2wtNS01Ii9ceDNlXHgzYy9zdmdceDNlIFx1MDBhMUNvcGlhZG8hJzsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBidG4uaW5uZXJIVE1MID0gb3JpZ2luYWw7IH0sIDIwMDApOwogICAgfSk7Cn07CmZ1bmN0aW9uIGxhdW5jaENvbmZldHRpKCkgewogICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgY29udGFpbmVyLmNsYXNzTmFtZSA9ICdjb25mZXR0aS1jb250YWluZXInOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNhLXF1aXonKS5hcHBlbmRDaGlsZChjb250YWluZXIpOwogICAgdmFyIGNvbG9ycyA9IFsnIzA2ODE4MScsJyMwYWI1YjUnLCcjZjM5YzEyJywnI2U3NGMzYycsJyMyZWNjNzEnLCcjRDlGMkYyJywnI2ZlZjNjNyddOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4MDsgaSsrKSB7CiAgICAgICAgdmFyIHBpZWNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgcGllY2UuY2xhc3NOYW1lID0gJ2NvbmZldHRpLXBpZWNlJzsKICAgICAgICBwaWVjZS5zdHlsZS5sZWZ0ID0gTWF0aC5yYW5kb20oKSoxMDArJyUnOwogICAgICAgIHBpZWNlLnN0eWxlLmJhY2tncm91bmQgPSBjb2xvcnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmNvbG9ycy5sZW5ndGgpXTsKICAgICAgICBwaWVjZS5zdHlsZS53aWR0aCA9IChNYXRoLnJhbmRvbSgpKjgrNikrJ3B4JzsKICAgICAgICBwaWVjZS5zdHlsZS5oZWlnaHQgPSAoTWF0aC5yYW5kb20oKSo4KzYpKydweCc7CiAgICAgICAgcGllY2Uuc3R5bGUuYW5pbWF0aW9uRHVyYXRpb24gPSAoTWF0aC5yYW5kb20oKSoyKzIpKydzJzsKICAgICAgICBwaWVjZS5zdHlsZS5hbmltYXRpb25EZWxheSA9IE1hdGgucmFuZG9tKCkqMS41KydzJzsKICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQocGllY2UpOwogICAgfQogICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgY29udGFpbmVyLnJlbW92ZSgpOyB9LCA1MDAwKTsKfQovLyA9PT09PT09PT09IERJUExPTUEgRE9XTkxPQUQgKENhbnZhcyBBUEkpID09PT09PT09PT0KZnVuY3Rpb24gc2FSb3VuZFJlY3QoY3R4LCB4LCB5LCB3LCBoLCByKSB7CiAgICBjdHguYmVnaW5QYXRoKCk7CiAgICBjdHgubW92ZVRvKHggKyByLCB5KTsKICAgIGN0eC5saW5lVG8oeCArIHcgLSByLCB5KTsKICAgIGN0eC5xdWFkcmF0aWNDdXJ2ZVRvKHggKyB3LCB5LCB4ICsgdywgeSArIHIpOwogICAgY3R4LmxpbmVUbyh4ICsgdywgeSArIGggLSByKTsKICAgIGN0eC5xdWFkcmF0aWNDdXJ2ZVRvKHggKyB3LCB5ICsgaCwgeCArIHcgLSByLCB5ICsgaCk7CiAgICBjdHgubGluZVRvKHggKyByLCB5ICsgaCk7CiAgICBjdHgucXVhZHJhdGljQ3VydmVUbyh4LCB5ICsgaCwgeCwgeSArIGggLSByKTsKICAgIGN0eC5saW5lVG8oeCwgeSArIHIpOwogICAgY3R4LnF1YWRyYXRpY0N1cnZlVG8oeCwgeSwgeCArIHIsIHkpOwogICAgY3R4LmNsb3NlUGF0aCgpOwp9CmZ1bmN0aW9uIGRyYXdHb2xkRGl2aWRlcihjdHgsIGN4LCBjeSwgd2lkdGgpIHsKICAgIHZhciBncmFkID0gY3R4LmNyZWF0ZUxpbmVhckdyYWRpZW50KGN4IC0gd2lkdGgvMiwgY3ksIGN4ICsgd2lkdGgvMiwgY3kpOwogICAgZ3JhZC5hZGRDb2xvclN0b3AoMCwgJ3RyYW5zcGFyZW50Jyk7CiAgICBncmFkLmFkZENvbG9yU3RvcCgwLjUsICcjZjM5YzEyJyk7CiAgICBncmFkLmFkZENvbG9yU3RvcCgxLCAndHJhbnNwYXJlbnQnKTsKICAgIGN0eC5maWxsU3R5bGUgPSBncmFkOwogICAgY3R4LmZpbGxSZWN0KGN4IC0gd2lkdGgvMiwgY3ksIHdpZHRoLCAyKTsKfQpmdW5jdGlvbiBkcmF3RGlwbG9tYUVsbGlwc2UoY3R4LCBjeCwgY3ksIHJ4LCByeSkgewogICAgY3R4LnNhdmUoKTsKICAgIGN0eC5iZWdpblBhdGgoKTsKICAgIGN0eC50cmFuc2xhdGUoY3gsIGN5KTsKICAgIGN0eC5zY2FsZSgxLCByeSAvIHJ4KTsKICAgIGN0eC5hcmMoMCwgMCwgcngsIDAsIDIgKiBNYXRoLlBJKTsKICAgIGN0eC5yZXN0b3JlKCk7CiAgICBjdHguZmlsbCgpOwp9CmZ1bmN0aW9uIGRyYXdTaW5nbGVQYXcoY3R4LCBjeCwgY3ksIHNjYWxlKSB7CiAgICB2YXIgcyA9IHNjYWxlIHx8IDE7CiAgICBkcmF3RGlwbG9tYUVsbGlwc2UoY3R4LCBjeCwgY3kgKyA0KnMsIDcqcywgOCpzKTsKICAgIGRyYXdEaXBsb21hRWxsaXBzZShjdHgsIGN4IC0gOCpzLCBjeSAtIDYqcywgNCpzLCA1KnMpOwogICAgZHJhd0RpcGxvbWFFbGxpcHNlKGN0eCwgY3ggKyA4KnMsIGN5IC0gNipzLCA0KnMsIDUqcyk7CiAgICBkcmF3RGlwbG9tYUVsbGlwc2UoY3R4LCBjeCAtIDQqcywgY3kgLSAxMipzLCA0KnMsIDUqcyk7CiAgICBkcmF3RGlwbG9tYUVsbGlwc2UoY3R4LCBjeCArIDQqcywgY3kgLSAxMipzLCA0KnMsIDUqcyk7Cn0KZnVuY3Rpb24gZHJhd1Bhd1BhdHRlcm4oY3R4LCBXLCBIKSB7CiAgICBjdHguc2F2ZSgpOwogICAgY3R4Lmdsb2JhbEFscGhhID0gMC4wNjsKICAgIGN0eC5maWxsU3R5bGUgPSAnI2MxN2QwZSc7CiAgICBmb3IgKHZhciByb3cgPSAwOyByb3cgPCBIOyByb3cgKz0gODApIHsKICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCBXOyBjb2wgKz0gODApIHsKICAgICAgICAgICAgZHJhd1NpbmdsZVBhdyhjdHgsIGNvbCArIDQwLCByb3cgKyA0MCwgMC41KTsKICAgICAgICB9CiAgICB9CiAgICBjdHgucmVzdG9yZSgpOwp9CmZ1bmN0aW9uIGRyYXdDb3JuZXJPcm5hbWVudChjdHgsIHgsIHksIHN4LCBzeSkgewogICAgY3R4LnNhdmUoKTsKICAgIGN0eC50cmFuc2xhdGUoeCwgeSk7CiAgICBjdHguc2NhbGUoc3gsIHN5KTsKICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2JhKDE5MywxMjUsMTQsMC40KSc7CiAgICBjdHgubGluZVdpZHRoID0gMzsKICAgIGN0eC5iZWdpblBhdGgoKTsKICAgIGN0eC5tb3ZlVG8oMCwgNjQpOwogICAgY3R4LmxpbmVUbygwLCAxNCk7CiAgICBjdHgucXVhZHJhdGljQ3VydmVUbygwLCAwLCAxNCwgMCk7CiAgICBjdHgubGluZVRvKDY0LCAwKTsKICAgIGN0eC5zdHJva2UoKTsKICAgIGN0eC5iZWdpblBhdGgoKTsKICAgIGN0eC5hcmMoMTAsIDEwLCA0LCAwLCAyICogTWF0aC5QSSk7CiAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMTkzLDEyNSwxNCwwLjMpJzsKICAgIGN0eC5maWxsKCk7CiAgICBjdHgucmVzdG9yZSgpOwp9CmZ1bmN0aW9uIGRyYXdHb2xkU2VhbChjdHgsIGN4LCBjeSwgbGV2ZWxUZXh0KSB7CiAgICB2YXIgciA9IDkwOwogICAgdmFyIGdyYWQgPSBjdHguY3JlYXRlUmFkaWFsR3JhZGllbnQoY3gsIGN5LCByICogMC4zLCBjeCwgY3ksIHIpOwogICAgZ3JhZC5hZGRDb2xvclN0b3AoMCwgJyNmMzljMTInKTsKICAgIGdyYWQuYWRkQ29sb3JTdG9wKDAuNSwgJyNlOGE5MTInKTsKICAgIGdyYWQuYWRkQ29sb3JTdG9wKDEsICcjYzE3ZDBlJyk7CiAgICBjdHguYmVnaW5QYXRoKCk7CiAgICBjdHguYXJjKGN4LCBjeSwgciwgMCwgMiAqIE1hdGguUEkpOwogICAgY3R4LmZpbGxTdHlsZSA9IGdyYWQ7CiAgICBjdHguZmlsbCgpOwogICAgY3R4LnNhdmUoKTsKICAgIGN0eC5zaGFkb3dDb2xvciA9ICdyZ2JhKDE5MywxMjUsMTQsMC4zNSknOwogICAgY3R4LnNoYWRvd0JsdXIgPSAxMjsKICAgIGN0eC5iZWdpblBhdGgoKTsKICAgIGN0eC5hcmMoY3gsIGN5LCByLCAwLCAyICogTWF0aC5QSSk7CiAgICBjdHguZmlsbCgpOwogICAgY3R4LnJlc3RvcmUoKTsKICAgIGN0eC5iZWdpblBhdGgoKTsKICAgIGN0eC5hcmMoY3gsIGN5LCByICogMC44MiwgMCwgMiAqIE1hdGguUEkpOwogICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYmEoMjU1LDI1NSwyNTUsMC41KSc7CiAgICBjdHgubGluZVdpZHRoID0gNDsKICAgIGN0eC5zdHJva2UoKTsKICAgIGN0eC5mb250ID0gJzQ4cHggc2VyaWYnOwogICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInOwogICAgY3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnOwogICAgY3R4LmZpbGxTdHlsZSA9ICcjZmZmZmZmJzsKICAgIGN0eC5maWxsVGV4dCgnXHVkODNkXHVkYzNlJywgY3gsIGN5IC0gMTApOwogICAgY3R4LnRleHRCYXNlbGluZSA9ICdhbHBoYWJldGljJzsKICAgIGN0eC5mb250ID0gJzcwMCAxNnB4IFVidW50dSwgc2Fucy1zZXJpZic7CiAgICBjdHguZmlsbFN0eWxlID0gJyNmZmZmZmYnOwogICAgdmFyIHdvcmRzID0gbGV2ZWxUZXh0LnNwbGl0KCcgJyk7CiAgICBpZiAod29yZHMubGVuZ3RoIDw9IDIpIHsKICAgICAgICBjdHguZmlsbFRleHQobGV2ZWxUZXh0LnRvVXBwZXJDYXNlKCksIGN4LCBjeSArIDM1KTsKICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIG1pZCA9IE1hdGguY2VpbCh3b3Jkcy5sZW5ndGggLyAyKTsKICAgICAgICBjdHguZmlsbFRleHQod29yZHMuc2xpY2UoMCwgbWlkKS5qb2luKCcgJykudG9VcHBlckNhc2UoKSwgY3gsIGN5ICsgMjgpOwogICAgICAgIGN0eC5maWxsVGV4dCh3b3Jkcy5zbGljZShtaWQpLmpvaW4oJyAnKS50b1VwcGVyQ2FzZSgpLCBjeCwgY3kgKyA0Nik7CiAgICB9Cn0KZnVuY3Rpb24gZHJhd0RpcGxvbWFTdGFycyhjdHgsIGN4LCBjeSwgZmlsbGVkLCB0b3RhbCkgewogICAgdmFyIHN0YXJDaGFyID0gJ1x1MjYwNSc7CiAgICB2YXIgc3BhY2luZyA9IDM2OwogICAgdmFyIHN0YXJ0WCA9IGN4IC0gKCh0b3RhbCAtIDEpICogc3BhY2luZykgLyAyOwogICAgY3R4LmZvbnQgPSAnMzJweCBzYW5zLXNlcmlmJzsKICAgIGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJzsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG90YWw7IGkrKykgewogICAgICAgIGN0eC5maWxsU3R5bGUgPSBpIDwgZmlsbGVkID8gJyNmMzljMTInIDogJ3JnYmEoMjQzLDE1NiwxOCwwLjI1KSc7CiAgICAgICAgY3R4LmZpbGxUZXh0KHN0YXJDaGFyLCBzdGFydFggKyBpICogc3BhY2luZywgY3kpOwogICAgfQp9CmZ1bmN0aW9uIGRyYXdTcGFjZWRUZXh0KGN0eCwgdGV4dCwgY3gsIGN5LCBzcGFjaW5nKSB7CiAgICB2YXIgY2hhcnMgPSB0ZXh0LnNwbGl0KCcnKTsKICAgIHZhciB0b3RhbFdpZHRoID0gMDsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICB0b3RhbFdpZHRoICs9IGN0eC5tZWFzdXJlVGV4dChjaGFyc1tpXSkud2lkdGggKyAoaSA8IGNoYXJzLmxlbmd0aCAtIDEgPyBzcGFjaW5nIDogMCk7CiAgICB9CiAgICB2YXIgeCA9IGN4IC0gdG90YWxXaWR0aCAvIDI7CiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNoYXJzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgY3R4LmZpbGxUZXh0KGNoYXJzW2pdLCB4ICsgY3R4Lm1lYXN1cmVUZXh0KGNoYXJzW2pdKS53aWR0aCAvIDIsIGN5KTsKICAgICAgICB4ICs9IGN0eC5tZWFzdXJlVGV4dChjaGFyc1tqXSkud2lkdGggKyBzcGFjaW5nOwogICAgfQp9CmZ1bmN0aW9uIGdlbmVyYXRlRGlwbG9tYUNhbnZhcyhjYWxsYmFjaykgewogICAgdmFyIEJHX1VSTCA9ICcvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDMvZGlwbG9tYS1xdWl6LXBlcnJ1bm8tYmctc2NhbGVkLnBuZyc7CiAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7CiAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIFcgPSAxMDgwOwogICAgICAgIHZhciBIID0gTWF0aC5yb3VuZChXICogaW1nLm5hdHVyYWxIZWlnaHQgLyBpbWcubmF0dXJhbFdpZHRoKTsKICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CiAgICAgICAgY2FudmFzLndpZHRoID0gVzsKICAgICAgICBjYW52YXMuaGVpZ2h0ID0gSDsKICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CiAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIFcsIEgpOwogICAgICAgIHZhciBiZ1NhbXBsZSA9IGN0eC5nZXRJbWFnZURhdGEoTWF0aC5yb3VuZChXICogMC4wOCksIE1hdGgucm91bmQoSCAqIDAuNDQpLCAxLCAxKS5kYXRhOwogICAgICAgIHZhciBiZ0NvbG9yID0gJ3JnYignICsgYmdTYW1wbGVbMF0gKyAnLCcgKyBiZ1NhbXBsZVsxXSArICcsJyArIGJnU2FtcGxlWzJdICsgJyknOwogICAgICAgIHZhciBuYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpcGxvbWEtbmFtZScpLnRleHRDb250ZW50IHx8ICdBbWFudGUgcGVycnVubyc7CiAgICAgICAgdmFyIGxldmVsID0gZ2V0TGV2ZWwoc2NvcmUpOwogICAgICAgIHZhciBkYXRlVGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXBsb21hLWRhdGUnKS50ZXh0Q29udGVudDsKICAgICAgICBjdHguZmlsbFN0eWxlID0gYmdDb2xvcjsKICAgICAgICBjdHguZmlsbFJlY3QoVyAqIDAuMTAsIEggKiAwLjM5LCBXICogMC44MCwgSCAqIDAuMTUpOwogICAgICAgIGN0eC5mb250ID0gJzcwMCAnICsgTWF0aC5yb3VuZChXICogMC4wMzcpICsgJ3B4IFVidW50dSwgc2Fucy1zZXJpZic7CiAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICcjMjIyMjIyJzsKICAgICAgICBjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7CiAgICAgICAgY3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnOwogICAgICAgIGN0eC5maWxsVGV4dChuYW1lLCBXIC8gMiwgSCAqIDAuNDUpOwogICAgICAgIHZhciBsdmxCZyA9IGN0eC5nZXRJbWFnZURhdGEoTWF0aC5yb3VuZChXICogMC4wOCksIE1hdGgucm91bmQoSCAqIDAuNjkpLCAxLCAxKS5kYXRhOwogICAgICAgIGN0eC5maWxsU3R5bGUgPSAncmdiKCcgKyBsdmxCZ1swXSArICcsJyArIGx2bEJnWzFdICsgJywnICsgbHZsQmdbMl0gKyAnKSc7CiAgICAgICAgY3R4LmZpbGxSZWN0KFcgKiAwLjEwLCBIICogMC42NiwgVyAqIDAuNTgsIEggKiAwLjA2NSk7CiAgICAgICAgY3R4LmZvbnQgPSAnaXRhbGljIDcwMCAnICsgTWF0aC5yb3VuZChXICogMC4wNDgpICsgJ3B4IFVidW50dSwgc2Fucy1zZXJpZic7CiAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICcjMDY4MTgxJzsKICAgICAgICBjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7CiAgICAgICAgY3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnOwogICAgICAgIGN0eC5maWxsVGV4dChsZXZlbC50aXRsZSwgVyAqIDAuNDgsIEggKiAwLjY5NSk7CiAgICAgICAgY3R4LmZpbGxTdHlsZSA9IGJnQ29sb3I7CiAgICAgICAgY3R4LmZpbGxSZWN0KFcgKiAwLjAyLCBIICogMC43OSwgVyAqIDAuMzAsIEggKiAwLjA2NSk7CiAgICAgICAgY3R4LmZvbnQgPSAnNDAwICcgKyBNYXRoLnJvdW5kKFcgKiAwLjAxOCkgKyAncHggTGF0bywgc2Fucy1zZXJpZic7CiAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICcjOGE4YThhJzsKICAgICAgICBjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7CiAgICAgICAgY3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnOwogICAgICAgIGN0eC5maWxsVGV4dChkYXRlVGV4dCwgVyAqIDAuMTU1LCBIICogMC44Mik7CiAgICAgICAgY2FsbGJhY2soY2FudmFzKTsKICAgIH07CiAgICBpbWcub25lcnJvciA9IGZ1bmN0aW9uKCkgewogICAgICAgIGNhbGxiYWNrKG51bGwpOwogICAgfTsKICAgIGltZy5zcmMgPSBCR19VUkw7Cn0KZnVuY3Rpb24gc2FVcGxvYWREaXBsb21hKGNhbnZhcykgewogICAgdmFyIGxldmVsID0gZ2V0TGV2ZWwoc2NvcmUpOwogICAgdmFyIGRhdGFVcmwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKTsKICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKICAgIHhoci5vcGVuKCdQT1NUJywgJy93cC1qc29uL3NhL3YxL3F1aXotZGlwbG9tYScsIHRydWUpOwogICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7CiAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7CiAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09PSAyMDApIHsKICAgICAgICAgICAgICAgIHRyeSB7IHZhciByID0gSlNPTi5wYXJzZSh4aHIucmVzcG9uc2VUZXh0KTsgfSBjYXRjaCAoZSkgeyAvKiBpZ25vcmUgKi8gfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfTsKICAgIHhoci5zZW5kKEpTT04uc3RyaW5naWZ5KHsKICAgICAgICBlbWFpbDogdXNlckVtYWlsLAogICAgICAgIG5hbWU6IHVzZXJOYW1lLAogICAgICAgIHNjb3JlOiBzY29yZSwKICAgICAgICB0b3RhbDogcXVlc3Rpb25zLmxlbmd0aCwKICAgICAgICBsZXZlbDogbGV2ZWwudGl0bGUsCiAgICAgICAgZGlwbG9tYV9wbmc6IGRhdGFVcmwKICAgIH0pKTsKfQp3aW5kb3cuc2FEb3dubG9hZERpcGxvbWEgPSBmdW5jdGlvbigpIHsKICAgIHZhciBidG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2EtcXVpeiAuZGlwbG9tYS1kb3dubG9hZC1idG4nKTsKICAgIGlmIChidG4pIHsgYnRuLmRpc2FibGVkID0gdHJ1ZTsgYnRuLnRleHRDb250ZW50ID0gJ0dlbmVyYW5kbyBkaXBsb21hLi4uJzsgfQogICAgZ2VuZXJhdGVEaXBsb21hQ2FudmFzKGZ1bmN0aW9uKGNhbnZhcykgewogICAgICAgIGlmICghY2FudmFzKSB7CiAgICAgICAgICAgIGlmIChidG4pIHsgYnRuLmRpc2FibGVkID0gZmFsc2U7IGJ0bi50ZXh0Q29udGVudCA9ICdcdWQ4M2RcdWRjZjcgRGVzY2FyZ2FyIGRpcGxvbWEgcGFyYSBJbnN0YWdyYW0nOyB9CiAgICAgICAgICAgIGFsZXJ0KCdObyBzZSBwdWRvIGNhcmdhciBsYSBwbGFudGlsbGEgZGVsIGRpcGxvbWEuIEludFx1MDBlOW50YWxvIGRlIG51ZXZvLicpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBkYXRhVXJsID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyk7CiAgICAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgICAgICAgICBhLmhyZWYgPSBkYXRhVXJsOwogICAgICAgICAgICBhLmRvd25sb2FkID0gJ2RpcGxvbWEtcXVpei1wZXJydW5vLnBuZyc7CiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7CiAgICAgICAgICAgIGEuY2xpY2soKTsKICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIHZhciB3ID0gd2luZG93Lm9wZW4oJycpOwogICAgICAgICAgICBpZiAodykgewogICAgICAgICAgICAgICAgdy5kb2N1bWVudC53cml0ZSgnPGltZyBzcmM9IicgKyBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKSArICciIHN0eWxlPSJtYXgtd2lkdGg6MTAwJSI+Jyk7CiAgICAgICAgICAgICAgICB3LmRvY3VtZW50LndyaXRlKCc8cCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtjb2xvcjojNTc1NzYwIj5NYW50XHUwMGU5biBwdWxzYWRhIGxhIGltYWdlbiBwYXJhIGd1YXJkYXJsYTwvcD4nKTsKICAgICAgICAgICAgICAgIHcuZG9jdW1lbnQudGl0bGUgPSAnRGlwbG9tYSBRdWl6IFBlcnJ1bm8nOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChidG4pIHsgYnRuLmRpc2FibGVkID0gZmFsc2U7IGJ0bi50ZXh0Q29udGVudCA9ICdcdWQ4M2RcdWRjZjcgRGVzY2FyZ2FyIGRpcGxvbWEgcGFyYSBJbnN0YWdyYW0nOyB9CiAgICB9KTsKfTsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhLWN1cnJlbnQteWVhcicpLnRleHRDb250ZW50ID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpOwppbml0UXVpeigpOwp9KSgpOw==»))

Pide tu valoración profesional

¡Inscríbete al evento!