From 792d14ab04270d1c86a5c007b3662df4db3c9809 Mon Sep 17 00:00:00 2001 From: Jannis Mattheis Date: Tue, 27 Feb 2018 19:54:41 +0100 Subject: [PATCH] Update spec & packr --- docs/docs-packr.go | 4 +- docs/spec.json | 127 ++++++++++++++++++++++++++++++++++++--------- 2 files changed, 104 insertions(+), 27 deletions(-) diff --git a/docs/docs-packr.go b/docs/docs-packr.go index d58322b..2754ed5 100644 --- a/docs/docs-packr.go +++ b/docs/docs-packr.go @@ -9,7 +9,7 @@ import "github.com/gobuffalo/packr" // Go binary. You can use the "packr clean" command to clean up this, // and any other packr generated files. func init() { - packr.PackJSONBytes("./", "package.go", "\"Ly8gUGFja2FnZSBkb2NzIEdvdGlmeSBSRVNULUFQSS4NCi8vDQovLyBUaGlzIGlzIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBHb3RpZnkgUkVTVC1BUEkuDQovLw0KLy8gICAgIFNjaGVtZXM6IGh0dHAsIGh0dHBzDQovLyAgICAgSG9zdDogbG9jYWxob3N0DQovLyAgICAgVmVyc2lvbjogMS4wLjANCi8vICAgICBMaWNlbnNlOiBNSVQgaHR0cHM6Ly9naXRodWIuY29tL2dvdGlmeS9zZXJ2ZXIvYmxvYi9tYXN0ZXIvTElDRU5TRQ0KLy8gICAgIENvbnRhY3Q6IGh0dHBzOi8vZ2l0aHViLmNvbS9nb3RpZnkvc2VydmVyL2lzc3Vlcw0KLy8NCi8vICAgICBDb25zdW1lczoNCi8vICAgICAtIGFwcGxpY2F0aW9uL2pzb24NCi8vDQovLyAgICAgUHJvZHVjZXM6DQovLyAgICAgLSBhcHBsaWNhdGlvbi9qc29uDQovLw0KLy8gICAgIFNlY3VyaXR5RGVmaW5pdGlvbnM6DQovLyAgICAgICAgYXBwVG9rZW5RdWVyeToNCi8vICAgICAgICAgICB0eXBlOiBhcGlLZXkNCi8vICAgICAgICAgICBuYW1lOiB0b2tlbg0KLy8gICAgICAgICAgIGluOiBxdWVyeQ0KLy8gICAgICAgIGNsaWVudFRva2VuUXVlcnk6DQovLyAgICAgICAgICAgdHlwZTogYXBpS2V5DQovLyAgICAgICAgICAgbmFtZTogdG9rZW4NCi8vICAgICAgICAgICBpbjogcXVlcnkNCi8vIAkgICAgICBhcHBUb2tlbkhlYWRlcjoNCi8vICAgICAgICAgICB0eXBlOiBhcGlLZXkNCi8vICAgICAgICAgICBuYW1lOiBYLUdvdGlmeS1LZXkNCi8vICAgICAgICAgICBpbjogaGVhZGVyDQovLyAJICAgICAgY2xpZW50VG9rZW5IZWFkZXI6DQovLyAgICAgICAgICAgdHlwZTogYXBpS2V5DQovLyAgICAgICAgICAgbmFtZTogWC1Hb3RpZnktS2V5DQovLyAgICAgICAgICAgaW46IGhlYWRlcg0KLy8gICAgICAgIGJhc2ljQXV0aDoNCi8vICAgICAgICAgICB0eXBlOiBiYXNpYw0KLy8NCi8vIHN3YWdnZXI6bWV0YQ0KcGFja2FnZSBkb2NzDQo=\"") - packr.PackJSONBytes("./", "spec.json", "\"ewogICJjb25zdW1lcyI6IFsKICAgICJhcHBsaWNhdGlvbi9qc29uIgogIF0sCiAgInByb2R1Y2VzIjogWwogICAgImFwcGxpY2F0aW9uL2pzb24iCiAgXSwKICAic2NoZW1lcyI6IFsKICAgICJodHRwIiwKICAgICJodHRwcyIKICBdLAogICJzd2FnZ2VyIjogIjIuMCIsCiAgImluZm8iOiB7CiAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgR290aWZ5IFJFU1QtQVBJLiIsCiAgICAidGl0bGUiOiAiR290aWZ5IFJFU1QtQVBJLiIsCiAgICAiY29udGFjdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ290aWZ5L3NlcnZlci9pc3N1ZXMiCiAgICB9LAogICAgImxpY2Vuc2UiOiB7CiAgICAgICJuYW1lIjogIk1JVCIsCiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvdGlmeS9zZXJ2ZXIvYmxvYi9tYXN0ZXIvTElDRU5TRSIKICAgIH0sCiAgICAidmVyc2lvbiI6ICIxLjAuMCIKICB9LAogICJob3N0IjogImxvY2FsaG9zdCIsCiAgInBhdGhzIjogewogICAgIi9hcHBsaWNhdGlvbiI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYmFzaWNBdXRoIjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJjb25zdW1lcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJ0b2tlbiIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIlJldHVybiBhbGwgYXBwbGljYXRpb25zLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImdldEFwcHMiLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICJ0eXBlIjogImFycmF5IiwKICAgICAgICAgICAgICAiaXRlbXMiOiB7CiAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0FwcGxpY2F0aW9uIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAzIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRm9yYmlkZGVuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LAogICAgICAicG9zdCI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYmFzaWNBdXRoIjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJjb25zdW1lcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJ0b2tlbiIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIkNyZWF0ZSBhbiBhcHBsaWNhdGlvbi4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJjcmVhdGVBcHAiLAogICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAidGhlIGFwcGxpY2F0aW9uIHRvIGFkZCIsCiAgICAgICAgICAgICJuYW1lIjogImJvZHkiLAogICAgICAgICAgICAiaW4iOiAiYm9keSIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9BcHBsaWNhdGlvbiIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPayIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9BcHBsaWNhdGlvbiIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAzIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRm9yYmlkZGVuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi9hcHBsaWNhdGlvbi97aWR9IjogewogICAgICAiZGVsZXRlIjogewogICAgICAgICJzZWN1cml0eSI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuSGVhZGVyIjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlblF1ZXJ5IjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJiYXNpY0F1dGgiOiBbXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImNvbnN1bWVzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgInRva2VuIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiRGVsZXRlIGFuIGFwcGxpY2F0aW9uLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImRlbGV0ZUFwcCIsCiAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ0aGUgYXBwbGljYXRpb24gaWQiLAogICAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAgICJpbiI6ICJwYXRoIiwKICAgICAgICAgICAgInJlcXVpcmVkIjogdHJ1ZQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPayIKICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICIvYXBwbGljYXRpb24ve2lkfS9tZXNzYWdlIjogewogICAgICAiZ2V0IjogewogICAgICAgICJzZWN1cml0eSI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuSGVhZGVyIjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlblF1ZXJ5IjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJiYXNpY0F1dGgiOiBbXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJtZXNzYWdlIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiUmV0dXJuIGFsbCBtZXNzYWdlcyBmcm9tIGEgc3BlY2lmaWMgYXBwbGljYXRpb24uIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZ2V0QXBwTWVzc2FnZXMiLAogICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAidGhlIGFwcGxpY2F0aW9uIGlkIiwKICAgICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICJ0eXBlIjogImFycmF5IiwKICAgICAgICAgICAgICAiaXRlbXMiOiB7CiAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL01lc3NhZ2UiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkZWxldGUiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgIm1lc3NhZ2UiCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJEZWxldGUgYWxsIG1lc3NhZ2VzIGZyb20gYSBzcGVjaWZpYyBhcHBsaWNhdGlvbi4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJkZWxldGVBcHBNZXNzYWdlcyIsCiAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ0aGUgYXBwbGljYXRpb24gaWQiLAogICAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAgICJpbiI6ICJwYXRoIiwKICAgICAgICAgICAgInJlcXVpcmVkIjogdHJ1ZQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPayIKICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICIvY2xpZW50IjogewogICAgICAiZ2V0IjogewogICAgICAgICJzZWN1cml0eSI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuSGVhZGVyIjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlblF1ZXJ5IjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJiYXNpY0F1dGgiOiBbXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImNvbnN1bWVzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgInRva2VuIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiUmV0dXJuIGFsbCBjbGllbnRzLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImdldENsaWVudHMiLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICJ0eXBlIjogImFycmF5IiwKICAgICAgICAgICAgICAiaXRlbXMiOiB7CiAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0NsaWVudCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgInBvc3QiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiY29uc3VtZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAidG9rZW4iCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJDcmVhdGUgYSBjbGllbnQuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiY3JlYXRlQ2xpZW50IiwKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRoZSBjbGllbnQgdG8gYWRkIiwKICAgICAgICAgICAgIm5hbWUiOiAiYm9keSIsCiAgICAgICAgICAgICJpbiI6ICJib2R5IiwKICAgICAgICAgICAgInJlcXVpcmVkIjogdHJ1ZSwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0NsaWVudCIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPayIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9DbGllbnQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICIvY2xpZW50L3tpZH0iOiB7CiAgICAgICJkZWxldGUiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiY29uc3VtZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAidG9rZW4iCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJEZWxldGUgYSBjbGllbnQuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZGVsZXRlQ2xpZW50IiwKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRoZSBjbGllbnQgaWQiLAogICAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAgICJpbiI6ICJwYXRoIiwKICAgICAgICAgICAgInJlcXVpcmVkIjogdHJ1ZQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPayIKICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICIvY3VycmVudC91c2VyIjogewogICAgICAiZ2V0IjogewogICAgICAgICJzZWN1cml0eSI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuSGVhZGVyIjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlblF1ZXJ5IjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJiYXNpY0F1dGgiOiBbXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJ1c2VyIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiUmV0dXJuIHRoZSBjdXJyZW50IHVzZXIuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiY3VycmVudFVzZXIiLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAzIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRm9yYmlkZGVuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi9jdXJyZW50L3VzZXIvcGFzc3dvcmQiOiB7CiAgICAgICJwb3N0IjogewogICAgICAgICJzZWN1cml0eSI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuSGVhZGVyIjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlblF1ZXJ5IjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJiYXNpY0F1dGgiOiBbXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImNvbnN1bWVzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgInVzZXIiCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJVcGRhdGUgdGhlIHBhc3N3b3JkIG9mIHRoZSBjdXJyZW50IHVzZXIuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAidXBkYXRlQ3VycmVudFVzZXIiLAogICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAidGhlIHVzZXIiLAogICAgICAgICAgICAibmFtZSI6ICJib2R5IiwKICAgICAgICAgICAgImluIjogImJvZHkiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPayIKICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICIvbWVzc2FnZSI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYmFzaWNBdXRoIjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAibWVzc2FnZSIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIlJldHVybiBhbGwgbWVzc2FnZXMuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZ2V0TWVzc2FnZXMiLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICJ0eXBlIjogImFycmF5IiwKICAgICAgICAgICAgICAiaXRlbXMiOiB7CiAgICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL01lc3NhZ2UiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJwb3N0IjogewogICAgICAgICJzZWN1cml0eSI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImFwcFRva2VuSGVhZGVyIjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJhcHBUb2tlblF1ZXJ5IjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJjb25zdW1lcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJtZXNzYWdlIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiQ3JlYXRlIGEgbWVzc2FnZS4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJjcmVhdGVNZXNzYWdlIiwKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRoZSBtZXNzYWdlIHRvIGFkZCIsCiAgICAgICAgICAgICJuYW1lIjogImJvZHkiLAogICAgICAgICAgICAiaW4iOiAiYm9keSIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9NZXNzYWdlIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJhcnJheSIsCiAgICAgICAgICAgICAgIml0ZW1zIjogewogICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9NZXNzYWdlIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkZWxldGUiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgIm1lc3NhZ2UiCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJEZWxldGUgYWxsIG1lc3NhZ2VzLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImRlbGV0ZU1lc3NhZ2VzIiwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIgogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAzIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRm9yYmlkZGVuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi9tZXNzYWdlL3tpZH0iOiB7CiAgICAgICJkZWxldGUiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgIm1lc3NhZ2UiCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJEZWxldGVzIGEgbWVzc2FnZSB3aXRoIGFuIGlkLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImRlbGV0ZU1lc3NhZ2UiLAogICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRoZSBtZXNzYWdlIGlkIiwKICAgICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siCiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAiL3N0cmVhbSI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYmFzaWNBdXRoIjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAibWVzc2FnZSIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIldlYnNvY2tldCwgcmV0dXJuIG5ld2x5IGNyZWF0ZWQgbWVzc2FnZXMuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAic3RyZWFtTWVzc2FnZXMiLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvTWVzc2FnZSIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAzIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRm9yYmlkZGVuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi91c2VyIjogewogICAgICAiZ2V0IjogewogICAgICAgICJzZWN1cml0eSI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuSGVhZGVyIjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlblF1ZXJ5IjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJiYXNpY0F1dGgiOiBbXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJ1c2VyIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiUmV0dXJuIGFsbCB1c2Vycy4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJnZXRVc2VycyIsCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPayIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAgICAgICAgICJpdGVtcyI6IHsKICAgICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgInBvc3QiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiY29uc3VtZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAidXNlciIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIkNyZWF0ZSBhIHVzZXIuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiY3JlYXRlVXNlciIsCiAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ0aGUgdXNlciB0byBhZGQiLAogICAgICAgICAgICAibmFtZSI6ICJib2R5IiwKICAgICAgICAgICAgImluIjogImJvZHkiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPayIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9Vc2VyIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAiL3VzZXIve2lkfSI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYmFzaWNBdXRoIjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJjb25zdW1lcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJ1c2VyIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiR2V0IGEgdXNlci4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJnZXRVc2VyIiwKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ0aGUgdXNlciBpZCIsCiAgICAgICAgICAgICJuYW1lIjogImlkIiwKICAgICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL1VzZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgInBvc3QiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiY29uc3VtZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAidXNlciIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIlVwZGF0ZSBhIHVzZXIuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAidXBkYXRlVXNlciIsCiAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAidGhlIHVzZXIgaWQiLAogICAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAgICJpbiI6ICJwYXRoIiwKICAgICAgICAgICAgInJlcXVpcmVkIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRoZSB1cGRhdGVkIHVzZXIiLAogICAgICAgICAgICAibmFtZSI6ICJib2R5IiwKICAgICAgICAgICAgImluIjogImJvZHkiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPayIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9Vc2VyIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkZWxldGUiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgInVzZXIiCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJEZWxldGVzIGEgdXNlci4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJkZWxldGVVc2VyIiwKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ0aGUgdXNlciBpZCIsCiAgICAgICAgICAgICJuYW1lIjogImlkIiwKICAgICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIgogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAzIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRm9yYmlkZGVuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi92ZXJzaW9uIjogewogICAgICAiZ2V0IjogewogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAidmVyc2lvbiIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIkdldCB2ZXJzaW9uIGluZm9ybWF0aW9uLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImdldFZlcnNpb24iLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVmVyc2lvbkluZm8iCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9LAogICJkZWZpbml0aW9ucyI6IHsKICAgICJBcHBsaWNhdGlvbiI6IHsKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBBcHBsaWNhdGlvbiBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCBhbiBhcHAgd2hpY2ggY2FuIHNlbmQgbm90aWZpY2F0aW9ucy4iLAogICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAidGl0bGUiOiAiQXBwbGljYXRpb24gTW9kZWwiLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJEZXNjcmlwdGlvbiIKICAgICAgICB9LAogICAgICAgICJpZCI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAieC1nby1uYW1lIjogIklEIgogICAgICAgIH0sCiAgICAgICAgIm5hbWUiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJOYW1lIgogICAgICAgIH0KICAgICAgfSwKICAgICAgIngtZ28tcGFja2FnZSI6ICJnaXRodWIuY29tL2dvdGlmeS9zZXJ2ZXIvbW9kZWwiCiAgICB9LAogICAgIkNsaWVudCI6IHsKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBDbGllbnQgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgYSBkZXZpY2Ugd2hpY2ggY2FuIHJlY2VpdmUgbm90aWZpY2F0aW9ucyAoYW5kIG90aGVyIHN0dWZmKS4iLAogICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAidGl0bGUiOiAiQ2xpZW50IE1vZGVsIiwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImlkIjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiSUQiCiAgICAgICAgfSwKICAgICAgICAibmFtZSI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAieC1nby1uYW1lIjogIk5hbWUiCiAgICAgICAgfQogICAgICB9LAogICAgICAieC1nby1wYWNrYWdlIjogImdpdGh1Yi5jb20vZ290aWZ5L3NlcnZlci9tb2RlbCIKICAgIH0sCiAgICAiRXJyb3IiOiB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgRXJyb3IgY29udGFpbnMgZXJyb3IgcmVsZXZhbnQgaW5mb3JtYXRpb24uIiwKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgInRpdGxlIjogIkVycm9yIE1vZGVsIiwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImVycm9yIjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiRXJyb3IiCiAgICAgICAgfSwKICAgICAgICAiZXJyb3JDb2RlIjogewogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAiZm9ybWF0IjogImludDY0IiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiRXJyb3JDb2RlIgogICAgICAgIH0sCiAgICAgICAgImVycm9yRGVzY3JpcHRpb24iOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJFcnJvckRlc2NyaXB0aW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgIngtZ28tcGFja2FnZSI6ICJnaXRodWIuY29tL2dvdGlmeS9zZXJ2ZXIvbW9kZWwiCiAgICB9LAogICAgIk1lc3NhZ2UiOiB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgTWVzc2FnZSBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCBhIG1lc3NhZ2Ugd2hpY2ggd2FzIHNlbnQgYnkgYW4gQXBwbGljYXRpb24uIiwKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgInRpdGxlIjogIk1lc3NhZ2UgTW9kZWwiLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAiYXBwaWQiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJBcHBsaWNhdGlvbklEIgogICAgICAgIH0sCiAgICAgICAgImRhdGUiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImZvcm1hdCI6ICJkYXRlLXRpbWUiLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJEYXRlIgogICAgICAgIH0sCiAgICAgICAgImlkIjogewogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAiZm9ybWF0IjogInVpbnQ2NCIsCiAgICAgICAgICAieC1nby1uYW1lIjogIklEIgogICAgICAgIH0sCiAgICAgICAgIm1lc3NhZ2UiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJNZXNzYWdlIgogICAgICAgIH0sCiAgICAgICAgInByaW9yaXR5IjogewogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAiZm9ybWF0IjogImludDY0IiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiUHJpb3JpdHkiCiAgICAgICAgfSwKICAgICAgICAidGl0bGUiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJUaXRsZSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ4LWdvLXBhY2thZ2UiOiAiZ2l0aHViLmNvbS9nb3RpZnkvc2VydmVyL21vZGVsIgogICAgfSwKICAgICJVc2VyIjogewogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIFVzZXIgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNyZWRlbnRpYWxzIGFuZCBvdGhlciBzdHVmZi4iLAogICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAidGl0bGUiOiAiVXNlckV4dGVybmFsIE1vZGVsIiwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImFkbWluIjogewogICAgICAgICAgInR5cGUiOiAiYm9vbGVhbiIsCiAgICAgICAgICAieC1nby1uYW1lIjogIkFkbWluIgogICAgICAgIH0sCiAgICAgICAgImlkIjogewogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAiZm9ybWF0IjogInVpbnQ2NCIsCiAgICAgICAgICAieC1nby1uYW1lIjogIklEIgogICAgICAgIH0sCiAgICAgICAgIm5hbWUiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJOYW1lIgogICAgICAgIH0sCiAgICAgICAgInBhc3MiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJQYXNzIgogICAgICAgIH0KICAgICAgfSwKICAgICAgIngtZ28tbmFtZSI6ICJVc2VyRXh0ZXJuYWwiLAogICAgICAieC1nby1wYWNrYWdlIjogImdpdGh1Yi5jb20vZ290aWZ5L3NlcnZlci9tb2RlbCIKICAgIH0sCiAgICAiVmVyc2lvbkluZm8iOiB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJWZXJzaW9uSW5mbyBNb2RlbCIsCiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICJidWlsZERhdGUiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJCdWlsZERhdGUiCiAgICAgICAgfSwKICAgICAgICAiY29tbWl0IjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiQ29tbWl0IgogICAgICAgIH0sCiAgICAgICAgInZlcnNpb24iOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJWZXJzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgIngtZ28tcGFja2FnZSI6ICJnaXRodWIuY29tL2dvdGlmeS9zZXJ2ZXIvbW9kZWwiCiAgICB9CiAgfSwKICAic2VjdXJpdHlEZWZpbml0aW9ucyI6IHsKICAgICJhcHBUb2tlbkhlYWRlciI6IHsKICAgICAgInR5cGUiOiAiYXBpS2V5IiwKICAgICAgIm5hbWUiOiAiWC1Hb3RpZnktS2V5IiwKICAgICAgImluIjogImhlYWRlciIKICAgIH0sCiAgICAiYXBwVG9rZW5RdWVyeSI6IHsKICAgICAgInR5cGUiOiAiYXBpS2V5IiwKICAgICAgIm5hbWUiOiAidG9rZW4iLAogICAgICAiaW4iOiAicXVlcnkiCiAgICB9LAogICAgImJhc2ljQXV0aCI6IHsKICAgICAgInR5cGUiOiAiYmFzaWMiCiAgICB9LAogICAgImNsaWVudFRva2VuSGVhZGVyIjogewogICAgICAidHlwZSI6ICJhcGlLZXkiLAogICAgICAibmFtZSI6ICJYLUdvdGlmeS1LZXkiLAogICAgICAiaW4iOiAiaGVhZGVyIgogICAgfSwKICAgICJjbGllbnRUb2tlblF1ZXJ5IjogewogICAgICAidHlwZSI6ICJhcGlLZXkiLAogICAgICAibmFtZSI6ICJ0b2tlbiIsCiAgICAgICJpbiI6ICJxdWVyeSIKICAgIH0KICB9Cn0=\"") + packr.PackJSONBytes("./", "package.go", "\"Ly8gUGFja2FnZSBkb2NzIEdvdGlmeSBSRVNULUFQSS4KLy8KLy8gVGhpcyBpcyB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgR290aWZ5IFJFU1QtQVBJLgovLwovLyAjIEF1dGhlbnRpY2F0aW9uCi8vIEluIEdvdGlmeSB0aGVyZSBhcmUgdHdvIHRva2VuIHR5cGVzOgovLyBfX2NsaWVudFRva2VuX186IGEgY2xpZW50IGlzIHNvbWV0aGluZyB0aGF0IHJlY2VpdmVzIG1lc3NhZ2UgYW5kIG1hbmFnZXMgc3R1ZmYgbGlrZSBjcmVhdGluZyBuZXcgdG9rZW5zIG9yIGRlbGV0ZSBtZXNzYWdlcy4gKGYuZXggdGhpcyB0b2tlbiBzaG91bGQgYmUgdXNlZCBmb3IgYW4gYW5kcm9pZCBhcHApCi8vIF9fYXBwVG9rZW5fXzogYW4gYXBwbGljYXRpb24gaXMgc29tZXRoaW5nIHRoYXQgc2VuZHMgbWVzc2FnZXMgKGYuZXguIHRoaXMgdG9rZW4gc2hvdWxkIGJlIHVzZWQgZm9yIGEgc2hlbGwgc2NyaXB0KQovLwovLyBUaGUgdG9rZW4gY2FuIGJlIGVpdGhlciB0cmFuc21pdHRlZCB0aHJvdWdoIGEgaGVhZGVyIG5hbWVkIGBYLUdvdGlmeS1LZXlgIG9yIGEgcXVlcnkgcGFyYW1ldGVyIG5hbWVkIGB0b2tlbmAuCi8vIFRoZXJlIGlzIGFsc28gdGhlIHBvc3NpYmlsaXR5IHRvIGF1dGhlbnRpY2F0ZSB0aHJvdWdoIGJhc2ljIGF1dGgsIHRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgY3JlYXRpbmcgYSBjbGllbnRUb2tlbi4KLy8KLy8gXC0tLQovLwovLyBGb3VuZCBhIGJ1ZyBvciBoYXZlIHNvbWUgcXVlc3Rpb25zPyBbQ3JlYXRlIGFuIGlzc3VlIG9uIEdpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL2dvdGlmeS9zZXJ2ZXIvaXNzdWVzKQovLwovLyAgICAgU2NoZW1lczogaHR0cCwgaHR0cHMKLy8gICAgIEhvc3Q6IGxvY2FsaG9zdAovLyAgICAgVmVyc2lvbjogMS4wLjEKLy8gICAgIExpY2Vuc2U6IE1JVCBodHRwczovL2dpdGh1Yi5jb20vZ290aWZ5L3NlcnZlci9ibG9iL21hc3Rlci9MSUNFTlNFCi8vCi8vICAgICBDb25zdW1lczoKLy8gICAgIC0gYXBwbGljYXRpb24vanNvbgovLwovLyAgICAgUHJvZHVjZXM6Ci8vICAgICAtIGFwcGxpY2F0aW9uL2pzb24KLy8KLy8gICAgIFNlY3VyaXR5RGVmaW5pdGlvbnM6Ci8vICAgICAgICBhcHBUb2tlblF1ZXJ5OgovLyAgICAgICAgICAgdHlwZTogYXBpS2V5Ci8vICAgICAgICAgICBuYW1lOiB0b2tlbgovLyAgICAgICAgICAgaW46IHF1ZXJ5Ci8vICAgICAgICBjbGllbnRUb2tlblF1ZXJ5OgovLyAgICAgICAgICAgdHlwZTogYXBpS2V5Ci8vICAgICAgICAgICBuYW1lOiB0b2tlbgovLyAgICAgICAgICAgaW46IHF1ZXJ5Ci8vIAkgICAgICBhcHBUb2tlbkhlYWRlcjoKLy8gICAgICAgICAgIHR5cGU6IGFwaUtleQovLyAgICAgICAgICAgbmFtZTogWC1Hb3RpZnktS2V5Ci8vICAgICAgICAgICBpbjogaGVhZGVyCi8vIAkgICAgICBjbGllbnRUb2tlbkhlYWRlcjoKLy8gICAgICAgICAgIHR5cGU6IGFwaUtleQovLyAgICAgICAgICAgbmFtZTogWC1Hb3RpZnktS2V5Ci8vICAgICAgICAgICBpbjogaGVhZGVyCi8vICAgICAgICBiYXNpY0F1dGg6Ci8vICAgICAgICAgICB0eXBlOiBiYXNpYwovLwovLyBzd2FnZ2VyOm1ldGEKcGFja2FnZSBkb2NzCg==\"") + packr.PackJSONBytes("./", "spec.json", "\"ewogICJjb25zdW1lcyI6IFsKICAgICJhcHBsaWNhdGlvbi9qc29uIgogIF0sCiAgInByb2R1Y2VzIjogWwogICAgImFwcGxpY2F0aW9uL2pzb24iCiAgXSwKICAic2NoZW1lcyI6IFsKICAgICJodHRwIiwKICAgICJodHRwcyIKICBdLAogICJzd2FnZ2VyIjogIjIuMCIsCiAgImluZm8iOiB7CiAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgR290aWZ5IFJFU1QtQVBJLlxuXG4jIEF1dGhlbnRpY2F0aW9uXG5JbiBHb3RpZnkgdGhlcmUgYXJlIHR3byB0b2tlbiB0eXBlczpcbl9fY2xpZW50VG9rZW5fXzogYSBjbGllbnQgaXMgc29tZXRoaW5nIHRoYXQgcmVjZWl2ZXMgbWVzc2FnZSBhbmQgbWFuYWdlcyBzdHVmZiBsaWtlIGNyZWF0aW5nIG5ldyB0b2tlbnMgb3IgZGVsZXRlIG1lc3NhZ2VzLiAoZi5leCB0aGlzIHRva2VuIHNob3VsZCBiZSB1c2VkIGZvciBhbiBhbmRyb2lkIGFwcClcbl9fYXBwVG9rZW5fXzogYW4gYXBwbGljYXRpb24gaXMgc29tZXRoaW5nIHRoYXQgc2VuZHMgbWVzc2FnZXMgKGYuZXguIHRoaXMgdG9rZW4gc2hvdWxkIGJlIHVzZWQgZm9yIGEgc2hlbGwgc2NyaXB0KVxuXG5UaGUgdG9rZW4gY2FuIGJlIGVpdGhlciB0cmFuc21pdHRlZCB0aHJvdWdoIGEgaGVhZGVyIG5hbWVkIGBYLUdvdGlmeS1LZXlgIG9yIGEgcXVlcnkgcGFyYW1ldGVyIG5hbWVkIGB0b2tlbmAuXG5UaGVyZSBpcyBhbHNvIHRoZSBwb3NzaWJpbGl0eSB0byBhdXRoZW50aWNhdGUgdGhyb3VnaCBiYXNpYyBhdXRoLCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIGNyZWF0aW5nIGEgY2xpZW50VG9rZW4uXG5cblxcLS0tXG5cbkZvdW5kIGEgYnVnIG9yIGhhdmUgc29tZSBxdWVzdGlvbnM/IFtDcmVhdGUgYW4gaXNzdWUgb24gR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vZ290aWZ5L3NlcnZlci9pc3N1ZXMpIiwKICAgICJ0aXRsZSI6ICJHb3RpZnkgUkVTVC1BUEkuIiwKICAgICJsaWNlbnNlIjogewogICAgICAibmFtZSI6ICJNSVQiLAogICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb3RpZnkvc2VydmVyL2Jsb2IvbWFzdGVyL0xJQ0VOU0UiCiAgICB9LAogICAgInZlcnNpb24iOiAiMS4wLjEiCiAgfSwKICAiaG9zdCI6ICJsb2NhbGhvc3QiLAogICJwYXRocyI6IHsKICAgICIvYXBwbGljYXRpb24iOiB7CiAgICAgICJnZXQiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiY29uc3VtZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAidG9rZW4iCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJSZXR1cm4gYWxsIGFwcGxpY2F0aW9ucy4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJnZXRBcHBzIiwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJhcnJheSIsCiAgICAgICAgICAgICAgIml0ZW1zIjogewogICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9BcHBsaWNhdGlvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgInBvc3QiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiY29uc3VtZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAidG9rZW4iCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJDcmVhdGUgYW4gYXBwbGljYXRpb24uIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiY3JlYXRlQXBwIiwKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRoZSBhcHBsaWNhdGlvbiB0byBhZGQiLAogICAgICAgICAgICAibmFtZSI6ICJib2R5IiwKICAgICAgICAgICAgImluIjogImJvZHkiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvQXBwbGljYXRpb24iCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvQXBwbGljYXRpb24iCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICIvYXBwbGljYXRpb24ve2lkfSI6IHsKICAgICAgImRlbGV0ZSI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYmFzaWNBdXRoIjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJjb25zdW1lcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJ0b2tlbiIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIkRlbGV0ZSBhbiBhcHBsaWNhdGlvbi4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJkZWxldGVBcHAiLAogICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAidGhlIGFwcGxpY2F0aW9uIGlkIiwKICAgICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siCiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAiL2FwcGxpY2F0aW9uL3tpZH0vbWVzc2FnZSI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYmFzaWNBdXRoIjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAibWVzc2FnZSIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIlJldHVybiBhbGwgbWVzc2FnZXMgZnJvbSBhIHNwZWNpZmljIGFwcGxpY2F0aW9uLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImdldEFwcE1lc3NhZ2VzIiwKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRoZSBhcHBsaWNhdGlvbiBpZCIsCiAgICAgICAgICAgICJuYW1lIjogImlkIiwKICAgICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJhcnJheSIsCiAgICAgICAgICAgICAgIml0ZW1zIjogewogICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9NZXNzYWdlIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAzIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRm9yYmlkZGVuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LAogICAgICAiZGVsZXRlIjogewogICAgICAgICJzZWN1cml0eSI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuSGVhZGVyIjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlblF1ZXJ5IjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJiYXNpY0F1dGgiOiBbXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJtZXNzYWdlIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiRGVsZXRlIGFsbCBtZXNzYWdlcyBmcm9tIGEgc3BlY2lmaWMgYXBwbGljYXRpb24uIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZGVsZXRlQXBwTWVzc2FnZXMiLAogICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAidGhlIGFwcGxpY2F0aW9uIGlkIiwKICAgICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siCiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAiL2NsaWVudCI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYmFzaWNBdXRoIjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJjb25zdW1lcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJ0b2tlbiIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIlJldHVybiBhbGwgY2xpZW50cy4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJnZXRDbGllbnRzIiwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJhcnJheSIsCiAgICAgICAgICAgICAgIml0ZW1zIjogewogICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9DbGllbnQiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJwb3N0IjogewogICAgICAgICJzZWN1cml0eSI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuSGVhZGVyIjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlblF1ZXJ5IjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJiYXNpY0F1dGgiOiBbXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImNvbnN1bWVzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgInRva2VuIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiQ3JlYXRlIGEgY2xpZW50LiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImNyZWF0ZUNsaWVudCIsCiAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ0aGUgY2xpZW50IHRvIGFkZCIsCiAgICAgICAgICAgICJuYW1lIjogImJvZHkiLAogICAgICAgICAgICAiaW4iOiAiYm9keSIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9DbGllbnQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvQ2xpZW50IgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAiL2NsaWVudC97aWR9IjogewogICAgICAiZGVsZXRlIjogewogICAgICAgICJzZWN1cml0eSI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuSGVhZGVyIjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlblF1ZXJ5IjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJiYXNpY0F1dGgiOiBbXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImNvbnN1bWVzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgInRva2VuIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiRGVsZXRlIGEgY2xpZW50LiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImRlbGV0ZUNsaWVudCIsCiAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ0aGUgY2xpZW50IGlkIiwKICAgICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siCiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAiL2N1cnJlbnQvdXNlciI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYmFzaWNBdXRoIjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAidXNlciIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIlJldHVybiB0aGUgY3VycmVudCB1c2VyLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImN1cnJlbnRVc2VyIiwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL1VzZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICIvY3VycmVudC91c2VyL3Bhc3N3b3JkIjogewogICAgICAicG9zdCI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYmFzaWNBdXRoIjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJjb25zdW1lcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJ1c2VyIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiVXBkYXRlIHRoZSBwYXNzd29yZCBvZiB0aGUgY3VycmVudCB1c2VyLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogInVwZGF0ZUN1cnJlbnRVc2VyIiwKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRoZSB1c2VyIiwKICAgICAgICAgICAgIm5hbWUiOiAiYm9keSIsCiAgICAgICAgICAgICJpbiI6ICJib2R5IiwKICAgICAgICAgICAgInJlcXVpcmVkIjogdHJ1ZSwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL1VzZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siCiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAiL21lc3NhZ2UiOiB7CiAgICAgICJnZXQiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgIm1lc3NhZ2UiCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJSZXR1cm4gYWxsIG1lc3NhZ2VzLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImdldE1lc3NhZ2VzIiwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJhcnJheSIsCiAgICAgICAgICAgICAgIml0ZW1zIjogewogICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9NZXNzYWdlIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAzIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRm9yYmlkZGVuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LAogICAgICAicG9zdCI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJhcHBUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYXBwVG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiX19OT1RFX186IFRoaXMgQVBJIE9OTFkgYWNjZXB0cyBhbiBhcHBsaWNhdGlvbiB0b2tlbiBhcyBhdXRoZW50aWNhdGlvbi4iLAogICAgICAgICJjb25zdW1lcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJtZXNzYWdlIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiQ3JlYXRlIGEgbWVzc2FnZS4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJjcmVhdGVNZXNzYWdlIiwKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRoZSBtZXNzYWdlIHRvIGFkZCIsCiAgICAgICAgICAgICJuYW1lIjogImJvZHkiLAogICAgICAgICAgICAiaW4iOiAiYm9keSIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9NZXNzYWdlIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJhcnJheSIsCiAgICAgICAgICAgICAgIml0ZW1zIjogewogICAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9NZXNzYWdlIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkZWxldGUiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgIm1lc3NhZ2UiCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJEZWxldGUgYWxsIG1lc3NhZ2VzLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImRlbGV0ZU1lc3NhZ2VzIiwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIgogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAzIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRm9yYmlkZGVuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi9tZXNzYWdlL3tpZH0iOiB7CiAgICAgICJkZWxldGUiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgIm1lc3NhZ2UiCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJEZWxldGVzIGEgbWVzc2FnZSB3aXRoIGFuIGlkLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImRlbGV0ZU1lc3NhZ2UiLAogICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRoZSBtZXNzYWdlIGlkIiwKICAgICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUKICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siCiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAiL3N0cmVhbSI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYmFzaWNBdXRoIjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAibWVzc2FnZSIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIldlYnNvY2tldCwgcmV0dXJuIG5ld2x5IGNyZWF0ZWQgbWVzc2FnZXMuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAic3RyZWFtTWVzc2FnZXMiLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvTWVzc2FnZSIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAzIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRm9yYmlkZGVuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi91c2VyIjogewogICAgICAiZ2V0IjogewogICAgICAgICJzZWN1cml0eSI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuSGVhZGVyIjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlblF1ZXJ5IjogW10KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJiYXNpY0F1dGgiOiBbXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJ1c2VyIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiUmV0dXJuIGFsbCB1c2Vycy4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJnZXRVc2VycyIsCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPayIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAgICAgICAgICJpdGVtcyI6IHsKICAgICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgInBvc3QiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiY29uc3VtZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAidXNlciIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIkNyZWF0ZSBhIHVzZXIuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiY3JlYXRlVXNlciIsCiAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ0aGUgdXNlciB0byBhZGQiLAogICAgICAgICAgICAibmFtZSI6ICJib2R5IiwKICAgICAgICAgICAgImluIjogImJvZHkiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPayIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9Vc2VyIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAiL3VzZXIve2lkfSI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAic2VjdXJpdHkiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJjbGllbnRUb2tlbkhlYWRlciI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5RdWVyeSI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiYmFzaWNBdXRoIjogW10KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJjb25zdW1lcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAidGFncyI6IFsKICAgICAgICAgICJ1c2VyIgogICAgICAgIF0sCiAgICAgICAgInN1bW1hcnkiOiAiR2V0IGEgdXNlci4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJnZXRVc2VyIiwKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ0aGUgdXNlciBpZCIsCiAgICAgICAgICAgICJuYW1lIjogImlkIiwKICAgICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL1VzZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAxIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5hdXRob3JpemVkIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMyI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZvcmJpZGRlbiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgInBvc3QiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAiY29uc3VtZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAidXNlciIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIlVwZGF0ZSBhIHVzZXIuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAidXBkYXRlVXNlciIsCiAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAidGhlIHVzZXIgaWQiLAogICAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAgICJpbiI6ICJwYXRoIiwKICAgICAgICAgICAgInJlcXVpcmVkIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRoZSB1cGRhdGVkIHVzZXIiLAogICAgICAgICAgICAibmFtZSI6ICJib2R5IiwKICAgICAgICAgICAgImluIjogImJvZHkiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVXNlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPayIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9Vc2VyIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIjQwMSI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuYXV0aG9yaXplZCIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9FcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICI0MDMiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGb3JiaWRkZW4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkZWxldGUiOiB7CiAgICAgICAgInNlY3VyaXR5IjogWwogICAgICAgICAgewogICAgICAgICAgICAiY2xpZW50VG9rZW5IZWFkZXIiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNsaWVudFRva2VuUXVlcnkiOiBbXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImJhc2ljQXV0aCI6IFtdCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicHJvZHVjZXMiOiBbCiAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICBdLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgInVzZXIiCiAgICAgICAgXSwKICAgICAgICAic3VtbWFyeSI6ICJEZWxldGVzIGEgdXNlci4iLAogICAgICAgICJvcGVyYXRpb25JZCI6ICJkZWxldGVVc2VyIiwKICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ0aGUgdXNlciBpZCIsCiAgICAgICAgICAgICJuYW1lIjogImlkIiwKICAgICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9rIgogICAgICAgICAgfSwKICAgICAgICAgICI0MDEiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmF1dGhvcml6ZWQiLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDAzIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRm9yYmlkZGVuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0Vycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi92ZXJzaW9uIjogewogICAgICAiZ2V0IjogewogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInRhZ3MiOiBbCiAgICAgICAgICAidmVyc2lvbiIKICAgICAgICBdLAogICAgICAgICJzdW1tYXJ5IjogIkdldCB2ZXJzaW9uIGluZm9ybWF0aW9uLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImdldFZlcnNpb24iLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2siLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVmVyc2lvbkluZm8iCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9LAogICJkZWZpbml0aW9ucyI6IHsKICAgICJBcHBsaWNhdGlvbiI6IHsKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBBcHBsaWNhdGlvbiBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCBhbiBhcHAgd2hpY2ggY2FuIHNlbmQgbm90aWZpY2F0aW9ucy4iLAogICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAidGl0bGUiOiAiQXBwbGljYXRpb24gTW9kZWwiLAogICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgImlkIiwKICAgICAgICAibmFtZSIsCiAgICAgICAgImRlc2NyaXB0aW9uIgogICAgICBdLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBhcHBsaWNhdGlvbi4iLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiRGVzY3JpcHRpb24iLAogICAgICAgICAgImV4YW1wbGUiOiAiQmFja3VwIHNlcnZlciBmb3IgdGhlIGludGVyd2VicyIKICAgICAgICB9LAogICAgICAgICJpZCI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYXBwbGljYXRpb24gaWQuIENhbiBiZSB1c2VkIGFzIGBhcHBUb2tlbmAuIFNlZSBBdXRoZW50aWNhdGlvbi4iLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiSUQiLAogICAgICAgICAgInJlYWRPbmx5IjogdHJ1ZSwKICAgICAgICAgICJleGFtcGxlIjogIkFXSDB3WjVyME1iYWMuciIKICAgICAgICB9LAogICAgICAgICJuYW1lIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhcHBsaWNhdGlvbiBuYW1lLiBUaGlzIGlzIGhvdyB0aGUgYXBwbGljYXRpb24gc2hvdWxkIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlci4iLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiTmFtZSIsCiAgICAgICAgICAiZXhhbXBsZSI6ICJCYWNrdXAgU2VydmVyIgogICAgICAgIH0KICAgICAgfSwKICAgICAgIngtZ28tcGFja2FnZSI6ICJnaXRodWIuY29tL2dvdGlmeS9zZXJ2ZXIvbW9kZWwiCiAgICB9LAogICAgIkNsaWVudCI6IHsKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBDbGllbnQgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgYSBkZXZpY2Ugd2hpY2ggY2FuIHJlY2VpdmUgbm90aWZpY2F0aW9ucyAoYW5kIG90aGVyIHN0dWZmKS4iLAogICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAidGl0bGUiOiAiQ2xpZW50IE1vZGVsIiwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJpZCIsCiAgICAgICAgIm5hbWUiCiAgICAgIF0sCiAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICJpZCI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgY2xpZW50IGlkLiBDYW4gYmUgdXNlZCBhcyBgY2xpZW50VG9rZW5gLiBTZWUgQXV0aGVudGljYXRpb24uIiwKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAieC1nby1uYW1lIjogIklEIiwKICAgICAgICAgICJyZWFkT25seSI6IHRydWUsCiAgICAgICAgICAiZXhhbXBsZSI6ICJDV0gwd1o1cjBNYmFjLnIiCiAgICAgICAgfSwKICAgICAgICAibmFtZSI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgY2xpZW50IG5hbWUuIFRoaXMgaXMgaG93IHRoZSBjbGllbnQgc2hvdWxkIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlci4iLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiTmFtZSIsCiAgICAgICAgICAiZXhhbXBsZSI6ICJBbmRyb2lkIFBob25lIgogICAgICAgIH0KICAgICAgfSwKICAgICAgIngtZ28tcGFja2FnZSI6ICJnaXRodWIuY29tL2dvdGlmeS9zZXJ2ZXIvbW9kZWwiCiAgICB9LAogICAgIkVycm9yIjogewogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIEVycm9yIGNvbnRhaW5zIGVycm9yIHJlbGV2YW50IGluZm9ybWF0aW9uLiIsCiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJ0aXRsZSI6ICJFcnJvciBNb2RlbCIsCiAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAiZXJyb3IiLAogICAgICAgICJlcnJvckNvZGUiLAogICAgICAgICJlcnJvckRlc2NyaXB0aW9uIgogICAgICBdLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAiZXJyb3IiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGdlbmVyYWwgZXJyb3IgbWVzc2FnZSIsCiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJFcnJvciIsCiAgICAgICAgICAiZXhhbXBsZSI6ICJVbmF1dGhvcml6ZWQiCiAgICAgICAgfSwKICAgICAgICAiZXJyb3JDb2RlIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBodHRwIGVycm9yIGNvZGUuIiwKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgImZvcm1hdCI6ICJpbnQ2NCIsCiAgICAgICAgICAieC1nby1uYW1lIjogIkVycm9yQ29kZSIsCiAgICAgICAgICAiZXhhbXBsZSI6IDQwMQogICAgICAgIH0sCiAgICAgICAgImVycm9yRGVzY3JpcHRpb24iOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGh0dHAgZXJyb3IgY29kZS4iLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiRXJyb3JEZXNjcmlwdGlvbiIsCiAgICAgICAgICAiZXhhbXBsZSI6ICJ5b3UgbmVlZCB0byBwcm92aWRlIGEgdmFsaWQgYWNjZXNzIHRva2VuIG9yIHVzZXIgY3JlZGVudGlhbHMgdG8gYWNjZXNzIHRoaXMgYXBpIgogICAgICAgIH0KICAgICAgfSwKICAgICAgIngtZ28tcGFja2FnZSI6ICJnaXRodWIuY29tL2dvdGlmeS9zZXJ2ZXIvbW9kZWwiCiAgICB9LAogICAgIk1lc3NhZ2UiOiB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgTWVzc2FnZSBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCBhIG1lc3NhZ2Ugd2hpY2ggd2FzIHNlbnQgYnkgYW4gQXBwbGljYXRpb24uIiwKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgInRpdGxlIjogIk1lc3NhZ2UgTW9kZWwiLAogICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgImlkIiwKICAgICAgICAiYXBwaWQiLAogICAgICAgICJtZXNzYWdlIiwKICAgICAgICAidGl0bGUiLAogICAgICAgICJkYXRlIgogICAgICBdLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAiYXBwaWQiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFwcGxpY2F0aW9uIGlkIHRoYXQgc2VuZCB0aGlzIG1lc3NhZ2UuIiwKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAieC1nby1uYW1lIjogIkFwcGxpY2F0aW9uSUQiLAogICAgICAgICAgInJlYWRPbmx5IjogdHJ1ZSwKICAgICAgICAgICJleGFtcGxlIjogIkFXSDB3WjVyME1iYWMuciIKICAgICAgICB9LAogICAgICAgICJkYXRlIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBkYXRlIHRoZSBtZXNzYWdlIHdhcyBjcmVhdGVkLiIsCiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImZvcm1hdCI6ICJkYXRlLXRpbWUiLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJEYXRlIiwKICAgICAgICAgICJyZWFkT25seSI6IHRydWUsCiAgICAgICAgICAiZXhhbXBsZSI6ICIyMDE4LTAyLTI3VDE5OjM2OjEwLjUwNDUwNDQrMDE6MDAiCiAgICAgICAgfSwKICAgICAgICAiaWQiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIG1lc3NhZ2UgaWQuIiwKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgImZvcm1hdCI6ICJ1aW50NjQiLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJJRCIsCiAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlLAogICAgICAgICAgImV4YW1wbGUiOiAyNQogICAgICAgIH0sCiAgICAgICAgIm1lc3NhZ2UiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFjdHVhbCBtZXNzYWdlLiIsCiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJNZXNzYWdlIiwKICAgICAgICAgICJleGFtcGxlIjogIkJhY2t1cCB3YXMgc3VjY2Vzc2Z1bGx5IGZpbmlzaGVkLiIKICAgICAgICB9LAogICAgICAgICJwcmlvcml0eSI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgcHJpb3JpdHkgb2YgdGhlIG1lc3NhZ2UuIiwKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgImZvcm1hdCI6ICJpbnQ2NCIsCiAgICAgICAgICAieC1nby1uYW1lIjogIlByaW9yaXR5IiwKICAgICAgICAgICJleGFtcGxlIjogMgogICAgICAgIH0sCiAgICAgICAgInRpdGxlIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB0aXRsZSBvZiB0aGUgbWVzc2FnZS4iLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiVGl0bGUiLAogICAgICAgICAgImV4YW1wbGUiOiAiQmFja3VwIgogICAgICAgIH0KICAgICAgfSwKICAgICAgIngtZ28tcGFja2FnZSI6ICJnaXRodWIuY29tL2dvdGlmeS9zZXJ2ZXIvbW9kZWwiCiAgICB9LAogICAgIlVzZXIiOiB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgVXNlciBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3JlZGVudGlhbHMgYW5kIG90aGVyIHN0dWZmLiIsCiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJ0aXRsZSI6ICJVc2VyRXh0ZXJuYWwgTW9kZWwiLAogICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgImlkIiwKICAgICAgICAibmFtZSIsCiAgICAgICAgInBhc3MiCiAgICAgIF0sCiAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICJhZG1pbiI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgdXNlciBpcyBhbiBhZG1pbmlzdHJhdG9yLiIsCiAgICAgICAgICAidHlwZSI6ICJib29sZWFuIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiQWRtaW4iLAogICAgICAgICAgImV4YW1wbGUiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiaWQiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHVzZXIgaWQuIiwKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgImZvcm1hdCI6ICJ1aW50NjQiLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJJRCIsCiAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlLAogICAgICAgICAgImV4YW1wbGUiOiAyNQogICAgICAgIH0sCiAgICAgICAgIm5hbWUiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHVzZXIgbmFtZS4gRm9yIGxvZ2luLiIsCiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgIngtZ28tbmFtZSI6ICJOYW1lIiwKICAgICAgICAgICJleGFtcGxlIjogInVuaWNvcm4iCiAgICAgICAgfSwKICAgICAgICAicGFzcyI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgdXNlciBwYXNzd29yZC4gRm9yIGxvZ2luLiAoV2lsbCBub3QgYmUgcmV0dXJuZWQgYnkgYW55IEFQSSkiLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiUGFzcyIsCiAgICAgICAgICAiZXhhbXBsZSI6ICJteXBhc3N3b3JkOyAhd2lsbCBub3QgYmUgcmV0dXJuZWQgYnkgYW55IEFQSSEiCiAgICAgICAgfQogICAgICB9LAogICAgICAieC1nby1uYW1lIjogIlVzZXJFeHRlcm5hbCIsCiAgICAgICJ4LWdvLXBhY2thZ2UiOiAiZ2l0aHViLmNvbS9nb3RpZnkvc2VydmVyL21vZGVsIgogICAgfSwKICAgICJWZXJzaW9uSW5mbyI6IHsKICAgICAgImRlc2NyaXB0aW9uIjogIlZlcnNpb25JbmZvIE1vZGVsIiwKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJ2ZXJzaW9uIiwKICAgICAgICAiY29tbWl0IiwKICAgICAgICAiYnVpbGREYXRlIgogICAgICBdLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAiYnVpbGREYXRlIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBkYXRlIG9uIHdoaWNoIHRoaXMgYmluYXJ5IHdhcyBidWlsdC4iLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiQnVpbGREYXRlIiwKICAgICAgICAgICJleGFtcGxlIjogIjIwMTgtMDItMjdUMTk6MzY6MTAuNTA0NTA0NCswMTowMCIKICAgICAgICB9LAogICAgICAgICJjb21taXQiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGdpdCBjb21taXQgaGFzaCBvbiB3aGljaCB0aGlzIGJpbmFyeSB3YXMgYnVpbHQuIiwKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAieC1nby1uYW1lIjogIkNvbW1pdCIsCiAgICAgICAgICAiZXhhbXBsZSI6ICJhZTk1MTJiNmI2ZmVlYTU2YTExMGQ1OWEzMzUzZWEzYjljMjkzODY0IgogICAgICAgIH0sCiAgICAgICAgInZlcnNpb24iOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGN1cnJlbnQgdmVyc2lvbi4iLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJ4LWdvLW5hbWUiOiAiVmVyc2lvbiIsCiAgICAgICAgICAiZXhhbXBsZSI6ICI1LjIuNiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ4LWdvLXBhY2thZ2UiOiAiZ2l0aHViLmNvbS9nb3RpZnkvc2VydmVyL21vZGVsIgogICAgfQogIH0sCiAgInNlY3VyaXR5RGVmaW5pdGlvbnMiOiB7CiAgICAiYXBwVG9rZW5IZWFkZXIiOiB7CiAgICAgICJ0eXBlIjogImFwaUtleSIsCiAgICAgICJuYW1lIjogIlgtR290aWZ5LUtleSIsCiAgICAgICJpbiI6ICJoZWFkZXIiCiAgICB9LAogICAgImFwcFRva2VuUXVlcnkiOiB7CiAgICAgICJ0eXBlIjogImFwaUtleSIsCiAgICAgICJuYW1lIjogInRva2VuIiwKICAgICAgImluIjogInF1ZXJ5IgogICAgfSwKICAgICJiYXNpY0F1dGgiOiB7CiAgICAgICJ0eXBlIjogImJhc2ljIgogICAgfSwKICAgICJjbGllbnRUb2tlbkhlYWRlciI6IHsKICAgICAgInR5cGUiOiAiYXBpS2V5IiwKICAgICAgIm5hbWUiOiAiWC1Hb3RpZnktS2V5IiwKICAgICAgImluIjogImhlYWRlciIKICAgIH0sCiAgICAiY2xpZW50VG9rZW5RdWVyeSI6IHsKICAgICAgInR5cGUiOiAiYXBpS2V5IiwKICAgICAgIm5hbWUiOiAidG9rZW4iLAogICAgICAiaW4iOiAicXVlcnkiCiAgICB9CiAgfQp9\"") packr.PackJSONBytes("./", "swagger.go", "\"cGFja2FnZSBkb2NzDQoNCmltcG9ydCAoDQoJImdpdGh1Yi5jb20vZ2luLWdvbmljL2dpbiINCgkiZ2l0aHViLmNvbS9nb2J1ZmZhbG8vcGFja3IiDQoJInN0cmluZ3MiDQopDQoNCi8vIFNlcnZlIHNlcnZlcyB0aGUgZG9jdW1lbnRhdGlvbi4NCmZ1bmMgU2VydmUoY3R4ICpnaW4uQ29udGV4dCkgew0KCWN0eC5Xcml0ZXIuV3JpdGVTdHJpbmcoZ2V0KGN0eC5SZXF1ZXN0LlVSTC5Ib3N0KSkNCn0NCg0KZnVuYyBnZXQoaG9zdCBzdHJpbmcpIHN0cmluZyB7DQoJYm94IDo9IHBhY2tyLk5ld0JveCgiLi8iKQ0KCXJldHVybiBzdHJpbmdzLlJlcGxhY2UoYm94LlN0cmluZygic3BlYy5qc29uIiksICJsb2NhbGhvc3QiLCBob3N0LCAxKQ0KfQ0K\"") } diff --git a/docs/spec.json b/docs/spec.json index bffa3af..e611114 100644 --- a/docs/spec.json +++ b/docs/spec.json @@ -11,11 +11,8 @@ ], "swagger": "2.0", "info": { - "description": "This is the documentation of the Gotify REST-API.", + "description": "This is the documentation of the Gotify REST-API.\n\n# Authentication\nIn Gotify there are two token types:\n__clientToken__: a client is something that receives message and manages stuff like creating new tokens or delete messages. (f.ex this token should be used for an android app)\n__appToken__: an application is something that sends messages (f.ex. this token should be used for a shell script)\n\nThe token can be either transmitted through a header named `X-Gotify-Key` or a query parameter named `token`.\nThere is also the possibility to authenticate through basic auth, this should only be used for creating a clientToken.\n\n\\---\n\nFound a bug or have some questions? [Create an issue on GitHub](https://github.com/gotify/server/issues)", "title": "Gotify REST-API.", - "contact": { - "url": "https://github.com/gotify/server/issues" - }, "license": { "name": "MIT", "url": "https://github.com/gotify/server/blob/master/LICENSE" @@ -589,6 +586,7 @@ "appTokenQuery": [] } ], + "description": "__NOTE__: This API ONLY accepts an application token as authentication.", "consumes": [ "application/json" ], @@ -1051,18 +1049,30 @@ "description": "The Application holds information about an app which can send notifications.", "type": "object", "title": "Application Model", + "required": [ + "id", + "name", + "description" + ], "properties": { "description": { + "description": "The description of the application.", "type": "string", - "x-go-name": "Description" + "x-go-name": "Description", + "example": "Backup server for the interwebs" }, "id": { + "description": "The application id. Can be used as `appToken`. See Authentication.", "type": "string", - "x-go-name": "ID" + "x-go-name": "ID", + "readOnly": true, + "example": "AWH0wZ5r0Mbac.r" }, "name": { + "description": "The application name. This is how the application should be displayed to the user.", "type": "string", - "x-go-name": "Name" + "x-go-name": "Name", + "example": "Backup Server" } }, "x-go-package": "github.com/gotify/server/model" @@ -1071,14 +1081,23 @@ "description": "The Client holds information about a device which can receive notifications (and other stuff).", "type": "object", "title": "Client Model", + "required": [ + "id", + "name" + ], "properties": { "id": { + "description": "The client id. Can be used as `clientToken`. See Authentication.", "type": "string", - "x-go-name": "ID" + "x-go-name": "ID", + "readOnly": true, + "example": "CWH0wZ5r0Mbac.r" }, "name": { + "description": "The client name. This is how the client should be displayed to the user.", "type": "string", - "x-go-name": "Name" + "x-go-name": "Name", + "example": "Android Phone" } }, "x-go-package": "github.com/gotify/server/model" @@ -1087,19 +1106,30 @@ "description": "The Error contains error relevant information.", "type": "object", "title": "Error Model", + "required": [ + "error", + "errorCode", + "errorDescription" + ], "properties": { "error": { + "description": "The general error message", "type": "string", - "x-go-name": "Error" + "x-go-name": "Error", + "example": "Unauthorized" }, "errorCode": { + "description": "The http error code.", "type": "integer", "format": "int64", - "x-go-name": "ErrorCode" + "x-go-name": "ErrorCode", + "example": 401 }, "errorDescription": { + "description": "The http error code.", "type": "string", - "x-go-name": "ErrorDescription" + "x-go-name": "ErrorDescription", + "example": "you need to provide a valid access token or user credentials to access this api" } }, "x-go-package": "github.com/gotify/server/model" @@ -1108,33 +1138,55 @@ "description": "The Message holds information about a message which was sent by an Application.", "type": "object", "title": "Message Model", + "required": [ + "id", + "appid", + "message", + "title", + "date" + ], "properties": { "appid": { + "description": "The application id that send this message.", "type": "string", - "x-go-name": "ApplicationID" + "x-go-name": "ApplicationID", + "readOnly": true, + "example": "AWH0wZ5r0Mbac.r" }, "date": { + "description": "The date the message was created.", "type": "string", "format": "date-time", - "x-go-name": "Date" + "x-go-name": "Date", + "readOnly": true, + "example": "2018-02-27T19:36:10.5045044+01:00" }, "id": { + "description": "The message id.", "type": "integer", "format": "uint64", - "x-go-name": "ID" + "x-go-name": "ID", + "readOnly": true, + "example": 25 }, "message": { + "description": "The actual message.", "type": "string", - "x-go-name": "Message" + "x-go-name": "Message", + "example": "Backup was successfully finished." }, "priority": { + "description": "The priority of the message.", "type": "integer", "format": "int64", - "x-go-name": "Priority" + "x-go-name": "Priority", + "example": 2 }, "title": { + "description": "The title of the message.", "type": "string", - "x-go-name": "Title" + "x-go-name": "Title", + "example": "Backup" } }, "x-go-package": "github.com/gotify/server/model" @@ -1143,23 +1195,37 @@ "description": "The User holds information about the credentials and other stuff.", "type": "object", "title": "UserExternal Model", + "required": [ + "id", + "name", + "pass" + ], "properties": { "admin": { + "description": "If the user is an administrator.", "type": "boolean", - "x-go-name": "Admin" + "x-go-name": "Admin", + "example": true }, "id": { + "description": "The user id.", "type": "integer", "format": "uint64", - "x-go-name": "ID" + "x-go-name": "ID", + "readOnly": true, + "example": 25 }, "name": { + "description": "The user name. For login.", "type": "string", - "x-go-name": "Name" + "x-go-name": "Name", + "example": "unicorn" }, "pass": { + "description": "The user password. For login. (Will not be returned by any API)", "type": "string", - "x-go-name": "Pass" + "x-go-name": "Pass", + "example": "mypassword; !will not be returned by any API!" } }, "x-go-name": "UserExternal", @@ -1168,18 +1234,29 @@ "VersionInfo": { "description": "VersionInfo Model", "type": "object", + "required": [ + "version", + "commit", + "buildDate" + ], "properties": { "buildDate": { + "description": "The date on which this binary was built.", "type": "string", - "x-go-name": "BuildDate" + "x-go-name": "BuildDate", + "example": "2018-02-27T19:36:10.5045044+01:00" }, "commit": { + "description": "The git commit hash on which this binary was built.", "type": "string", - "x-go-name": "Commit" + "x-go-name": "Commit", + "example": "ae9512b6b6feea56a110d59a3353ea3b9c293864" }, "version": { + "description": "The current version.", "type": "string", - "x-go-name": "Version" + "x-go-name": "Version", + "example": "5.2.6" } }, "x-go-package": "github.com/gotify/server/model"