{
  "payloadType": "application/vnd.in-toto+json",
  "payload": "ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMDAtb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNjk1MjE4ODg0Njg0YzYxMWZlMDhhNzQ3NTFlZTQ0M2Y5NzFlOWJkOWJjMDYyZWRiYTgyMmRhM2ZlNDU5NjliNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMDEtb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTg4MWFhNWY1NjFiMjZhMjJiMTRhODI2MmFhNjE4NDlhY2UzNDlmZmQ3M2Q3NDc2OWUwMzBhYzkwYTFmY2Y4YSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMDItb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDIyNDc4ZGQwNDM5OGM1YmRiNTQ1YTViZTBhNjQzN2VjYzJlYjUzZDFkYmQyOWVkYWZjZmZmNGIzZGRmMGE0MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMDMtb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDdhZWU5ZTdiOWQ1YmVkYjIxNTA0MmMwMWNjZWRlZGQ5YmQ5YzMwYjBkZGRlYTg2MmRjMjUwNmI5ZDZjNzRkZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMDQtb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjZjMjc1MmFjZGE2MDdiMWQ1Y2E1MmRmOWU3NWMxYjliMjc2MWU2ODc1ZmYxMGM5YmQ2ZGRhYzQ3M2MwMjYyZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMDUtb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGM4ZGQ0MDE1NDRjMzFjYjkzYjg0NTllZWU3ZGEyMGVhMmEwNzYyNmE1OTQ1NWQ3ZDkyYjg1MjU3ZGY5YjQ2YyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMDYtb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjhkODM5ZjJlMDI3OTg1YThiMTRlNDVmMjMyMzc5ODg2MmVkZGI3NzcwZWU5ODAwZWE2YjdjODAzYWJlZTQ4OSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMDctb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzg5NThjNWYxODNjMDRmNmVhOTU5Y2ZkOTA1NjJiNTEyODEyNDE1NGIyYmJmOTc5YjhhMjJiOTQwNWIzMGVkOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMDgtb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmYxZjJhODg4NjhmZmMzN2Q1MjBkY2Y3N2QyNmYwZTgyMzcxMGI1ZTY4MmQ0NzNmZjEwZjY5NzRmYTNiNzUxNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMDktb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjcyZDM0YTQwMDQyNDFiNDVjMzMyYjYxZjhmZmExMjRlOWE5MTNiYzFhYjQ0MmI2NmU3MTdkM2U5NGU3NDFjZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMTAtb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjQ4Yzg2N2MyY2IwYTQ0YmZjMmY4NzY4Y2I5OGU0YWVjOWEzNTA5NDZmY2VhY2ZlYmRjYWQ1ZDMyYWQ0YTQ3MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMTEtb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTA2ODUxYjJjZmQzNWY0ODcyMmY4MjNiYzFhYjhmN2JjYjRhODc4YTViOGU5NzVmNGQzNTQ0ZjIzMDQ1NGVlYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMTItb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiM2FmMzM2NjdjMzA3ZTIwYWUyYTc2NDhlYTUyNjUzZGU0NmRkMDE3MTYwMWVjNWM2OTZlNDdhMmY1ZDViZjFlNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMTMtb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmNiY2I3NGIwNDNlMDcxZDFlMDU0NzFkNTAwZDc0ZGNmNjYxMTc1ZTAwODc4ZWQzMDJjY2RmMTgwMWE3NWFlZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwtMDAwMTQtb2YtMDAwMTQuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNTRiMWJlMTYwOTY5NmMzMDdjYzVjYTExN2IxZmE1NGZlYWRkZWJmZmEwNGU5YzJkYjExNzY1MmEwMTk2NDIzMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibW9kZWwuc2FmZXRlbnNvcnMuaW5kZXguanNvbiIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlZGUyNjU1ZmRjMDUwMDg1NjE5ODNiNmUwODI5YzYwMDcyN2MyOGQ1OTFlMDcxMDc3Mzc3MDU5ZjAzYTZjMDBlIgogICAgICB9CiAgICB9CiAgXSwKICAicHJlZGljYXRlVHlwZSI6ICJodHRwczovL2Fzc2F5LmNvLm56L2F0dGVzdGF0aW9uL2FkbWlzc2lvbi92MSIsCiAgInByZWRpY2F0ZSI6IHsKICAgICJzY2hlbWEiOiAicHJvdmVuYW5jZS1hcnRlZmFjdC92MSIsCiAgICAibW9kZWxfaWQiOiAib3BlbmFpL2dwdC1vc3MtMTIwYiIsCiAgICAia2luZCI6ICJsbG0iLAogICAgInZlcnNpb24iOiAiYjVjOTM5ZGU4Zjc1NDY5MmMxNjQ3Y2E3OWZiZjg1ZThjMWU3MGY4YSIsCiAgICAic3RhdHVzIjogImFkbWl0dGVkIiwKICAgICJldmlkZW5jZV90aWVyIjogIlQxIiwKICAgICJ2aW9sYXRpb25zIjogW10sCiAgICAibGljZW5jZSI6IHsKICAgICAgImlkZW50aWZpZXIiOiAiQXBhY2hlLTIuMCIsCiAgICAgICJldmlkZW5jZSI6ICJyZXBvc2l0b3J5LW1ldGFkYXRhIiwKICAgICAgImRlY2xhcmVkIjogewogICAgICAgICJpZGVudGlmaWVyIjogIkFwYWNoZS0yLjAiLAogICAgICAgICJiYXNpcyI6ICJsaWNlbmNlLWZpbGUiCiAgICAgIH0sCiAgICAgICJjb25jbHVkZWQiOiAiQXBhY2hlLTIuMCIsCiAgICAgICJiYXNlX29ibGlnYXRpb25zIjogW10sCiAgICAgICJjYW5vbmljYWxfdGV4dCI6ICJBcGFjaGUtMi4wLnR4dCIsCiAgICAgICJjYW5vbmljYWxfdGV4dF9kaWdlc3QiOiAic2hhMjU2OmNmYzc3NDliOTZmNjNiZDMxYzNjNDJiNWM0NzFiZjc1NjgxNDA1M2U4NDdjMTBmM2ViMDAzNDE3YmM1MjNkMzAiLAogICAgICAic291cmNlX3VybCI6ICJodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dCIsCiAgICAgICJzb3VyY2VfZGlnZXN0IjogInNoYTI1NjpjZmM3NzQ5Yjk2ZjYzYmQzMWMzYzQyYjVjNDcxYmY3NTY4MTQwNTNlODQ3YzEwZjNlYjAwMzQxN2JjNTIzZDMwIiwKICAgICAgImFkZGVkX2NsYXVzZV9zY3JlZW4iOiB7CiAgICAgICAgImZpbGVzX3JlYWQiOiBbCiAgICAgICAgICAiLi4vcG9saWN5LWZpbGVzL2dwdC1vc3MtMTIwYi11c2FnZS1wb2xpY3kudHh0IgogICAgICAgIF0sCiAgICAgICAgImZpbmRpbmdzIjogW10KICAgICAgfQogICAgfSwKICAgICJwcm92ZW5hbmNlIjogewogICAgICAic291cmNlIjogImh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vb3BlbmFpL2dwdC1vc3MtMTIwYiIsCiAgICAgICJvZmZpY2lhbF9saWNlbnNvcl9yZXBvIjogdHJ1ZSwKICAgICAgImZvcm1hdCI6ICJzYWZldGVuc29ycyIsCiAgICAgICJjaGVja3N1bV92ZXJpZmllZCI6IHRydWUKICAgIH0sCiAgICAiZXhwb3J0X2NvbnRyb2wiOiB7CiAgICAgICJzdGF0dXMiOiAibm90X2Fzc2Vzc2VkIiwKICAgICAgInJlc3VsdCI6ICJ1bmtub3duIiwKICAgICAgImJhc2lzIjogbnVsbCwKICAgICAgImFzc2Vzc2VkX2J5IjogbnVsbCwKICAgICAgImFzc2Vzc2VkX2RhdGUiOiBudWxsLAogICAgICAicmVmZXJlbmNlIjogbnVsbAogICAgfSwKICAgICJoYXJkd2FyZV9maXQiOiB7CiAgICAgICJtaW5fdGllciI6IDEsCiAgICAgICJ2cmFtX2ZwOCI6IG51bGwsCiAgICAgICJ2cmFtX2ZwNCI6ICI2MUdCIChuYXRpdmUgTVhGUDQsIHdlaWdodHMgb25seSkiLAogICAgICAiY29udGV4dF9jZWlsaW5nIjogIjEzMUsiLAogICAgICAiY29uY3VycmVuY3lfZW52ZWxvcGUiOiAiNTAtMTAwIChUaWVyIDEsIGRlc2lnbiA4LjEgZmlndXJlcykiCiAgICB9LAogICAgImluZGVtbml0eSI6IHsKICAgICAgInByb3ZpZGVkX2J5X2xpY2Vuc29yIjogZmFsc2UsCiAgICAgICJjbGllbnRfZGlzY2xvc3VyZV9yZXF1aXJlZCI6IHRydWUKICAgIH0sCiAgICAiYXR0ZXN0YXRpb24iOiB7CiAgICAgICJrZXlfaWQiOiAiNjExM2YxNzg2NjNhZDk0YWQ0YjU2ZGRmMzYyOTFkOTI2ODNiMzc1YzE3YjAwMjMwZmQ3MDY3OWEyNzQwOGFmNCIsCiAgICAgICJpc3N1ZWRfYXQiOiAiMjAyNi0wOS0yNFQwMDowMDowMFoiLAogICAgICAiZ2F0ZV92ZXJzaW9uIjogIjIwMjYtMDktMjQiCiAgICB9LAogICAgImdhdGUiOiB7CiAgICAgICJ0b29sIjogImFkbWlzc2lvbi1nYXRlIiwKICAgICAgInZlcnNpb24iOiAiMjAyNi0wOS0yNCIsCiAgICAgICJydW5fZGlnZXN0IjogInNoYTI1NjoyNzNjYmYzNmViNjhlNThlZGQ3NTkwZGY4MzIyMzg1Y2Q5OWZjM2RiZTA1ODBhOGJmZjNkODk4ZmQ1MmZjNDNhIgogICAgfSwKICAgICJyZXZpZXciOiB7CiAgICAgICJyZXZpZXdlZF9ieSI6ICJ0ZWFtLXFhICh3ZWlnaHRzLmRpZ2VzdCBpcyB0aGUgTEZTIHNoYTI1NiBvZiB0aGUgcGlubmVkIHNhZmV0ZW5zb3JzIGZpbGUsIHdoaWNoIGlzIHRoZSBjb250ZW50IGRpZ2VzdCBmb3IgTEZTLXN0b3JlZCBmaWxlczsgYSBtdWx0aS1zaGFyZCBzZXQgaXMgcGlubmVkIGluIGZ1bGw6IGV2ZXJ5IHNoYXJkIGFuZCB0aGUgaW5kZXggZmlsZSBjYXJyeSB0aGVpciBvd24gZGlnZXN0IChmaW5kaW5ncyByZWdpc3RlciBWLTA0KTsgZXhwb3J0IHNjcmVlbmluZyBhbmQgY291bnNlbCBzaWduLW9mZiBwZW5kaW5nLCBkZWNpc2lvbiAwMDE3KSIsCiAgICAgICJyZXZpZXdlZF9kYXRlIjogIjIwMjYtMDktMjUiLAogICAgICAidHJpYWdlIjogW10KICAgIH0sCiAgICAiY2hhdF90ZW1wbGF0ZSI6ICJ7Iy1cbiAgSW4gYWRkaXRpb24gdG8gdGhlIG5vcm1hbCBpbnB1dHMgb2YgYG1lc3NhZ2VzYCBhbmQgYHRvb2xzYCwgdGhpcyB0ZW1wbGF0ZSBhbHNvIGFjY2VwdHMgdGhlXG4gIGZvbGxvd2luZyBrd2FyZ3M6XG4gIC0gXCJidWlsdGluX3Rvb2xzXCI6IEEgbGlzdCwgY2FuIGNvbnRhaW4gXCJicm93c2VyXCIgYW5kL29yIFwicHl0aG9uXCIuXG4gIC0gXCJtb2RlbF9pZGVudGl0eVwiOiBBIHN0cmluZyB0aGF0IG9wdGlvbmFsbHkgZGVzY3JpYmVzIHRoZSBtb2RlbCBpZGVudGl0eS5cbiAgLSBcInJlYXNvbmluZ19lZmZvcnRcIjogQSBzdHJpbmcgdGhhdCBkZXNjcmliZXMgdGhlIHJlYXNvbmluZyBlZmZvcnQsIGRlZmF1bHRzIHRvIFwibWVkaXVtXCIuXG4gI31cblxueyMtIFRvb2wgRGVmaW5pdGlvbiBSZW5kZXJpbmcgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjfVxueyUtIG1hY3JvIHJlbmRlcl90eXBlc2NyaXB0X3R5cGUocGFyYW1fc3BlYywgcmVxdWlyZWRfcGFyYW1zLCBpc19udWxsYWJsZT1mYWxzZSkgLSV9XG4gICAgeyUtIGlmIHBhcmFtX3NwZWMudHlwZSA9PSBcImFycmF5XCIgLSV9XG4gICAgICAgIHslLSBpZiBwYXJhbV9zcGVjWydpdGVtcyddIC0lfVxuICAgICAgICAgICAgeyUtIGlmIHBhcmFtX3NwZWNbJ2l0ZW1zJ11bJ3R5cGUnXSA9PSBcInN0cmluZ1wiIC0lfVxuICAgICAgICAgICAgICAgIHt7LSBcInN0cmluZ1tdXCIgfX1cbiAgICAgICAgICAgIHslLSBlbGlmIHBhcmFtX3NwZWNbJ2l0ZW1zJ11bJ3R5cGUnXSA9PSBcIm51bWJlclwiIC0lfVxuICAgICAgICAgICAgICAgIHt7LSBcIm51bWJlcltdXCIgfX1cbiAgICAgICAgICAgIHslLSBlbGlmIHBhcmFtX3NwZWNbJ2l0ZW1zJ11bJ3R5cGUnXSA9PSBcImludGVnZXJcIiAtJX1cbiAgICAgICAgICAgICAgICB7ey0gXCJudW1iZXJbXVwiIH19XG4gICAgICAgICAgICB7JS0gZWxpZiBwYXJhbV9zcGVjWydpdGVtcyddWyd0eXBlJ10gPT0gXCJib29sZWFuXCIgLSV9XG4gICAgICAgICAgICAgICAge3stIFwiYm9vbGVhbltdXCIgfX1cbiAgICAgICAgICAgIHslLSBlbHNlIC0lfVxuICAgICAgICAgICAgICAgIHslLSBzZXQgaW5uZXJfdHlwZSA9IHJlbmRlcl90eXBlc2NyaXB0X3R5cGUocGFyYW1fc3BlY1snaXRlbXMnXSwgcmVxdWlyZWRfcGFyYW1zKSAtJX1cbiAgICAgICAgICAgICAgICB7JS0gaWYgaW5uZXJfdHlwZSA9PSBcIm9iamVjdCB8IG9iamVjdFwiIG9yIGlubmVyX3R5cGV8bGVuZ3RoIFx1MDAzZSA1MCAtJX1cbiAgICAgICAgICAgICAgICAgICAge3stIFwiYW55W11cIiB9fVxuICAgICAgICAgICAgICAgIHslLSBlbHNlIC0lfVxuICAgICAgICAgICAgICAgICAgICB7ey0gaW5uZXJfdHlwZSArIFwiW11cIiB9fVxuICAgICAgICAgICAgICAgIHslLSBlbmRpZiAtJX1cbiAgICAgICAgICAgIHslLSBlbmRpZiAtJX1cbiAgICAgICAgICAgIHslLSBpZiBwYXJhbV9zcGVjLm51bGxhYmxlIC0lfVxuICAgICAgICAgICAgICAgIHt7LSBcIiB8IG51bGxcIiB9fVxuICAgICAgICAgICAgeyUtIGVuZGlmIC0lfVxuICAgICAgICB7JS0gZWxzZSAtJX1cbiAgICAgICAgICAgIHt7LSBcImFueVtdXCIgfX1cbiAgICAgICAgICAgIHslLSBpZiBwYXJhbV9zcGVjLm51bGxhYmxlIC0lfVxuICAgICAgICAgICAgICAgIHt7LSBcIiB8IG51bGxcIiB9fVxuICAgICAgICAgICAgeyUtIGVuZGlmIC0lfVxuICAgICAgICB7JS0gZW5kaWYgLSV9XG4gICAgeyUtIGVsaWYgcGFyYW1fc3BlYy50eXBlIGlzIGRlZmluZWQgYW5kIHBhcmFtX3NwZWMudHlwZSBpcyBpdGVyYWJsZSBhbmQgcGFyYW1fc3BlYy50eXBlIGlzIG5vdCBzdHJpbmcgYW5kIHBhcmFtX3NwZWMudHlwZSBpcyBub3QgbWFwcGluZyBhbmQgcGFyYW1fc3BlYy50eXBlWzBdIGlzIGRlZmluZWQgLSV9XG4gICAgICAgIHsjLSBIYW5kbGUgYXJyYXkgb2YgdHlwZXMgbGlrZSBbXCJvYmplY3RcIiwgXCJvYmplY3RcIl0gZnJvbSBVbmlvbltkaWN0LCBsaXN0XSAjfVxuICAgICAgICB7JS0gaWYgcGFyYW1fc3BlYy50eXBlIHwgbGVuZ3RoIFx1MDAzZSAxIC0lfVxuICAgICAgICAgICAge3stIHBhcmFtX3NwZWMudHlwZSB8IGpvaW4oXCIgfCBcIikgfX1cbiAgICAgICAgeyUtIGVsc2UgLSV9XG4gICAgICAgICAgICB7ey0gcGFyYW1fc3BlYy50eXBlWzBdIH19XG4gICAgICAgIHslLSBlbmRpZiAtJX1cbiAgICB7JS0gZWxpZiBwYXJhbV9zcGVjLm9uZU9mIC0lfVxuICAgICAgICB7Iy0gSGFuZGxlIG9uZU9mIHNjaGVtYXMgLSBjaGVjayBmb3IgY29tcGxleCB1bmlvbnMgYW5kIGZhbGxiYWNrIHRvIGFueSAjfVxuICAgICAgICB7JS0gc2V0IGhhc19vYmplY3RfdmFyaWFudHMgPSBmYWxzZSAtJX1cbiAgICAgICAgeyUtIGZvciB2YXJpYW50IGluIHBhcmFtX3NwZWMub25lT2YgLSV9XG4gICAgICAgICAgICB7JS0gaWYgdmFyaWFudC50eXBlID09IFwib2JqZWN0XCIgLSV9XG4gICAgICAgICAgICAgICAgeyUtIHNldCBoYXNfb2JqZWN0X3ZhcmlhbnRzID0gdHJ1ZSAtJX1cbiAgICAgICAgICAgIHslLSBlbmRpZiAtJX1cbiAgICAgICAgeyUtIGVuZGZvciAtJX1cbiAgICAgICAgeyUtIGlmIGhhc19vYmplY3RfdmFyaWFudHMgYW5kIHBhcmFtX3NwZWMub25lT2Z8bGVuZ3RoIFx1MDAzZSAxIC0lfVxuICAgICAgICAgICAge3stIFwiYW55XCIgfX1cbiAgICAgICAgeyUtIGVsc2UgLSV9XG4gICAgICAgICAgICB7JS0gZm9yIHZhcmlhbnQgaW4gcGFyYW1fc3BlYy5vbmVPZiAtJX1cbiAgICAgICAgICAgICAgICB7ey0gcmVuZGVyX3R5cGVzY3JpcHRfdHlwZSh2YXJpYW50LCByZXF1aXJlZF9wYXJhbXMpIC19fVxuICAgICAgICAgICAgICAgIHslLSBpZiB2YXJpYW50LmRlc2NyaXB0aW9uICV9XG4gICAgICAgICAgICAgICAgICAgIHt7LSBcIi8vIFwiICsgdmFyaWFudC5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgIHslLSBlbmRpZiAtJX1cbiAgICAgICAgICAgICAgICB7JS0gaWYgdmFyaWFudC5kZWZhdWx0IGlzIGRlZmluZWQgJX1cbiAgICAgICAgICAgICAgICAgICAge3sgXCIvLyBkZWZhdWx0OiBcIiArIHZhcmlhbnQuZGVmYXVsdHx0b2pzb24gfX1cbiAgICAgICAgICAgICAgICB7JS0gZW5kaWYgLSV9XG4gICAgICAgICAgICAgICAgeyUtIGlmIG5vdCBsb29wLmxhc3QgJX1cbiAgICAgICAgICAgICAgICAgICAge3stIFwiIHwgXCIgfX1cbiAgICAgICAgICAgICAgICB7JSBlbmRpZiAtJX1cbiAgICAgICAgICAgIHslLSBlbmRmb3IgLSV9XG4gICAgICAgIHslLSBlbmRpZiAtJX1cbiAgICB7JS0gZWxpZiBwYXJhbV9zcGVjLnR5cGUgPT0gXCJzdHJpbmdcIiAtJX1cbiAgICAgICAgeyUtIGlmIHBhcmFtX3NwZWMuZW51bSAtJX1cbiAgICAgICAgICAgIHt7LSAnXCInICsgcGFyYW1fc3BlYy5lbnVtfGpvaW4oJ1wiIHwgXCInKSArICdcIicgLX19XG4gICAgICAgIHslLSBlbHNlIC0lfVxuICAgICAgICAgICAge3stIFwic3RyaW5nXCIgfX1cbiAgICAgICAgICAgIHslLSBpZiBwYXJhbV9zcGVjLm51bGxhYmxlICV9XG4gICAgICAgICAgICAgICAge3stIFwiIHwgbnVsbFwiIH19XG4gICAgICAgICAgICB7JS0gZW5kaWYgLSV9XG4gICAgICAgIHslLSBlbmRpZiAtJX1cbiAgICB7JS0gZWxpZiBwYXJhbV9zcGVjLnR5cGUgPT0gXCJudW1iZXJcIiAtJX1cbiAgICAgICAge3stIFwibnVtYmVyXCIgfX1cbiAgICB7JS0gZWxpZiBwYXJhbV9zcGVjLnR5cGUgPT0gXCJpbnRlZ2VyXCIgLSV9XG4gICAgICAgIHt7LSBcIm51bWJlclwiIH19XG4gICAgeyUtIGVsaWYgcGFyYW1fc3BlYy50eXBlID09IFwiYm9vbGVhblwiIC0lfVxuICAgICAgICB7ey0gXCJib29sZWFuXCIgfX1cblxuICAgIHslLSBlbGlmIHBhcmFtX3NwZWMudHlwZSA9PSBcIm9iamVjdFwiIC0lfVxuICAgICAgICB7JS0gaWYgcGFyYW1fc3BlYy5wcm9wZXJ0aWVzIC0lfVxuICAgICAgICAgICAge3stIFwie1xcblwiIH19XG4gICAgICAgICAgICB7JS0gZm9yIHByb3BfbmFtZSwgcHJvcF9zcGVjIGluIHBhcmFtX3NwZWMucHJvcGVydGllcy5pdGVtcygpIC0lfVxuICAgICAgICAgICAgICAgIHt7LSBwcm9wX25hbWUgLX19XG4gICAgICAgICAgICAgICAgeyUtIGlmIHByb3BfbmFtZSBub3QgaW4gKHBhcmFtX3NwZWMucmVxdWlyZWQgb3IgW10pIC0lfVxuICAgICAgICAgICAgICAgICAgICB7ey0gXCI/XCIgfX1cbiAgICAgICAgICAgICAgICB7JS0gZW5kaWYgLSV9XG4gICAgICAgICAgICAgICAge3stIFwiOiBcIiB9fVxuICAgICAgICAgICAgICAgIHt7IHJlbmRlcl90eXBlc2NyaXB0X3R5cGUocHJvcF9zcGVjLCBwYXJhbV9zcGVjLnJlcXVpcmVkIG9yIFtdKSB9fVxuICAgICAgICAgICAgICAgIHslLSBpZiBub3QgbG9vcC5sYXN0IC0lfVxuICAgICAgICAgICAgICAgICAgICB7ey1cIiwgXCIgfX1cbiAgICAgICAgICAgICAgICB7JS0gZW5kaWYgLSV9XG4gICAgICAgICAgICB7JS0gZW5kZm9yIC0lfVxuICAgICAgICAgICAge3stIFwifVwiIH19XG4gICAgICAgIHslLSBlbHNlIC0lfVxuICAgICAgICAgICAge3stIFwib2JqZWN0XCIgfX1cbiAgICAgICAgeyUtIGVuZGlmIC0lfVxuICAgIHslLSBlbHNlIC0lfVxuICAgICAgICB7ey0gXCJhbnlcIiB9fVxuICAgIHslLSBlbmRpZiAtJX1cbnslLSBlbmRtYWNybyAtJX1cblxueyUtIG1hY3JvIHJlbmRlcl90b29sX25hbWVzcGFjZShuYW1lc3BhY2VfbmFtZSwgdG9vbHMpIC0lfVxuICAgIHt7LSBcIiMjIFwiICsgbmFtZXNwYWNlX25hbWUgKyBcIlxcblxcblwiIH19XG4gICAge3stIFwibmFtZXNwYWNlIFwiICsgbmFtZXNwYWNlX25hbWUgKyBcIiB7XFxuXFxuXCIgfX1cbiAgICB7JS0gZm9yIHRvb2wgaW4gdG9vbHMgJX1cbiAgICAgICAgeyUtIHNldCB0b29sID0gdG9vbC5mdW5jdGlvbiAlfVxuICAgICAgICB7ey0gXCIvLyBcIiArIHRvb2wuZGVzY3JpcHRpb24gKyBcIlxcblwiIH19XG4gICAgICAgIHt7LSBcInR5cGUgXCIrIHRvb2wubmFtZSArIFwiID0gXCIgfX1cbiAgICAgICAgeyUtIGlmIHRvb2wucGFyYW1ldGVycyBhbmQgdG9vbC5wYXJhbWV0ZXJzLnByb3BlcnRpZXMgJX1cbiAgICAgICAgICAgIHt7LSBcIihfOiB7XFxuXCIgfX1cbiAgICAgICAgICAgIHslLSBmb3IgcGFyYW1fbmFtZSwgcGFyYW1fc3BlYyBpbiB0b29sLnBhcmFtZXRlcnMucHJvcGVydGllcy5pdGVtcygpICV9XG4gICAgICAgICAgICAgICAgeyUtIGlmIHBhcmFtX3NwZWMuZGVzY3JpcHRpb24gJX1cbiAgICAgICAgICAgICAgICAgICAge3stIFwiLy8gXCIgKyBwYXJhbV9zcGVjLmRlc2NyaXB0aW9uICsgXCJcXG5cIiB9fVxuICAgICAgICAgICAgICAgIHslLSBlbmRpZiAlfVxuICAgICAgICAgICAgICAgIHt7LSBwYXJhbV9uYW1lIH19XG4gICAgICAgICAgICAgICAgeyUtIGlmIHBhcmFtX25hbWUgbm90IGluICh0b29sLnBhcmFtZXRlcnMucmVxdWlyZWQgb3IgW10pIC0lfVxuICAgICAgICAgICAgICAgICAgICB7ey0gXCI/XCIgfX1cbiAgICAgICAgICAgICAgICB7JS0gZW5kaWYgLSV9XG4gICAgICAgICAgICAgICAge3stIFwiOiBcIiB9fVxuICAgICAgICAgICAgICAgIHt7LSByZW5kZXJfdHlwZXNjcmlwdF90eXBlKHBhcmFtX3NwZWMsIHRvb2wucGFyYW1ldGVycy5yZXF1aXJlZCBvciBbXSkgfX1cbiAgICAgICAgICAgICAgICB7JS0gaWYgcGFyYW1fc3BlYy5kZWZhdWx0IGlzIGRlZmluZWQgLSV9XG4gICAgICAgICAgICAgICAgICAgIHslLSBpZiBwYXJhbV9zcGVjLmVudW0gJX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7LSBcIiwgLy8gZGVmYXVsdDogXCIgKyBwYXJhbV9zcGVjLmRlZmF1bHQgfX1cbiAgICAgICAgICAgICAgICAgICAgeyUtIGVsaWYgcGFyYW1fc3BlYy5vbmVPZiAlfVxuICAgICAgICAgICAgICAgICAgICAgICAge3stIFwiLy8gZGVmYXVsdDogXCIgKyBwYXJhbV9zcGVjLmRlZmF1bHQgfX1cbiAgICAgICAgICAgICAgICAgICAgeyUtIGVsc2UgJX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7LSBcIiwgLy8gZGVmYXVsdDogXCIgKyBwYXJhbV9zcGVjLmRlZmF1bHR8dG9qc29uIH19XG4gICAgICAgICAgICAgICAgICAgIHslLSBlbmRpZiAtJX1cbiAgICAgICAgICAgICAgICB7JS0gZW5kaWYgLSV9XG4gICAgICAgICAgICAgICAgeyUtIGlmIG5vdCBsb29wLmxhc3QgJX1cbiAgICAgICAgICAgICAgICAgICAge3stIFwiLFxcblwiIH19XG4gICAgICAgICAgICAgICAgeyUtIGVsc2UgJX1cbiAgICAgICAgICAgICAgICAgICAge3stIFwiLFxcblwiIH19XG4gICAgICAgICAgICAgICAgeyUtIGVuZGlmIC0lfVxuICAgICAgICAgICAgeyUtIGVuZGZvciAlfVxuICAgICAgICAgICAge3stIFwifSkgPVx1MDAzZSBhbnk7XFxuXFxuXCIgfX1cbiAgICAgICAgeyUtIGVsc2UgLSV9XG4gICAgICAgICAgICB7ey0gXCIoKSA9XHUwMDNlIGFueTtcXG5cXG5cIiB9fVxuICAgICAgICB7JS0gZW5kaWYgLSV9XG4gICAgeyUtIGVuZGZvciAlfVxuICAgIHt7LSBcIn0gLy8gbmFtZXNwYWNlIFwiICsgbmFtZXNwYWNlX25hbWUgfX1cbnslLSBlbmRtYWNybyAtJX1cblxueyUtIG1hY3JvIHJlbmRlcl9idWlsdGluX3Rvb2xzKGJyb3dzZXJfdG9vbCwgcHl0aG9uX3Rvb2wpIC0lfVxuICAgIHslLSBpZiBicm93c2VyX3Rvb2wgJX1cbiAgICAgICAge3stIFwiIyMgYnJvd3NlclxcblxcblwiIH19XG4gICAgICAgIHt7LSBcIi8vIFRvb2wgZm9yIGJyb3dzaW5nLlxcblwiIH19XG4gICAgICAgIHt7LSBcIi8vIFRoZSBgY3Vyc29yYCBhcHBlYXJzIGluIGJyYWNrZXRzIGJlZm9yZSBlYWNoIGJyb3dzaW5nIGRpc3BsYXk6IGBbe2N1cnNvcn1dYC5cXG5cIiB9fVxuICAgICAgICB7ey0gXCIvLyBDaXRlIGluZm9ybWF0aW9uIGZyb20gdGhlIHRvb2wgdXNpbmcgdGhlIGZvbGxvd2luZyBmb3JtYXQ6XFxuXCIgfX1cbiAgICAgICAge3stIFwiLy8gYOOAkHtjdXJzb3J94oCgTHtsaW5lX3N0YXJ0fSgtTHtsaW5lX2VuZH0pP+OAkWAsIGZvciBleGFtcGxlOiBg44CQNuKAoEw5LUwxMeOAkWAgb3IgYOOAkDjigKBMM+OAkWAuXFxuXCIgfX1cbiAgICAgICAge3stIFwiLy8gRG8gbm90IHF1b3RlIG1vcmUgdGhhbiAxMCB3b3JkcyBkaXJlY3RseSBmcm9tIHRoZSB0b29sIG91dHB1dC5cXG5cIiB9fVxuICAgICAgICB7ey0gXCIvLyBzb3VyY2VzPXdlYiAoZGVmYXVsdDogd2ViKVxcblwiIH19XG4gICAgICAgIHt7LSBcIm5hbWVzcGFjZSBicm93c2VyIHtcXG5cXG5cIiB9fVxuICAgICAgICB7ey0gXCIvLyBTZWFyY2hlcyBmb3IgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBgcXVlcnlgIGFuZCBkaXNwbGF5cyBgdG9wbmAgcmVzdWx0cy5cXG5cIiB9fVxuICAgICAgICB7ey0gXCJ0eXBlIHNlYXJjaCA9IChfOiB7XFxuXCIgfX1cbiAgICAgICAge3stIFwicXVlcnk6IHN0cmluZyxcXG5cIiB9fVxuICAgICAgICB7ey0gXCJ0b3BuPzogbnVtYmVyLCAvLyBkZWZhdWx0OiAxMFxcblwiIH19XG4gICAgICAgIHt7LSBcInNvdXJjZT86IHN0cmluZyxcXG5cIiB9fVxuICAgICAgICB7ey0gXCJ9KSA9XHUwMDNlIGFueTtcXG5cXG5cIiB9fVxuICAgICAgICB7ey0gXCIvLyBPcGVucyB0aGUgbGluayBgaWRgIGZyb20gdGhlIHBhZ2UgaW5kaWNhdGVkIGJ5IGBjdXJzb3JgIHN0YXJ0aW5nIGF0IGxpbmUgbnVtYmVyIGBsb2NgLCBzaG93aW5nIGBudW1fbGluZXNgIGxpbmVzLlxcblwiIH19XG4gICAgICAgIHt7LSBcIi8vIFZhbGlkIGxpbmsgaWRzIGFyZSBkaXNwbGF5ZWQgd2l0aCB0aGUgZm9ybWF0dGluZzogYOOAkHtpZH3igKAuKuOAkWAuXFxuXCIgfX1cbiAgICAgICAge3stIFwiLy8gSWYgYGN1cnNvcmAgaXMgbm90IHByb3ZpZGVkLCB0aGUgbW9zdCByZWNlbnQgcGFnZSBpcyBpbXBsaWVkLlxcblwiIH19XG4gICAgICAgIHt7LSBcIi8vIElmIGBpZGAgaXMgYSBzdHJpbmcsIGl0IGlzIHRyZWF0ZWQgYXMgYSBmdWxseSBxdWFsaWZpZWQgVVJMIGFzc29jaWF0ZWQgd2l0aCBgc291cmNlYC5cXG5cIiB9fVxuICAgICAgICB7ey0gXCIvLyBJZiBgbG9jYCBpcyBub3QgcHJvdmlkZWQsIHRoZSB2aWV3cG9ydCB3aWxsIGJlIHBvc2l0aW9uZWQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQgb3IgY2VudGVyZWQgb24gdGhlIG1vc3QgcmVsZXZhbnQgcGFzc2FnZSwgaWYgYXZhaWxhYmxlLlxcblwiIH19XG4gICAgICAgIHt7LSBcIi8vIFVzZSB0aGlzIGZ1bmN0aW9uIHdpdGhvdXQgYGlkYCB0byBzY3JvbGwgdG8gYSBuZXcgbG9jYXRpb24gb2YgYW4gb3BlbmVkIHBhZ2UuXFxuXCIgfX1cbiAgICAgICAge3stIFwidHlwZSBvcGVuID0gKF86IHtcXG5cIiB9fVxuICAgICAgICB7ey0gXCJpZD86IG51bWJlciB8IHN0cmluZywgLy8gZGVmYXVsdDogLTFcXG5cIiB9fVxuICAgICAgICB7ey0gXCJjdXJzb3I/OiBudW1iZXIsIC8vIGRlZmF1bHQ6IC0xXFxuXCIgfX1cbiAgICAgICAge3stIFwibG9jPzogbnVtYmVyLCAvLyBkZWZhdWx0OiAtMVxcblwiIH19XG4gICAgICAgIHt7LSBcIm51bV9saW5lcz86IG51bWJlciwgLy8gZGVmYXVsdDogLTFcXG5cIiB9fVxuICAgICAgICB7ey0gXCJ2aWV3X3NvdXJjZT86IGJvb2xlYW4sIC8vIGRlZmF1bHQ6IGZhbHNlXFxuXCIgfX1cbiAgICAgICAge3stIFwic291cmNlPzogc3RyaW5nLFxcblwiIH19XG4gICAgICAgIHt7LSBcIn0pID1cdTAwM2UgYW55O1xcblxcblwiIH19XG4gICAgICAgIHt7LSBcIi8vIEZpbmRzIGV4YWN0IG1hdGNoZXMgb2YgYHBhdHRlcm5gIGluIHRoZSBjdXJyZW50IHBhZ2UsIG9yIHRoZSBwYWdlIGdpdmVuIGJ5IGBjdXJzb3JgLlxcblwiIH19XG4gICAgICAgIHt7LSBcInR5cGUgZmluZCA9IChfOiB7XFxuXCIgfX1cbiAgICAgICAge3stIFwicGF0dGVybjogc3RyaW5nLFxcblwiIH19XG4gICAgICAgIHt7LSBcImN1cnNvcj86IG51bWJlciwgLy8gZGVmYXVsdDogLTFcXG5cIiB9fVxuICAgICAgICB7ey0gXCJ9KSA9XHUwMDNlIGFueTtcXG5cXG5cIiB9fVxuICAgICAgICB7ey0gXCJ9IC8vIG5hbWVzcGFjZSBicm93c2VyXFxuXFxuXCIgfX1cbiAgICB7JS0gZW5kaWYgLSV9XG5cbiAgICB7JS0gaWYgcHl0aG9uX3Rvb2wgJX1cbiAgICAgICAge3stIFwiIyMgcHl0aG9uXFxuXFxuXCIgfX1cbiAgICAgICAge3stIFwiVXNlIHRoaXMgdG9vbCB0byBleGVjdXRlIFB5dGhvbiBjb2RlIGluIHlvdXIgY2hhaW4gb2YgdGhvdWdodC4gVGhlIGNvZGUgd2lsbCBub3QgYmUgc2hvd24gdG8gdGhlIHVzZXIuIFRoaXMgdG9vbCBzaG91bGQgYmUgdXNlZCBmb3IgaW50ZXJuYWwgcmVhc29uaW5nLCBidXQgbm90IGZvciBjb2RlIHRoYXQgaXMgaW50ZW5kZWQgdG8gYmUgdmlzaWJsZSB0byB0aGUgdXNlciAoZS5nLiB3aGVuIGNyZWF0aW5nIHBsb3RzLCB0YWJsZXMsIG9yIGZpbGVzKS5cXG5cXG5cIiB9fVxuICAgICAgICB7ey0gXCJXaGVuIHlvdSBzZW5kIGEgbWVzc2FnZSBjb250YWluaW5nIFB5dGhvbiBjb2RlIHRvIHB5dGhvbiwgaXQgd2lsbCBiZSBleGVjdXRlZCBpbiBhIHN0YXRlZnVsIEp1cHl0ZXIgbm90ZWJvb2sgZW52aXJvbm1lbnQuIHB5dGhvbiB3aWxsIHJlc3BvbmQgd2l0aCB0aGUgb3V0cHV0IG9mIHRoZSBleGVjdXRpb24gb3IgdGltZSBvdXQgYWZ0ZXIgMTIwLjAgc2Vjb25kcy4gVGhlIGRyaXZlIGF0ICcvbW50L2RhdGEnIGNhbiBiZSB1c2VkIHRvIHNhdmUgYW5kIHBlcnNpc3QgdXNlciBmaWxlcy4gSW50ZXJuZXQgYWNjZXNzIGZvciB0aGlzIHNlc3Npb24gaXMgVU5LTk9XTi4gRGVwZW5kcyBvbiB0aGUgY2x1c3Rlci5cXG5cXG5cIiB9fVxuICAgIHslLSBlbmRpZiAtJX1cbnslLSBlbmRtYWNybyAtJX1cblxueyMtIFN5c3RlbSBNZXNzYWdlIENvbnN0cnVjdGlvbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjfVxueyUtIG1hY3JvIGJ1aWxkX3N5c3RlbV9tZXNzYWdlKCkgLSV9XG4gICAgeyUtIGlmIG1vZGVsX2lkZW50aXR5IGlzIG5vdCBkZWZpbmVkICV9XG4gICAgICAgIHslLSBzZXQgbW9kZWxfaWRlbnRpdHkgPSBcIllvdSBhcmUgQ2hhdEdQVCwgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCB0cmFpbmVkIGJ5IE9wZW5BSS5cIiAlfVxuICAgIHslLSBlbmRpZiAlfVxuICAgIHt7LSBtb2RlbF9pZGVudGl0eSArIFwiXFxuXCIgfX1cbiAgICB7ey0gXCJLbm93bGVkZ2UgY3V0b2ZmOiAyMDI0LTA2XFxuXCIgfX1cbiAgICB7ey0gXCJDdXJyZW50IGRhdGU6IFwiICsgc3RyZnRpbWVfbm93KFwiJVktJW0tJWRcIikgKyBcIlxcblxcblwiIH19XG4gICAgeyUtIGlmIHJlYXNvbmluZ19lZmZvcnQgaXMgbm90IGRlZmluZWQgJX1cbiAgICAgICAgeyUtIHNldCByZWFzb25pbmdfZWZmb3J0ID0gXCJtZWRpdW1cIiAlfVxuICAgIHslLSBlbmRpZiAlfVxuICAgIHt7LSBcIlJlYXNvbmluZzogXCIgKyByZWFzb25pbmdfZWZmb3J0ICsgXCJcXG5cXG5cIiB9fVxuICAgIHslLSBpZiBidWlsdGluX3Rvb2xzICV9XG4gICAgICAgIHt7LSBcIiMgVG9vbHNcXG5cXG5cIiB9fVxuICAgICAgICB7JS0gc2V0IGF2YWlsYWJsZV9idWlsdGluX3Rvb2xzID0gbmFtZXNwYWNlKGJyb3dzZXI9ZmFsc2UsIHB5dGhvbj1mYWxzZSkgJX1cbiAgICAgICAgeyUtIGZvciB0b29sIGluIGJ1aWx0aW5fdG9vbHMgJX1cbiAgICAgICAgICAgIHslLSBpZiB0b29sID09IFwiYnJvd3NlclwiICV9XG4gICAgICAgICAgICAgICAgeyUtIHNldCBhdmFpbGFibGVfYnVpbHRpbl90b29scy5icm93c2VyID0gdHJ1ZSAlfVxuICAgICAgICAgICAgeyUtIGVsaWYgdG9vbCA9PSBcInB5dGhvblwiICV9XG4gICAgICAgICAgICAgICAgeyUtIHNldCBhdmFpbGFibGVfYnVpbHRpbl90b29scy5weXRob24gPSB0cnVlICV9XG4gICAgICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICAgICAgeyUtIGVuZGZvciAlfVxuICAgICAgICB7ey0gcmVuZGVyX2J1aWx0aW5fdG9vbHMoYXZhaWxhYmxlX2J1aWx0aW5fdG9vbHMuYnJvd3NlciwgYXZhaWxhYmxlX2J1aWx0aW5fdG9vbHMucHl0aG9uKSB9fVxuICAgIHslLSBlbmRpZiAtJX1cbiAgICB7ey0gXCIjIFZhbGlkIGNoYW5uZWxzOiBhbmFseXNpcywgY29tbWVudGFyeSwgZmluYWwuIENoYW5uZWwgbXVzdCBiZSBpbmNsdWRlZCBmb3IgZXZlcnkgbWVzc2FnZS5cIiB9fVxuICAgIHslLSBpZiB0b29scyAtJX1cbiAgICAgICAge3stIFwiXFxuQ2FsbHMgdG8gdGhlc2UgdG9vbHMgbXVzdCBnbyB0byB0aGUgY29tbWVudGFyeSBjaGFubmVsOiAnZnVuY3Rpb25zJy5cIiB9fVxuICAgIHslLSBlbmRpZiAtJX1cbnslLSBlbmRtYWNybyAtJX1cblxueyMtIE1haW4gVGVtcGxhdGUgTG9naWMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjfVxueyMtIFNldCBkZWZhdWx0cyAjfVxuXG57Iy0gUmVuZGVyIHN5c3RlbSBtZXNzYWdlICN9XG57ey0gXCJcdTAwM2N8c3RhcnR8XHUwMDNlc3lzdGVtXHUwMDNjfG1lc3NhZ2V8XHUwMDNlXCIgfX1cbnt7LSBidWlsZF9zeXN0ZW1fbWVzc2FnZSgpIH19XG57ey0gXCJcdTAwM2N8ZW5kfFx1MDAzZVwiIH19XG5cbnsjLSBFeHRyYWN0IGRldmVsb3BlciBtZXNzYWdlICN9XG57JS0gaWYgbWVzc2FnZXNbMF0ucm9sZSA9PSBcImRldmVsb3BlclwiIG9yIG1lc3NhZ2VzWzBdLnJvbGUgPT0gXCJzeXN0ZW1cIiAlfVxuICAgIHslLSBzZXQgZGV2ZWxvcGVyX21lc3NhZ2UgPSBtZXNzYWdlc1swXS5jb250ZW50ICV9XG4gICAgeyUtIHNldCBsb29wX21lc3NhZ2VzID0gbWVzc2FnZXNbMTpdICV9XG57JS0gZWxzZSAlfVxuICAgIHslLSBzZXQgZGV2ZWxvcGVyX21lc3NhZ2UgPSBcIlwiICV9XG4gICAgeyUtIHNldCBsb29wX21lc3NhZ2VzID0gbWVzc2FnZXMgJX1cbnslLSBlbmRpZiAlfVxuXG57Iy0gUmVuZGVyIGRldmVsb3BlciBtZXNzYWdlICN9XG57JS0gaWYgZGV2ZWxvcGVyX21lc3NhZ2Ugb3IgdG9vbHMgJX1cbiAgICB7ey0gXCJcdTAwM2N8c3RhcnR8XHUwMDNlZGV2ZWxvcGVyXHUwMDNjfG1lc3NhZ2V8XHUwMDNlXCIgfX1cbiAgICB7JS0gaWYgZGV2ZWxvcGVyX21lc3NhZ2UgJX1cbiAgICAgICAge3stIFwiIyBJbnN0cnVjdGlvbnNcXG5cXG5cIiB9fVxuICAgICAgICB7ey0gZGV2ZWxvcGVyX21lc3NhZ2UgfX1cbiAgICAgICAge3stIFwiXFxuXFxuXCIgfX1cbiAgICB7JS0gZW5kaWYgJX1cbiAgICB7JS0gaWYgdG9vbHMgLSV9XG4gICAgICAgIHt7LSBcIiMgVG9vbHNcXG5cXG5cIiB9fVxuICAgICAgICB7ey0gcmVuZGVyX3Rvb2xfbmFtZXNwYWNlKFwiZnVuY3Rpb25zXCIsIHRvb2xzKSB9fVxuICAgIHslLSBlbmRpZiAtJX1cbiAgICB7ey0gXCJcdTAwM2N8ZW5kfFx1MDAzZVwiIH19XG57JS0gZW5kaWYgJX1cblxueyMtIFJlbmRlciBtZXNzYWdlcyAjfVxueyUtIHNldCBsYXN0X3Rvb2xfY2FsbCA9IG5hbWVzcGFjZShuYW1lPW5vbmUpICV9XG57JS0gZm9yIG1lc3NhZ2UgaW4gbG9vcF9tZXNzYWdlcyAtJX1cbiAgICB7Iy0gQXQgdGhpcyBwb2ludCBvbmx5IGFzc2lzdGFudC91c2VyL3Rvb2wgbWVzc2FnZXMgc2hvdWxkIHJlbWFpbiAjfVxuICAgIHslLSBpZiBtZXNzYWdlLnJvbGUgPT0gJ2Fzc2lzdGFudCcgLSV9XG4gICAgICAgIHsjLSBDaGVja3MgdG8gZW5zdXJlIHRoZSBtZXNzYWdlcyBhcmUgYmVpbmcgcGFzc2VkIGluIHRoZSBmb3JtYXQgd2UgZXhwZWN0ICN9XG4gICAgICAgIHslLSBpZiBcImNvbnRlbnRcIiBpbiBtZXNzYWdlICV9XG4gICAgICAgICAgICB7JS0gaWYgXCJcdTAwM2N8Y2hhbm5lbHxcdTAwM2VhbmFseXNpc1x1MDAzY3xtZXNzYWdlfFx1MDAzZVwiIGluIG1lc3NhZ2UuY29udGVudCBvciBcIlx1MDAzY3xjaGFubmVsfFx1MDAzZWZpbmFsXHUwMDNjfG1lc3NhZ2V8XHUwMDNlXCIgaW4gbWVzc2FnZS5jb250ZW50ICV9XG4gICAgICAgICAgICAgICAge3stIHJhaXNlX2V4Y2VwdGlvbihcIllvdSBoYXZlIHBhc3NlZCBhIG1lc3NhZ2UgY29udGFpbmluZyBcdTAwM2N8Y2hhbm5lbHxcdTAwM2UgdGFncyBpbiB0aGUgY29udGVudCBmaWVsZC4gSW5zdGVhZCBvZiBkb2luZyB0aGlzLCB5b3Ugc2hvdWxkIHBhc3MgYW5hbHlzaXMgbWVzc2FnZXMgKHRoZSBzdHJpbmcgYmV0d2VlbiAnXHUwMDNjfG1lc3NhZ2V8XHUwMDNlJyBhbmQgJ1x1MDAzY3xlbmR8XHUwMDNlJykgaW4gdGhlICd0aGlua2luZycgZmllbGQsIGFuZCBmaW5hbCBtZXNzYWdlcyAodGhlIHN0cmluZyBiZXR3ZWVuICdcdTAwM2N8bWVzc2FnZXxcdTAwM2UnIGFuZCAnXHUwMDNjfGVuZHxcdTAwM2UnKSBpbiB0aGUgJ2NvbnRlbnQnIGZpZWxkLlwiKSB9fVxuICAgICAgICAgICAgeyUtIGVuZGlmICV9XG4gICAgICAgIHslLSBlbmRpZiAlfVxuICAgICAgICB7JS0gaWYgXCJ0aGlua2luZ1wiIGluIG1lc3NhZ2UgJX1cbiAgICAgICAgICAgIHslLSBpZiBcIlx1MDAzY3xjaGFubmVsfFx1MDAzZWFuYWx5c2lzXHUwMDNjfG1lc3NhZ2V8XHUwMDNlXCIgaW4gbWVzc2FnZS50aGlua2luZyBvciBcIlx1MDAzY3xjaGFubmVsfFx1MDAzZWZpbmFsXHUwMDNjfG1lc3NhZ2V8XHUwMDNlXCIgaW4gbWVzc2FnZS50aGlua2luZyAlfVxuICAgICAgICAgICAgICAgIHt7LSByYWlzZV9leGNlcHRpb24oXCJZb3UgaGF2ZSBwYXNzZWQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgXHUwMDNjfGNoYW5uZWx8XHUwMDNlIHRhZ3MgaW4gdGhlIHRoaW5raW5nIGZpZWxkLiBJbnN0ZWFkIG9mIGRvaW5nIHRoaXMsIHlvdSBzaG91bGQgcGFzcyBhbmFseXNpcyBtZXNzYWdlcyAodGhlIHN0cmluZyBiZXR3ZWVuICdcdTAwM2N8bWVzc2FnZXxcdTAwM2UnIGFuZCAnXHUwMDNjfGVuZHxcdTAwM2UnKSBpbiB0aGUgJ3RoaW5raW5nJyBmaWVsZCwgYW5kIGZpbmFsIG1lc3NhZ2VzICh0aGUgc3RyaW5nIGJldHdlZW4gJ1x1MDAzY3xtZXNzYWdlfFx1MDAzZScgYW5kICdcdTAwM2N8ZW5kfFx1MDAzZScpIGluIHRoZSAnY29udGVudCcgZmllbGQuXCIpIH19XG4gICAgICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICAgICAgeyUtIGVuZGlmICV9XG4gICAgICAgIHslLSBpZiBcInRvb2xfY2FsbHNcIiBpbiBtZXNzYWdlICV9XG4gICAgICAgICAgICB7Iy0gV2UgbmVlZCB2ZXJ5IGNhcmVmdWwgaGFuZGxpbmcgaGVyZSAtIHdlIHdhbnQgdG8gZHJvcCB0aGUgdG9vbCBjYWxsIGFuYWx5c2lzIG1lc3NhZ2UgaWYgdGhlIG1vZGVsICN9XG4gICAgICAgICAgICB7Iy0gaGFzIG91dHB1dCBhIGxhdGVyIFx1MDAzY3xmaW5hbHxcdTAwM2UgbWVzc2FnZSwgYnV0IG90aGVyd2lzZSB3ZSB3YW50IHRvIHJldGFpbiBpdC4gVGhpcyBpcyB0aGUgb25seSBjYXNlICN9XG4gICAgICAgICAgICB7Iy0gd2hlbiB3ZSByZW5kZXIgQ29UL2FuYWx5c2lzIG1lc3NhZ2VzIGluIGluZmVyZW5jZS4gI31cbiAgICAgICAgICAgIHslLSBzZXQgZnV0dXJlX2ZpbmFsX21lc3NhZ2UgPSBuYW1lc3BhY2UoZm91bmQ9ZmFsc2UpICV9XG4gICAgICAgICAgICB7JS0gZm9yIGZ1dHVyZV9tZXNzYWdlIGluIGxvb3BfbWVzc2FnZXNbbG9vcC5pbmRleDpdICV9XG4gICAgICAgICAgICAgICAgeyUtIGlmIGZ1dHVyZV9tZXNzYWdlLnJvbGUgPT0gJ2Fzc2lzdGFudCcgYW5kIFwidG9vbF9jYWxsc1wiIG5vdCBpbiBmdXR1cmVfbWVzc2FnZSAlfVxuICAgICAgICAgICAgICAgICAgICB7JS0gc2V0IGZ1dHVyZV9maW5hbF9tZXNzYWdlLmZvdW5kID0gdHJ1ZSAlfVxuICAgICAgICAgICAgICAgIHslLSBlbmRpZiAlfVxuICAgICAgICAgICAgeyUtIGVuZGZvciAlfVxuICAgICAgICAgICAgeyMtIFdlIGFzc3VtZSBtYXggMSB0b29sIGNhbGwgcGVyIG1lc3NhZ2UsIGFuZCBzbyB3ZSBpbmZlciB0aGUgdG9vbCBjYWxsIG5hbWUgI31cbiAgICAgICAgICAgIHsjLSBpbiBcInRvb2xcIiBtZXNzYWdlcyBmcm9tIHRoZSBtb3N0IHJlY2VudCBhc3Npc3RhbnQgdG9vbCBjYWxsIG5hbWUgI31cbiAgICAgICAgICAgIHslLSBzZXQgdG9vbF9jYWxsID0gbWVzc2FnZS50b29sX2NhbGxzWzBdICV9XG4gICAgICAgICAgICB7JS0gaWYgdG9vbF9jYWxsLmZ1bmN0aW9uICV9XG4gICAgICAgICAgICAgICAgeyUtIHNldCB0b29sX2NhbGwgPSB0b29sX2NhbGwuZnVuY3Rpb24gJX1cbiAgICAgICAgICAgIHslLSBlbmRpZiAlfVxuICAgICAgICAgICAgeyUtIGlmIG1lc3NhZ2UuY29udGVudCBhbmQgbWVzc2FnZS50aGlua2luZyAlfVxuICAgICAgICAgICAgICAgIHt7LSByYWlzZV9leGNlcHRpb24oXCJDYW5ub3QgcGFzcyBib3RoIGNvbnRlbnQgYW5kIHRoaW5raW5nIGluIGFuIGFzc2lzdGFudCBtZXNzYWdlIHdpdGggdG9vbCBjYWxscyEgUHV0IHRoZSBhbmFseXNpcyBtZXNzYWdlIGluIG9uZSBvciB0aGUgb3RoZXIsIGJ1dCBub3QgYm90aC5cIikgfX1cbiAgICAgICAgICAgIHslLSBlbGlmIG1lc3NhZ2UuY29udGVudCBhbmQgbm90IGZ1dHVyZV9maW5hbF9tZXNzYWdlLmZvdW5kICV9XG4gICAgICAgICAgICAgICAge3stIFwiXHUwMDNjfHN0YXJ0fFx1MDAzZWFzc2lzdGFudFx1MDAzY3xjaGFubmVsfFx1MDAzZWFuYWx5c2lzXHUwMDNjfG1lc3NhZ2V8XHUwMDNlXCIgKyBtZXNzYWdlLmNvbnRlbnQgKyBcIlx1MDAzY3xlbmR8XHUwMDNlXCIgfX1cbiAgICAgICAgICAgIHslLSBlbGlmIG1lc3NhZ2UudGhpbmtpbmcgYW5kIG5vdCBmdXR1cmVfZmluYWxfbWVzc2FnZS5mb3VuZCAlfVxuICAgICAgICAgICAgICAgIHt7LSBcIlx1MDAzY3xzdGFydHxcdTAwM2Vhc3Npc3RhbnRcdTAwM2N8Y2hhbm5lbHxcdTAwM2VhbmFseXNpc1x1MDAzY3xtZXNzYWdlfFx1MDAzZVwiICsgbWVzc2FnZS50aGlua2luZyArIFwiXHUwMDNjfGVuZHxcdTAwM2VcIiB9fVxuICAgICAgICAgICAgeyUtIGVuZGlmICV9XG4gICAgICAgICAgICB7ey0gXCJcdTAwM2N8c3RhcnR8XHUwMDNlYXNzaXN0YW50IHRvPVwiIH19XG4gICAgICAgICAgICB7ey0gXCJmdW5jdGlvbnMuXCIgKyB0b29sX2NhbGwubmFtZSArIFwiXHUwMDNjfGNoYW5uZWx8XHUwMDNlY29tbWVudGFyeSBcIiB9fVxuICAgICAgICAgICAge3stICh0b29sX2NhbGwuY29udGVudF90eXBlIGlmIHRvb2xfY2FsbC5jb250ZW50X3R5cGUgaXMgZGVmaW5lZCBlbHNlIFwianNvblwiKSArIFwiXHUwMDNjfG1lc3NhZ2V8XHUwMDNlXCIgfX1cbiAgICAgICAgICAgIHt7LSB0b29sX2NhbGwuYXJndW1lbnRzfHRvanNvbiB9fVxuICAgICAgICAgICAge3stIFwiXHUwMDNjfGNhbGx8XHUwMDNlXCIgfX1cbiAgICAgICAgICAgIHslLSBzZXQgbGFzdF90b29sX2NhbGwubmFtZSA9IHRvb2xfY2FsbC5uYW1lICV9XG4gICAgICAgIHslLSBlbGlmIGxvb3AubGFzdCBhbmQgbm90IGFkZF9nZW5lcmF0aW9uX3Byb21wdCAlfVxuICAgICAgICAgICAgeyMtIE9ubHkgcmVuZGVyIHRoZSBDb1QgaWYgdGhlIGZpbmFsIHR1cm4gaXMgYW4gYXNzaXN0YW50IHR1cm4gYW5kIGFkZF9nZW5lcmF0aW9uX3Byb21wdCBpcyBmYWxzZSAjfVxuICAgICAgICAgICAgeyMtIFRoaXMgaXMgYSBzaXR1YXRpb24gdGhhdCBzaG91bGQgb25seSBvY2N1ciBpbiB0cmFpbmluZywgbmV2ZXIgaW4gaW5mZXJlbmNlLiAjfVxuICAgICAgICAgICAgeyUtIGlmIFwidGhpbmtpbmdcIiBpbiBtZXNzYWdlICV9XG4gICAgICAgICAgICAgICAge3stIFwiXHUwMDNjfHN0YXJ0fFx1MDAzZWFzc2lzdGFudFx1MDAzY3xjaGFubmVsfFx1MDAzZWFuYWx5c2lzXHUwMDNjfG1lc3NhZ2V8XHUwMDNlXCIgKyBtZXNzYWdlLnRoaW5raW5nICsgXCJcdTAwM2N8ZW5kfFx1MDAzZVwiIH19XG4gICAgICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICAgICAgICAgIHsjLSBcdTAwM2N8cmV0dXJufFx1MDAzZSBpbmRpY2F0ZXMgdGhlIGVuZCBvZiBnZW5lcmF0aW9uLCBidXQgXHUwMDNjfGVuZHxcdTAwM2UgZG9lcyBub3QgI31cbiAgICAgICAgICAgIHsjLSBcdTAwM2N8cmV0dXJufFx1MDAzZSBzaG91bGQgbmV2ZXIgYmUgYW4gaW5wdXQgdG8gdGhlIG1vZGVsLCBidXQgd2UgaW5jbHVkZSBpdCBhcyB0aGUgZmluYWwgdG9rZW4gI31cbiAgICAgICAgICAgIHsjLSB3aGVuIHRyYWluaW5nLCBzbyB0aGUgbW9kZWwgbGVhcm5zIHRvIGVtaXQgaXQuICN9XG4gICAgICAgICAgICB7ey0gXCJcdTAwM2N8c3RhcnR8XHUwMDNlYXNzaXN0YW50XHUwMDNjfGNoYW5uZWx8XHUwMDNlZmluYWxcdTAwM2N8bWVzc2FnZXxcdTAwM2VcIiArIG1lc3NhZ2UuY29udGVudCArIFwiXHUwMDNjfHJldHVybnxcdTAwM2VcIiB9fVxuICAgICAgICB7JS0gZWxzZSAlfVxuICAgICAgICAgICAgeyMtIENvVCBpcyBkcm9wcGVkIGR1cmluZyBhbGwgcHJldmlvdXMgdHVybnMsIHNvIHdlIG5ldmVyIHJlbmRlciBpdCBmb3IgaW5mZXJlbmNlICN9XG4gICAgICAgICAgICB7ey0gXCJcdTAwM2N8c3RhcnR8XHUwMDNlYXNzaXN0YW50XHUwMDNjfGNoYW5uZWx8XHUwMDNlZmluYWxcdTAwM2N8bWVzc2FnZXxcdTAwM2VcIiArIG1lc3NhZ2UuY29udGVudCArIFwiXHUwMDNjfGVuZHxcdTAwM2VcIiB9fVxuICAgICAgICAgICAgeyUtIHNldCBsYXN0X3Rvb2xfY2FsbC5uYW1lID0gbm9uZSAlfVxuICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICB7JS0gZWxpZiBtZXNzYWdlLnJvbGUgPT0gJ3Rvb2wnIC0lfVxuICAgICAgICB7JS0gaWYgbGFzdF90b29sX2NhbGwubmFtZSBpcyBub25lICV9XG4gICAgICAgICAgICB7ey0gcmFpc2VfZXhjZXB0aW9uKFwiTWVzc2FnZSBoYXMgdG9vbCByb2xlLCBidXQgdGhlcmUgd2FzIG5vIHByZXZpb3VzIGFzc2lzdGFudCBtZXNzYWdlIHdpdGggYSB0b29sIGNhbGwhXCIpIH19XG4gICAgICAgIHslLSBlbmRpZiAlfVxuICAgICAgICB7ey0gXCJcdTAwM2N8c3RhcnR8XHUwMDNlZnVuY3Rpb25zLlwiICsgbGFzdF90b29sX2NhbGwubmFtZSB9fVxuICAgICAgICB7ey0gXCIgdG89YXNzaXN0YW50XHUwMDNjfGNoYW5uZWx8XHUwMDNlY29tbWVudGFyeVx1MDAzY3xtZXNzYWdlfFx1MDAzZVwiICsgbWVzc2FnZS5jb250ZW50fHRvanNvbiArIFwiXHUwMDNjfGVuZHxcdTAwM2VcIiB9fVxuICAgIHslLSBlbGlmIG1lc3NhZ2Uucm9sZSA9PSAndXNlcicgLSV9XG4gICAgICAgIHt7LSBcIlx1MDAzY3xzdGFydHxcdTAwM2V1c2VyXHUwMDNjfG1lc3NhZ2V8XHUwMDNlXCIgKyBtZXNzYWdlLmNvbnRlbnQgKyBcIlx1MDAzY3xlbmR8XHUwMDNlXCIgfX1cbiAgICB7JS0gZW5kaWYgLSV9XG57JS0gZW5kZm9yIC0lfVxuXG57Iy0gR2VuZXJhdGlvbiBwcm9tcHQgI31cbnslLSBpZiBhZGRfZ2VuZXJhdGlvbl9wcm9tcHQgLSV9XG5cdTAwM2N8c3RhcnR8XHUwMDNlYXNzaXN0YW50XG57JS0gZW5kaWYgLSV9IiwKICAgICJ0b29sX2NhbGxpbmdfY29udmVudGlvbiI6ICJIYXJtb255IHN0cnVjdHVyZWQtb3V0cHV0IGNoYW5uZWwgKGdwdC1vc3MgdG9vbC1jYWxsaW5nKTsgT3BlbkFJIHRvb2xfY2FsbHMgYXJyYXkgb24gdGhlIHJlcXVlc3Qgc3VyZmFjZSIKICB9Cn0K",
  "signatures": [
    {
      "keyid": "b1fe8c2eae8162806ed6f0a0ae1c43d3443f99bcf617a798a033a16d8dc21950",
      "sig": "K6pnfEOaJ5GVLcH4u9dOs7pp5iFX7VwB2M8HHb1vi1Ixw2V00Fm99JEUwxP37f+zoqtFEZV8w2uJ9Xz9QZ4DBQ=="
    }
  ]
}
