CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2ZvbnQtYXdlc29tZS82LjQuMC9jc3MvYWxsLm1pbi5jc3MiPgogICAgPHN0eWxlPgogICAgICAgIDpyb290IHsKICAgICAgICAgICAgLS1wcmltYXJ5OiAjMWE3M2U4OwogICAgICAgICAgICAtLWRhbmdlcjogI2Q5MzAyNTsKICAgICAgICAgICAgLS1zdWNjZXNzOiAjMGI4MDQzOwogICAgICAgICAgICAtLXdhcm5pbmc6ICNmMjk5MDA7CiAgICAgICAgICAgIC0taW5mbzogIzQyODVmNDsKICAgICAgICAgICAgLS1kYXJrOiAjM2M0MDQzOwogICAgICAgICAgICAtLWxpZ2h0OiAjZjhmOWZhOwogICAgICAgIH0KICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdHb29nbGUgU2FucycsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwYzBjM2Q7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWRhcmspOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIH0KICAgICAgICAuY29udGFpbmVyIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiA3NTBweDsKICAgICAgICAgICAgbWFyZ2luOiAzMHB4IGF1dG87CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwwLDAsMC4xKTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgLmhlYWRlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXByaW1hcnkpIDAlLCAjMTc0ZWE2IDEwMCUpOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIHBhZGRpbmc6IDI1cHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KICAgICAgICAuaGVhZGVyIGgxIHsKICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgfQogICAgICAgIC5oZWFkZXIgcCB7CiAgICAgICAgICAgIG1hcmdpbjogOHB4IDAgMDsKICAgICAgICAgICAgb3BhY2l0eTogMC45OwogICAgICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgfQogICAgICAgIC5jb250ZW50IHsKICAgICAgICAgICAgcGFkZGluZzogMzBweDsKICAgICAgICB9CiAgICAgICAgLm51bWJlci1kaXNwbGF5IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbGlnaHQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgICBwYWRkaW5nOiAyNXB4OwogICAgICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgI2RhZGNlMDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7CiAgICAgICAgfQogICAgICAgIC5udW1iZXItY29udGFpbmVyIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNXB4OwogICAgICAgICAgICBtYXJnaW46IDE1cHggMDsKICAgICAgICB9CiAgICAgICAgLmNvdW50cnktY29kZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWRhcmspOwogICAgICAgIH0KICAgICAgICAubnVtYmVyIHsKICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZGFyayk7CiAgICAgICAgICAgIGRpcmVjdGlvbjogbHRyOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgIH0KICAgICAgICAuY291bnRyeS1iYWRnZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI2LCAxMTUsIDIzMiwgMC4xKTsKICAgICAgICAgICAgcGFkZGluZzogNnB4IDE1cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnkpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgICAgIH0KICAgICAgICAuZmxhZyB7CiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICB9CiAgICAgICAgLmJ0bi1ncmlkIHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBtYXJnaW46IDMwcHggMDsKICAgICAgICB9CiAgICAgICAgLmJ0biB7CiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHg7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5idG4tcHJpbWFyeSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnkpOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgfQogICAgICAgIC5idG4td2FybmluZyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdhcm5pbmcpOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgfQogICAgICAgIC5idG4tc3VjY2VzcyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXN1Y2Nlc3MpOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgfQogICAgICAgIC5idG4tZGFuZ2VyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFuZ2VyKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIH0KICAgICAgICAuYnRuLWluZm8gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbmZvKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIH0KICAgICAgICAuYnRuOmhvdmVyIHsKICAgICAgICAgICAgb3BhY2l0eTogMC45OwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsMCwwLDAuMSk7CiAgICAgICAgfQogICAgICAgIC5tZXNzYWdlLWNhcmQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZThmMGZlOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgICBtYXJnaW4tdG9wOiAyNXB4OwogICAgICAgICAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkIHZhcigtLXByaW1hcnkpOwogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KICAgICAgICAubWVzc2FnZS1oZWFkZXIgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQogICAgICAgIC5tZXNzYWdlLXRpdGxlIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnkpOwogICAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICB9CiAgICAgICAgLmNvcHktYnRuIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeSk7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA1cHg7CiAgICAgICAgfQogICAgICAgIC5tZXNzYWdlLWNvbnRlbnQgewogICAgICAgICAgICBmb250LXNpemU6IDE3cHg7CiAgICAgICAgICAgIG1hcmdpbjogMTVweCAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgICAgICAgcGFkZGluZzogMTVweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGFkY2UwOwogICAgICAgIH0KICAgICAgICAubWVzc2FnZS1mb290ZXIgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgICAgY29sb3I6ICM1ZjYzNjg7CiAgICAgICAgfQogICAgICAgIC5sb2FkaW5nLWNvbnRhaW5lciB7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgfQogICAgICAgIC5zcGlubmVyIHsKICAgICAgICAgICAgYm9yZGVyOiA1cHggc29saWQgcmdiYSgyNiwgMTE1LCAyMzIsIDAuMSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkIHZhcigtLXByaW1hcnkpOwogICAgICAgICAgICB3aWR0aDogNTBweDsKICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OwogICAgICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byAxNXB4OwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgICAgICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQogICAgICAgIC50b2FzdCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgYm90dG9tOiAzMHB4OwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFyayk7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAyNHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLDAsMCwwLjIpOwogICAgICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KICAgICAgICAuY291bnRyeS1zZWxlY3QgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAxNXB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkYWRjZTA7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzE3NGVhNjsKICAgICAgICAgICAgY29sb3I6ICMxZTlkZmY7CiAgICAgICAgfQogICAgICAgIC5kaXNjbGFpbWVyIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgICBjb2xvcjogIzcwNzU3YTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAzNXB4OwogICAgICAgICAgICBwYWRkaW5nLXRvcDogMjBweDsKICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMGUwZTA7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgfQogICAgICAgIC5jb3B5LW51bWJlci1idG4gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI2LCAxMTUsIDIzMiwgMC4xKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnkpOwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDE1cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA1cHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIH0KICAgICAgICAuY29weS1udW1iZXItYnRuOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNiwgMTE1LCAyMzIsIDAuMik7CiAgICAgICAgfQouYnV0dG9uLXN0eWxlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGMwYzNkOwogIGNvbG9yOiB3aGl0ZTsKICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgYm9yZGVyOiBub25lOwogIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgZm9udC1zaXplOiAxNXB4OwogIGN1cnNvcjogcG9pbnRlcjsKICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qINij2YggYmxvY2sg2KXYsNinINij2LHYr9iqINij2YYg2YrYo9iu2LAg2LnYsdi2INin2YTYs9i32LEg2YPYp9mF2YTYp9mLICovCiAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKCgogICAgIHdpZHRoOiAyMDglOyAgLyog2YXYq9in2YQ6INi52LHYtiA1MCUg2YXZhiDYudix2LYg2KfZhNi52YbYtdixINin2YTYo9ioICovCiAgLyog2KPZiCAqLwogIC8qIHdpZHRoOiBhdXRvOyAqLyAvKiDZhdir2KfZhDog2KfZhNi52LHYtiDYp9mE2KfZgdiq2LHYp9i22YrYjCDZitiq2YbYp9iz2Kgg2YXYuSDZhdit2KrZiNmJINin2YTYstixICjYp9mE2YbYtSArINin2YTZhdiz2KfZgdin2Kog2KfZhNiv2KfYrtmE2YrYqSkgKi8KfQoKLmJ1dHRvbi1zdHlsZTpob3ZlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDAwMDsKfQogIC5idXR0b25zLWNvbnRhaW5lciB7CiAgICBtYXgtd2lkdGg6IDIwMHB4OyAvKiDYo9mC2LXZiSDYudix2LYg2YTZhNit2KfZiNmK2KkgKi8KICAgIHdpZHRoOiA5MCU7IC8qINi52LHYtiDZhtiz2KjZiiAqLwogICAgbWFyZ2luOiBhdXRvOyAvKiDYqtmI2LPZiti3INin2YTYrdin2YjZitipINmG2YHYs9mH2Kcg2KPZgdmC2YrYp9mLICovCiAgICBiYWNrZ3JvdW5kOiAjZmZmOyAvKiDYrtmE2YHZitipINio2YrYttin2KEg2YTZhNit2KfZiNmK2KkgKi8KICAgIHBhZGRpbmc6IDIwcHg7CiAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IC8qINiq2YjYs9mK2Lcg2KfZhNi52YbYp9i12LEg2KfZhNiv2KfYrtmE2YrYqSAo2KXYsNinINmD2KfZhtiqIGlubGluZS1ibG9jaykgKi8KCiAgICAvKiDYo9mIINmK2YXZg9mG2YMg2KfYs9iq2K7Yr9in2YUgRmxleGJveCDZh9mG2Kcg2YTYqtix2KrZitioINin2YTYo9iy2LHYp9ixINi52YXZiNiv2YrYp9mLINmI2KrZiNiz2YrYt9mH2KcgKi8KICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyog2KrZiNiz2YrYtyDYp9mE2KPYstix2KfYsSDYo9mB2YLZitin2Ysg2K