Ly8vLwovLy8gQGdyb3VwIGFkZG9ucwovLy8vCgovLy8gU3R5bGUgZGVmaW5pdGlvbnMgZm9yIE9TQlAgZGVzaWduIG1vZGUuCi8vLyBAdG9kbyBEZWZpbml0aW9ucyBhcmVuJ3QgcHJvcGVybHkgZGVyaXZhdGVkIGZyb20gdGhlIG1haW4gc3R5bGUuIApAbWl4aW4gb3MtZGVzaWduZXIgewoJJGZvbnQtc2l6ZTogMTZweDsKCSR1bml0LXNpemU6IDMwcHg7CgkkZ2VuLW1hcmdpbnM6ICR1bml0LXNpemUgKiAwLjE7CgkkbWFpbi1jb2xvcjogJG9zLWRhcmstY29udHJhc3Q7CgoJLm9zYmVlLWRlc2lnbmVyLWFjdGl2ZS1zZWxlY3Rpb24gewoJCWJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50OwoJCWJvcmRlcjogMnB4IHNvbGlkIGJsdWUgIWltcG9ydGFudDsKCX0KCgkuby1kZXNpZ25lci1hY3RpdmUgLmwtY29udHJvbCB7CgkJYm9yZGVyOiAkdi1ib3JkZXI7CgkgICAgYm9yZGVyLWNvbG9yOiBsaWdodGJsdWU7Cgl9CgoJLm8tZGVzaWduZXItYWN0aXZlIC5sLWNvbnRyb2wgLnYtZ3JpZGxheW91dC1zbG90IHsKCQlib3JkZXI6ICR2LWJvcmRlcjsKCSAgICBib3JkZXItY29sb3I6IGxpZ2h0cGluazsKCX0KCS5vLWRlc2lnbmVyLW92ZXJsYXkgLnBvcHVwQ29udGVudCB7CgkJaGVpZ2h0OiAkdW5pdC1zaXplICsgJGdlbi1tYXJnaW5zICsgJGdlbi1tYXJnaW5zOwoJCXdpZHRoOiAxMDAlOwoJCWRpc3BsYXk6IGJsb2NrOwoJCWJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yOwoJCWJvcmRlci1yYWRpdXM6IDNweDsKCQlib3JkZXI6IDJweCBzb2xpZCAkbWFpbi1jb2xvcjsKCQkvKnBhZGRpbmc6ICRnZW4tbWFyZ2luczsgKi8KCQk+ZGl2IHsKICAgIAkJaGVpZ2h0OiAxMDAlOwoJCX0KCX0KCgkuby1kZXNpZ25lci1vdmVybGF5ZWQgewoJCWJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50OwoJCWJvcmRlcjogMnB4IHNvbGlkIGJsdWUgIWltcG9ydGFudDsKCX0KCgkuby1kZXNpZ25lci1vdmVybGF5IC5vLWFsaWdubWVudC13aWRnZXQgewoJCXBvc2l0aW9uOiByZWxhdGl2ZTsKCQl3aWR0aDogJHVuaXQtc2l6ZTsKCQloZWlnaHQ6ICR1bml0LXNpemU7CgkJYmFja2dyb3VuZC1jb2xvcjogdmFsby1mb250LWNvbG9yKCRtYWluLWNvbG9yKTsKCQlmbG9hdDogbGVmdDsKCQlwYWRkaW5nOiAkZ2VuLW1hcmdpbnM7CgkJbWFyZ2luLXJpZ2h0OiAkZ2VuLW1hcmdpbnM7CgkJLyptYXJnaW46ICR1bml0LXNpemUgKiAwLjEgJHVuaXQtc2l6ZSAqIDAuMiAkdW5pdC1zaXplICogMC4xICR1bml0LXNpemUgKiAwLjI7IC8vbyByIHUgbCovCgl9CgoJLm8tYWxpZ25tZW50LXdpZGdldCAuYWxpZ25tZW50IHsKCQkvL3RvcDogMHB4OwoJCS8vbGVmdDogMHB4OwoJCWRpc3BsYXk6IGJsb2NrOwoJCS13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKCQktbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CgkJaGVpZ2h0OiAkdW5pdC1zaXplOwoJCXdpZHRoOiAkdW5pdC1zaXplOwoJCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCQl6LWluZGV4OiAxMDsKCX0KCgkuby1hbGlnbm1lbnQtd2lkZ2V0IC5hbGlnbm1lbnQgLnNpbmdsZXMgewoJCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCQl0b3A6IDBweDsKCQlsZWZ0OiAwcHg7CgkJYm90dG9tOiAwcHg7CgkJY3Vyc29yOiBwb2ludGVyOwoJCWhlaWdodDogMjJweDsKCQl3aWR0aDogMjJweDsKCQlvdmVyZmxvdzogaGlkZGVuOwoJfQoKCS5vLWFsaWdubWVudC13aWRnZXQgLnNpbmdsZXMgLnRvcGxlZnQsIC5vLWFsaWdubWVudC13aWRnZXQgLnNpbmdsZXMgLnRvcGNlbnRlciwKCQkuby1hbGlnbm1lbnQtd2lkZ2V0IC5zaW5nbGVzIC50b3ByaWdodCwgLm8tYWxpZ25tZW50LXdpZGdldCAuc2luZ2xlcyAubWlkZGxlbGVmdCwKCQkuby1hbGlnbm1lbnQtd2lkZ2V0IC5zaW5nbGVzIC5taWRkbGVjZW50ZXIsIC5vLWFsaWdubWVudC13aWRnZXQgLnNpbmdsZXMgLm1pZGRsZXJpZ2h0LAoJCS5vLWFsaWdubWVudC13aWRnZXQgLnNpbmdsZXMgLmJvdHRvbWxlZnQsIC5vLWFsaWdubWVudC13aWRnZXQgLnNpbmdsZXMgLmJvdHRvbWNlbnRlciwKCQkuby1hbGlnbm1lbnQtd2lkZ2V0IC5zaW5nbGVzIC5ib3R0b21yaWdodCB7CgkJYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7CgkJaGVpZ2h0OiA2cHg7CgkJd2lkdGg6IDZweDsKCQlkaXNwbGF5OiBibG9jazsKCQlvdmVyZmxvdzogdmlzaWJsZTsKCQlwb3NpdGlvbjogYWJzb2x1dGU7CgkJei1pbmRleDogMzA7Cgl9CgoJLm8tYWxpZ25tZW50LXdpZGdldCAuc2luZ2xlcyAuby1zZWxlY3RlZCB7CgkJYmFja2dyb3VuZC1jb2xvcjogJHYtZm9jdXMtY29sb3I7Cgl9CgoJLm8tYWxpZ25tZW50LXdpZGdldCAuc2luZ2xlcyAudG9wbGVmdCB7CgkJdG9wOiAwcHg7CgkJbGVmdDogMHB4OwoJfQoKCS5vLWFsaWdubWVudC13aWRnZXQgLnNpbmdsZXMgLnRvcGNlbnRlciB7CgkJdG9wOiAwcHg7CgkJbGVmdDogMHB4OwoJCW1hcmdpbi1sZWZ0OiA4cHg7Cgl9CgoJLm8tYWxpZ25tZW50LXdpZGdldCAuc2luZ2xlcyAudG9wcmlnaHQgewoJCXRvcDogMHB4OwoJCXJpZ2h0OiAwcHg7Cgl9CgoJLm8tYWxpZ25tZW50LXdpZGdldCAuc2luZ2xlcyAubWlkZGxlbGVmdCB7CgkJdG9wOiAwcHg7CgkJbGVmdDogMHB4OwoJCW1hcmdpbi10b3A6IDhweDsKCX0KCgkuby1hbGlnbm1lbnQtd2lkZ2V0IC5zaW5nbGVzIC5taWRkbGVjZW50ZXIgewoJCXRvcDogMHB4OwoJCW1hcmdpbi10b3A6IDhweDsKCQlsZWZ0OiAwcHg7CgkJbWFyZ2luLWxlZnQ6IDhweDsKCX0KCgkuby1hbGlnbm1lbnQtd2lkZ2V0IC5zaW5nbGVzIC5taWRkbGVyaWdodCB7CgkJdG9wOiAwcHg7CgkJbWFyZ2luLXRvcDogOHB4OwoJCXJpZ2h0OiAwcHg7Cgl9CgoJLm8tYWxpZ25tZW50LXdpZGdldCAuc2luZ2xlcyAuYm90dG9tbGVmdCB7CgkJYm90dG9tOiAwcHg7CgkJbGVmdDogMHB4OwoJfQoKCS5vLWFsaWdubWVudC13aWRnZXQgLnNpbmdsZXMgLmJvdHRvbWNlbnRlciB7CgkJYm90dG9tOiAwcHg7CgkJbWFyZ2luLWxlZnQ6IDhweDsKCQlsZWZ0OiAwcHg7Cgl9CgoJLm8tYWxpZ25tZW50LXdpZGdldCAuc2luZ2xlcyAuYm90dG9tcmlnaHQgewoJCWJvdHRvbTogMHB4OwoJCXJpZ2h0OiAwcHg7Cgl9CgoJLm8tYWxpZ25tZW50LXdpZGdldCAuYWxpZ25tZW50IC5oZmlsbCB7CgkJcG9zaXRpb246IGFic29sdXRlOwoJCWJvdHRvbTogMHB4OwoJCWxlZnQ6IDBweDsKCQl3aWR0aDogMjJweDsKCQloZWlnaHQ6IDZweDsKCQliYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjsKCX0KCgkuby1hbGlnbm1lbnQtd2lkZ2V0IC5hbGlnbm1lbnQgLnZmaWxsIHsKCQlwb3NpdGlvbjogYWJzb2x1dGU7CgkJdG9wOiAwcHg7CgkJbGVmdDogMjRweDsKCQl3aWR0aDogNnB4OwoJCWhlaWdodDogMjJweDsKCQliYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjsKCX0KCgkuby1hbGlnbm1lbnQtd2lkZ2V0IC5hbGlnbm1lbnQgLnZmaWxsIC5vLXNlbGVjdGVkLCAuby1hbGlnbm1lbnQtd2lkZ2V0IC5hbGlnbm1lbnQgLmhmaWxsIC5vLXNlbGVjdGVkCgkJewoJCWJhY2tncm91bmQtY29sb3I6ICR2LWZvY3VzLWNvbG9yICFpbXBvcnRhbnQ7Cgl9CgoJLm8tZGVzaWduZXItb3ZlcmxheSAuby1idXR0b24td2lkZ2V0IHsKCQlwb3NpdGlvbjogcmVsYXRpdmU7CgkJb3ZlcmZsb3c6IGhpZGRlbjsKCQljdXJzb3I6IHBvaW50ZXI7CgkJYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7IC8vI2VmZWVmMTsKCQliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwoJCWJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKCQkvKmJvcmRlci1yYWRpdXM6IDJweDsKCQlib3JkZXI6IDBweDsKCQl3aWR0aDogMjBweDsKCQloZWlnaHQ6IDIwcHg7CgkJZmxvYXQ6IGxlZnQ7CgkJbWFyZ2luLWxlZnQ6IDNweDsKCQltYXJnaW4tdG9wOiA2cHg7Ki8KCX0KCgkuby1kZXNpZ25lci1vdmVybGF5IC52LWltYWdlIHsKCQlwb3NpdGlvbjogcmVsYXRpdmU7CgkJb3ZlcmZsb3c6IGhpZGRlbjsKCQljdXJzb3I6IHBvaW50ZXI7CgkJLypiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZWYxOwoKCQlib3JkZXItc3R5bGU6IHNvbGlkOwoJCWJvcmRlci1jb2xvcjogc2lsdmVyOwoJCWJvcmRlci13aWR0aDogNHB4OwoJCXdpZHRoOiAzMHB4OyovCgkJaGVpZ2h0OiAkZm9udC1zaXplOwoJCWZsb2F0OiBsZWZ0OwoJCXBhZGRpbmc6ICgkdW5pdC1zaXplIC0gJGZvbnQtc2l6ZSk7CgkJcGFkZGluZy10b3A6ICgkdW5pdC1zaXplIC0gJGZvbnQtc2l6ZSkgLSAoJGdlbi1tYXJnaW5zKTsJLy8xMXB4IGJlaSAxNnB4IGZvbnRncvbfZQl35HJlIGd1dAoJCS8qbWFyZ2luLWxlZnQ6IC0zcHg7CgkJbWFyZ2luLXRvcDogLTNweDsKCQltYXJnaW4tcmlnaHQ6IDhweDsqLwoJfQoKCS5vLWRlc2lnbmVyLW92ZXJsYXkgLnN3aXRjaEVkaXRhYmxlIHsKCQlwYWRkaW5nLXRvcDogKCR1bml0LXNpemUgLSAkZm9udC1zaXplKSAtICgkZ2VuLW1hcmdpbnMpOwoJCS8vbWFyZ2luOiAkZ2VuLW1hcmdpbnM7CgkJQGluY2x1ZGUgb3MtaWNvbi1mb250ICgkZm9udC1mYW1pbHk6IFZhYWRpbi1JY29ucywgJGNvbnRlbnQ6ICdcZTc3MScsCgkJCQkJCQkgICAkc2l6ZTogJGZvbnQtc2l6ZSwKCQkJCQkJCSAgICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSk7CgkJY29sb3I6IHZhbG8tZm9udC1jb2xvcigkbWFpbi1jb2xvcik7CgkJLy9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoImVkaXRfcHJvcGVydGllcy5naWYiKTsKCX0KCgkuby1kZXNpZ25lci1vdmVybGF5IC5yZW1vdmVDaGlsZCB7CiAJCXBhZGRpbmctdG9wOiAoJHVuaXQtc2l6ZSAtICRmb250LXNpemUpIC0gKCRnZW4tbWFyZ2lucyk7CgkJLy9tYXJnaW46ICR1bml0LXNpemUgKiAwLjE7CgkJQGluY2x1ZGUgb3MtaWNvbi1mb250ICgkZm9udC1mYW1pbHk6IFZhYWRpbi1JY29ucywgJGNvbnRlbnQ6ICdcZTgwYicsCgkJCQkJCQkgICAkc2l6ZTogJGZvbnQtc2l6ZSwKCQkJCQkJCSAgICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSk7CgkJY29sb3I6IHZhbG8tZm9udC1jb2xvcigkbWFpbi1jb2xvcik7CgkJLy9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRlbGV0ZS5naWYiKTsKCX0KCgkuby1kZXNpZ25lci1vdmVybGF5IC5hZGRDaGlsZCB7CgkJcGFkZGluZy10b3A6ICgkdW5pdC1zaXplIC0gJGZvbnQtc2l6ZSkgLSAoJGdlbi1tYXJnaW5zKTsKCQkvL21hcmdpbjogJHVuaXQtc2l6ZSAqIDAuMTsKCQlAaW5jbHVkZSBvcy1pY29uLWZvbnQgKCRmb250LWZhbWlseTogVmFhZGluLUljb25zLCAkY29udGVudDogJ1xlODAxJywKCQkJCQkJCSAgICRzaXplOiAkZm9udC1zaXplLAoJCQkJCQkJICAgJGxpbmUtaGVpZ2h0OiAkZm9udC1zaXplKTsKCQljb2xvcjogdmFsby1mb250LWNvbG9yKCRtYWluLWNvbG9yKTsKCQkvL2JhY2tncm91bmQtaW1hZ2U6IHVybCgiYWRkLnBuZyIpOwoJfQoKCS5vLWRlc2lnbmVyLW92ZXJsYXkgLm9wZW5Qcm9wZXJ0aWVzIHsKCQlwYWRkaW5nLXRvcDogKCR1bml0LXNpemUgLSAkZm9udC1zaXplKSAtICgkZ2VuLW1hcmdpbnMpOwoJCS8vbWFyZ2luOiAkdW5pdC1zaXplICogMC4xOwoJCUBpbmNsdWRlIG9zLWljb24tZm9udCAoJGZvbnQtZmFtaWx5OiBWYWFkaW4tSWNvbnMsICRjb250ZW50OiAnXGU2Y2YnLAoJCQkJCQkJICAgJHNpemU6ICRmb250LXNpemUsCgkJCQkJCQkgICAkbGluZS1oZWlnaHQ6ICRmb250LXNpemUpOwoJCWNvbG9yOiB2YWxvLWZvbnQtY29sb3IoJG1haW4tY29sb3IpOwoJCS8vYmFja2dyb3VuZC1pbWFnZTogdXJsKCJvcGVuUHJvcGVydGllcy5naWYiKTsKCX0KCgkuby1kZXNpZ25lci1vdmVybGF5IC5zd2l0Y2hNYXJnaW4gewoJCXBhZGRpbmctdG9wOiAoJHVuaXQtc2l6ZSAtICRmb250LXNpemUpIC0gKCRnZW4tbWFyZ2lucyk7CgkJLy9tYXJnaW46ICR1bml0LXNpemUgKiAwLjE7CgkJQGluY2x1ZGUgb3MtaWNvbi1mb250ICgkZm9udC1mYW1pbHk6IFZhYWRpbi1JY29ucywKCQkJCQkJCSAgICRjb250ZW50OiAnXGU2NWInLAoJCQkJCQkJICAgJHNpemU6ICRmb250LXNpemUsCgkJCQkJCQkgICAkbGluZS1oZWlnaHQ6ICRmb250LXNpemUpOwoJCWNvbG9yOiB2YWxvLWZvbnQtY29sb3IoJG1haW4tY29sb3IpOwoJCS8vYmFja2dyb3VuZC1pbWFnZTogdXJsKCJtYXJnaW4uZ2lmIik7Cgl9CgoJLm8tZGVzaWduZXItb3ZlcmxheSAuc3dpdGNoU3BhY2luZyAgewoJCXBhZGRpbmctdG9wOiAoJHVuaXQtc2l6ZSAtICRmb250LXNpemUpIC0gKCRnZW4tbWFyZ2lucyk7CgkJLy9tYXJnaW46ICR1bml0LXNpemUgKiAwLjE7CgkJQGluY2x1ZGUgb3MtaWNvbi1mb250ICgkZm9udC1mYW1pbHk6IFZhYWRpbi1JY29ucywgJGNvbnRlbnQ6ICdcZTY2NScsCgkJCQkJCQkgICAkc2l6ZTogJGZvbnQtc2l6ZSwKCQkJCQkJCSAgICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSk7CgkJY29sb3I6IHZhbG8tZm9udC1jb2xvcigkbWFpbi1jb2xvcik7CgkJLy9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoInNwYWNpbmcuZ2lmIik7Cgl9Cn0K