jarvisbot_songfinder 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/changelog.md +8 -0
  3. data/fixtures/vcr_cassettes/query_customconfig.yml +107 -0
  4. data/fixtures/vcr_cassettes/query_customconfig_short_track.yml +107 -0
  5. data/fixtures/vcr_cassettes/query_text.yml +18 -18
  6. data/fixtures/vcr_cassettes/query_track_delegation.yml +18 -18
  7. data/fixtures/vcr_cassettes/query_youtube_url.yml +6 -6
  8. data/fixtures/vcr_cassettes/search_query_auxiliary_provider.yml +33 -33
  9. data/fixtures/vcr_cassettes/search_query_not_found.yml +6 -6
  10. data/fixtures/vcr_cassettes/search_query_preferred_and_auxiliary.yml +18 -18
  11. data/fixtures/vcr_cassettes/search_query_preferred_provider.yml +20 -20
  12. data/fixtures/vcr_cassettes/spotify_invalid_region_restricted.yml +6 -6
  13. data/fixtures/vcr_cassettes/spotify_invalid_search.yml +3 -3
  14. data/fixtures/vcr_cassettes/spotify_invalid_too_long.yml +6 -6
  15. data/fixtures/vcr_cassettes/spotify_invalid_url_relinked.yml +6 -6
  16. data/fixtures/vcr_cassettes/spotify_valid.yml +8 -8
  17. data/fixtures/vcr_cassettes/spotify_valid_clean_or_unknown.yml +6 -6
  18. data/fixtures/vcr_cassettes/spotify_valid_explicit.yml +6 -6
  19. data/fixtures/vcr_cassettes/spotify_valid_search.yml +9 -9
  20. data/fixtures/vcr_cassettes/url_query_known_provider.yml +11 -11
  21. data/fixtures/vcr_cassettes/youtube_invalid.yml +3 -3
  22. data/fixtures/vcr_cassettes/youtube_invalid_region_restricted.yml +6 -6
  23. data/fixtures/vcr_cassettes/youtube_invalid_search.yml +3 -3
  24. data/fixtures/vcr_cassettes/youtube_invalid_too_long.yml +128 -6
  25. data/fixtures/vcr_cassettes/youtube_invalid_wrong_category.yml +12 -12
  26. data/fixtures/vcr_cassettes/youtube_valid.yml +234 -234
  27. data/fixtures/vcr_cassettes/youtube_valid_search.yml +18 -18
  28. data/lib/jarvisbot_songfinder/helpers/query.rb +3 -2
  29. data/lib/jarvisbot_songfinder/helpers/reply_message.rb +2 -2
  30. data/lib/jarvisbot_songfinder/helpers/search_query.rb +4 -3
  31. data/lib/jarvisbot_songfinder/helpers/url_query.rb +3 -2
  32. data/lib/jarvisbot_songfinder/providers/provider.rb +6 -5
  33. data/lib/jarvisbot_songfinder/providers/spotify_api.rb +8 -15
  34. data/lib/jarvisbot_songfinder/providers/youtube_api.rb +10 -37
  35. data/lib/jarvisbot_songfinder/version.rb +1 -1
  36. metadata +4 -2
@@ -17,13 +17,13 @@ http_interactions:
17
17
  message: OK
18
18
  headers:
19
19
  Expires:
20
- - Thu, 14 Mar 2019 11:47:30 GMT
20
+ - Wed, 20 Mar 2019 07:56:53 GMT
21
21
  Date:
22
- - Thu, 14 Mar 2019 11:47:30 GMT
22
+ - Wed, 20 Mar 2019 07:56:53 GMT
23
23
  Cache-Control:
24
24
  - private, max-age=120, must-revalidate, no-transform
25
25
  Etag:
26
- - '"XpPGQXPnxQJhLgs6enD_n8JR4Qk/VfE09OGsOecaQp9qT05YdI62DUA"'
26
+ - '"XpPGQXPnxQJhLgs6enD_n8JR4Qk/tOy-7T5OYczPxiC2_ZiIEiC93sc"'
27
27
  Vary:
28
28
  - Origin
29
29
  - X-Origin
@@ -36,7 +36,7 @@ http_interactions:
36
36
  X-Xss-Protection:
37
37
  - 1; mode=block
38
38
  Content-Length:
39
- - '47277'
39
+ - '47948'
40
40
  Server:
41
41
  - GSE
42
42
  Alt-Svc:
@@ -44,9 +44,9 @@ http_interactions:
44
44
  body:
45
45
  encoding: ASCII-8BIT
46
46
  string: !binary |-
47
- ewogImtpbmQiOiAieW91dHViZSNzZWFyY2hMaXN0UmVzcG9uc2UiLAogImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvVmZFMDlPR3NPZWNhUXA5cVQwNVlkSTYyRFVBXCIiLAogIm5leHRQYWdlVG9rZW4iOiAiQ0RJUUFBIiwKICJyZWdpb25Db2RlIjogIlJVIiwKICJwYWdlSW5mbyI6IHsKICAidG90YWxSZXN1bHRzIjogODYwMzQsCiAgInJlc3VsdHNQZXJQYWdlIjogNTAKIH0sCiAiaXRlbXMiOiBbCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL0lWUzkyTEZWXzM4azZnekswemVlOWRxelBoVVwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJmVjZxNUJyUzBCdyIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMC0xMS0zMFQyMTozNDozNS4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUM5cWpEeklRb3lXM1VTbHdfX3FkbW5RIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAoT2ZmaWNpYWwgVmlkZW8pIiwKICAgICJkZXNjcmlwdGlvbiI6ICJEaXJlY3RvcjogUGF0cmljIFVsbGFldXMuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvZlY2cTVCclMwQncvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL2ZWNnE1QnJTMEJ3L21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvZlY2cTVCclMwQncvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkluRmxhbWVzR0JHIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvOEdfXzNRZkh0dVpzQTAybDFKd0lTeVRGMVNBXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIm9IS24xbnhPWDlzIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE0LTEwLTE2VDE3OjQwOjE5LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ1dCZTR4SUJMUlhTTktXOVBXd0Y5TUEiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIFtIRC9IUSBMeXJpY3MgaW4gVmlkZW9dIiwKICAgICJkZXNjcmlwdGlvbiI6ICJJIGRvIG5vdCBvd24gYW55IHJpZ2h0cyB0byB0aGlzIHNvbmcuIFRoaXMgaXMgcHVyZWx5IHByb21vdGlvbiBmb3IgdGhlIGJhbmQgYW5kIGZvciBlbnRlcnRhaW5tZW50LiBJZiB5b3UgbGlrZSBpdCBidXkgdGhlIENEJ3MgYW5kIHN1cHBvcnQgdGhlIGJhbmQgKGxpbmtzIGJlbG93KS4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9vSEtuMW54T1g5cy9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvb0hLbjFueE9YOXMvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9vSEtuMW54T1g5cy9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiUnV1c2kgTHlyaWNzIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvWkhzWjRPdnlNNGp2a0YtMWdveTVjVjJDLTJ3XCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIllDM3J3NzRjZkc0IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA5LTAxLTA4VDAxOjI2OjQ1LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ25mVkFRTFhoMjJlOUlBekw2Q2pTM0EiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyBmZWF0IFRpbW8gUmFpc2FuZW4gLSBBbGlhcyAoTGl2ZSBHcmFtbWlzZ2FsYW4pIiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbiBGbGFtZXMgb2NoIFRpbW8gcsO2amplciBsaXRlZ3Jhbm5hIHDDpSBncmFtbWlzLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1lDM3J3NzRjZkc0L2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9ZQzNydzc0Y2ZHNC9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1lDM3J3NzRjZkc0L2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJCdWx0aVoiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9EcWVqcXpYR0xsUFlvdEE1Tl8tZkpYSXhTTTRcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiX0VMNzQ4TWZSVTAiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTUtMDYtMDhUMTk6MzQ6MDguMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDNEtocFhNSkJBX2hxSGRBSnhyY2F0dyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gMDQuQWxpYXMgTGl2ZSBAIFJvY2sgQW0gUmluZyAyMDE1IEhEIEFDMyIsCiAgICAiZGVzY3JpcHRpb24iOiAiSSdtIG5vdCB0aGUgb3duZXIgb2YgdGhpcyB0diBicm9hZGNhc3QgKEVpbnNQbHVzIEhEIERldXRzY2hsYW5kKS4gQWxsIHJpZ2h0cyBpbiB0diBjaGFubmVsLCBsYWJlbHMgYW5kIEluIEZsYW1lcyBiYW5kLiBGaW5kIHVzOiAuLi4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9fRUw3NDhNZlJVMC9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvX0VMNzQ4TWZSVTAvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9fRUw3NDhNZlJVMC9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAicm9ja29ubWVkaWFvZmZpY2lhbCIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL0pRSVluUXhBUlZUM3VaWEwyNzl3R1hRb3Q2Z1wiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJfM0lsZjI2LVJYOCIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMC0wNS0xNlQwMToyMzozNS4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNrQWM3amg2d3Rrb2xpMGllVXpjVXhnIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAtIEEgU2Vuc2UgT2YgUHVycG9zZSAoSFEpIiwKICAgICJkZXNjcmlwdGlvbiI6ICJQbGVhc2UgQ29tbWVudCAvIFJhdGUuIEx5cmljcyBhbmQgSW5mbyBiZWxvdy4gRW5qb3kuIFNvbmc6IEFsaWFzIEFydGlzdDogSW4gRmxhbWVzIEFsYnVtOiBBIFNlbnNlIE9mIFB1cnBvc2Ugfn5+fn5+fn5+fn5+fn5+fn5+fn5+IEx5cmljcyBGcm9tIC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL18zSWxmMjYtUlg4L2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9fM0lsZjI2LVJYOC9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL18zSWxmMjYtUlg4L2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJ0ajExMTEyMTI5IiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvaFRKRmExNF9PeW02RjZzRnVhNlNLd3pwSFV3XCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIk52Q3FhQWZIeUc0IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDEwLTA2LTIwVDE0OjM2OjU4LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ0I1Tk96R0tFVzlyc2lqcTNoZkxiU1EiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIENvdmVyIC0gQWxpYXMiLAogICAgImRlc2NyaXB0aW9uIjogImh0dHA6Ly93d3cudGhpc2NvbGRsaWZlLm5ldCBodHRwOi8vd3d3LmZhY2Vib29rLmNvbS90aGlzY29sZGxpZmUgTW9ybmluZyBwZW9wbGUsIG1hbnkgcGVvcGxlIGFza2VkIG1lIHRvIGRvIHRoaXMgc29uZywgSSBhbHdheXMgcmVmdXNlZCBjYXVzZSBJIGFtIG5vdCB0aGUgLi4uIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvTnZDcWFBZkh5RzQvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL052Q3FhQWZIeUc0L21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvTnZDcWFBZkh5RzQvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkRhIFNjaGVoZiIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL19LdEMwRkZiUDRwQkk5eDZVX2VuUXp3d0ljMFwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJQcEtzeVVqM0xhSSIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMi0wOC0xOFQwMjowNjowNC4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNzclA2NWg1SjhyQnhSUTVqdmVMUDRBIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyBAIFdhY2tlbiAyMDEyIExpdmUiLAogICAgImRlc2NyaXB0aW9uIjogIkluIEZsYW1lcyBsaXZlIGF0IFdhY2tlbiAyMDEyIHBlcmZvcm1pbmcgXCJBbGlhc1wiIGZyb20gdGhlIFwiQSBTZW5zZSBvZiBQdXJwb3NlXCIgYWxidW0uIFNldGxpc3QgQCBXYWNrZW4gMjAxMjogMS4gQ2xvdWQgQ29ubmVjdGVkIDIuIFRyaWdnZXIgKE1pc3NpbmcpIDMuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvUHBLc3lVajNMYUkvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1BwS3N5VWozTGFJL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvUHBLc3lVajNMYUkvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogInNZenplZ3kiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9senVyNjRpb1lGOXBsbWtEMF90UktaS0NScklcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAibV9ZM3hYS3hhUEEiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTgtMDctMjhUMjM6NDQ6MzguMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDdzh0b0ZZZUhFcGd4WnFmMjJ1YlB2USIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC1BbGlhcyBAIEJPUkdIT0xNIEJSSU5ORVIiLAogICAgImRlc2NyaXB0aW9uIjogIiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL21fWTN4WEt4YVBBL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9tX1kzeFhLeGFQQS9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL21fWTN4WEt4YVBBL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJkYXdpY2g5MSIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL2Z0Q2RXSDAwWnBEaTJZQUxtYm5IUm96cUNXTVwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJvZTdHdFdYOS0wdyIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxOC0wOC0wNVQxNzo0NjowMC4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNhekhxUkYySHdyRVQxZElEbkNkREp3IiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAoUG9sJiMzOTthbmQmIzM5O3JvY2sgRmVzdGl2YWwgMjAxOCBLb3N0cnp5biBuL09kcmEpIiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbiBGbGFtZXMgLSBBbGlhcyAoUG9sJ2FuZCdyb2NrIEZlc3RpdmFsIDIwMTggS29zdHJ6eW4gbi9PZHJhKSIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL29lN0d0V1g5LTB3L2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9vZTdHdFdYOS0wdy9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL29lN0d0V1g5LTB3L2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJSZWJlbCBWaWtpbmcgVmlkZW9zIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvWWhtQzVhWjc0SzBORFhYdkg3cm5YZUpCbVdFXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIl8wZmYzVmtnaHpZIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDExLTA0LTE3VDE1OjQzOjA1LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ09vTTRiWWZNeF9fN19rZllMZTNvbXciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIEd1aXRhciBDb3ZlciBIRCIsCiAgICAiZGVzY3JpcHRpb24iOiAiSW5mbzogV2hhdCBhIGNhdGNoeSBzb25nISBJIGxvdmVkIEEgU2Vuc2Ugb2YgUHVycG9zZSBhbGJ1bSwgbXkgcGVyc29uYWwgZmF2b3JpdGUgSW4gRmxhbWVzIGFsYnVtIHRvIGRhdGUgKGFsdGhvdWdoIHRoZSBvbGQgc2Nob29sIElGIGZhbnMgbWlnaHQgZGlzYWdyZWUpLCBhbmQgLi4uIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvXzBmZjNWa2doelkvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL18wZmYzVmtnaHpZL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvXzBmZjNWa2doelkvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkRpbHBpbDAxIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvUVdTNDc5Zk5QVW9aS2RMUHZsUnNIdkpBUFRBXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogInZ0QW5RSERGRXo0IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE3LTA4LTE1VDE4OjIyOjU1LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ0VxbFEyYmhlekV5YkpKZXpOdmF2TVEiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIExpdmUgYXQgV2l0aCBGdWxsIEZvcmNlIDIwMTcgW1Byby1TaG90XSIsCiAgICAiZGVzY3JpcHRpb24iOiAiSW4gRmxhbWVzIGxpdmUgYXQgV2l0aCBGdWxsIEZvcmNlIDA6MTggQWxpYXMgNTowOSBBbGwgRm9yIE1lIDk6NDMgT25seSBGb3IgVGhlIFdlYWsgMTQ6MDUgQ2xvdWQgQ29ubmVjdGVkIDE4OjM0IERlbGl2ZXIgVXMgMjU6MzMgSGVyZSBVbnRpbCBGb3JldmVyIDMwOjAwIC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3Z0QW5RSERGRXo0L2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS92dEFuUUhERkV6NC9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3Z0QW5RSERGRXo0L2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJ4TWVnYW1ldCIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrLzhTYkl2UVRPMWdEZ3lLd0ZCWmtlaWlfY2VCSVwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJxQVpERGtkTGVfYyIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMi0wOS0yMFQxNjoyMjoxMC4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNyOC13ZVI4TGUydmN4aEJHaVJkOUNRIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBIFNlbnNlIG9mIFB1cnBvc2UgKEhRIEFsYnVtKSIsCiAgICAiZGVzY3JpcHRpb24iOiAiSW4gRmxhbWVzIG5pbnRoIHN0dWRpbyBhbGJ1bSwgQSBTZW5zZSBvZiBQdXJwb3NlLiBZZWFyOiAyMDA4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRyYWNrIGxpc3Rpbmc6IDEuIFRoZSBNaXJyb3IncyBUcnV0aCAuLi4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9xQVpERGtkTGVfYy9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvcUFaRERrZExlX2MvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9xQVpERGtkTGVfYy9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAicHBoZXJvZXMiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9yTDY1eDhySklZbHNjN0RUOHlid05lUmpLR0FcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAicEZ0b09iSTRjdE0iCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMDgtMTEtMjNUMjA6MTE6MTAuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDUUI0bWU4VFZpMGdvVGJQbENfcUt3dyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgKyBMeXJpY3MiLAogICAgImRlc2NyaXB0aW9uIjogIjIwMDggTnVjbGVhciBCbGFzdCAoSW4gRmxhbWVzKSBUaGUgc2VycGVudCBrbm93cyBXaGVuIHRoZSBjdXJ0YWluIGZhbGxzIFdpdGggZGVuaWFsJ3MgYmxpbmRmb2xkIEhlIGdyZWV0cyBhbm90aGVyIGRheSBEb24ndCBiZWxpZXZlIHRoZSBtYXNrIEl0IGFkYXB0cyB0byBhbnkgbGllIC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3BGdG9PYkk0Y3RNL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9wRnRvT2JJNGN0TS9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3BGdG9PYkk0Y3RNL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJEYW4gR3VydSAoZi5rLmEuIFJvcXFSKSIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL2RCeVc1UFJucnplVjFwWW4ySElzV01uSFk1TVwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICItQVhxZGN3eXBwayIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMi0wMS0xNlQwMTowOTo0Ny4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNQdklQYXJjdlBRc2ZwdWxIRnRNV1F3IiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAoTGFpZCBSZW1peCkiLAogICAgImRlc2NyaXB0aW9uIjogIiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLy1BWHFkY3d5cHBrL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS8tQVhxZGN3eXBway9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLy1BWHFkY3d5cHBrL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJNYXJ0w61uIE9jaG9hIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvS2sydmJYWThpcUR1c252dElpNnFWem40Qlg4XCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIlNHTDNhOVo3UGlvIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDEzLTAyLTEwVDE3OjEzOjUxLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ3BFbVNTRmxib1NDMUhpS1dsTkp4Y1EiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIFtzb2xvXSBIUSIsCiAgICAiZGVzY3JpcHRpb24iOiAiSW4gRmxhbWVzIHNvbmcgQWxpYXMuIEFsYnVtIEEgU2Vuc2UgT2YgUHVycG9zZSAoMjAwOCkuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvU0dMM2E5WjdQaW8vZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1NHTDNhOVo3UGlvL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvU0dMM2E5WjdQaW8vaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIlNlcmdpb3pnejEiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9OeVdWZHlacktaYmp5dlJFc2hxYmYwc3ZzYW9cIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAicUZJdHhSSTIzTTgiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTctMDYtMTFUMDU6MDY6MjMuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDX1Z1N2VuNjZrQjN0U01PYVhORTFWZyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIEAgU3dlZGVuIFJvY2sgMjAxNyAtIEFsaWFzIiwKICAgICJkZXNjcmlwdGlvbiI6ICIiLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9xRkl0eFJJMjNNOC9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvcUZJdHhSSTIzTTgvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9xRkl0eFJJMjNNOC9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiR29Qcm9DcmFzaFRlc3REdW1teSIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL0R6MkR2M1NsUXZjSzFucFpPanNEYlA3NWJZb1wiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICI0WHI1N3JJV1FLbyIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxNC0wNy0yMFQyMzo1MDozNC4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNrOEVQMGROcnlsaWo1TWJjQnpOYXZBIiwKICAgICJ0aXRsZSI6ICJbSW4gRmxhbWVzIC0gQWxpYXNdIFBpYW5vIFR1dG9yaWFsIiwKICAgICJkZXNjcmlwdGlvbiI6ICJJIHNlcmlvdXNseSBsb3ZlIHRoZSBpbnRybyB0byB0aGlzIHNvbmchIE1JREkgYW5kIFNoZWV0IG11c2ljIGNhbiBiZSBkb3dubG9hZGVkIGhlcmU6IGh0dHBzOi8vbWVnYS5jby5uei8jRiFCWmgzRktvQyF0aXBjSjdPZjdObUVjLXFUWTh3ZU13IEZpbGVkIHVuZGVyOiAuLi4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS80WHI1N3JJV1FLby9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNFhyNTdySVdRS28vbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS80WHI1N3JJV1FLby9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiTWFsYXdpbWFuIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvOGhaeFQwWUwwcGxZdE9aTUJOeW1xTHh4bHpRXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogImduSExTYTVoYzZJIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA5LTAyLTA0VDIyOjQwOjAyLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ2xDZGQ4SDVuVy1HRFNISkthOU1hUHciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIChzdWJ0aXR1bGFkbyBlc3Bhw7FvbCkiLAogICAgImRlc2NyaXB0aW9uIjogIkV4Y2VsZW50ZSB2aWRlbyBkZSBpbiBGbGFtZXMgc3VidGl0dWxhZG8gYWwgZXNwYcOxb2wuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvZ25ITFNhNWhjNkkvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL2duSExTYTVoYzZJL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvZ25ITFNhNWhjNkkvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogImphdmltZXRhbGNoaWxlIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvZHZNaVEyVXlIWWVqSHZaeXJ0VHFYajFod0NNXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogInlUbW4zWDRxWTFNIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE3LTEyLTE4VDE0OjE5OjEzLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ2UtMTkwLXg3aEVERzVfb19yUVdTS3ciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIExpdmUgQmlybWluZ2hhbSBVSyAyMDE3IiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbiBGbGFtZXMgLSBBbGlhcyBMaXZlLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3lUbW4zWDRxWTFNL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS95VG1uM1g0cVkxTS9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3lUbW4zWDRxWTFNL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJlZGRpZXNob21lIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvcmN1MWlheVJNQjJSZU5BRWNQSndOQ1BPN2Z3XCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIklYMU9ZZG9yX2Y4IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDExLTA3LTA5VDIzOjI4OjM0LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ0toYTdhUFNBWkRjZmUtUHAzY2JaNmciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzLCBMaXZlIEAgU29uaXNwaGVyZSxTdG9ja2hvbG0gMjAxMSIsCiAgICAiZGVzY3JpcHRpb24iOiAiSW4gRmxhbWVzIC0gQWxpYXMsIExpdmUgQCBTb25pc3BoZXJlLFN0b2NraG9sbSAyMDExLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0lYMU9ZZG9yX2Y4L2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9JWDFPWWRvcl9mOC9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0lYMU9ZZG9yX2Y4L2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJCYXNpY1BTIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvd1ZvTjdtVEhyWWk0eVdXQWZmTXY0dWhGYmdrXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogImxRQUtUd3d5aUk4IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA5LTA4LTIwVDAwOjMzOjM4LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ3BSOFpDMDFvRGkzT3BUeko3aUtaYlEiLAogICAgInRpdGxlIjogIkluIEZsYW1lcy1BbGlhcyB3aXRoIGx5cmljcyAoSFEpIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBbGlhcyBieSBpbiBGbGFtZXMgZnJvbSB0aGUgQWxidW0gXCJBIFNlbnNlIG9mIFB1cnBvc2VcIiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL2xRQUtUd3d5aUk4L2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9sUUFLVHd3eWlJOC9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL2xRQUtUd3d5aUk4L2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJLaXdpbzEyIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvYThQSjFxME9LUVZ1bmFabllsOGduUm84SGtzXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogInFvTGxQUk15T19NIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA4LTA2LTI0VDE4OjU3OjUwLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ0Frc290M3B4SGxORDRnNlZ5akpkNHciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIChwaWFubyBjb3ZlcikiLAogICAgImRlc2NyaXB0aW9uIjogImhvbmVzdGx5IGkgZG8gaXQgYmV0dGVyXl4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9xb0xsUFJNeU9fTS9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvcW9MbFBSTXlPX00vbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9xb0xsUFJNeU9fTS9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiR2l6bW8gbmFtZSIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL1RwbGxhdnNxUHhObmpPSkE3YjZuYnNGQlhOTVwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICI1SXFRbWpZY25mcyIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMS0wNS0yMVQxNToxODowOC4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNaVFR6b25pbHp5Z1A4YXhqQzBWSFJnIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyBEUlVNIENPVkVSIE1JU0hVIiwKICAgICJkZXNjcmlwdGlvbiI6ICIiLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS81SXFRbWpZY25mcy9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNUlxUW1qWWNuZnMvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS81SXFRbWpZY25mcy9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiQWRyaWFuIE1paGFpIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvbEtHUGlBRFFBdm5HQUZCZnhKRUs5R2Q3UUdVXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIkFycDk0V3RiMGx3IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA4LTA5LTIyVDE2OjA3OjMxLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ2FIZUtWTUVwSTZjVGk2Um96VzZVWlEiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIChhbGJ1bSB2ZXJzaW9uKSIsCiAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHZpZGVvIHRvIEluIEZsYW1lcyBzb25nIEFsaWFzIEZyb20gdGhlIGFsYnVtIEEgU2Vuc2UgT2YgUHVycG9zZS4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9BcnA5NFd0YjBsdy9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvQXJwOTRXdGIwbHcvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9BcnA5NFd0YjBsdy9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiVW5pdmVyc2FsIE11c2ljIFN3ZWRlbiIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL1d1QUxZYjZKamJjejk0TzFmdVVvY2lzUnBBY1wiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJBQVFHSXVSMVd2USIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxNy0xMS0yOVQxMzo0Mzo1NS4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUN3RHdsSGRwdzlKcm1YYldrbXBIZ2p3IiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAtIGxpdmUgQCBIYWxsZW5zdGFkaW9uIGluIFp1cmljaCAyOC4xMS4yMDE3IiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbiBGbGFtZXMgbGl2ZSBhdCBIYWxsZW5zdGFkaW9uIGluIFp1cmljaCAvIFN3aXR6ZXJsYW5kIE5vdmVtYmVyIDI4LCAyMDE3IGR1cmluZyB0aGVpciAyMDE3IEV1cm9wZWFuIFRvdXIgcGVyZm9ybWluZyBBbGlhcyBTZXQgbGlzdDogRHJhaW5lZCBCZWZvcmUgSSBGYWxsIC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0FBUUdJdVIxV3ZRL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9BQVFHSXVSMVd2US9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0FBUUdJdVIxV3ZRL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJGZXRpc292NDUiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9HSndQRG9DcGptcE9yVWNJc2FNVGZ6WVZGVEFcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiWnpLNWZudzFJZEkiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTAtMDYtMjFUMDQ6Mzg6NTUuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDS2hhN2FQU0FaRGNmZS1QcDNjYlo2ZyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gSW50cm8gJmFtcDsgQWxpYXMsIExpdmUgQCBNZXRhbHRvd24gMjAxMCIsCiAgICAiZGVzY3JpcHRpb24iOiAiSW4gRmxhbWVzIC0gSW50cm8gJiBBbGlhcywgTGl2ZSBAIE1ldGFsdG93biAyMDEwLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1p6SzVmbncxSWRJL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9aeks1Zm53MUlkSS9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1p6SzVmbncxSWRJL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJCYXNpY1BTIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvNXlYdUJzM25FbHBXY3JtMEdZdTBoVlU0c2F3XCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIndoc0JPaEl3ZVJBIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE4LTA5LTAyVDE2OjA5OjMwLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQzRzTFFzUnVlWmRlY3NJd21IWjQ2ZmciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzLiBCYWNraW5nIHRyYWNrIiwKICAgICJkZXNjcmlwdGlvbiI6ICLQmNGB0L/QvtC70L3QuNGC0LXQu9GMOiBJbiBGbGFtZXMg0JDQu9GM0LHQvtC8OiBBIFNlbnNlIG9mIFB1cnBvc2Ug0JTQsNGC0LAg0LLRi9C/0YPRgdC60LA6IDIwMDgg0LMuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvd2hzQk9oSXdlUkEvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3doc0JPaEl3ZVJBL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvd2hzQk9oSXdlUkEvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkxlc25pNGVrIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvSGNVM3NlcXczazR5UjlpRi0wQ3hmeWFobVpVXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogInpIQnhZVHZRMWlzIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE2LTA2LTA2VDAxOjIyOjI2LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ0pLaDRsbkhtYlo1T2MxeHhPdENIWHciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAgQWxpYXMgQWNvdXN0aWMgQ292ZXIiLAogICAgImRlc2NyaXB0aW9uIjogIldlbGNvbWUgdG8gYW5vdGhlciBlcGlzb2RlIG9mIFNwYXJreSBTaW5ncyBNZXRhbCEgVGhpcyBvbmUgd2FzIGEgcmVxdWVzdCBieSBNYXJ0aW4gVmliZSEgVGhhbmtzIGZvciB5b3VyIHN1cHBvcnQhIEZvciB0aGUgc2FrZSBvZiB0aW1lLCBhbmQgdGhlIHdheSBJIHJld3JvdGUgLi4uIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvekhCeFlUdlExaXMvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3pIQnhZVHZRMWlzL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvekhCeFlUdlExaXMvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIlNhbWkgQmFzdGlvbiIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL3ItekcyVldYYjBydVdBcGhPSEJDalQwbld6VVwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICI2cnZuZWNVZGdvRSIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAwOS0wOC0wNVQxNDoxNDoxNy4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNxejRzTFBCOFYySGs5WU5tOFdiVEVnIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAtIFdhY2tlbiAyMDA5IiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbiBGbGFtZXMgTElWRSBAIFdhY2tlbiAyMDA5IEFsaWFzLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzZydm5lY1VkZ29FL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS82cnZuZWNVZGdvRS9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzZydm5lY1VkZ29FL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJFbHZlbldpdGNoY3JhZnQiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9GSUZfRk40U2ZHc0lBcXJDeFlWVmg2N0tONHNcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiQXNmX0JOREozRFEiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTctMTAtMTZUMDE6Mzc6MzAuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDMjZaZUtYRTVjc2ttLTVxVU10RDZRQSIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgKExpdmUgQXQgUGFiZWxsw7NuIEN1ZXJ2bywgTcOpeGljbyAyMDE3KSIsCiAgICAiZGVzY3JpcHRpb24iOiAiSW4gRmxhbWVzIC0gQWxpYXMgKExpdmUgQXQgUGFiZWxsw7NuIEN1ZXJ2bywgTcOpeGljbyAyMDE3KSIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0FzZl9CTkRKM0RRL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9Bc2ZfQk5ESjNEUS9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0FzZl9CTkRKM0RRL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJCcmlhbiBDb2xvcmFkbyBEZWxnYWRvIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvNkxSeS1Ea3VqWl95eXBlSmRHa3RIRHEyUjhNXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIks4eVJmdTNSejE0IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE2LTA1LTA5VDAzOjI0OjQwLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ2wtMzNIRWVRSWxfY2FwVHVEdS1Kb2ciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIC0gVm9jYWwgQ292ZXIiLAogICAgImRlc2NyaXB0aW9uIjogIk15IGNvdmVyIG9mIHRoZSBzb25nIEFsaWFzIGJ5IHRoZSBiYW5kIEluIEZsYW1lcy4gSSBhbSBub3cgcnVubmluZyBhIG5ldyBwYWdlIGZvciBteSBzdHVkaW8geW91IGNhbiBmaW5kIGl0IGF0IC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0s4eVJmdTNSejE0L2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9LOHlSZnUzUnoxNC9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0s4eVJmdTNSejE0L2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJOYXRlIEJvaG5ldCIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL1VaaXF5ZFVVTDhQeThDWHhFclhNb1lSblJna1wiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJ2bDI0WEFIRExVbyIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAwOC0wNi0zMFQxNToyMzowNC4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNGLW1OcElUZHJTc2JjczN0bS1PWWNRIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyBATWV0YWx0b3duIDIwMDgiLAogICAgImRlc2NyaXB0aW9uIjogIkluIEZsYW1lcyAtIEFsaWFzIGxpdmUgYXQgbWV0YWx0b3duIDIwMDggaW4gR290aGVuYnVyZy9Td2VkZW4uIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvdmwyNFhBSERMVW8vZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3ZsMjRYQUhETFVvL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvdmwyNFhBSERMVW8vaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIlRoZUdyZXlEYWlzeSIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL3JCZ2lhWDJoWFFEQTgtQjg4TUM2X1JjVmJ0MFwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICI3NXhZTjdWQmlUWSIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMy0xMi0yNVQxNzozNzo0NC4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNxSDBhZmxQVG5UcXJlOXRoM0ZteXd3IiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyIsCiAgICAiZGVzY3JpcHRpb24iOiAiQWxidW06IGEgU2Vuc2Ugb2YgUHVycG9zZS4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS83NXhZTjdWQmlUWS9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNzV4WU43VkJpVFkvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS83NXhZTjdWQmlUWS9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiQW5kcmVhcyBIb3JuZW1hbm4iLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9jRFd1cG5faFFHTUJZYXJFYVd1YjZIUUlnb2dcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiWjV4LS0xR3p1S0UiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTUtMTAtMDZUMjI6MjI6NTYuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDaVQzWDlUWU8xWHJ2dU9wamt3eEE5QSIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgR3VpdGFyIENvdmVyIChIRCkiLAogICAgImRlc2NyaXB0aW9uIjogIkNvdmVyIG9mIHRoZSBzb25nIEFsaWFzIGJ5IEluIEZsYW1lcyBJIGRvIG5vdCBvd24gdGhlIHNvbmcuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvWjV4LS0xR3p1S0UvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1o1eC0tMUd6dUtFL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvWjV4LS0xR3p1S0UvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkpvZmZyZXkgQmlyc3RlciIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL2JNdkQzQVpmdG1Eb3hTTlYzU2V2aERxZm50a1wiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJHTjZ3WmxxaTR1SSIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxOC0xMi0yMFQxODoxNTowMS4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNTczVOQzdpcGNtNjlGZ2plcmprSXBRIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAoSFEgTGFpZCBSZW1peCkiLAogICAgImRlc2NyaXB0aW9uIjogIkJ5IFwiQSBTZW5zZSBPZiBQdXJwb3NlXCIgcmUtaXNzdWUsIDIwMTQuIEFsbCByaWdodHMgcmVzZXJ2ZWQgdG8gdGhlIGJhbmQgYW5kIENlbnR1cnkgTWVkaWEuIH4gQkxLIH4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9HTjZ3WmxxaTR1SS9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvR042d1pscWk0dUkvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9HTjZ3WmxxaTR1SS9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiSm8gS2lvdXIiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9WTFZXMFFXZ3JpT3NyckFacV9xQ0d0TVVULWNcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiUlZYMXF3aS05b0UiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTQtMDktMTJUMDI6MTE6MTUuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDb0F5dGRYb1dmSndpQzVlZ19CZV9LZyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIGFsaWFzIGNvdmVyIiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbkZsYW1lcyBBbGlhcyBDb3Zlci4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9SVlgxcXdpLTlvRS9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvUlZYMXF3aS05b0UvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9SVlgxcXdpLTlvRS9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiQ2hyaXMgR3JhbmR5IiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvS1RjTy02bWtBNl9MdUZmSUZWazJPNUJlNFI0XCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIkNucEt4Tm45THJjIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA4LTA2LTIwVDA1OjM0OjQ3LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQzJmM3Q0V25WRHpxUzVjWWE5LVpZWGciLAogICAgInRpdGxlIjogIklOIEZMQU1FUzogQWxpYXMiLAogICAgImRlc2NyaXB0aW9uIjogIjE2LzA2LzA4IE1ldGFsIEhhbW1lciBHb2xkZW4gR29kcyBBd2FyZCAwOC4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9DbnBLeE5uOUxyYy9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvQ25wS3hObjlMcmMvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9DbnBLeE5uOUxyYy9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAibHVuYWthbmEiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9MVWdvcDRVWHJMYnN3ZEtRQm9Wd1FzZjJUY2NcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiQkNBNmpSSXhLWUEiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTEtMDgtMjFUMDA6NTQ6MTIuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDU3Q0empZeGc1aEVuMGVCdHNOeERadyIsCiAgICAidGl0bGUiOiAiaW4gZmxhbWVzICAgYWxpYXMgbHlyaWNzIiwKICAgICJkZXNjcmlwdGlvbiI6ICIiLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9CQ0E2alJJeEtZQS9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvQkNBNmpSSXhLWUEvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9CQ0E2alJJeEtZQS9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAidGhlYmlnZ2RmYW4iLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay8tWThSQ1hsdUhwRUJEX01Rb1c1Z2xub1RXM0FcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiNkp1RW00WWtCTW8iCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTUtMTItMTlUMTQ6MzM6MjAuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDTnNwTGtnMG43NE5LSGkzUFJtOEQwdyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC8vIEFsaWFzIENvdmVyIChMaXZlIFZlcnNpb24pIiwKICAgICJkZXNjcmlwdGlvbiI6ICJHZWFyIFVzZWQgOTAncyBPcnZpbGxlIExlcyBQYXVsIEN1c3RvbSB3aXRoIHN0b2NrIHB1cHMgRHVubG9wIDk1USBXYWggMTAtNTIgRHIgU3RyaW5ncyB0dW5lZCB0byBEcm9wIEEjIEJpYXMgRnggRmVlbCBmcmVlIHRvIGNvbW1lbnQhIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNkp1RW00WWtCTW8vZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzZKdUVtNFlrQk1vL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNkp1RW00WWtCTW8vaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkZpcmRhdXMgVGFocmluIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvVlgwb2xBanBVMURrakFBUE5IeU5lMUZ5WVFrXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogImwzTndhWVpwMWFFIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE0LTEwLTMxVDA0OjE5OjA4LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQzNfWl9rOENvdWNjVUJra1A4ZC14VlEiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIEd1aXRhciBDb3ZlciIsCiAgICAiZGVzY3JpcHRpb24iOiAiRmlyc3QgY292ZXIgaW4gNSBtb250aHMuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvbDNOd2FZWnAxYUUvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL2wzTndhWVpwMWFFL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvbDNOd2FZWnAxYUUvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIk1FVEFMTVVTSUNORVRXT1JLIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsveGxXcllnSUtmdzJwQ3NtUlZKbS1mOEZqaFZvXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIkJ4RG1oTWZ2WTBjIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDEzLTEwLTA4VDExOjA1OjMzLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ2c1QTlYNHRiZnpySnZLNWg3MmcwRXciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIChEdWJzdGVwIFJlbWl4KSIsCiAgICAiZGVzY3JpcHRpb24iOiAiRHVic3RlcCBSZW1peCBvZiBJbiBGbGFtZXMgc29uZyBjYWxsZWQgXCJBbGlhc1wiIGZyb20gYWxidW0gXCJBIHNlbnNlIG9mIHB1cnBvc2VcIiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0J4RG1oTWZ2WTBjL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9CeERtaE1mdlkwYy9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0J4RG1oTWZ2WTBjL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJkaWRvcGV0cm92ZGluZXYgcGV0cm92IiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvdDZza0dYSmpRRGdhOFBDeU8yUVBscjk5OTRzXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIlVmUmNLVVR2YmNvIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE3LTExLTE3VDE2OjA3OjAwLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ1ZiTnJOQzhlWU5iY3ZYWVVUOEVrMlEiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIC0gTGl2ZSBAIFNjYW5kaW5hdml1bSBHw7Z0ZWJvcmcgU3dlZGVuIC0gMTYvMTEgMjAxNyIsCiAgICAiZGVzY3JpcHRpb24iOiAiIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvVWZSY0tVVHZiY28vZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1VmUmNLVVR2YmNvL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvVWZSY0tVVHZiY28vaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkppbW1pZSBTdGplcm5zdHLDtm0iLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9UZ2VDZXNacEhLUWZXTHUxYUFJdFNabnRsQ01cIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiSnZBLTV6VTJfNjAiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMDktMDEtMDRUMDM6MDc6MjAuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDdWMteC11YVBSb3o5dWQxalR4eldwQSIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMiLAogICAgImRlc2NyaXB0aW9uIjogIiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0p2QS01elUyXzYwL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9KdkEtNXpVMl82MC9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0p2QS01elUyXzYwL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJQaWEiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9QcGZRVzhYZTQyNmhoRHUzUWdnSVNQX1dBNnNcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAib3p4OHFiTVJRdXMiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTgtMDYtMjZUMTk6MDA6MjcuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDYVFyV2hFNERXblU5MVhPVU16c1FYUSIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgKEFjb3VzdGljIFBhcnQgR3VpdGFyIENvdmVyKSIsCiAgICAiZGVzY3JpcHRpb24iOiAiIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvb3p4OHFiTVJRdXMvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL296eDhxYk1SUXVzL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvb3p4OHFiTVJRdXMvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkJ1cmFrIEhheXRhIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvRkVMTl91U3hubklvTWZUS1NlNUZfSWZLd0tVXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogInA1ay1NZXk4MDFvIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA5LTExLTA4VDEzOjI5OjUyLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ2tZSzNoVDVZeWptNGp2NlNRWVBFakEiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIChtdXNpY3ZpZGVvICsgbHlyaWNzKSIsCiAgICAiZGVzY3JpcHRpb24iOiAiSW4gRmxhbWVzIC0gQWxpYXMgR3JlYXQgc29uZyEgTHlyaWNzIHRvIEFsaWFzIDogVGhlIHNlcnBlbnQga25vd3MsIFdoZW4gdGhlIGN1cnRhaW4gZmFsbHMsIEluIGRlbmlhbHMgYmxpbmRmb2xkLCBJdCBncmVldHMgYW5vdGhlciBkYXkgRG9uJ3QgYmVsaWV2ZSB0aGUgbWFzayBpdCAuLi4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9wNWstTWV5ODAxby9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvcDVrLU1leTgwMW8vbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9wNWstTWV5ODAxby9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiVGhlQlN0cmFuZ2UiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9oRnZxUFJYc2dpOWhNZlMzdU13THhnbU9WR01cIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiNHRLM0dYYkE3aVkiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTgtMTItMDFUMTU6MDk6NTYuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDSnpVbzNUU2xzV1BPMGJZMWN4Mi1lZyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzLCBBbGlhcyAobGl2ZSksIERhbGxhcywgVGV4YXMgMzAxMTIwMTgiLAogICAgImRlc2NyaXB0aW9uIjogIkdhcyBNb25rZXkgQmFyIG4gR3JpbC4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS80dEszR1hiQTdpWS9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNHRLM0dYYkE3aVkvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS80dEszR1hiQTdpWS9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiSi5QLiBGb3N0ZXIiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay8xSjZDc280S1ZFaFRwT1FGX2l3RW02cGpxNUFcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiNHNSVnY2QjhNcGMiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTgtMDctMjlUMDA6MjA6NDMuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDX2pzR3UzWDZuWW5MM0g1NENFZFhPZyIsCiAgICAidGl0bGUiOiAiSW4gZmxhbWVzIC0gQWxpYXMgQCBib3JnaG9sbSBicmlubmVyIiwKICAgICJkZXNjcmlwdGlvbiI6ICIiLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS80c1JWdjZCOE1wYy9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNHNSVnY2QjhNcGMvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS80c1JWdjZCOE1wYy9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiRGF2aWQgUGV0ZXJzc29uIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvLThqSW5kdkJJSDZhVDR0S1pGOExIaHM4R2xnXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogImkyOFVZYkpFbWpzIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDExLTExLTI2VDE5OjA1OjAyLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ295Ujk0b3F1SGJmNURmdWJrSjBaa0EiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIC8gTGl2ZSBAIFR1cmJpbmVuaGFsbGUgT2JlcmhhdXNlbiAyNS4xMS4yMDExICg3MjBwIEhEKSIsCiAgICAiZGVzY3JpcHRpb24iOiAiIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvaTI4VVliSkVtanMvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL2kyOFVZYkpFbWpzL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvaTI4VVliSkVtanMvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkJ1cm5pbmdNSUMiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9tbUx6cWdOaWdoRmZ0ZUY5LTdZTUo1NTdWNGdcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiNllGYnJ6NzFHd3MiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMDktMTEtMjVUMTI6MTY6MDYuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDdFJoNzRYN1NYODdkQXZKd0xZU3BZZyIsCiAgICAidGl0bGUiOiAiSU4gRkxBTUVTIC0gQWxpYXMgLSIsCiAgICAiZGVzY3JpcHRpb24iOiAiSU4gRkxBTUVTIC0gQWxpYXMgLSBsaXZlIGF1IEJhdGFjbGFuLCBQYXJpcyAoRnJhbmNlKSBsZSAyNC8xMS8yMDA5LiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzZZRmJyejcxR3dzL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS82WUZicno3MUd3cy9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzZZRmJyejcxR3dzL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJva2d3ZW4iLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9lYmt3R3RYRkdRN0ZaZUxFQVpDODh3LW1GeXdcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiVGhpbGVqTDZ6dFEiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTgtMDctMzFUMTE6NTU6MTcuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDV1EyT0hCNks3YXZseXlwQzVKZkM4dyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgdy4gc3RyaW5ncyAoNCBjYW0gbWl4KSBAIEJvcmdob2xtIEJyaW5uZXIgMjAxOCIsCiAgICAiZGVzY3JpcHRpb24iOiAiSW4gRmxhbWVzIC0gQWxpYXMgQm9yZ2hvbG0gQnJpbm5lciwgSnVseSAyN3RoLCAyMDE4IFJlY29yZGVkIGxpdmUgYXQgQm9yZ2hvbG0gQ2FzdGxlLCDDlmxhbmQsIFN3ZWRlbi4gRm9vdGFnZSBzYXZhZ2VseSBzdG9sZW4gZnJvbSBKb2hhbmlzYW5vcmFuZ2UsIERhdmlkIC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1RoaWxlakw2enRRL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9UaGlsZWpMNnp0US9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1RoaWxlakw2enRRL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJDcnVtYnMiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9CiBdCn0K
47
+ ewogImtpbmQiOiAieW91dHViZSNzZWFyY2hMaXN0UmVzcG9uc2UiLAogImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvdE95LTdUNU9ZY3pQeGlDMl9aaUlFaUM5M3NjXCIiLAogIm5leHRQYWdlVG9rZW4iOiAiQ0RJUUFBIiwKICJyZWdpb25Db2RlIjogIlJVIiwKICJwYWdlSW5mbyI6IHsKICAidG90YWxSZXN1bHRzIjogODYyMzIsCiAgInJlc3VsdHNQZXJQYWdlIjogNTAKIH0sCiAiaXRlbXMiOiBbCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL0lWUzkyTEZWXzM4azZnekswemVlOWRxelBoVVwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJmVjZxNUJyUzBCdyIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMC0xMS0zMFQyMTozNDozNS4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUM5cWpEeklRb3lXM1VTbHdfX3FkbW5RIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAoT2ZmaWNpYWwgVmlkZW8pIiwKICAgICJkZXNjcmlwdGlvbiI6ICJEaXJlY3RvcjogUGF0cmljIFVsbGFldXMuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvZlY2cTVCclMwQncvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL2ZWNnE1QnJTMEJ3L21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvZlY2cTVCclMwQncvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkluRmxhbWVzR0JHIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvOEdfXzNRZkh0dVpzQTAybDFKd0lTeVRGMVNBXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIm9IS24xbnhPWDlzIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE0LTEwLTE2VDE3OjQwOjE5LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ1dCZTR4SUJMUlhTTktXOVBXd0Y5TUEiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIFtIRC9IUSBMeXJpY3MgaW4gVmlkZW9dIiwKICAgICJkZXNjcmlwdGlvbiI6ICJJIGRvIG5vdCBvd24gYW55IHJpZ2h0cyB0byB0aGlzIHNvbmcuIFRoaXMgaXMgcHVyZWx5IHByb21vdGlvbiBmb3IgdGhlIGJhbmQgYW5kIGZvciBlbnRlcnRhaW5tZW50LiBJZiB5b3UgbGlrZSBpdCBidXkgdGhlIENEJ3MgYW5kIHN1cHBvcnQgdGhlIGJhbmQgKGxpbmtzIGJlbG93KS4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9vSEtuMW54T1g5cy9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvb0hLbjFueE9YOXMvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9vSEtuMW54T1g5cy9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiUnV1c2kgTHlyaWNzIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvWkhzWjRPdnlNNGp2a0YtMWdveTVjVjJDLTJ3XCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIllDM3J3NzRjZkc0IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA5LTAxLTA4VDAxOjI2OjQ1LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ25mVkFRTFhoMjJlOUlBekw2Q2pTM0EiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyBmZWF0IFRpbW8gUmFpc2FuZW4gLSBBbGlhcyAoTGl2ZSBHcmFtbWlzZ2FsYW4pIiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbiBGbGFtZXMgb2NoIFRpbW8gcsO2amplciBsaXRlZ3Jhbm5hIHDDpSBncmFtbWlzLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1lDM3J3NzRjZkc0L2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9ZQzNydzc0Y2ZHNC9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1lDM3J3NzRjZkc0L2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJCdWx0aVoiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9EcWVqcXpYR0xsUFlvdEE1Tl8tZkpYSXhTTTRcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiX0VMNzQ4TWZSVTAiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTUtMDYtMDhUMTk6MzQ6MDguMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDNEtocFhNSkJBX2hxSGRBSnhyY2F0dyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gMDQuQWxpYXMgTGl2ZSBAIFJvY2sgQW0gUmluZyAyMDE1IEhEIEFDMyIsCiAgICAiZGVzY3JpcHRpb24iOiAiSSdtIG5vdCB0aGUgb3duZXIgb2YgdGhpcyB0diBicm9hZGNhc3QgKEVpbnNQbHVzIEhEIERldXRzY2hsYW5kKS4gQWxsIHJpZ2h0cyBpbiB0diBjaGFubmVsLCBsYWJlbHMgYW5kIEluIEZsYW1lcyBiYW5kLiBGaW5kIHVzOiAuLi4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9fRUw3NDhNZlJVMC9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvX0VMNzQ4TWZSVTAvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9fRUw3NDhNZlJVMC9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAicm9ja29ubWVkaWFvZmZpY2lhbCIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL0pRSVluUXhBUlZUM3VaWEwyNzl3R1hRb3Q2Z1wiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJfM0lsZjI2LVJYOCIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMC0wNS0xNlQwMToyMzozNS4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNrQWM3amg2d3Rrb2xpMGllVXpjVXhnIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAtIEEgU2Vuc2UgT2YgUHVycG9zZSAoSFEpIiwKICAgICJkZXNjcmlwdGlvbiI6ICJQbGVhc2UgQ29tbWVudCAvIFJhdGUuIEx5cmljcyBhbmQgSW5mbyBiZWxvdy4gRW5qb3kuIFNvbmc6IEFsaWFzIEFydGlzdDogSW4gRmxhbWVzIEFsYnVtOiBBIFNlbnNlIE9mIFB1cnBvc2Ugfn5+fn5+fn5+fn5+fn5+fn5+fn5+IEx5cmljcyBGcm9tIC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL18zSWxmMjYtUlg4L2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9fM0lsZjI2LVJYOC9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL18zSWxmMjYtUlg4L2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJ0ajExMTEyMTI5IiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvaFRKRmExNF9PeW02RjZzRnVhNlNLd3pwSFV3XCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIk52Q3FhQWZIeUc0IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDEwLTA2LTIwVDE0OjM2OjU4LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ0I1Tk96R0tFVzlyc2lqcTNoZkxiU1EiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIENvdmVyIC0gQWxpYXMiLAogICAgImRlc2NyaXB0aW9uIjogImh0dHA6Ly93d3cudGhpc2NvbGRsaWZlLm5ldCBodHRwOi8vd3d3LmZhY2Vib29rLmNvbS90aGlzY29sZGxpZmUgTW9ybmluZyBwZW9wbGUsIG1hbnkgcGVvcGxlIGFza2VkIG1lIHRvIGRvIHRoaXMgc29uZywgSSBhbHdheXMgcmVmdXNlZCBjYXVzZSBJIGFtIG5vdCB0aGUgLi4uIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvTnZDcWFBZkh5RzQvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL052Q3FhQWZIeUc0L21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvTnZDcWFBZkh5RzQvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkRhIFNjaGVoZiIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL19LdEMwRkZiUDRwQkk5eDZVX2VuUXp3d0ljMFwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJQcEtzeVVqM0xhSSIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMi0wOC0xOFQwMjowNjowNC4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNzclA2NWg1SjhyQnhSUTVqdmVMUDRBIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyBAIFdhY2tlbiAyMDEyIExpdmUiLAogICAgImRlc2NyaXB0aW9uIjogIkluIEZsYW1lcyBsaXZlIGF0IFdhY2tlbiAyMDEyIHBlcmZvcm1pbmcgXCJBbGlhc1wiIGZyb20gdGhlIFwiQSBTZW5zZSBvZiBQdXJwb3NlXCIgYWxidW0uIFNldGxpc3QgQCBXYWNrZW4gMjAxMjogMS4gQ2xvdWQgQ29ubmVjdGVkIDIuIFRyaWdnZXIgKE1pc3NpbmcpIDMuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvUHBLc3lVajNMYUkvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1BwS3N5VWozTGFJL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvUHBLc3lVajNMYUkvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogInNZenplZ3kiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9RV1M0NzlmTlBVb1pLZExQdmxSc0h2SkFQVEFcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAidnRBblFIREZFejQiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTctMDgtMTVUMTg6MjI6NTUuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDRXFsUTJiaGV6RXliSkplek52YXZNUSIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gTGl2ZSBhdCBXaXRoIEZ1bGwgRm9yY2UgMjAxNyBbUHJvLVNob3RdIiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbiBGbGFtZXMgbGl2ZSBhdCBXaXRoIEZ1bGwgRm9yY2UgMDoxOCBBbGlhcyA1OjA5IEFsbCBGb3IgTWUgOTo0MyBPbmx5IEZvciBUaGUgV2VhayAxNDowNSBDbG91ZCBDb25uZWN0ZWQgMTg6MzQgRGVsaXZlciBVcyAyNTozMyBIZXJlIFVudGlsIEZvcmV2ZXIgMzA6MDAgLi4uIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvdnRBblFIREZFejQvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3Z0QW5RSERGRXo0L21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvdnRBblFIREZFejQvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogInhNZWdhbWV0IiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvZnRDZFdIMDBacERpMllBTG1ibkhSb3pxQ1dNXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIm9lN0d0V1g5LTB3IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE4LTA4LTA1VDE3OjQ2OjAwLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ2F6SHFSRjJId3JFVDFkSURuQ2RESnciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIChQb2wmIzM5O2FuZCYjMzk7cm9jayBGZXN0aXZhbCAyMDE4IEtvc3RyenluIG4vT2RyYSkiLAogICAgImRlc2NyaXB0aW9uIjogIkluIEZsYW1lcyAtIEFsaWFzIChQb2wnYW5kJ3JvY2sgRmVzdGl2YWwgMjAxOCBLb3N0cnp5biBuL09kcmEpIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvb2U3R3RXWDktMHcvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL29lN0d0V1g5LTB3L21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvb2U3R3RXWDktMHcvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIlJlYmVsIFZpa2luZyBWaWRlb3MiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9senVyNjRpb1lGOXBsbWtEMF90UktaS0NScklcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAibV9ZM3hYS3hhUEEiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTgtMDctMjhUMjM6NDQ6MzguMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDdzh0b0ZZZUhFcGd4WnFmMjJ1YlB2USIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC1BbGlhcyBAIEJPUkdIT0xNIEJSSU5ORVIiLAogICAgImRlc2NyaXB0aW9uIjogIiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL21fWTN4WEt4YVBBL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9tX1kzeFhLeGFQQS9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL21fWTN4WEt4YVBBL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJkYXdpY2g5MSIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL1lobUM1YVo3NEswTkRYWHZIN3JuWGVKQm1XRVwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJfMGZmM1ZrZ2h6WSIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMS0wNC0xN1QxNTo0MzowNS4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNPb000YllmTXhfXzdfa2ZZTGUzb213IiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyBHdWl0YXIgQ292ZXIgSEQiLAogICAgImRlc2NyaXB0aW9uIjogIkluZm86IFdoYXQgYSBjYXRjaHkgc29uZyEgSSBsb3ZlZCBBIFNlbnNlIG9mIFB1cnBvc2UgYWxidW0sIG15IHBlcnNvbmFsIGZhdm9yaXRlIEluIEZsYW1lcyBhbGJ1bSB0byBkYXRlIChhbHRob3VnaCB0aGUgb2xkIHNjaG9vbCBJRiBmYW5zIG1pZ2h0IGRpc2FncmVlKSwgYW5kIC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL18wZmYzVmtnaHpZL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9fMGZmM1ZrZ2h6WS9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL18wZmYzVmtnaHpZL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJEaWxwaWwwMSIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL3JMNjV4OHJKSVlsc2M3RFQ4eWJ3TmVSaktHQVwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJwRnRvT2JJNGN0TSIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAwOC0xMS0yM1QyMDoxMToxMC4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNRQjRtZThUVmkwZ29UYlBsQ19xS3d3IiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyArIEx5cmljcyIsCiAgICAiZGVzY3JpcHRpb24iOiAiMjAwOCBOdWNsZWFyIEJsYXN0IChJbiBGbGFtZXMpIFRoZSBzZXJwZW50IGtub3dzIFdoZW4gdGhlIGN1cnRhaW4gZmFsbHMgV2l0aCBkZW5pYWwncyBibGluZGZvbGQgSGUgZ3JlZXRzIGFub3RoZXIgZGF5IERvbid0IGJlbGlldmUgdGhlIG1hc2sgSXQgYWRhcHRzIHRvIGFueSBsaWUgLi4uIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvcEZ0b09iSTRjdE0vZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3BGdG9PYkk0Y3RNL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvcEZ0b09iSTRjdE0vaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkRhbiBHdXJ1IChmLmsuYS4gUm9xcVIpIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvOFNiSXZRVE8xZ0RneUt3RkJaa2VpaV9jZUJJXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogInFBWkREa2RMZV9jIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDEyLTA5LTIwVDE2OjIyOjEwLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ3I4LXdlUjhMZTJ2Y3hoQkdpUmQ5Q1EiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEEgU2Vuc2Ugb2YgUHVycG9zZSAoSFEgQWxidW0pIiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbiBGbGFtZXMgbmludGggc3R1ZGlvIGFsYnVtLCBBIFNlbnNlIG9mIFB1cnBvc2UuIFllYXI6IDIwMDggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVHJhY2sgbGlzdGluZzogMS4gVGhlIE1pcnJvcidzIFRydXRoIC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3FBWkREa2RMZV9jL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9xQVpERGtkTGVfYy9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3FBWkREa2RMZV9jL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJwcGhlcm9lcyIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL3JjdTFpYXlSTUIyUmVOQUVjUEp3TkNQTzdmd1wiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJJWDFPWWRvcl9mOCIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMS0wNy0wOVQyMzoyODozNC4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNLaGE3YVBTQVpEY2ZlLVBwM2NiWjZnIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcywgTGl2ZSBAIFNvbmlzcGhlcmUsU3RvY2tob2xtIDIwMTEiLAogICAgImRlc2NyaXB0aW9uIjogIkluIEZsYW1lcyAtIEFsaWFzLCBMaXZlIEAgU29uaXNwaGVyZSxTdG9ja2hvbG0gMjAxMS4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9JWDFPWWRvcl9mOC9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvSVgxT1lkb3JfZjgvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9JWDFPWWRvcl9mOC9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiQmFzaWNQUyIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL2RCeVc1UFJucnplVjFwWW4ySElzV01uSFk1TVwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICItQVhxZGN3eXBwayIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMi0wMS0xNlQwMTowOTo0Ny4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNQdklQYXJjdlBRc2ZwdWxIRnRNV1F3IiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAoTGFpZCBSZW1peCkiLAogICAgImRlc2NyaXB0aW9uIjogIiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLy1BWHFkY3d5cHBrL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS8tQVhxZGN3eXBway9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLy1BWHFkY3d5cHBrL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJNYXJ0w61uIE9jaG9hIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvTnlXVmR5WnJLWmJqeXZSRXNocWJmMHN2c2FvXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogInFGSXR4UkkyM004IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE3LTA2LTExVDA1OjA2OjIzLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ19WdTdlbjY2a0IzdFNNT2FYTkUxVmciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyBAIFN3ZWRlbiBSb2NrIDIwMTcgLSBBbGlhcyIsCiAgICAiZGVzY3JpcHRpb24iOiAiIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvcUZJdHhSSTIzTTgvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3FGSXR4UkkyM004L21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvcUZJdHhSSTIzTTgvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkdvUHJvQ3Jhc2hUZXN0RHVtbXkiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9hOFBKMXEwT0tRVnVuYVpuWWw4Z25SbzhIa3NcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAicW9MbFBSTXlPX00iCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMDgtMDYtMjRUMTg6NTc6NTAuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDQWtzb3QzcHhIbE5ENGc2VnlqSmQ0dyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgKHBpYW5vIGNvdmVyKSIsCiAgICAiZGVzY3JpcHRpb24iOiAiaG9uZXN0bHkgaSBkbyBpdCBiZXR0ZXJeXiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3FvTGxQUk15T19NL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9xb0xsUFJNeU9fTS9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3FvTGxQUk15T19NL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJHaXptbyBuYW1lIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvRHoyRHYzU2xRdmNLMW5wWk9qc0RiUDc1YllvXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIjRYcjU3cklXUUtvIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE0LTA3LTIwVDIzOjUwOjM0LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ2s4RVAwZE5yeWxpajVNYmNCek5hdkEiLAogICAgInRpdGxlIjogIltJbiBGbGFtZXMgLSBBbGlhc10gUGlhbm8gVHV0b3JpYWwiLAogICAgImRlc2NyaXB0aW9uIjogIkkgc2VyaW91c2x5IGxvdmUgdGhlIGludHJvIHRvIHRoaXMgc29uZyEgTUlESSBhbmQgU2hlZXQgbXVzaWMgY2FuIGJlIGRvd25sb2FkZWQgaGVyZTogaHR0cHM6Ly9tZWdhLmNvLm56LyNGIUJaaDNGS29DIXRpcGNKN09mN05tRWMtcVRZOHdlTXcgRmlsZWQgdW5kZXI6IC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzRYcjU3cklXUUtvL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS80WHI1N3JJV1FLby9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzRYcjU3cklXUUtvL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJNYWxhd2ltYW4iLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay84aFp4VDBZTDBwbFl0T1pNQk55bXFMeHhselFcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiZ25ITFNhNWhjNkkiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMDktMDItMDRUMjI6NDA6MDIuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDbENkZDhINW5XLUdEU0hKS2E5TWFQdyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgKHN1YnRpdHVsYWRvIGVzcGHDsW9sKSIsCiAgICAiZGVzY3JpcHRpb24iOiAiRXhjZWxlbnRlIHZpZGVvIGRlIGluIEZsYW1lcyBzdWJ0aXR1bGFkbyBhbCBlc3Bhw7FvbC4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9nbkhMU2E1aGM2SS9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvZ25ITFNhNWhjNkkvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9nbkhMU2E1aGM2SS9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiamF2aW1ldGFsY2hpbGUiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay81eVh1QnMzbkVscFdjcm0wR1l1MGhWVTRzYXdcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAid2hzQk9oSXdlUkEiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTgtMDktMDJUMTY6MDk6MzAuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDNHNMUXNSdWVaZGVjc0l3bUhaNDZmZyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMuIEJhY2tpbmcgdHJhY2siLAogICAgImRlc2NyaXB0aW9uIjogItCY0YHQv9C+0LvQvdC40YLQtdC70Yw6IEluIEZsYW1lcyDQkNC70YzQsdC+0Lw6IEEgU2Vuc2Ugb2YgUHVycG9zZSDQlNCw0YLQsCDQstGL0L/Rg9GB0LrQsDogMjAwOCDQsy4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS93aHNCT2hJd2VSQS9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvd2hzQk9oSXdlUkEvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS93aHNCT2hJd2VSQS9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiTGVzbmk0ZWsiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9jRFd1cG5faFFHTUJZYXJFYVd1YjZIUUlnb2dcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiWjV4LS0xR3p1S0UiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTUtMTAtMDZUMjI6MjI6NTYuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDaVQzWDlUWU8xWHJ2dU9wamt3eEE5QSIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgR3VpdGFyIENvdmVyIChIRCkiLAogICAgImRlc2NyaXB0aW9uIjogIkNvdmVyIG9mIHRoZSBzb25nIEFsaWFzIGJ5IEluIEZsYW1lcyBJIGRvIG5vdCBvd24gdGhlIHNvbmcuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvWjV4LS0xR3p1S0UvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1o1eC0tMUd6dUtFL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvWjV4LS0xR3p1S0UvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkpvZmZyZXkgQmlyc3RlciIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL3VLV3VXWTlid05lamV2bjctS0hGcm83Rml3RVwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJOejFybTkyQjFXMCIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMC0wMS0yMVQwNDoxNjo1NS4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNyNHFGNkJzNXBDTU1hYTRjZC1mbHpRIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAoQWNvdXN0aWMgQ292ZXIgYnkgSXZhbiBTYW5kb3ZhbCkiLAogICAgImRlc2NyaXB0aW9uIjogIk15IFR3aXR0ZXI6IGh0dHA6Ly90d2l0dGVyLmNvbS8jIS9TYW5kb3ZhbEl2YW4gVGFiIG1wMyBIaSEgSSdtIGJhY2sgYWdhaW4sIEkgaGF2ZSByZWNvcmRlZCB0aGlzIGJlYXV0aWZ1bCBzb25nIGZyb20gdGhlIGxlYXRlc3QgYWxidW0gQSBzZW5zZSBvZiBwdXJwb3NlLCBJIHRyaWVkIHRvIC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL056MXJtOTJCMVcwL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9OejFybTkyQjFXMC9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL056MXJtOTJCMVcwL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJJdsOhbiBTYW5kb3ZhbCIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL0ZFTE5fdVN4bm5Jb01mVEtTZTVGX0lmS3dLVVwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJwNWstTWV5ODAxbyIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAwOS0xMS0wOFQxMzoyOTo1Mi4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNrWUszaFQ1WXlqbTRqdjZTUVlQRWpBIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAobXVzaWN2aWRlbyArIGx5cmljcykiLAogICAgImRlc2NyaXB0aW9uIjogIkluIEZsYW1lcyAtIEFsaWFzIEdyZWF0IHNvbmchIEx5cmljcyB0byBBbGlhcyA6IFRoZSBzZXJwZW50IGtub3dzLCBXaGVuIHRoZSBjdXJ0YWluIGZhbGxzLCBJbiBkZW5pYWxzIGJsaW5kZm9sZCwgSXQgZ3JlZXRzIGFub3RoZXIgZGF5IERvbid0IGJlbGlldmUgdGhlIG1hc2sgaXQgLi4uIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvcDVrLU1leTgwMW8vZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3A1ay1NZXk4MDFvL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvcDVrLU1leTgwMW8vaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIlRoZUJTdHJhbmdlIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvci16RzJWV1hiMHJ1V0FwaE9IQkNqVDBuV3pVXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIjZydm5lY1VkZ29FIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA5LTA4LTA1VDE0OjE0OjE3LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ3F6NHNMUEI4VjJIazlZTm04V2JURWciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIC0gV2Fja2VuIDIwMDkiLAogICAgImRlc2NyaXB0aW9uIjogIkluIEZsYW1lcyBMSVZFIEAgV2Fja2VuIDIwMDkgQWxpYXMuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNnJ2bmVjVWRnb0UvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzZydm5lY1VkZ29FL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNnJ2bmVjVWRnb0UvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkVsdmVuV2l0Y2hjcmFmdCIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL3JCZ2lhWDJoWFFEQTgtQjg4TUM2X1JjVmJ0MFwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICI3NXhZTjdWQmlUWSIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMy0xMi0yNVQxNzozNzo0NC4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNxSDBhZmxQVG5UcXJlOXRoM0ZteXd3IiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyIsCiAgICAiZGVzY3JpcHRpb24iOiAiQWxidW06IGEgU2Vuc2Ugb2YgUHVycG9zZS4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS83NXhZTjdWQmlUWS9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNzV4WU43VkJpVFkvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS83NXhZTjdWQmlUWS9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiQW5kcmVhcyBIb3JuZW1hbm4iLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9UcGxsYXZzcVB4Tm5qT0pBN2I2bmJzRkJYTk1cIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiNUlxUW1qWWNuZnMiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTEtMDUtMjFUMTU6MTg6MDguMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDWlRUem9uaWx6eWdQOGF4akMwVkhSZyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgRFJVTSBDT1ZFUiBNSVNIVSIsCiAgICAiZGVzY3JpcHRpb24iOiAiIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNUlxUW1qWWNuZnMvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzVJcVFtalljbmZzL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNUlxUW1qWWNuZnMvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkFkcmlhbiBNaWhhaSIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL1d1QUxZYjZKamJjejk0TzFmdVVvY2lzUnBBY1wiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJBQVFHSXVSMVd2USIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxNy0xMS0yOVQxMzo0Mzo1NS4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUN3RHdsSGRwdzlKcm1YYldrbXBIZ2p3IiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAtIGxpdmUgQCBIYWxsZW5zdGFkaW9uIGluIFp1cmljaCAyOC4xMS4yMDE3IiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbiBGbGFtZXMgbGl2ZSBhdCBIYWxsZW5zdGFkaW9uIGluIFp1cmljaCAvIFN3aXR6ZXJsYW5kIE5vdmVtYmVyIDI4LCAyMDE3IGR1cmluZyB0aGVpciAyMDE3IEV1cm9wZWFuIFRvdXIgcGVyZm9ybWluZyBBbGlhcyBTZXQgbGlzdDogRHJhaW5lZCBCZWZvcmUgSSBGYWxsIC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0FBUUdJdVIxV3ZRL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9BQVFHSXVSMVd2US9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0FBUUdJdVIxV3ZRL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJGZXRpc292NDUiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9IY1Uzc2VxdzNrNHlSOWlGLTBDeGZ5YWhtWlVcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiekhCeFlUdlExaXMiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTYtMDYtMDZUMDE6MjI6MjYuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDSktoNGxuSG1iWjVPYzF4eE90Q0hYdyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzICBBbGlhcyBBY291c3RpYyBDb3ZlciIsCiAgICAiZGVzY3JpcHRpb24iOiAiV2VsY29tZSB0byBhbm90aGVyIGVwaXNvZGUgb2YgU3Bhcmt5IFNpbmdzIE1ldGFsISBUaGlzIG9uZSB3YXMgYSByZXF1ZXN0IGJ5IE1hcnRpbiBWaWJlISBUaGFua3MgZm9yIHlvdXIgc3VwcG9ydCEgRm9yIHRoZSBzYWtlIG9mIHRpbWUsIGFuZCB0aGUgd2F5IEkgcmV3cm90ZSAuLi4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS96SEJ4WVR2UTFpcy9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvekhCeFlUdlExaXMvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS96SEJ4WVR2UTFpcy9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiU2FtaSBCYXN0aW9uIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvd1ZvTjdtVEhyWWk0eVdXQWZmTXY0dWhGYmdrXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogImxRQUtUd3d5aUk4IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA5LTA4LTIwVDAwOjMzOjM4LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ3BSOFpDMDFvRGkzT3BUeko3aUtaYlEiLAogICAgInRpdGxlIjogIkluIEZsYW1lcy1BbGlhcyB3aXRoIGx5cmljcyAoSFEpIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBbGlhcyBieSBpbiBGbGFtZXMgZnJvbSB0aGUgQWxidW0gXCJBIFNlbnNlIG9mIFB1cnBvc2VcIiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL2xRQUtUd3d5aUk4L2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9sUUFLVHd3eWlJOC9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL2xRQUtUd3d5aUk4L2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJLaXdpbzEyIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvbTAzWDJRQXQ0dkdlUGM4M0ozdWJmZE5faVNjXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogImxCVnlYSXF2engwIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE4LTEyLTA3VDIzOjI0OjM3LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ1U0OXp0UnI3V1laSmVpZHBKOXpmNnciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIExJVkUgT05FIFNIT1QgVk9DQUwgQ09WRVIiLAogICAgImRlc2NyaXB0aW9uIjogIkhleSBsb29rIEkgZGlkIHR3byB0b2RheSA6My4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9sQlZ5WElxdnp4MC9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvbEJWeVhJcXZ6eDAvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9sQlZ5WElxdnp4MC9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiTWlzZXJ5RmllbGRzIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvRUxiMXpLQ1ZyZzU2OTk4V052Zm1GLUN3MTBFXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogImQ5d2h2cjVqSHFjIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA5LTExLTA4VDIxOjQ5OjM0LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ1F3aTRGMGJWdVhjRjFGNFFtREhjd0EiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIChEcnVtIENvdmVyKSBbSERdIiwKICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIG1lIGRvaW5nIGEgZHJ1bSBjb3ZlciBvZiBcIkFsaWFzXCIgYnkgSW4gRmxhbWVzLiBUaGUgc29uZyBmcm9tIHRoZSAyMDA4IHJlbGVhc2UgXCJBIFNlbnNlIE9mIFB1cnBvc2VcIiwgaXMgdGhlIGNvcHlyaWdodGVkIHByb3BlcnR5IG9mIGl0J3Mgb3duZXIocykuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvZDl3aHZyNWpIcWMvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL2Q5d2h2cjVqSHFjL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvZDl3aHZyNWpIcWMvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIlRpbSBFbWFudWVsIFNjaMOkcmRpbiIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL0trMnZiWFk4aXFEdXNudnRJaTZxVnpuNEJYOFwiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJTR0wzYTlaN1BpbyIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxMy0wMi0xMFQxNzoxMzo1MS4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUNwRW1TU0ZsYm9TQzFIaUtXbE5KeGNRIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyBbc29sb10gSFEiLAogICAgImRlc2NyaXB0aW9uIjogIkluIEZsYW1lcyBzb25nIEFsaWFzLiBBbGJ1bSBBIFNlbnNlIE9mIFB1cnBvc2UgKDIwMDgpLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1NHTDNhOVo3UGlvL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9TR0wzYTlaN1Bpby9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1NHTDNhOVo3UGlvL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJTZXJnaW96Z3oxIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvTkEzMlk0SEVaaUNDb0otMVktazNla0lhZV9rXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIjVGLVh5d1gwQWZjIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA5LTA4LTI2VDA4OjM2OjU4LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ1FmbDE1dk82ZVFUWHlwVU9Nc2pSU2ciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIChjb3ZlcikiLAogICAgImRlc2NyaXB0aW9uIjogIldoYXQgeW91IHNlZSBpcyB3aGF0IHlvdSBlYXIuIE1lIHBsYXlpbmcgdGhlIEluIEZsYW1lcyBzb25nIGFsaWFzIGZyb20gdGhlIGFsYnVtIHNlbnNlIG9mIHB1cnBvc2UuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNUYtWHl3WDBBZmMvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzVGLVh5d1gwQWZjL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNUYtWHl3WDBBZmMvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkplcmVtaWUgUHJ1bmUgVGhlcmlhdWx0IiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvbEtHUGlBRFFBdm5HQUZCZnhKRUs5R2Q3UUdVXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIkFycDk0V3RiMGx3IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA4LTA5LTIyVDE2OjA3OjMxLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ2FIZUtWTUVwSTZjVGk2Um96VzZVWlEiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIChhbGJ1bSB2ZXJzaW9uKSIsCiAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHZpZGVvIHRvIEluIEZsYW1lcyBzb25nIEFsaWFzIEZyb20gdGhlIGFsYnVtIEEgU2Vuc2UgT2YgUHVycG9zZS4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9BcnA5NFd0YjBsdy9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvQXJwOTRXdGIwbHcvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9BcnA5NFd0YjBsdy9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiVW5pdmVyc2FsIE11c2ljIFN3ZWRlbiIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0sCiAgewogICAia2luZCI6ICJ5b3V0dWJlI3NlYXJjaFJlc3VsdCIsCiAgICJldGFnIjogIlwiWHBQR1FYUG54UUpoTGdzNmVuRF9uOEpSNFFrL0ZJRl9GTjRTZkdzSUFxckN4WVZWaDY3S040c1wiIiwKICAgImlkIjogewogICAgImtpbmQiOiAieW91dHViZSN2aWRlbyIsCiAgICAidmlkZW9JZCI6ICJBc2ZfQk5ESjNEUSIKICAgfSwKICAgInNuaXBwZXQiOiB7CiAgICAicHVibGlzaGVkQXQiOiAiMjAxNy0xMC0xNlQwMTozNzozMC4wMDBaIiwKICAgICJjaGFubmVsSWQiOiAiVUMyNlplS1hFNWNza20tNXFVTXRENlFBIiwKICAgICJ0aXRsZSI6ICJJbiBGbGFtZXMgLSBBbGlhcyAoTGl2ZSBBdCBQYWJlbGzDs24gQ3VlcnZvLCBNw6l4aWNvIDIwMTcpIiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbiBGbGFtZXMgLSBBbGlhcyAoTGl2ZSBBdCBQYWJlbGzDs24gQ3VlcnZvLCBNw6l4aWNvIDIwMTcpIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvQXNmX0JOREozRFEvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0FzZl9CTkRKM0RRL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvQXNmX0JOREozRFEvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkJyaWFuIENvbG9yYWRvIERlbGdhZG8iLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9VWmlxeWRVVUw4UHk4Q1h4RXJYTW9ZUm5SZ2tcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAidmwyNFhBSERMVW8iCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMDgtMDYtMzBUMTU6MjM6MDQuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDRi1tTnBJVGRyU3NiY3MzdG0tT1ljUSIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgQE1ldGFsdG93biAyMDA4IiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbiBGbGFtZXMgLSBBbGlhcyBsaXZlIGF0IG1ldGFsdG93biAyMDA4IGluIEdvdGhlbmJ1cmcvU3dlZGVuLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3ZsMjRYQUhETFVvL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS92bDI0WEFIRExVby9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3ZsMjRYQUhETFVvL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJUaGVHcmV5RGFpc3kiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9iTXZEM0FaZnRtRG94U05WM1NldmhEcWZudGtcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiR042d1pscWk0dUkiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTgtMTItMjBUMTg6MTU6MDEuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDU3M1TkM3aXBjbTY5RmdqZXJqa0lwUSIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgKEhRIExhaWQgUmVtaXgpIiwKICAgICJkZXNjcmlwdGlvbiI6ICJCeSBcIkEgU2Vuc2UgT2YgUHVycG9zZVwiIHJlLWlzc3VlLCAyMDE0LiBBbGwgcmlnaHRzIHJlc2VydmVkIHRvIHRoZSBiYW5kIGFuZCBDZW50dXJ5IE1lZGlhLiB+IEJMSyB+IiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvR042d1pscWk0dUkvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL0dONndabHFpNHVJL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvR042d1pscWk0dUkvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkpvIEtpb3VyIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvczFYVTlCOVFvYlZmeHZvTTVTWVFhMDhaaGV3XCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogImlpcG1ZbUFqWEN3IgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE0LTEwLTA4VDE4OjIwOjM3LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ3Q3TlpZTEd6bjZPbm1PWE9qaU4wUXciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzICpHdWl0YXIgQ292ZXIqIEhEIiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbiBGbGFtZXMgLSBBbGlhcyAqR3VpdGFyIENvdmVyKiBIRCBDb25zdHJ1Y3RpdmUgY3JpdGljaXNtIGlzIG11Y2ggYXBwcmVjaWF0ZWQuIEkgZG8gTk9UIG93biB0aGlzIHNvbmcgaW4gYW55IHdheS4gVGhhbmtzIGZvciBXYXRjaGluZyBhbmQgcmVtZW1iZXIgdG8gbGlrZSAuLi4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9paXBtWW1BalhDdy9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvaWlwbVltQWpYQ3cvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9paXBtWW1BalhDdy9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiWmllZ2xlcnM2NjYiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9WTFZXMFFXZ3JpT3NyckFacV9xQ0d0TVVULWNcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiUlZYMXF3aS05b0UiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTQtMDktMTJUMDI6MTE6MTUuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDb0F5dGRYb1dmSndpQzVlZ19CZV9LZyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIGFsaWFzIGNvdmVyIiwKICAgICJkZXNjcmlwdGlvbiI6ICJJbkZsYW1lcyBBbGlhcyBDb3Zlci4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9SVlgxcXdpLTlvRS9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvUlZYMXF3aS05b0UvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9SVlgxcXdpLTlvRS9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiQ2hyaXMgR3JhbmR5IiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvS1RjTy02bWtBNl9MdUZmSUZWazJPNUJlNFI0XCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogIkNucEt4Tm45THJjIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA4LTA2LTIwVDA1OjM0OjQ3LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQzJmM3Q0V25WRHpxUzVjWWE5LVpZWGciLAogICAgInRpdGxlIjogIklOIEZMQU1FUzogQWxpYXMiLAogICAgImRlc2NyaXB0aW9uIjogIjE2LzA2LzA4IE1ldGFsIEhhbW1lciBHb2xkZW4gR29kcyBBd2FyZCAwOC4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9DbnBLeE5uOUxyYy9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvQ25wS3hObjlMcmMvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9DbnBLeE5uOUxyYy9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAibHVuYWthbmEiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9MVWdvcDRVWHJMYnN3ZEtRQm9Wd1FzZjJUY2NcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiQkNBNmpSSXhLWUEiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTEtMDgtMjFUMDA6NTQ6MTIuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDU3Q0empZeGc1aEVuMGVCdHNOeERadyIsCiAgICAidGl0bGUiOiAiaW4gZmxhbWVzICAgYWxpYXMgbHlyaWNzIiwKICAgICJkZXNjcmlwdGlvbiI6ICIiLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9CQ0E2alJJeEtZQS9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvQkNBNmpSSXhLWUEvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9CQ0E2alJJeEtZQS9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAidGhlYmlnZ2RmYW4iLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay82dGVhQXNUa0tySmZRQUtEX215eUpoVlNMSmNcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiNXN3aXVSdDNHWUkiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTQtMDYtMjJUMjM6MTY6MzcuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDRU94SXZxRnR3X2pPX01pSHFic2NEUSIsCiAgICAidGl0bGUiOiAiSW4gZmxhbWVzICYjMzk7QWxpYXMmIzM5OyBhY291c3RpYyB2YXJpYXRpb24gLyBjb3ZlciIsCiAgICAiZGVzY3JpcHRpb24iOiAicmUtaGFzaCBvZiBhbiBvbGRlciB2aWRlbywgaG9wZWZ1bGx5IGFuIGltcHJvdmVtZW50ISBhY291c3RpYyBjcmVkaXRlZCB0byBJYW4gU2FuZG92YWwsIHBsZWFzZSBnbyBjaGVjayBoaW0gb3V0IDopIHRoYW5rcyBmb3Igd2F0Y2hpbmchIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNXN3aXVSdDNHWUkvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzVzd2l1UnQzR1lJL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvNXN3aXVSdDNHWUkvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkthcm1hcmluIE5hdHVyZXMiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9WWDBvbEFqcFUxRGtqQUFQTkh5TmUxRnlZUWtcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAibDNOd2FZWnAxYUUiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTQtMTAtMzFUMDQ6MTk6MDguMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDM19aX2s4Q291Y2NVQmtrUDhkLXhWUSIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgR3VpdGFyIENvdmVyIiwKICAgICJkZXNjcmlwdGlvbiI6ICJGaXJzdCBjb3ZlciBpbiA1IG1vbnRocy4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9sM053YVlacDFhRS9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvbDNOd2FZWnAxYUUvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9sM053YVlacDFhRS9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiTUVUQUxNVVNJQ05FVFdPUksiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9HSndQRG9DcGptcE9yVWNJc2FNVGZ6WVZGVEFcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiWnpLNWZudzFJZEkiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTAtMDYtMjFUMDQ6Mzg6NTUuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDS2hhN2FQU0FaRGNmZS1QcDNjYlo2ZyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gSW50cm8gJmFtcDsgQWxpYXMsIExpdmUgQCBNZXRhbHRvd24gMjAxMCIsCiAgICAiZGVzY3JpcHRpb24iOiAiSW4gRmxhbWVzIC0gSW50cm8gJiBBbGlhcywgTGl2ZSBAIE1ldGFsdG93biAyMDEwLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1p6SzVmbncxSWRJL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9aeks1Zm53MUlkSS9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1p6SzVmbncxSWRJL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJCYXNpY1BTIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvczJpTTlhNlZSc3UtM3BtRy11eXhmWGNkaEFBXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogInM0dm90cGhtZWdzIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDE3LTA0LTI3VDIzOjIxOjEzLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQzNuMHV4NkxTd245V3Y3Wjk5QkVFbGciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIChBY291c3RpYyBTeW1waG9ueSBDb3ZlcikgYXJyLiBieSBSdXNsYW4gS29uZHJhdGVua28iLAogICAgImRlc2NyaXB0aW9uIjogImFyci4gYnkgUnVzbGFuIEtvbmRyYXRlbmtvIEdlYXI6IExhZyBUcmFtb250YW5lIFQxMDBEQ0UgSVNLIEJNLTgwMCBNLUF1ZGlvIE0tVHJhY2sgUXVhZCBLUksgUm9raXQgNSBDdWJhc2UgOCBFbGVtZW50cy4iLAogICAgInRodW1ibmFpbHMiOiB7CiAgICAgImRlZmF1bHQiOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9zNHZvdHBobWVncy9kZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDEyMCwKICAgICAgImhlaWdodCI6IDkwCiAgICAgfSwKICAgICAibWVkaXVtIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvczR2b3RwaG1lZ3MvbXFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDMyMCwKICAgICAgImhlaWdodCI6IDE4MAogICAgIH0sCiAgICAgImhpZ2giOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9zNHZvdHBobWVncy9ocWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogNDgwLAogICAgICAiaGVpZ2h0IjogMzYwCiAgICAgfQogICAgfSwKICAgICJjaGFubmVsVGl0bGUiOiAiUnVzbGFuIEtvbmRyYXRlbmtvIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvcHAwNlcwZUd1OGlZSjMwdkhYdmFFcEpTVkRNXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogInhCdGdKbUdpdjNNIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDA5LTAxLTEzVDAyOjE0OjU2LjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ3RSYlQwTlloSzZVQ0lkTUlFRjJ1cHciLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIChEcnVtIENvdmVyKSIsCiAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBhbm90aGVyIHNvbmcgZnJvbWUgdGhlIGxhdGVzdCBhbGJ1bSwgQWxpYXMuIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkveEJ0Z0ptR2l2M00vZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL3hCdGdKbUdpdjNNL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkveEJ0Z0ptR2l2M00vaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIlNhbXVlbCBUdXJnZW9uIiwKICAgICJsaXZlQnJvYWRjYXN0Q29udGVudCI6ICJub25lIgogICB9CiAgfSwKICB7CiAgICJraW5kIjogInlvdXR1YmUjc2VhcmNoUmVzdWx0IiwKICAgImV0YWciOiAiXCJYcFBHUVhQbnhRSmhMZ3M2ZW5EX244SlI0UWsvLThqSW5kdkJJSDZhVDR0S1pGOExIaHM4R2xnXCIiLAogICAiaWQiOiB7CiAgICAia2luZCI6ICJ5b3V0dWJlI3ZpZGVvIiwKICAgICJ2aWRlb0lkIjogImkyOFVZYkpFbWpzIgogICB9LAogICAic25pcHBldCI6IHsKICAgICJwdWJsaXNoZWRBdCI6ICIyMDExLTExLTI2VDE5OjA1OjAyLjAwMFoiLAogICAgImNoYW5uZWxJZCI6ICJVQ295Ujk0b3F1SGJmNURmdWJrSjBaa0EiLAogICAgInRpdGxlIjogIkluIEZsYW1lcyAtIEFsaWFzIC8gTGl2ZSBAIFR1cmJpbmVuaGFsbGUgT2JlcmhhdXNlbiAyNS4xMS4yMDExICg3MjBwIEhEKSIsCiAgICAiZGVzY3JpcHRpb24iOiAiIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvaTI4VVliSkVtanMvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL2kyOFVZYkpFbWpzL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvaTI4VVliSkVtanMvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkJ1cm5pbmdNSUMiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9tbUx6cWdOaWdoRmZ0ZUY5LTdZTUo1NTdWNGdcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiNllGYnJ6NzFHd3MiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMDktMTEtMjVUMTI6MTY6MDYuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDdFJoNzRYN1NYODdkQXZKd0xZU3BZZyIsCiAgICAidGl0bGUiOiAiSU4gRkxBTUVTIC0gQWxpYXMgLSIsCiAgICAiZGVzY3JpcHRpb24iOiAiSU4gRkxBTUVTIC0gQWxpYXMgLSBsaXZlIGF1IEJhdGFjbGFuLCBQYXJpcyAoRnJhbmNlKSBsZSAyNC8xMS8yMDA5LiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzZZRmJyejcxR3dzL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS82WUZicno3MUd3cy9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpLzZZRmJyejcxR3dzL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJva2d3ZW4iLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9lYmt3R3RYRkdRN0ZaZUxFQVpDODh3LW1GeXdcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiVGhpbGVqTDZ6dFEiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTgtMDctMzFUMTE6NTU6MTcuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDV1EyT0hCNks3YXZseXlwQzVKZkM4dyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgdy4gc3RyaW5ncyAoNCBjYW0gbWl4KSBAIEJvcmdob2xtIEJyaW5uZXIgMjAxOCIsCiAgICAiZGVzY3JpcHRpb24iOiAiSW4gRmxhbWVzIC0gQWxpYXMgQm9yZ2hvbG0gQnJpbm5lciwgSnVseSAyN3RoLCAyMDE4IFJlY29yZGVkIGxpdmUgYXQgQm9yZ2hvbG0gQ2FzdGxlLCDDlmxhbmQsIFN3ZWRlbi4gRm9vdGFnZSBzYXZhZ2VseSBzdG9sZW4gZnJvbSBKb2hhbmlzYW5vcmFuZ2UsIERhdmlkIC4uLiIsCiAgICAidGh1bWJuYWlscyI6IHsKICAgICAiZGVmYXVsdCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1RoaWxlakw2enRRL2RlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMTIwLAogICAgICAiaGVpZ2h0IjogOTAKICAgICB9LAogICAgICJtZWRpdW0iOiB7CiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9UaGlsZWpMNnp0US9tcWRlZmF1bHQuanBnIiwKICAgICAgIndpZHRoIjogMzIwLAogICAgICAiaGVpZ2h0IjogMTgwCiAgICAgfSwKICAgICAiaGlnaCI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL1RoaWxlakw2enRRL2hxZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiA0ODAsCiAgICAgICJoZWlnaHQiOiAzNjAKICAgICB9CiAgICB9LAogICAgImNoYW5uZWxUaXRsZSI6ICJDcnVtYnMiLAogICAgImxpdmVCcm9hZGNhc3RDb250ZW50IjogIm5vbmUiCiAgIH0KICB9LAogIHsKICAgImtpbmQiOiAieW91dHViZSNzZWFyY2hSZXN1bHQiLAogICAiZXRhZyI6ICJcIlhwUEdRWFBueFFKaExnczZlbkRfbjhKUjRRay9yTnR2Y3NnRnlMUHZwb3hlXzVjY21VMkp6a3NcIiIsCiAgICJpZCI6IHsKICAgICJraW5kIjogInlvdXR1YmUjdmlkZW8iLAogICAgInZpZGVvSWQiOiAiYmUxY2QxWlpfUVEiCiAgIH0sCiAgICJzbmlwcGV0IjogewogICAgInB1Ymxpc2hlZEF0IjogIjIwMTgtMTAtMzFUMDg6Mzc6MDIuMDAwWiIsCiAgICAiY2hhbm5lbElkIjogIlVDWkZuaTdjTExESld4OUxiYnhQR0RtdyIsCiAgICAidGl0bGUiOiAiSW4gRmxhbWVzIC0gQWxpYXMgbGl2ZSBpbiBUZW1wZSwgQVogMjAxOCIsCiAgICAiZGVzY3JpcHRpb24iOiAiSW4gRmxhbWVzIHBlcmZvcm1pbmcgQWxpYXMgYXQgdGhlIE1hcnF1ZWUgVGhlYXRyZSBpbiBUZW1wZSwgQVogMTAtMzAtMjAxOC4gRW5qb3khIiwKICAgICJ0aHVtYm5haWxzIjogewogICAgICJkZWZhdWx0IjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvYmUxY2QxWlpfUVEvZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAxMjAsCiAgICAgICJoZWlnaHQiOiA5MAogICAgIH0sCiAgICAgIm1lZGl1bSI6IHsKICAgICAgInVybCI6ICJodHRwczovL2kueXRpbWcuY29tL3ZpL2JlMWNkMVpaX1FRL21xZGVmYXVsdC5qcGciLAogICAgICAid2lkdGgiOiAzMjAsCiAgICAgICJoZWlnaHQiOiAxODAKICAgICB9LAogICAgICJoaWdoIjogewogICAgICAidXJsIjogImh0dHBzOi8vaS55dGltZy5jb20vdmkvYmUxY2QxWlpfUVEvaHFkZWZhdWx0LmpwZyIsCiAgICAgICJ3aWR0aCI6IDQ4MCwKICAgICAgImhlaWdodCI6IDM2MAogICAgIH0KICAgIH0sCiAgICAiY2hhbm5lbFRpdGxlIjogIkFuZHJldyBXaWxsaWFtcyIsCiAgICAibGl2ZUJyb2FkY2FzdENvbnRlbnQiOiAibm9uZSIKICAgfQogIH0KIF0KfQo=
48
48
  http_version:
49
- recorded_at: Thu, 14 Mar 2019 11:47:30 GMT
49
+ recorded_at: Wed, 20 Mar 2019 07:56:53 GMT
50
50
  - request:
51
51
  method: get
52
52
  uri: https://www.googleapis.com/youtube/v3/videos?id=fV6q5BrS0Bw&key=AIzaSyBopkXxz7Dzi9ZrFYPqjmL_JogByn-BBqI&part=status
@@ -64,9 +64,9 @@ http_interactions:
64
64
  message: OK
65
65
  headers:
66
66
  Expires:
67
- - Thu, 14 Mar 2019 11:47:30 GMT
67
+ - Wed, 20 Mar 2019 07:56:54 GMT
68
68
  Date:
69
- - Thu, 14 Mar 2019 11:47:30 GMT
69
+ - Wed, 20 Mar 2019 07:56:54 GMT
70
70
  Cache-Control:
71
71
  - private, max-age=0, must-revalidate, no-transform
72
72
  Etag:
@@ -114,7 +114,7 @@ http_interactions:
114
114
  ]
115
115
  }
116
116
  http_version:
117
- recorded_at: Thu, 14 Mar 2019 11:47:30 GMT
117
+ recorded_at: Wed, 20 Mar 2019 07:56:54 GMT
118
118
  - request:
119
119
  method: get
120
120
  uri: https://www.googleapis.com/youtube/v3/videos?id=fV6q5BrS0Bw&key=AIzaSyBopkXxz7Dzi9ZrFYPqjmL_JogByn-BBqI&maxResults=50&part=contentDetails
@@ -132,9 +132,9 @@ http_interactions:
132
132
  message: OK
133
133
  headers:
134
134
  Expires:
135
- - Thu, 14 Mar 2019 11:47:30 GMT
135
+ - Wed, 20 Mar 2019 07:56:54 GMT
136
136
  Date:
137
- - Thu, 14 Mar 2019 11:47:30 GMT
137
+ - Wed, 20 Mar 2019 07:56:54 GMT
138
138
  Cache-Control:
139
139
  - private, max-age=300, must-revalidate, no-transform
140
140
  Etag:
@@ -183,7 +183,7 @@ http_interactions:
183
183
  ]
184
184
  }
185
185
  http_version:
186
- recorded_at: Thu, 14 Mar 2019 11:47:30 GMT
186
+ recorded_at: Wed, 20 Mar 2019 07:56:54 GMT
187
187
  - request:
188
188
  method: get
189
189
  uri: https://www.googleapis.com/youtube/v3/videos?id=fV6q5BrS0Bw&key=AIzaSyBopkXxz7Dzi9ZrFYPqjmL_JogByn-BBqI&part=snippet
@@ -201,13 +201,13 @@ http_interactions:
201
201
  message: OK
202
202
  headers:
203
203
  Expires:
204
- - Thu, 14 Mar 2019 11:47:30 GMT
204
+ - Wed, 20 Mar 2019 07:56:54 GMT
205
205
  Date:
206
- - Thu, 14 Mar 2019 11:47:30 GMT
206
+ - Wed, 20 Mar 2019 07:56:54 GMT
207
207
  Cache-Control:
208
208
  - private, max-age=300, must-revalidate, no-transform
209
209
  Etag:
210
- - '"XpPGQXPnxQJhLgs6enD_n8JR4Qk/2ONARMn_XGO_WR7Nukmzx6zyzAY"'
210
+ - '"XpPGQXPnxQJhLgs6enD_n8JR4Qk/X1UMsuBeTosWQTw0uudsCLMnyMQ"'
211
211
  Vary:
212
212
  - Origin
213
213
  - X-Origin
@@ -230,7 +230,7 @@ http_interactions:
230
230
  string: |
231
231
  {
232
232
  "kind": "youtube#videoListResponse",
233
- "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/2ONARMn_XGO_WR7Nukmzx6zyzAY\"",
233
+ "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/X1UMsuBeTosWQTw0uudsCLMnyMQ\"",
234
234
  "pageInfo": {
235
235
  "totalResults": 1,
236
236
  "resultsPerPage": 1
@@ -238,7 +238,7 @@ http_interactions:
238
238
  "items": [
239
239
  {
240
240
  "kind": "youtube#video",
241
- "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/Ftry37R6FT7QQlVzEok3UG7s1nM\"",
241
+ "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/NM7RTxfGAhiz3C4yIAhmtu1YhIw\"",
242
242
  "id": "fV6q5BrS0Bw",
243
243
  "snippet": {
244
244
  "publishedAt": "2010-11-30T21:34:35.000Z",
@@ -283,5 +283,5 @@ http_interactions:
283
283
  ]
284
284
  }
285
285
  http_version:
286
- recorded_at: Thu, 14 Mar 2019 11:47:31 GMT
286
+ recorded_at: Wed, 20 Mar 2019 07:56:54 GMT
287
287
  recorded_with: VCR 4.0.0
@@ -13,7 +13,8 @@ module JarvisbotSongfinder
13
13
  URL_REGEX = %r{\Ahttps?:\/\/}.freeze
14
14
  attr_reader :concrete_query
15
15
 
16
- def initialize(input)
16
+ def initialize(input, config: JarvisbotSongfinder.configuration)
17
+ @config = config
17
18
  @input = input
18
19
  @concrete_query = select_concrete_query
19
20
  end
@@ -35,7 +36,7 @@ module JarvisbotSongfinder
35
36
  end
36
37
 
37
38
  def select_concrete_query
38
- @input.match?(URL_REGEX) ? UrlQuery.new(@input) : SearchQuery.new(@input)
39
+ @input.match?(URL_REGEX) ? UrlQuery.new(@input, config: @config) : SearchQuery.new(@input, config: @config)
39
40
  end
40
41
  end
41
42
  end
@@ -57,8 +57,8 @@ module JarvisbotSongfinder
57
57
  "Your request removed from the queue successfully"
58
58
  end
59
59
 
60
- def self.region_restricted
61
- "This video is not availible in the US"
60
+ def self.region_restricted(region)
61
+ "This video is not availible in the #{region}"
62
62
  end
63
63
 
64
64
  def self.invalid_video_id
@@ -5,8 +5,9 @@ module JarvisbotSongfinder
5
5
  # JarvisbotSongfinder::SearchQuery.new("Paramore Misery").track.length
6
6
  # # => 211
7
7
  class SearchQuery
8
- def initialize(query)
8
+ def initialize(query, config: JarvisbotSongfinder.configuration)
9
9
  @query = query
10
+ @config = config
10
11
  @provider = select_provider
11
12
  end
12
13
 
@@ -18,9 +19,9 @@ module JarvisbotSongfinder
18
19
 
19
20
  def select_provider
20
21
  provider = Provider.available_providers.find do |p|
21
- p.from_search @query
22
+ p.from_search @query, config: @config
22
23
  end
23
- provider.nil? ? UnknownSearchProvider.new : provider.from_search(@query)
24
+ provider.nil? ? UnknownSearchProvider.new : provider.from_search(@query, config: @config)
24
25
  end
25
26
  end
26
27
  end
@@ -5,7 +5,8 @@ module JarvisbotSongfinder
5
5
  # UrlQuery.new("https://www.youtube.com/watch?v=QSBco8kVuZM").track.length
6
6
  # # => 172
7
7
  class UrlQuery
8
- def initialize(url)
8
+ def initialize(url, config: JarvisbotSongfinder.configuration)
9
+ @config = config
9
10
  @url = url
10
11
  @provider = select_provider
11
12
  end
@@ -20,7 +21,7 @@ module JarvisbotSongfinder
20
21
  provider = Provider.available_providers.find do |p|
21
22
  p::URL_REGEX.match @url
22
23
  end
23
- provider.nil? ? UnknownProvider.new : provider.new(@url)
24
+ provider.nil? ? UnknownProvider.new : provider.new(@url, config: @config)
24
25
  end
25
26
  end
26
27
  end
@@ -9,7 +9,8 @@ module JarvisbotSongfinder
9
9
  end
10
10
 
11
11
  attr_reader :errors
12
- def initialize
12
+ def initialize(config: JarvisbotSongfinder.configuration)
13
+ @config = config
13
14
  @errors = []
14
15
  end
15
16
 
@@ -58,17 +59,17 @@ module JarvisbotSongfinder
58
59
  end
59
60
 
60
61
  def not_too_long?
61
- unless length < JarvisbotSongfinder.configuration.length_max
62
+ unless length < @config.length_max
62
63
  add_error(JarvisbotSongfinder::ReplyMessage::Request.too_long)
63
64
  end
64
- length < JarvisbotSongfinder.configuration.length_max
65
+ length < @config.length_max
65
66
  end
66
67
 
67
68
  def not_too_short?
68
- unless length > JarvisbotSongfinder.configuration.length_min
69
+ unless length > @config.length_min
69
70
  add_error(JarvisbotSongfinder::ReplyMessage::Request.too_short)
70
71
  end
71
- length > JarvisbotSongfinder.configuration.length_min
72
+ length > @config.length_min
72
73
  end
73
74
 
74
75
  def in_music_category?
@@ -6,15 +6,17 @@ module JarvisbotSongfinder
6
6
  ID_REGEX = %r{\Ahttps?:\/\/(?:embed\.|open\.)(?:spotify\.com\/)(?:track\/|\?uri=spotify:track:)((\w|-){22})}.freeze
7
7
  URL_REGEX = %r{spotify\.com/}.freeze
8
8
 
9
- def initialize(url)
9
+ def initialize(url, config: JarvisbotSongfinder.configuration)
10
10
  super()
11
+ @config = config
11
12
  @track_id = get_track_id(url)
12
13
  check_id_validity
13
14
  valid? unless @errors.any?
14
15
  end
15
16
 
16
- def self.from_search(query)
17
- results = RSpotify::Track.search(query, market: JarvisbotSongfinder.configuration.region)
17
+ def self.from_search(query, config: JarvisbotSongfinder.configuration)
18
+ @config = config
19
+ results = RSpotify::Track.search(query, market: @config.region)
18
20
  if results.any?
19
21
  link = "https://open.spotify.com/track/#{results.first.id}"
20
22
  return new(link)
@@ -60,7 +62,7 @@ module JarvisbotSongfinder
60
62
  end
61
63
 
62
64
  def check_id_validity
63
- @track = RSpotify::Track.find(@track_id, market: JarvisbotSongfinder.configuration.region)
65
+ @track = RSpotify::Track.find(@track_id, market: @config.region)
64
66
  rescue RestClient::BadRequest
65
67
  add_error ReplyMessage::Request.invalid_video_id
66
68
  end
@@ -70,22 +72,13 @@ module JarvisbotSongfinder
70
72
  true
71
73
  end
72
74
 
73
- def not_too_long?
74
- if length < 600
75
- true
76
- else
77
- add_error ReplyMessage::Request.too_long
78
- false
79
- end
80
- end
81
-
82
75
  def available_in_region?
83
76
  return true if @track.available_markets.empty?
84
77
 
85
- if @track.available_markets.include? JarvisbotSongfinder.configuration.region
78
+ if @track.available_markets.include? @config.region
86
79
  return true
87
80
  else
88
- add_error ReplyMessage::Request.region_restricted
81
+ add_error ReplyMessage::Request.region_restricted(@region)
89
82
  return false
90
83
  end
91
84
  end
@@ -6,15 +6,17 @@ module JarvisbotSongfinder
6
6
  ID_REGEX = /\A((?:https?:)?\/\/)?((?:www|m)\.)?((?:youtube\.com|youtu\.be))(\/(?:[\w\-]+\?v=|embed\/|v\/)?)([\w\-]+)(\S+)?/.freeze
7
7
  URL_REGEX = /youtube\.com|youtu\.be/.freeze
8
8
 
9
- def initialize(url)
9
+ def initialize(url, config: JarvisbotSongfinder.configuration)
10
10
  super()
11
+ @config = config
11
12
  @track_id = get_track_id(url)
12
13
  @track = Yt::Video.new(id: @track_id) # unless @track_id.nil?
13
14
  check_id_validity
14
15
  valid? unless @errors.any?
15
16
  end
16
17
 
17
- def self.from_search(query)
18
+ def self.from_search(query, config: JarvisbotSongfinder.configuration)
19
+ @config = config
18
20
  videos = Yt::Collections::Videos.new
19
21
  params = { q: query, order: "relevance", video_category_id: 10 }
20
22
  if track_id = videos.where(params)&.first&.id
@@ -68,14 +70,6 @@ module JarvisbotSongfinder
68
70
  add_error ReplyMessage::Request.invalid_video_id
69
71
  end
70
72
 
71
- def not_too_long?
72
- if @track.duration < 600
73
- true
74
- else
75
- add_error ReplyMessage::Request.too_long
76
- false
77
- end
78
- end
79
73
 
80
74
  def in_music_category?
81
75
  if @track.category_id == "10"
@@ -87,39 +81,18 @@ module JarvisbotSongfinder
87
81
  end
88
82
 
89
83
  def available_in_region?
90
- # TODO: refactor this into proper methods, this can be a guard clause
91
- if listed?
92
- if allowed_list_exists?
93
- if in_allowed_list?
94
- true
95
- else
96
- add_error ReplyMessage::Request.region_restricted
97
- false
98
- end
99
- else
100
- if in_blocked_list?
101
- add_error ReplyMessage::Request.region_restricted
102
- false
103
- else
104
- true
105
- end
106
- end
107
- else
108
- true
109
- end
84
+ return true if !listed? || in_allowed_list? || !in_blocked_list?
85
+ add_error ReplyMessage::Request.region_restricted(@region)
86
+ return false
110
87
  end
111
88
 
112
89
  def listed?
113
- !!@track.content_detail.data&.dig('regionRestriction')
114
- end
115
-
116
- def allowed_list_exists?
117
- !!@track.content_detail.data&.dig('regionRestriction', 'allowed')
90
+ @track.content_detail.data&.dig('regionRestriction')
118
91
  end
119
92
 
120
93
  def in_allowed_list?
121
94
  if allowed_list = @track.content_detail.data&.dig('regionRestriction', 'allowed')
122
- allowed_list.include?(JarvisbotSongfinder.configuration.region)
95
+ allowed_list.include?(@config.region)
123
96
  else
124
97
  false
125
98
  end
@@ -127,7 +100,7 @@ module JarvisbotSongfinder
127
100
 
128
101
  def in_blocked_list?
129
102
  if blocked_list = @track.content_detail.data&.dig('regionRestriction', 'blocked')
130
- blocked_list.include?(JarvisbotSongfinder.configuration.region)
103
+ blocked_list.include?(@config.region)
131
104
  else
132
105
  false
133
106
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JarvisbotSongfinder
4
- VERSION = "1.0.3"
4
+ VERSION = "1.1.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jarvisbot_songfinder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-14 00:00:00.000000000 Z
11
+ date: 2019-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -169,6 +169,8 @@ files:
169
169
  - bin/console
170
170
  - bin/setup
171
171
  - changelog.md
172
+ - fixtures/vcr_cassettes/query_customconfig.yml
173
+ - fixtures/vcr_cassettes/query_customconfig_short_track.yml
172
174
  - fixtures/vcr_cassettes/query_text.yml
173
175
  - fixtures/vcr_cassettes/query_track_delegation.yml
174
176
  - fixtures/vcr_cassettes/query_youtube_url.yml