ytdl-org / youtube-dl

Command-line program to download videos from YouTube.com and other video sites
http://ytdl-org.github.io/youtube-dl/
The Unlicense
132.59k stars 10.05k forks source link

pluralsight error again #20025

Closed jaan143 closed 5 years ago

jaan143 commented 5 years ago

Please follow the guide below


Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2019.02.18. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

Before submitting an issue make sure you have:

What is the purpose of your issue?


The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue


If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:

Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):

[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
[debug] youtube-dl version 2019.02.18
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
[debug] Proxy map: {}
...
<end of log>

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.


Description of your issue, suggested solution and other information

pluralsight is giving error sins yesterday and before it was working fine

PS C:\Users\HDNLRG1011> youtube-dl --verbose -o 'd:\contents\New folder/%(playlist)s/%(playlist_index)s - %(title)s.%(ex t)s' https://app.pluralsight.com/library/courses/aspdotnet-core-api-openapi-swagger --sleep-interval 80 --limit-rate 250 k --username 12345@abc.com --password 12345 [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: ['--verbose', '-o', 'd:\contents\New folder/%(playlist)s/%(playlist_index)s - %(title)s.%(e xt)s', 'https://app.pluralsight.com/library/courses/aspdotnet-core-api-openapi-swagger', '--sleep-interval', '80', '--li mit-rate', '250k', '--username', 'PRIVATE', '--password', 'PRIVATE'] [debug] Encodings: locale cp1255, fs mbcs, out cp862, pref cp1255 [debug] youtube-dl version 2019.02.18 [debug] Python version 3.5.4 (CPython) - Windows-2012ServerR2-6.3.9600-SP0 [debug] exe versions: none [debug] Proxy map: {} [pluralsight:course] aspdotnet-core-api-openapi-swagger: Downloading JSON metadata [download] Downloading playlist: Documenting an ASP.NET Core API with OpenAPI / Swagger [pluralsight:course] playlist Documenting an ASP.NET Core API with OpenAPI / Swagger: Collected 61 video ids (downloadin g 61 of them) [download] Downloading video 1 of 61 [pluralsight] Downloading login page [pluralsight] Logging in ERROR: Unable to download webpage: HTTP Error 503: Service Temporarily Unavailable (caused by <HTTPError 503: 'Service T emporarily Unavailable'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest versio n; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its c omplete output. File "c:\program files\python35\lib\site-packages\youtube_dl\extractor\common.py", line 605, in _request_webpage return self._downloader.urlopen(url_or_request) File "c:\program files\python35\lib\site-packages\youtube_dl\YoutubeDL.py", line 2225, in urlopen return self._opener.open(req, timeout=self._socket_timeout) File "c:\program files\python35\lib\urllib\request.py", line 472, in open response = meth(req, response) File "c:\program files\python35\lib\urllib\request.py", line 582, in http_response 'http', request, response, code, msg, hdrs) File "c:\program files\python35\lib\urllib\request.py", line 510, in error return self._call_chain(args) File "c:\program files\python35\lib\urllib\request.py", line 444, in _call_chain result = func(args) File "c:\program files\python35\lib\urllib\request.py", line 590, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp)

PS C:\Users\HDNLRG1011>

dstftw commented 5 years ago

Most likely pluralsight side server error. In any case you must provide account credentials.

jaan143 commented 5 years ago

@dstftw how can i provide pluralsight account ? it is working in browser

jaan143 commented 5 years ago

@dstftw bro please check your gmail

remitamine commented 5 years ago
youtube-dl --username 'example@example.com' --password pass --sleep-interval 80 --limit-rate 250 https://app.pluralsight.com/library/courses/aspdotnet-core-api-openapi-swagger
[pluralsight:course] aspdotnet-core-api-openapi-swagger: Downloading JSON metadata
[download] Downloading playlist: Documenting an ASP.NET Core API with OpenAPI / Swagger
[pluralsight:course] playlist Documenting an ASP.NET Core API with OpenAPI / Swagger: Collected 61 video ids (downloading 61 of them)
[download] Downloading video 1 of 61
[pluralsight] Downloading login page
[pluralsight] Logging in
[pluralsight] fc00e343-081d-4113-8399-47606dac77f5-0: Downloading JSON metadata
[pluralsight] fc00e343-081d-4113-8399-47606dac77f5-0: Downloading mp4-high-widescreen viewclip graphql
[pluralsight] fc00e343-081d-4113-8399-47606dac77f5-0: Waiting for 5 seconds to avoid throttling
[download] Sleeping 80 seconds...
[download] Destination: Course Overview-3fe4ca6e-f6a6-4d81-8472-7ad0490cb4f8.mp4
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  2 2638k    2 64617    0     0    744      0  1:00:31  0:01:26  0:59:05     0
davidvasandani commented 5 years ago

Thanks for the quick reply @remitamine. I tried to reproduce your command and it fails with the 503 error.

I'm on version 2019.03.09

EDIT: Added --verbose and --dump-pages output

/usr/local/bin/youtube-dl \
  --username 'username@domain.com' \
  --password password \
  --sleep-interval 80 \
  --limit-rate 250 \
  https://app.pluralsight.com/library/courses/aspdotnet-core-api-openapi-swagger
[pluralsight:course] aspdotnet-core-api-openapi-swagger: Downloading JSON metadata
[download] Downloading playlist: Documenting an ASP.NET Core API with OpenAPI / Swagger
[pluralsight:course] playlist Documenting an ASP.NET Core API with OpenAPI / Swagger: Collected 61 video ids (downloading 61 of them)
[download] Downloading video 1 of 61
[pluralsight] Downloading login page
[pluralsight] Logging in
ERROR: Unable to download webpage: HTTP Error 503: Service Temporarily Unavailable (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

verbose output

root@docker-02:~# /usr/local/bin/youtube-dl \
>   --username 'user@domain.com' \
>   --password password \
>   --sleep-interval 80 \
>   --limit-rate 250 \
>   --verbose \
>   https://app.pluralsight.com/library/courses/aspdotnet-core-api-openapi-swagger
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'--username', u'PRIVATE', u'--password', u'PRIVATE', u'--sleep-interval', u'80', u'--limit-rate', u'250', u'--verbose', u'https://app.pluralsight.com/library/courses/aspdotnet-core-api-openapi-swagger']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.03.09
[debug] Python version 2.7.12 (CPython) - Linux-4.4.0-142-generic-x86_64-with-Ubuntu-16.04-xenial
[debug] exe versions: ffmpeg 2.8.15, ffprobe 2.8.15, rtmpdump 2.4
[debug] Proxy map: {}
[pluralsight:course] aspdotnet-core-api-openapi-swagger: Downloading JSON metadata
[download] Downloading playlist: Documenting an ASP.NET Core API with OpenAPI / Swagger
[pluralsight:course] playlist Documenting an ASP.NET Core API with OpenAPI / Swagger: Collected 61 video ids (downloading 61 of them)
[download] Downloading video 1 of 61
[pluralsight] Downloading login page
[pluralsight] Logging in
ERROR: Unable to download webpage: HTTP Error 503: Service Temporarily Unavailable (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 619, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2225, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 473, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)

dump-pages output

root@docker-02:~# /usr/local/bin/youtube-dl \
>   --username 'user@domain.com' \
>   --password password \
>   --sleep-interval 80 \
>   --limit-rate 250 \
>   --dump-pages \
>   https://app.pluralsight.com/library/courses/aspdotnet-core-api-openapi-swagger
[pluralsight:course] aspdotnet-core-api-openapi-swagger: Downloading JSON metadata
[pluralsight:course] Dumping request to https://app.pluralsight.com/player/api/graphql
eyJkYXRhIjp7InJwYyI6eyJib290c3RyYXBQbGF5ZXIiOnsicHJvZmlsZSI6eyJmaXJzdE5hbWUiOm51bGwsImxhc3ROYW1lIjpudWxsLCJlbWFpbCI6IiIsInVzZXJuYW1lIjpudWxsLCJ1c2VySGFuZGxlIjpudWxsLCJhdXRoZWQiOmZhbHNlLCJpc0F1dGhlZCI6ZmFsc2UsInBsYW4iOm51bGx9LCJjb3Vyc2UiOnsibmFtZSI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXIiLCJ0aXRsZSI6IkRvY3VtZW50aW5nIGFuIEFTUC5ORVQgQ29yZSBBUEkgd2l0aCBPcGVuQVBJIC8gU3dhZ2dlciIsImNvdXJzZUhhc0NhcHRpb25zIjp0cnVlLCJ0cmFuc2xhdGlvbkxhbmd1YWdlcyI6W3siY29kZSI6ImFmIiwibmFtZSI6IkFmcmlrYWFucyJ9LHsiY29kZSI6ImF6IiwibmFtZSI6IkF6yZlyYmF5Y2Fuwq3EsWzEsSJ9LHsiY29kZSI6ImlkIiwibmFtZSI6IkJhaGFzYSBJbmRvbmVzaWEifSx7ImNvZGUiOiJtcyIsIm5hbWUiOiJCYWhhc2EgTWVsYXl1In0seyJjb2RlIjoiYnMiLCJuYW1lIjoiYm9zYW5za2kifSx7ImNvZGUiOiJjYSIsIm5hbWUiOiJDYXRhbMOgIn0seyJjb2RlIjoiY3MiLCJuYW1lIjoixI1lxaF0aW5hIn0seyJjb2RlIjoic24iLCJuYW1lIjoiY2hpU2hvbmEifSx7ImNvZGUiOiJjbyIsIm5hbWUiOiJDb3JzdSJ9LHsiY29kZSI6ImN5IiwibmFtZSI6IkN5bXJhZWcifSx7ImNvZGUiOiJkYSIsIm5hbWUiOiJkYW5zayJ9LHsiY29kZSI6ImRlIiwibmFtZSI6IkRldXRzY2gifSx7ImNvZGUiOiJldCIsIm5hbWUiOiJlZXN0aSJ9LHsiY29kZSI6ImVuIiwibmFtZSI6IkVuZ2xpc2gifSx7ImNvZGUiOiJlcyIsIm5hbWUiOiJlc3Bhw7FvbCJ9LHsiY29kZSI6ImVvIiwibmFtZSI6ImVzcGVyYW50byJ9LHsiY29kZSI6ImV1IiwibmFtZSI6ImV1c2thcmEifSx7ImNvZGUiOiJmciIsIm5hbWUiOiJmcmFuw6dhaXMifSx7ImNvZGUiOiJmeSIsIm5hbWUiOiJGcnlzayJ9LHsiY29kZSI6ImdhIiwibmFtZSI6IkdhZWlsZ2UifSx7ImNvZGUiOiJnZCIsIm5hbWUiOiJHw6BpZGhsaWcifSx7ImNvZGUiOiJnbCIsIm5hbWUiOiJnYWxlZ28ifSx7ImNvZGUiOiJoYSIsIm5hbWUiOiJIYXVzYSJ9LHsiY29kZSI6ImhhdyIsIm5hbWUiOiJIYXdhacq7aSJ9LHsiY29kZSI6ImhyIiwibmFtZSI6ImhydmF0c2tpIn0seyJjb2RlIjoiaWciLCJuYW1lIjoiSWdibyJ9LHsiY29kZSI6InhoIiwibmFtZSI6ImlzaVhob3NhIn0seyJjb2RlIjoienUiLCJuYW1lIjoiaXNpWnVsdSJ9LHsiY29kZSI6ImlzIiwibmFtZSI6IsOtc2xlbnNrYSJ9LHsiY29kZSI6Iml0IiwibmFtZSI6Iml0YWxpYW5vIn0seyJjb2RlIjoic3ciLCJuYW1lIjoiS2lzd2FoaWxpIn0seyJjb2RlIjoiaHQiLCJuYW1lIjoia3JlecOybCBheWlzeWVuIn0seyJjb2RlIjoibHYiLCJuYW1lIjoibGF0dmllxaF1In0seyJjb2RlIjoibGIiLCJuYW1lIjoiTMOrdHplYnVlcmdlc2NoIn0seyJjb2RlIjoibHQiLCJuYW1lIjoibGlldHV2acWzIn0seyJjb2RlIjoiaHUiLCJuYW1lIjoibWFneWFyIn0seyJjb2RlIjoibWciLCJuYW1lIjoiTWFsYWdhc3kifSx7ImNvZGUiOiJtdCIsIm5hbWUiOiJNYWx0aSJ9LHsiY29kZSI6Im5sIiwibmFtZSI6Ik5lZGVybGFuZHMifSx7ImNvZGUiOiJubyIsIm5hbWUiOiJub3JzayJ9LHsiY29kZSI6InV6IiwibmFtZSI6Ik8nemJla2NoYSJ9LHsiY29kZSI6InBsIiwibmFtZSI6InBvbHNraSJ9LHsiY29kZSI6InB0IiwibmFtZSI6InBvcnR1Z3XDqnMifSx7ImNvZGUiOiJtaSIsIm5hbWUiOiJSZW8gTcSBb3JpIn0seyJjb2RlIjoicm8iLCJuYW1lIjoicm9tw6JuxIMifSx7ImNvZGUiOiJzdCIsIm5hbWUiOiJTZXNvdGhvIn0seyJjb2RlIjoic3EiLCJuYW1lIjoiU2hxaXAifSx7ImNvZGUiOiJzayIsIm5hbWUiOiJzbG92ZW7EjWluYSJ9LHsiY29kZSI6InNsIiwibmFtZSI6InNsb3ZlbsWhxI1pbmEifSx7ImNvZGUiOiJzbyIsIm5hbWUiOiJTb29tYWFsaSJ9LHsiY29kZSI6InNyIiwibmFtZSI6InNycHNraSJ9LHsiY29kZSI6ImZpIiwibmFtZSI6InN1b21pIn0seyJjb2RlIjoic3YiLCJuYW1lIjoic3ZlbnNrYSJ9LHsiY29kZSI6InRsIiwibmFtZSI6IlRhZ2Fsb2cifSx7ImNvZGUiOiJ2aSIsIm5hbWUiOiJUaeG6v25nIFZp4buHdCJ9LHsiY29kZSI6InRyIiwibmFtZSI6IlTDvHJrw6dlIn0seyJjb2RlIjoieW8iLCJuYW1lIjoiWW9ydWJhIn0seyJjb2RlIjoiZWwiLCJuYW1lIjoizpXOu867zrfOvc65zrrOrCJ9LHsiY29kZSI6ImJlIiwibmFtZSI6ItCR0LXQu9Cw0YDRg9GB0LrQsNGPIn0seyJjb2RlIjoiYmciLCJuYW1lIjoi0LHRitC70LPQsNGA0YHQutC4In0seyJjb2RlIjoia3kiLCJuYW1lIjoi0JrRi9GA0LPRi9C3In0seyJjb2RlIjoia2siLCJuYW1lIjoi0prQsNC30LDSmyJ9LHsiY29kZSI6Im1rIiwibmFtZSI6ItC80LDQutC10LTQvtC90YHQutC4INGY0LDQt9C40LoifSx7ImNvZGUiOiJtbiIsIm5hbWUiOiLQnNC+0L3Qs9C+0LvCoNGF0Y3QuyJ9LHsiY29kZSI6InJ1IiwibmFtZSI6ItGA0YPRgdGB0LrQuNC5In0seyJjb2RlIjoidGciLCJuYW1lIjoi0KLQvtK30LjQutOjIn0seyJjb2RlIjoidWsiLCJuYW1lIjoi0YPQutGA0LDRl9C90YHRjNC60LAifSx7ImNvZGUiOiJoeSIsIm5hbWUiOiLVgNWh1bXVpdaA1aXVtiJ9LHsiY29kZSI6ImthIiwibmFtZSI6IuGDpeGDkOGDoOGDl+GDo+GDmuGDmCJ9LHsiY29kZSI6InlpIiwibmFtZSI6IteZ15nWtNeT15nXqSJ9LHsiY29kZSI6Iml3IiwibmFtZSI6Itei15HXqNeZ16oifSx7ImNvZGUiOiJ1ciIsIm5hbWUiOiLYp9mP2LHYr9mIIn0seyJjb2RlIjoiYXIiLCJuYW1lIjoi2KfZhNi52LHYqNmK2KkifSx7ImNvZGUiOiJwcyIsIm5hbWUiOiLZvtqa2KrZiCJ9LHsiY29kZSI6InNkIiwibmFtZSI6Itiz2YbajNmKIn0seyJjb2RlIjoiZmEiLCJuYW1lIjoi2YHYp9ix2LPZiSJ9LHsiY29kZSI6Imt1IiwibmFtZSI6Itqp2YjYsdiv24zbjCDZhtin2YjbldqV2KfYs9iqIn0seyJjb2RlIjoibmUiLCJuYW1lIjoi4KSo4KWH4KSq4KS+4KSy4KWAIn0seyJjb2RlIjoibXIiLCJuYW1lIjoi4KSu4KSw4KS+4KSg4KWAIn0seyJjb2RlIjoiaGkiLCJuYW1lIjoi4KS54KS/4KSC4KSm4KWAIn0seyJjb2RlIjoiYm4iLCJuYW1lIjoi4Kas4Ka+4KaC4Kay4Ka+In0seyJjb2RlIjoicGEiLCJuYW1lIjoi4Kiq4Kmw4Kic4Ki+4Kis4KmAIn0seyJjb2RlIjoiZ3UiLCJuYW1lIjoi4KqX4KuB4Kqc4Kqw4Kq+4Kqk4KuAIn0seyJjb2RlIjoidGEiLCJuYW1lIjoi4K6k4K6u4K6/4K604K+NIn0seyJjb2RlIjoidGUiLCJuYW1lIjoi4LCk4LGG4LCy4LGB4LCX4LGBIn0seyJjb2RlIjoia24iLCJuYW1lIjoi4LKV4LKo4LON4LKo4LKhIn0seyJjb2RlIjoibWwiLCJuYW1lIjoi4LSu4LSy4LSv4LS+4LSz4LSCIn0seyJjb2RlIjoic2kiLCJuYW1lIjoi4LeD4LeS4LaC4LeE4La9In0seyJjb2RlIjoidGgiLCJuYW1lIjoi4LmE4LiX4LiiIn0seyJjb2RlIjoibXkiLCJuYW1lIjoi4YCX4YCZ4YCsIn0seyJjb2RlIjoibG8iLCJuYW1lIjoi4Lqe4Lqy4Lqq4Lqy4Lql4Lqy4LqnIn0seyJjb2RlIjoia20iLCJuYW1lIjoi4Z6X4Z624Z6f4Z624Z6B4Z+S4Z6Y4Z+C4Z6aIn0seyJjb2RlIjoiYW0iLCJuYW1lIjoi4Yqg4Yib4Yit4YqbIn0seyJjb2RlIjoia28iLCJuYW1lIjoi7ZWc6rWt7Ja0In0seyJjb2RlIjoiemgiLCJuYW1lIjoi5Lit5paHIn0seyJjb2RlIjoiemgtVFciLCJuYW1lIjoi5Lit5paHKOWPsOeBoykifSx7ImNvZGUiOiJqYSIsIm5hbWUiOiLml6XmnKzoqp4ifV0sInN1cHBvcnRzV2lkZVNjcmVlblZpZGVvRm9ybWF0cyI6dHJ1ZSwidGltZXN0YW1wIjoiV2VkIEZlYiAyNyAyMDE5IDAwOjAwOjI1IEdNVCswMDAwIChVVEMpIiwibW9kdWxlcyI6W3sibmFtZSI6ImZjMDBlMzQzLTA4MWQtNDExMy04Mzk5LTQ3NjA2ZGFjNzdmNSIsInRpdGxlIjoiQ291cnNlIE92ZXJ2aWV3IiwiZHVyYXRpb24iOjc4LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjE6MTgiLCJhdXRob3IiOiJrZXZpbi1kb2NreCIsImF1dGhvcml6ZWQiOnRydWUsImNsaXBzIjpbeyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiIzZmU0Y2E2ZS1mNmE2LTRkODEtODQ3Mi03YWQwNDkwY2I0ZjgiLCJkdXJhdGlvbiI6NzgsImZvcm1hdHRlZER1cmF0aW9uIjoiMToxOCIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjpmYzAwZTM0My0wODFkLTQxMTMtODM5OS00NzYwNmRhYzc3ZjU6MDprZXZpbi1kb2NreCIsImluZGV4IjowLCJtb2R1bGVJbmRleCI6MCwibW9kdWxlVGl0bGUiOiJDb3Vyc2UgT3ZlcnZpZXciLCJuYW1lIjoiM2ZlNGNhNmUtZjZhNi00ZDgxLTg0NzItN2FkMDQ5MGNiNGY4IiwidGl0bGUiOiJDb3Vyc2UgT3ZlcnZpZXciLCJ3YXRjaGVkIjpmYWxzZX1dfSx7Im5hbWUiOiI3NTU2ZDU2Zi05YzZiLTQwYzYtOTI1ZS1mNmRlYWU3ODQyNDMiLCJ0aXRsZSI6IkdldHRpbmcgU3RhcnRlZCB3aXRoIE9wZW5BUEkgLyBTd2FnZ2VyIiwiZHVyYXRpb24iOjc5NSwiZm9ybWF0dGVkRHVyYXRpb24iOiIxMzoxNSIsImF1dGhvciI6ImtldmluLWRvY2t4IiwiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcHMiOlt7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6IjRjYjVhNjA4LWYyNjMtNGJhZi1hOTk0LTkxM2M4YmIxY2FlZCIsImR1cmF0aW9uIjo3NSwiZm9ybWF0dGVkRHVyYXRpb24iOiIxOjE1IiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjc1NTZkNTZmLTljNmItNDBjNi05MjVlLWY2ZGVhZTc4NDI0MzowOmtldmluLWRvY2t4IiwiaW5kZXgiOjAsIm1vZHVsZUluZGV4IjoxLCJtb2R1bGVUaXRsZSI6IkdldHRpbmcgU3RhcnRlZCB3aXRoIE9wZW5BUEkgLyBTd2FnZ2VyIiwibmFtZSI6IjRjYjVhNjA4LWYyNjMtNGJhZi1hOTk0LTkxM2M4YmIxY2FlZCIsInRpdGxlIjoiQ29taW5nIFVwIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiYTBmMzQ0NDUtMmEzMi00MWRjLWEwMGUtYjUzNGU3Zjk1NjczIiwiZHVyYXRpb24iOjMzLCJmb3JtYXR0ZWREdXJhdGlvbiI6IjA6MzMiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6NzU1NmQ1NmYtOWM2Yi00MGM2LTkyNWUtZjZkZWFlNzg0MjQzOjE6a2V2aW4tZG9ja3giLCJpbmRleCI6MSwibW9kdWxlSW5kZXgiOjEsIm1vZHVsZVRpdGxlIjoiR2V0dGluZyBTdGFydGVkIHdpdGggT3BlbkFQSSAvIFN3YWdnZXIiLCJuYW1lIjoiYTBmMzQ0NDUtMmEzMi00MWRjLWEwMGUtYjUzNGU3Zjk1NjczIiwidGl0bGUiOiJDb3Vyc2UgUHJlcmVxdWlzaXRlcyIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6Ijk0Y2E3MGI2LTRjNTAtNDA5Yi04MmM2LWQ2NWIyMDNhODc5MSIsImR1cmF0aW9uIjo3MywiZm9ybWF0dGVkRHVyYXRpb24iOiIxOjEzIiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjc1NTZkNTZmLTljNmItNDBjNi05MjVlLWY2ZGVhZTc4NDI0MzoyOmtldmluLWRvY2t4IiwiaW5kZXgiOjIsIm1vZHVsZUluZGV4IjoxLCJtb2R1bGVUaXRsZSI6IkdldHRpbmcgU3RhcnRlZCB3aXRoIE9wZW5BUEkgLyBTd2FnZ2VyIiwibmFtZSI6Ijk0Y2E3MGI2LTRjNTAtNDA5Yi04MmM2LWQ2NWIyMDNhODc5MSIsInRpdGxlIjoiRnJhbWV3b3JrcyBhbmQgVG9vbGluZyIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6ImYzZWRlNTE2LTA2NDctNGEyZi04MDBhLTNjMTljMDcwNjkzNyIsImR1cmF0aW9uIjoxOTIsImZvcm1hdHRlZER1cmF0aW9uIjoiMzoxMiIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjo3NTU2ZDU2Zi05YzZiLTQwYzYtOTI1ZS1mNmRlYWU3ODQyNDM6MzprZXZpbi1kb2NreCIsImluZGV4IjozLCJtb2R1bGVJbmRleCI6MSwibW9kdWxlVGl0bGUiOiJHZXR0aW5nIFN0YXJ0ZWQgd2l0aCBPcGVuQVBJIC8gU3dhZ2dlciIsIm5hbWUiOiJmM2VkZTUxNi0wNjQ3LTRhMmYtODAwYS0zYzE5YzA3MDY5MzciLCJ0aXRsZSI6IldoeSBVc2UgU3dhZ2dlciAvIE9wZW5BUEkgdG8gRG9jdW1lbnQgWW91ciBBUEk/Iiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiMzZkNjhmZDEtNGJmNC00OWI1LWE3M2EtZTE1OGIxYzFjOGFlIiwiZHVyYXRpb24iOjE2NywiZm9ybWF0dGVkRHVyYXRpb24iOiIyOjQ3IiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjc1NTZkNTZmLTljNmItNDBjNi05MjVlLWY2ZGVhZTc4NDI0Mzo0OmtldmluLWRvY2t4IiwiaW5kZXgiOjQsIm1vZHVsZUluZGV4IjoxLCJtb2R1bGVUaXRsZSI6IkdldHRpbmcgU3RhcnRlZCB3aXRoIE9wZW5BUEkgLyBTd2FnZ2VyIiwibmFtZSI6IjM2ZDY4ZmQxLTRiZjQtNDliNS1hNzNhLWUxNThiMWMxYzhhZSIsInRpdGxlIjoiQ2xlYXJpbmcgdXAgdGhlIFRlcm1pbm9sb2d5IENvbmZ1c2lvbiIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6IjY1NTAzOTU2LTliN2MtNGM0MS1hMWRlLTIwYTUzZTA2ODA4NSIsImR1cmF0aW9uIjoxODUsImZvcm1hdHRlZER1cmF0aW9uIjoiMzowNSIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjo3NTU2ZDU2Zi05YzZiLTQwYzYtOTI1ZS1mNmRlYWU3ODQyNDM6NTprZXZpbi1kb2NreCIsImluZGV4Ijo1LCJtb2R1bGVJbmRleCI6MSwibW9kdWxlVGl0bGUiOiJHZXR0aW5nIFN0YXJ0ZWQgd2l0aCBPcGVuQVBJIC8gU3dhZ2dlciIsIm5hbWUiOiI2NTUwMzk1Ni05YjdjLTRjNDEtYTFkZS0yMGE1M2UwNjgwODUiLCJ0aXRsZSI6IkRlbW8gLSBJbnRyb2R1Y2luZyB0aGUgRGVtbyBBcHBsaWNhdGlvbiIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6ImEwOTdkNzM5LWQ4ZDAtNDlkNC04ZGQzLTYxYTQzYTI0ZGM5MiIsImR1cmF0aW9uIjo2NSwiZm9ybWF0dGVkRHVyYXRpb24iOiIxOjA1IiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjc1NTZkNTZmLTljNmItNDBjNi05MjVlLWY2ZGVhZTc4NDI0Mzo2OmtldmluLWRvY2t4IiwiaW5kZXgiOjYsIm1vZHVsZUluZGV4IjoxLCJtb2R1bGVUaXRsZSI6IkdldHRpbmcgU3RhcnRlZCB3aXRoIE9wZW5BUEkgLyBTd2FnZ2VyIiwibmFtZSI6ImEwOTdkNzM5LWQ4ZDAtNDlkNC04ZGQzLTYxYTQzYTI0ZGM5MiIsInRpdGxlIjoiU3VtbWFyeSIsIndhdGNoZWQiOmZhbHNlfV19LHsibmFtZSI6Ijc2MjcxZDAyLTczNDUtNGI0Yi04NWRjLTUxZGJiMTg0ZDRjNCIsInRpdGxlIjoiRG9jdW1lbnRpbmcgWW91ciBGaXJzdCBBUEkgd2l0aCBPcGVuQVBJIC8gU3dhZ2dlciIsImR1cmF0aW9uIjoxOTQwLCJmb3JtYXR0ZWREdXJhdGlvbiI6IjMyOjIwIiwiYXV0aG9yIjoia2V2aW4tZG9ja3giLCJhdXRob3JpemVkIjp0cnVlLCJjbGlwcyI6W3siYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiZjAxNTkwNjYtNzVlYi00NmZjLWI5YTAtNmFmZDA2NmVjYjEzIiwiZHVyYXRpb24iOjM4LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjA6MzgiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6NzYyNzFkMDItNzM0NS00YjRiLTg1ZGMtNTFkYmIxODRkNGM0OjA6a2V2aW4tZG9ja3giLCJpbmRleCI6MCwibW9kdWxlSW5kZXgiOjIsIm1vZHVsZVRpdGxlIjoiRG9jdW1lbnRpbmcgWW91ciBGaXJzdCBBUEkgd2l0aCBPcGVuQVBJIC8gU3dhZ2dlciIsIm5hbWUiOiJmMDE1OTA2Ni03NWViLTQ2ZmMtYjlhMC02YWZkMDY2ZWNiMTMiLCJ0aXRsZSI6IkNvbWluZyBVcCIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6ImU2ZDY0NGVjLTVmNTEtNGQ4Zi04ODM5LThkOTU4YjY2ZDQ1MiIsImR1cmF0aW9uIjoyMzksImZvcm1hdHRlZER1cmF0aW9uIjoiMzo1OSIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjo3NjI3MWQwMi03MzQ1LTRiNGItODVkYy01MWRiYjE4NGQ0YzQ6MTprZXZpbi1kb2NreCIsImluZGV4IjoxLCJtb2R1bGVJbmRleCI6MiwibW9kdWxlVGl0bGUiOiJEb2N1bWVudGluZyBZb3VyIEZpcnN0IEFQSSB3aXRoIE9wZW5BUEkgLyBTd2FnZ2VyIiwibmFtZSI6ImU2ZDY0NGVjLTVmNTEtNGQ4Zi04ODM5LThkOTU4YjY2ZDQ1MiIsInRpdGxlIjoiRGVtbyAtIEluc3RhbGxpbmcgU3dhc2hidWNrbGUiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiI3YzBiYjc5Zi0zODVhLTQzZmQtOTZlNi01ZTBlOGI2ZWFmMDgiLCJkdXJhdGlvbiI6MjUyLCJmb3JtYXR0ZWREdXJhdGlvbiI6IjQ6MTIiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6NzYyNzFkMDItNzM0NS00YjRiLTg1ZGMtNTFkYmIxODRkNGM0OjI6a2V2aW4tZG9ja3giLCJpbmRleCI6MiwibW9kdWxlSW5kZXgiOjIsIm1vZHVsZVRpdGxlIjoiRG9jdW1lbnRpbmcgWW91ciBGaXJzdCBBUEkgd2l0aCBPcGVuQVBJIC8gU3dhZ2dlciIsIm5hbWUiOiI3YzBiYjc5Zi0zODVhLTQzZmQtOTZlNi01ZTBlOGI2ZWFmMDgiLCJ0aXRsZSI6IkRlbW8gLSBJbnNwZWN0aW5nIHRoZSBHZW5lcmF0ZWQgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiOWQ0MmMxMmEtYTk5Ni00NWJlLWFkY2YtNzNmZTg1NmI0Njk0IiwiZHVyYXRpb24iOjIyOCwiZm9ybWF0dGVkRHVyYXRpb24iOiIzOjQ4IiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjc2MjcxZDAyLTczNDUtNGI0Yi04NWRjLTUxZGJiMTg0ZDRjNDozOmtldmluLWRvY2t4IiwiaW5kZXgiOjMsIm1vZHVsZUluZGV4IjoyLCJtb2R1bGVUaXRsZSI6IkRvY3VtZW50aW5nIFlvdXIgRmlyc3QgQVBJIHdpdGggT3BlbkFQSSAvIFN3YWdnZXIiLCJuYW1lIjoiOWQ0MmMxMmEtYTk5Ni00NWJlLWFkY2YtNzNmZTg1NmI0Njk0IiwidGl0bGUiOiJEZW1vIC0gQWRkaW5nIFN3YWdnZXIgVUkiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiIxMTA1ZmViNi0wY2MwLTQzNjAtOTFmNi1jOGVkZWFhNDAyNzAiLCJkdXJhdGlvbiI6MjY2LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjQ6MjYiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6NzYyNzFkMDItNzM0NS00YjRiLTg1ZGMtNTFkYmIxODRkNGM0OjQ6a2V2aW4tZG9ja3giLCJpbmRleCI6NCwibW9kdWxlSW5kZXgiOjIsIm1vZHVsZVRpdGxlIjoiRG9jdW1lbnRpbmcgWW91ciBGaXJzdCBBUEkgd2l0aCBPcGVuQVBJIC8gU3dhZ2dlciIsIm5hbWUiOiIxMTA1ZmViNi0wY2MwLTQzNjAtOTFmNi1jOGVkZWFhNDAyNzAiLCJ0aXRsZSI6IkRlbW8gLSBJbmNvcnBvcmF0aW5nIFhNTCBDb21tZW50cyBvbiBBY3Rpb25zIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiN2QxNjhiZDEtODhlZS00ZWNlLTg0ZDctYmJmMjY5ZjJmZDFhIiwiZHVyYXRpb24iOjgzLCJmb3JtYXR0ZWREdXJhdGlvbiI6IjE6MjMiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6NzYyNzFkMDItNzM0NS00YjRiLTg1ZGMtNTFkYmIxODRkNGM0OjU6a2V2aW4tZG9ja3giLCJpbmRleCI6NSwibW9kdWxlSW5kZXgiOjIsIm1vZHVsZVRpdGxlIjoiRG9jdW1lbnRpbmcgWW91ciBGaXJzdCBBUEkgd2l0aCBPcGVuQVBJIC8gU3dhZ2dlciIsIm5hbWUiOiI3ZDE2OGJkMS04OGVlLTRlY2UtODRkNy1iYmYyNjlmMmZkMWEiLCJ0aXRsZSI6IkRlbW8gLSBJbmNvcnBvcmF0aW5nIFhNTCBDb21tZW50cyBvbiBNb2RlbCBDbGFzc2VzIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiN2FkZDcyYmQtNjkzMC00ZjEzLWFmNGItZDMwZTZjZTAzYmY3IiwiZHVyYXRpb24iOjE0NiwiZm9ybWF0dGVkRHVyYXRpb24iOiIyOjI2IiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjc2MjcxZDAyLTczNDUtNGI0Yi04NWRjLTUxZGJiMTg0ZDRjNDo2OmtldmluLWRvY2t4IiwiaW5kZXgiOjYsIm1vZHVsZUluZGV4IjoyLCJtb2R1bGVUaXRsZSI6IkRvY3VtZW50aW5nIFlvdXIgRmlyc3QgQVBJIHdpdGggT3BlbkFQSSAvIFN3YWdnZXIiLCJuYW1lIjoiN2FkZDcyYmQtNjkzMC00ZjEzLWFmNGItZDMwZTZjZTAzYmY3IiwidGl0bGUiOiJEZW1vIC0gSW1wcm92aW5nIERvY3VtZW50YXRpb24gd2l0aCBEYXRhIEFubm90YXRpb25zIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiNzI3OTIyNGUtMDBmMS00ZjFhLTg1ZTUtYjIyNjEyOWU2YmQ2IiwiZHVyYXRpb24iOjE5MiwiZm9ybWF0dGVkRHVyYXRpb24iOiIzOjEyIiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjc2MjcxZDAyLTczNDUtNGI0Yi04NWRjLTUxZGJiMTg0ZDRjNDo3OmtldmluLWRvY2t4IiwiaW5kZXgiOjcsIm1vZHVsZUluZGV4IjoyLCJtb2R1bGVUaXRsZSI6IkRvY3VtZW50aW5nIFlvdXIgRmlyc3QgQVBJIHdpdGggT3BlbkFQSSAvIFN3YWdnZXIiLCJuYW1lIjoiNzI3OTIyNGUtMDBmMS00ZjFhLTg1ZTUtYjIyNjEyOWU2YmQ2IiwidGl0bGUiOiJEZW1vIC0gSW1wcm92aW5nIERvY3VtZW50YXRpb24gd2l0aCBFeGFtcGxlcyIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6Ijg5NDM4MTk2LTcxNDctNDA4OC1iMDdkLWE5YzBlMmUwN2JhYSIsImR1cmF0aW9uIjoyMjIsImZvcm1hdHRlZER1cmF0aW9uIjoiMzo0MiIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjo3NjI3MWQwMi03MzQ1LTRiNGItODVkYy01MWRiYjE4NGQ0YzQ6ODprZXZpbi1kb2NreCIsImluZGV4Ijo4LCJtb2R1bGVJbmRleCI6MiwibW9kdWxlVGl0bGUiOiJEb2N1bWVudGluZyBZb3VyIEZpcnN0IEFQSSB3aXRoIE9wZW5BUEkgLyBTd2FnZ2VyIiwibmFtZSI6Ijg5NDM4MTk2LTcxNDctNDA4OC1iMDdkLWE5YzBlMmUwN2JhYSIsInRpdGxlIjoiRGVtbyAtIElnbm9yaW5nIFdhcm5pbmdzIFdoZXJlIEFwcHJvcHJpYXRlIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiYmU5ZDBlMmUtN2Y5Ni00Y2E0LTg1ZDUtYWJkY2EzNDY2OGY2IiwiZHVyYXRpb24iOjE3MywiZm9ybWF0dGVkRHVyYXRpb24iOiIyOjUzIiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjc2MjcxZDAyLTczNDUtNGI0Yi04NWRjLTUxZGJiMTg0ZDRjNDo5OmtldmluLWRvY2t4IiwiaW5kZXgiOjksIm1vZHVsZUluZGV4IjoyLCJtb2R1bGVUaXRsZSI6IkRvY3VtZW50aW5nIFlvdXIgRmlyc3QgQVBJIHdpdGggT3BlbkFQSSAvIFN3YWdnZXIiLCJuYW1lIjoiYmU5ZDBlMmUtN2Y5Ni00Y2E0LTg1ZDUtYWJkY2EzNDY2OGY2IiwidGl0bGUiOiJEZW1vIC0gQWRkaW5nIEFQSSBJbmZvcm1hdGlvbiBhbmQgRGVzY3JpcHRpb24iLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiIyNTEyN2I1Zi03MTkyLTRjNGItYmEyMS04NTM2OWYxYTg1NTAiLCJkdXJhdGlvbiI6OTUsImZvcm1hdHRlZER1cmF0aW9uIjoiMTozNSIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjo3NjI3MWQwMi03MzQ1LTRiNGItODVkYy01MWRiYjE4NGQ0YzQ6MTA6a2V2aW4tZG9ja3giLCJpbmRleCI6MTAsIm1vZHVsZUluZGV4IjoyLCJtb2R1bGVUaXRsZSI6IkRvY3VtZW50aW5nIFlvdXIgRmlyc3QgQVBJIHdpdGggT3BlbkFQSSAvIFN3YWdnZXIiLCJuYW1lIjoiMjUxMjdiNWYtNzE5Mi00YzRiLWJhMjEtODUzNjlmMWE4NTUwIiwidGl0bGUiOiJTdW1tYXJ5Iiwid2F0Y2hlZCI6ZmFsc2V9XX0seyJuYW1lIjoiZjdiY2IyMjgtMjNjZS00ZWJlLWFmMzktYzE2Mjc3ZTBiOTMzIiwidGl0bGUiOiJVc2luZyBhbmQgT3ZlcnJpZGluZyBDb252ZW50aW9ucyBmb3IgT3BlbkFQSSBHZW5lcmF0aW9uIiwiZHVyYXRpb24iOjI1NTgsImZvcm1hdHRlZER1cmF0aW9uIjoiNDI6MzgiLCJhdXRob3IiOiJrZXZpbi1kb2NreCIsImF1dGhvcml6ZWQiOnRydWUsImNsaXBzIjpbeyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiIyZDFiMWFkOS01YWQyLTQ2OTktOWY0NS02MGFhOTQ4Njg3NTEiLCJkdXJhdGlvbiI6NzYsImZvcm1hdHRlZER1cmF0aW9uIjoiMToxNiIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjpmN2JjYjIyOC0yM2NlLTRlYmUtYWYzOS1jMTYyNzdlMGI5MzM6MDprZXZpbi1kb2NreCIsImluZGV4IjowLCJtb2R1bGVJbmRleCI6MywibW9kdWxlVGl0bGUiOiJVc2luZyBhbmQgT3ZlcnJpZGluZyBDb252ZW50aW9ucyBmb3IgT3BlbkFQSSBHZW5lcmF0aW9uIiwibmFtZSI6IjJkMWIxYWQ5LTVhZDItNDY5OS05ZjQ1LTYwYWE5NDg2ODc1MSIsInRpdGxlIjoiQ29taW5nIFVwIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiM2ZiMzEzMGQtMGFlNC00NTJiLTgwZWEtNjYyMzQyNzg1MTQ0IiwiZHVyYXRpb24iOjk1LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjE6MzUiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6ZjdiY2IyMjgtMjNjZS00ZWJlLWFmMzktYzE2Mjc3ZTBiOTMzOjE6a2V2aW4tZG9ja3giLCJpbmRleCI6MSwibW9kdWxlSW5kZXgiOjMsIm1vZHVsZVRpdGxlIjoiVXNpbmcgYW5kIE92ZXJyaWRpbmcgQ29udmVudGlvbnMgZm9yIE9wZW5BUEkgR2VuZXJhdGlvbiIsIm5hbWUiOiIzZmIzMTMwZC0wYWU0LTQ1MmItODBlYS02NjIzNDI3ODUxNDQiLCJ0aXRsZSI6IlRoZSBJbXBvcnRhbmNlIG9mIEFwaUV4cGxvcmVyIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiZjM2NGM2YzktYTIxOC00YmZlLWIyYzYtODBmNDY5OGUxN2IxIiwiZHVyYXRpb24iOjY2LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjE6MDYiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6ZjdiY2IyMjgtMjNjZS00ZWJlLWFmMzktYzE2Mjc3ZTBiOTMzOjI6a2V2aW4tZG9ja3giLCJpbmRleCI6MiwibW9kdWxlSW5kZXgiOjMsIm1vZHVsZVRpdGxlIjoiVXNpbmcgYW5kIE92ZXJyaWRpbmcgQ29udmVudGlvbnMgZm9yIE9wZW5BUEkgR2VuZXJhdGlvbiIsIm5hbWUiOiJmMzY0YzZjOS1hMjE4LTRiZmUtYjJjNi04MGY0Njk4ZTE3YjEiLCJ0aXRsZSI6IldoeSBJdCdzIEltcG9ydGFudCB0byBQcm9kdWNlIENvcnJlY3QgUmVzcG9uc2UgVHlwZXMiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiJmYjQwMDc0Mi0xZDY0LTQ1ZjUtOTQzYi1mNTAxMTEyMjMwMmUiLCJkdXJhdGlvbiI6MzkyLCJmb3JtYXR0ZWREdXJhdGlvbiI6IjY6MzIiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6ZjdiY2IyMjgtMjNjZS00ZWJlLWFmMzktYzE2Mjc3ZTBiOTMzOjM6a2V2aW4tZG9ja3giLCJpbmRleCI6MywibW9kdWxlSW5kZXgiOjMsIm1vZHVsZVRpdGxlIjoiVXNpbmcgYW5kIE92ZXJyaWRpbmcgQ29udmVudGlvbnMgZm9yIE9wZW5BUEkgR2VuZXJhdGlvbiIsIm5hbWUiOiJmYjQwMDc0Mi0xZDY0LTQ1ZjUtOTQzYi1mNTAxMTEyMjMwMmUiLCJ0aXRsZSI6IkRlbW8gLSBEZXNjcmliaW5nIFJlc3BvbnNlIFR5cGVzIChTdGF0dXMgQ29kZXMpIHdpdGggUHJvZHVjZXNSZXBvbnNlVHlwZSAiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiIwYzllYjc2ZS0yYmQ4LTRmNjYtOWFlNi01YjQ3ZTUxMzdjNTkiLCJkdXJhdGlvbiI6NTM1LCJmb3JtYXR0ZWREdXJhdGlvbiI6Ijg6NTUiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6ZjdiY2IyMjgtMjNjZS00ZWJlLWFmMzktYzE2Mjc3ZTBiOTMzOjQ6a2V2aW4tZG9ja3giLCJpbmRleCI6NCwibW9kdWxlSW5kZXgiOjMsIm1vZHVsZVRpdGxlIjoiVXNpbmcgYW5kIE92ZXJyaWRpbmcgQ29udmVudGlvbnMgZm9yIE9wZW5BUEkgR2VuZXJhdGlvbiIsIm5hbWUiOiIwYzllYjc2ZS0yYmQ4LTRmNjYtOWFlNi01YjQ3ZTUxMzdjNTkiLCJ0aXRsZSI6IkRlbW8gLSBVc2luZyBBUEkgQW5hbHl6ZXJzIHRvIEltcHJvdmUgdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6IjJiYzk1NGQwLTBmNzktNGQyOC1hODU3LTBjMGYyMWYxYTE2NCIsImR1cmF0aW9uIjoyNzUsImZvcm1hdHRlZER1cmF0aW9uIjoiNDozNSIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjpmN2JjYjIyOC0yM2NlLTRlYmUtYWYzOS1jMTYyNzdlMGI5MzM6NTprZXZpbi1kb2NreCIsImluZGV4Ijo1LCJtb2R1bGVJbmRleCI6MywibW9kdWxlVGl0bGUiOiJVc2luZyBhbmQgT3ZlcnJpZGluZyBDb252ZW50aW9ucyBmb3IgT3BlbkFQSSBHZW5lcmF0aW9uIiwibmFtZSI6IjJiYzk1NGQwLTBmNzktNGQyOC1hODU3LTBjMGYyMWYxYTE2NCIsInRpdGxlIjoiRGVtbyAtIFdvcmtpbmcgd2l0aCBBUEkgQ29udmVudGlvbnMiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiJhYzQ4YWY2Yy03M2IwLTQ1YjUtODRiOS0zYWE2NDdiNjlkMzciLCJkdXJhdGlvbiI6MzUyLCJmb3JtYXR0ZWREdXJhdGlvbiI6IjU6NTIiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6ZjdiY2IyMjgtMjNjZS00ZWJlLWFmMzktYzE2Mjc3ZTBiOTMzOjY6a2V2aW4tZG9ja3giLCJpbmRleCI6NiwibW9kdWxlSW5kZXgiOjMsIm1vZHVsZVRpdGxlIjoiVXNpbmcgYW5kIE92ZXJyaWRpbmcgQ29udmVudGlvbnMgZm9yIE9wZW5BUEkgR2VuZXJhdGlvbiIsIm5hbWUiOiJhYzQ4YWY2Yy03M2IwLTQ1YjUtODRiOS0zYWE2NDdiNjlkMzciLCJ0aXRsZSI6IkRlbW8gLSBDcmVhdGluZyBDdXN0b20gQ29udmVudGlvbnMiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiJhNmM2MzY3My0zNDAyLTRkZTktOThiNy03NDkwNzU3YTVkYmUiLCJkdXJhdGlvbiI6MTEwLCJmb3JtYXR0ZWREdXJhdGlvbiI6IjE6NTAiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6ZjdiY2IyMjgtMjNjZS00ZWJlLWFmMzktYzE2Mjc3ZTBiOTMzOjc6a2V2aW4tZG9ja3giLCJpbmRleCI6NywibW9kdWxlSW5kZXgiOjMsIm1vZHVsZVRpdGxlIjoiVXNpbmcgYW5kIE92ZXJyaWRpbmcgQ29udmVudGlvbnMgZm9yIE9wZW5BUEkgR2VuZXJhdGlvbiIsIm5hbWUiOiJhNmM2MzY3My0zNDAyLTRkZTktOThiNy03NDkwNzU3YTVkYmUiLCJ0aXRsZSI6IkF0dHJpYnV0ZXMgVmVyc3VzIENvbnZlbnRpb25zIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiODNlYjA1MGQtZWJhYi00ZWJlLTkxYTktYzAyNWI0MDQ4ZTIxIiwiZHVyYXRpb24iOjExMywiZm9ybWF0dGVkRHVyYXRpb24iOiIxOjUzIiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOmY3YmNiMjI4LTIzY2UtNGViZS1hZjM5LWMxNjI3N2UwYjkzMzo4OmtldmluLWRvY2t4IiwiaW5kZXgiOjgsIm1vZHVsZUluZGV4IjozLCJtb2R1bGVUaXRsZSI6IlVzaW5nIGFuZCBPdmVycmlkaW5nIENvbnZlbnRpb25zIGZvciBPcGVuQVBJIEdlbmVyYXRpb24iLCJuYW1lIjoiODNlYjA1MGQtZWJhYi00ZWJlLTkxYTktYzAyNWI0MDQ4ZTIxIiwidGl0bGUiOiJDb250ZW50IE5lZ290aWF0aW9uIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiNzNkZjI0NDEtMzgxNi00YTU4LWE4MTItMWVkYmU1ZTgxODhjIiwiZHVyYXRpb24iOjM2MiwiZm9ybWF0dGVkRHVyYXRpb24iOiI2OjAyIiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOmY3YmNiMjI4LTIzY2UtNGViZS1hZjM5LWMxNjI3N2UwYjkzMzo5OmtldmluLWRvY2t4IiwiaW5kZXgiOjksIm1vZHVsZUluZGV4IjozLCJtb2R1bGVUaXRsZSI6IlVzaW5nIGFuZCBPdmVycmlkaW5nIENvbnZlbnRpb25zIGZvciBPcGVuQVBJIEdlbmVyYXRpb24iLCJuYW1lIjoiNzNkZjI0NDEtMzgxNi00YTU4LWE4MTItMWVkYmU1ZTgxODhjIiwidGl0bGUiOiJEZW1vIC0gU3BlY2lmeWluZyB0aGUgUmVzcG9uc2UgQm9keSBUeXBlIHdpdGggdGhlIFByb2R1Y2VzIEF0dHJpYnV0ZSIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6IjM2YWFiYmExLWViYzEtNGQ3MC1hMzg1LTU4OWM0NjlhYmJjYiIsImR1cmF0aW9uIjo5MywiZm9ybWF0dGVkRHVyYXRpb24iOiIxOjMzIiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOmY3YmNiMjI4LTIzY2UtNGViZS1hZjM5LWMxNjI3N2UwYjkzMzoxMDprZXZpbi1kb2NreCIsImluZGV4IjoxMCwibW9kdWxlSW5kZXgiOjMsIm1vZHVsZVRpdGxlIjoiVXNpbmcgYW5kIE92ZXJyaWRpbmcgQ29udmVudGlvbnMgZm9yIE9wZW5BUEkgR2VuZXJhdGlvbiIsIm5hbWUiOiIzNmFhYmJhMS1lYmMxLTRkNzAtYTM4NS01ODljNDY5YWJiY2IiLCJ0aXRsZSI6IkRlbW8gLSBTcGVjaWZ5aW5nIHRoZSBSZXF1ZXN0IEJvZHkgVHlwZSB3aXRoIHRoZSBDb25zdW1lcyBBdHRyaWJ1dGUiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiJmYzE2ZmQ0Ni03ZjNmLTQyOWItYWI2Mi04YWRjNDE4ZTZmNDQiLCJkdXJhdGlvbiI6ODUsImZvcm1hdHRlZER1cmF0aW9uIjoiMToyNSIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjpmN2JjYjIyOC0yM2NlLTRlYmUtYWYzOS1jMTYyNzdlMGI5MzM6MTE6a2V2aW4tZG9ja3giLCJpbmRleCI6MTEsIm1vZHVsZUluZGV4IjozLCJtb2R1bGVUaXRsZSI6IlVzaW5nIGFuZCBPdmVycmlkaW5nIENvbnZlbnRpb25zIGZvciBPcGVuQVBJIEdlbmVyYXRpb24iLCJuYW1lIjoiZmMxNmZkNDYtN2YzZi00MjliLWFiNjItOGFkYzQxOGU2ZjQ0IiwidGl0bGUiOiJTdW1tYXJ5Iiwid2F0Y2hlZCI6ZmFsc2V9XX0seyJuYW1lIjoiMDAxOTBlMmYtOGEzOC00MzQyLTk4NjctODEyNzYyMmE1NGI1IiwidGl0bGUiOiJHZW5lcmF0aW5nIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnMgZm9yIEFkdmFuY2VkIElucHV0IGFuZCBPdXRwdXQgU2NlbmFyaW9zIiwiZHVyYXRpb24iOjE3NDksImZvcm1hdHRlZER1cmF0aW9uIjoiMjk6MDkiLCJhdXRob3IiOiJrZXZpbi1kb2NreCIsImF1dGhvcml6ZWQiOnRydWUsImNsaXBzIjpbeyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiJkNDkxOTU1Ny00NjNmLTRlNGEtOTVmNi01NzYyNGEyMjIwOWMiLCJkdXJhdGlvbiI6NTUsImZvcm1hdHRlZER1cmF0aW9uIjoiMDo1NSIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjowMDE5MGUyZi04YTM4LTQzNDItOTg2Ny04MTI3NjIyYTU0YjU6MDprZXZpbi1kb2NreCIsImluZGV4IjowLCJtb2R1bGVJbmRleCI6NCwibW9kdWxlVGl0bGUiOiJHZW5lcmF0aW5nIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnMgZm9yIEFkdmFuY2VkIElucHV0IGFuZCBPdXRwdXQgU2NlbmFyaW9zIiwibmFtZSI6ImQ0OTE5NTU3LTQ2M2YtNGU0YS05NWY2LTU3NjI0YTIyMjA5YyIsInRpdGxlIjoiQ29taW5nIFVwIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiM2RhZmEzOWEtYmI5ZS00NjkzLTg0NzMtNWE4OTA2ZWYxNTYxIiwiZHVyYXRpb24iOjk5LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjE6MzkiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6MDAxOTBlMmYtOGEzOC00MzQyLTk4NjctODEyNzYyMmE1NGI1OjE6a2V2aW4tZG9ja3giLCJpbmRleCI6MSwibW9kdWxlSW5kZXgiOjQsIm1vZHVsZVRpdGxlIjoiR2VuZXJhdGluZyBPcGVuQVBJIFNwZWNpZmljYXRpb25zIGZvciBBZHZhbmNlZCBJbnB1dCBhbmQgT3V0cHV0IFNjZW5hcmlvcyIsIm5hbWUiOiIzZGFmYTM5YS1iYjllLTQ2OTMtODQ3My01YTg5MDZlZjE1NjEiLCJ0aXRsZSI6IkNvbnRlbnQgTmVnb3RpYXRpb24gd2l0aCBWZW5kb3Itc3BlY2lmaWMgTWVkaWEgVHlwZXMiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiJkMmEwNWVkNS1mMmQ5LTQ0NWItYWMyYy05ZDI3YjJhMGZmZGQiLCJkdXJhdGlvbiI6Mjk1LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjQ6NTUiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6MDAxOTBlMmYtOGEzOC00MzQyLTk4NjctODEyNzYyMmE1NGI1OjI6a2V2aW4tZG9ja3giLCJpbmRleCI6MiwibW9kdWxlSW5kZXgiOjQsIm1vZHVsZVRpdGxlIjoiR2VuZXJhdGluZyBPcGVuQVBJIFNwZWNpZmljYXRpb25zIGZvciBBZHZhbmNlZCBJbnB1dCBhbmQgT3V0cHV0IFNjZW5hcmlvcyIsIm5hbWUiOiJkMmEwNWVkNS1mMmQ5LTQ0NWItYWMyYy05ZDI3YjJhMGZmZGQiLCJ0aXRsZSI6IkRlbW8gLSBTdXBwb3J0aW5nIFZlbmRvci1zcGVjaWZpYyBNZWRpYSBUeXBlcyAiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiI1NjMzMjcyZi01MjYzLTQzNTYtYTZjYi1iN2Q0N2ZhYTZjNDQiLCJkdXJhdGlvbiI6ODMsImZvcm1hdHRlZER1cmF0aW9uIjoiMToyMyIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjowMDE5MGUyZi04YTM4LTQzNDItOTg2Ny04MTI3NjIyYTU0YjU6MzprZXZpbi1kb2NreCIsImluZGV4IjozLCJtb2R1bGVJbmRleCI6NCwibW9kdWxlVGl0bGUiOiJHZW5lcmF0aW5nIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnMgZm9yIEFkdmFuY2VkIElucHV0IGFuZCBPdXRwdXQgU2NlbmFyaW9zIiwibmFtZSI6IjU2MzMyNzJmLTUyNjMtNDM1Ni1hNmNiLWI3ZDQ3ZmFhNmM0NCIsInRpdGxlIjoiT3BlbkFQSSBTdXBwb3J0IGZvciBTY2hlbWEgVmFyaWF0aW9uIGJ5IE1lZGlhIFR5cGUgKE91dHB1dCkiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiI0NjNjOTgxZS1mNzRjLTQwYjgtYWUyZS0zYjZmMWVlNjc5YjYiLCJkdXJhdGlvbiI6MzI3LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjU6MjciLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6MDAxOTBlMmYtOGEzOC00MzQyLTk4NjctODEyNzYyMmE1NGI1OjQ6a2V2aW4tZG9ja3giLCJpbmRleCI6NCwibW9kdWxlSW5kZXgiOjQsIm1vZHVsZVRpdGxlIjoiR2VuZXJhdGluZyBPcGVuQVBJIFNwZWNpZmljYXRpb25zIGZvciBBZHZhbmNlZCBJbnB1dCBhbmQgT3V0cHV0IFNjZW5hcmlvcyIsIm5hbWUiOiI0NjNjOTgxZS1mNzRjLTQwYjgtYWUyZS0zYjZmMWVlNjc5YjYiLCJ0aXRsZSI6IkRlbW8gLSBTdXBwb3J0aW5nIFNjaGVtYSBWYXJpYXRpb24gYnkgTWVkaWEgVHlwZSAoT3V0cHV0LCBSZXNvbHZlQ29uZmxpY3RpbmdBY3Rpb25zKSIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6ImYxZDE3YjNiLTBiY2QtNDYxMi04NzBlLTZhOWFlZDdlNDBkZSIsImR1cmF0aW9uIjozOTEsImZvcm1hdHRlZER1cmF0aW9uIjoiNjozMSIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjowMDE5MGUyZi04YTM4LTQzNDItOTg2Ny04MTI3NjIyYTU0YjU6NTprZXZpbi1kb2NreCIsImluZGV4Ijo1LCJtb2R1bGVJbmRleCI6NCwibW9kdWxlVGl0bGUiOiJHZW5lcmF0aW5nIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnMgZm9yIEFkdmFuY2VkIElucHV0IGFuZCBPdXRwdXQgU2NlbmFyaW9zIiwibmFtZSI6ImYxZDE3YjNiLTBiY2QtNDYxMi04NzBlLTZhOWFlZDdlNDBkZSIsInRpdGxlIjoiRGVtbyAtIFN1cHBvcnRpbmcgU2NoZW1hIFZhcmlhdGlvbiBieSBNZWRpYSBUeXBlIChPdXRwdXQsIElPcGVyYXRpb25GaWx0ZXIpIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiZjRjOGU1NjktZjZmYi00ZWY5LWEzYzUtMDc0M2JkY2I1YzIyIiwiZHVyYXRpb24iOjEwNCwiZm9ybWF0dGVkRHVyYXRpb24iOiIxOjQ0IiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjAwMTkwZTJmLThhMzgtNDM0Mi05ODY3LTgxMjc2MjJhNTRiNTo2OmtldmluLWRvY2t4IiwiaW5kZXgiOjYsIm1vZHVsZUluZGV4Ijo0LCJtb2R1bGVUaXRsZSI6IkdlbmVyYXRpbmcgT3BlbkFQSSBTcGVjaWZpY2F0aW9ucyBmb3IgQWR2YW5jZWQgSW5wdXQgYW5kIE91dHB1dCBTY2VuYXJpb3MiLCJuYW1lIjoiZjRjOGU1NjktZjZmYi00ZWY5LWEzYzUtMDc0M2JkY2I1YzIyIiwidGl0bGUiOiJPcGVuQVBJIFN1cHBvcnQgZm9yIFNjaGVtYSBWYXJpYXRpb24gYnkgTWVkaWEgVHlwZSAoSW5wdXQpIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiYTA0NGI5NmYtN2ViOC00N2IwLWI3NjEtMDQzNTRjZDIzOTZmIiwiZHVyYXRpb24iOjI1MSwiZm9ybWF0dGVkRHVyYXRpb24iOiI0OjExIiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjAwMTkwZTJmLThhMzgtNDM0Mi05ODY3LTgxMjc2MjJhNTRiNTo3OmtldmluLWRvY2t4IiwiaW5kZXgiOjcsIm1vZHVsZUluZGV4Ijo0LCJtb2R1bGVUaXRsZSI6IkdlbmVyYXRpbmcgT3BlbkFQSSBTcGVjaWZpY2F0aW9ucyBmb3IgQWR2YW5jZWQgSW5wdXQgYW5kIE91dHB1dCBTY2VuYXJpb3MiLCJuYW1lIjoiYTA0NGI5NmYtN2ViOC00N2IwLWI3NjEtMDQzNTRjZDIzOTZmIiwidGl0bGUiOiJEZW1vIC0gU3VwcG9ydGluZyBTY2hlbWEgVmFyaWF0aW9uIGJ5IE1lZGlhIFR5cGUgKElucHV0KSIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6IjZiYmQxZGJkLWNkNTgtNDUyYi1hYzcxLTdlNzQ5NGY1YzhkMyIsImR1cmF0aW9uIjo1MiwiZm9ybWF0dGVkRHVyYXRpb24iOiIwOjUyIiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjAwMTkwZTJmLThhMzgtNDM0Mi05ODY3LTgxMjc2MjJhNTRiNTo4OmtldmluLWRvY2t4IiwiaW5kZXgiOjgsIm1vZHVsZUluZGV4Ijo0LCJtb2R1bGVUaXRsZSI6IkdlbmVyYXRpbmcgT3BlbkFQSSBTcGVjaWZpY2F0aW9ucyBmb3IgQWR2YW5jZWQgSW5wdXQgYW5kIE91dHB1dCBTY2VuYXJpb3MiLCJuYW1lIjoiNmJiZDFkYmQtY2Q1OC00NTJiLWFjNzEtN2U3NDk0ZjVjOGQzIiwidGl0bGUiOiJBZHZhbmNlZCBTY2VuYXJpb3MiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiIzMDBmZmRjYS04Zjc4LTQ5Y2QtYjI5Ny1mNmMyMTQ0YmNlMjEiLCJkdXJhdGlvbiI6ODYsImZvcm1hdHRlZER1cmF0aW9uIjoiMToyNiIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjowMDE5MGUyZi04YTM4LTQzNDItOTg2Ny04MTI3NjIyYTU0YjU6OTprZXZpbi1kb2NreCIsImluZGV4Ijo5LCJtb2R1bGVJbmRleCI6NCwibW9kdWxlVGl0bGUiOiJHZW5lcmF0aW5nIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnMgZm9yIEFkdmFuY2VkIElucHV0IGFuZCBPdXRwdXQgU2NlbmFyaW9zIiwibmFtZSI6IjMwMGZmZGNhLThmNzgtNDljZC1iMjk3LWY2YzIxNDRiY2UyMSIsInRpdGxlIjoiU3VtbWFyeSIsIndhdGNoZWQiOmZhbHNlfV19LHsibmFtZSI6ImFhMWJiZTYxLTNiMTAtNGZlMC05ZTYzLTQ2NTllNjk2OWU2NSIsInRpdGxlIjoiRGVhbGluZyB3aXRoIERpZmZlcmVudCBWZXJzaW9ucyBhbmQgUHJvdGVjdGluZyB0aGUgRG9jdW1lbnRhdGlvbiIsImR1cmF0aW9uIjoyMDY4LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjM0OjI4IiwiYXV0aG9yIjoia2V2aW4tZG9ja3giLCJhdXRob3JpemVkIjp0cnVlLCJjbGlwcyI6W3siYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiNzY4NTE3YjgtMDIyZS00ZTEzLTg4MzEtNGJhNTAxMmVhN2MyIiwiZHVyYXRpb24iOjM4LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjA6MzgiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6YWExYmJlNjEtM2IxMC00ZmUwLTllNjMtNDY1OWU2OTY5ZTY1OjA6a2V2aW4tZG9ja3giLCJpbmRleCI6MCwibW9kdWxlSW5kZXgiOjUsIm1vZHVsZVRpdGxlIjoiRGVhbGluZyB3aXRoIERpZmZlcmVudCBWZXJzaW9ucyBhbmQgUHJvdGVjdGluZyB0aGUgRG9jdW1lbnRhdGlvbiIsIm5hbWUiOiI3Njg1MTdiOC0wMjJlLTRlMTMtODgzMS00YmE1MDEyZWE3YzIiLCJ0aXRsZSI6IkNvbWluZyBVcCIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6ImU0ZmQxMmU4LTU3OWUtNDYzZC04ZTg4LWZiZjIxYTc0MTNmNSIsImR1cmF0aW9uIjo1OCwiZm9ybWF0dGVkRHVyYXRpb24iOiIwOjU4IiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOmFhMWJiZTYxLTNiMTAtNGZlMC05ZTYzLTQ2NTllNjk2OWU2NToxOmtldmluLWRvY2t4IiwiaW5kZXgiOjEsIm1vZHVsZUluZGV4Ijo1LCJtb2R1bGVUaXRsZSI6IkRlYWxpbmcgd2l0aCBEaWZmZXJlbnQgVmVyc2lvbnMgYW5kIFByb3RlY3RpbmcgdGhlIERvY3VtZW50YXRpb24iLCJuYW1lIjoiZTRmZDEyZTgtNTc5ZS00NjNkLThlODgtZmJmMjFhNzQxM2Y1IiwidGl0bGUiOiJXb3JraW5nIHdpdGggTXVsdGlwbGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9ucyIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6IjJkNTExODI0LWU3OWQtNDAyMC04MDQyLWJmZWYzYjk1OGM2ZiIsImR1cmF0aW9uIjoyMTEsImZvcm1hdHRlZER1cmF0aW9uIjoiMzozMSIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjphYTFiYmU2MS0zYjEwLTRmZTAtOWU2My00NjU5ZTY5NjllNjU6MjprZXZpbi1kb2NreCIsImluZGV4IjoyLCJtb2R1bGVJbmRleCI6NSwibW9kdWxlVGl0bGUiOiJEZWFsaW5nIHdpdGggRGlmZmVyZW50IFZlcnNpb25zIGFuZCBQcm90ZWN0aW5nIHRoZSBEb2N1bWVudGF0aW9uIiwibmFtZSI6IjJkNTExODI0LWU3OWQtNDAyMC04MDQyLWJmZWYzYjk1OGM2ZiIsInRpdGxlIjoiRGVtbyAtIFdvcmtpbmcgd2l0aCBNdWx0aXBsZSBPcGVuQVBJIFNwZWNpZmljYXRpb25zIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiOTE5YWJmZjYtY2ZjOC00YTM2LWIxMWItMDFmYmUwNmJkMjIzIiwiZHVyYXRpb24iOjExMCwiZm9ybWF0dGVkRHVyYXRpb24iOiIxOjUwIiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOmFhMWJiZTYxLTNiMTAtNGZlMC05ZTYzLTQ2NTllNjk2OWU2NTozOmtldmluLWRvY2t4IiwiaW5kZXgiOjMsIm1vZHVsZUluZGV4Ijo1LCJtb2R1bGVUaXRsZSI6IkRlYWxpbmcgd2l0aCBEaWZmZXJlbnQgVmVyc2lvbnMgYW5kIFByb3RlY3RpbmcgdGhlIERvY3VtZW50YXRpb24iLCJuYW1lIjoiOTE5YWJmZjYtY2ZjOC00YTM2LWIxMWItMDFmYmUwNmJkMjIzIiwidGl0bGUiOiJWZXJzaW9uaW5nIHdpdGggQVNQLk5FVCBDb3Jl4oCZcyBCdWlsdC1pbiBBcHByb2FjaCIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6ImE3ZDVlZjM0LWIxZGItNDNjYy05NWQ4LWJlYzNjMGZlZTY1MSIsImR1cmF0aW9uIjo0MzksImZvcm1hdHRlZER1cmF0aW9uIjoiNzoxOSIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjphYTFiYmU2MS0zYjEwLTRmZTAtOWU2My00NjU5ZTY5NjllNjU6NDprZXZpbi1kb2NreCIsImluZGV4Ijo0LCJtb2R1bGVJbmRleCI6NSwibW9kdWxlVGl0bGUiOiJEZWFsaW5nIHdpdGggRGlmZmVyZW50IFZlcnNpb25zIGFuZCBQcm90ZWN0aW5nIHRoZSBEb2N1bWVudGF0aW9uIiwibmFtZSI6ImE3ZDVlZjM0LWIxZGItNDNjYy05NWQ4LWJlYzNjMGZlZTY1MSIsInRpdGxlIjoiRGVtbyAtIFZlcnNpb25pbmfCoFlvdXIgQVBJIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiNTY0NDBkOTMtMWM5ZC00NDc1LTgyN2ItNzgxOTcwN2I0MGNjIiwiZHVyYXRpb24iOjQ3NCwiZm9ybWF0dGVkRHVyYXRpb24iOiI3OjU0IiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOmFhMWJiZTYxLTNiMTAtNGZlMC05ZTYzLTQ2NTllNjk2OWU2NTo1OmtldmluLWRvY2t4IiwiaW5kZXgiOjUsIm1vZHVsZUluZGV4Ijo1LCJtb2R1bGVUaXRsZSI6IkRlYWxpbmcgd2l0aCBEaWZmZXJlbnQgVmVyc2lvbnMgYW5kIFByb3RlY3RpbmcgdGhlIERvY3VtZW50YXRpb24iLCJuYW1lIjoiNTY0NDBkOTMtMWM5ZC00NDc1LTgyN2ItNzgxOTcwN2I0MGNjIiwidGl0bGUiOiJEZW1vIC0gTWF0Y2hpbmcgT3BlbkFQSSBTcGVjaWZpY2F0aW9ucyB0byBBUEkgVmVyc2lvbnMiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiJiOWNjMDY1Mi0yNDExLTQ4YjItODdjMi1mOTA5NTI2YWJjYjYiLCJkdXJhdGlvbiI6MTc5LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjI6NTkiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6YWExYmJlNjEtM2IxMC00ZmUwLTllNjMtNDY1OWU2OTY5ZTY1OjY6a2V2aW4tZG9ja3giLCJpbmRleCI6NiwibW9kdWxlSW5kZXgiOjUsIm1vZHVsZVRpdGxlIjoiRGVhbGluZyB3aXRoIERpZmZlcmVudCBWZXJzaW9ucyBhbmQgUHJvdGVjdGluZyB0aGUgRG9jdW1lbnRhdGlvbiIsIm5hbWUiOiJiOWNjMDY1Mi0yNDExLTQ4YjItODdjMi1mOTA5NTI2YWJjYjYiLCJ0aXRsZSI6IlByb3RlY3RpbmcgWW91ciBBUEkiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiI4NDE2NzQyMi00NjVlLTQwN2ItOGFiZi0yMGI3OTVhM2EwYTciLCJkdXJhdGlvbiI6MjIwLCJmb3JtYXR0ZWREdXJhdGlvbiI6IjM6NDAiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6YWExYmJlNjEtM2IxMC00ZmUwLTllNjMtNDY1OWU2OTY5ZTY1Ojc6a2V2aW4tZG9ja3giLCJpbmRleCI6NywibW9kdWxlSW5kZXgiOjUsIm1vZHVsZVRpdGxlIjoiRGVhbGluZyB3aXRoIERpZmZlcmVudCBWZXJzaW9ucyBhbmQgUHJvdGVjdGluZyB0aGUgRG9jdW1lbnRhdGlvbiIsIm5hbWUiOiI4NDE2NzQyMi00NjVlLTQwN2ItOGFiZi0yMGI3OTVhM2EwYTciLCJ0aXRsZSI6IkRlbW8gLSBQcm90ZWN0aW5nIFlvdXIgQVBJIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiNzcyNDYwODgtNjFjOS00M2FjLWJjNjUtN2IxYjY0ZWMwMjM5IiwiZHVyYXRpb24iOjI0NywiZm9ybWF0dGVkRHVyYXRpb24iOiI0OjA3IiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOmFhMWJiZTYxLTNiMTAtNGZlMC05ZTYzLTQ2NTllNjk2OWU2NTo4OmtldmluLWRvY2t4IiwiaW5kZXgiOjgsIm1vZHVsZUluZGV4Ijo1LCJtb2R1bGVUaXRsZSI6IkRlYWxpbmcgd2l0aCBEaWZmZXJlbnQgVmVyc2lvbnMgYW5kIFByb3RlY3RpbmcgdGhlIERvY3VtZW50YXRpb24iLCJuYW1lIjoiNzcyNDYwODgtNjFjOS00M2FjLWJjNjUtN2IxYjY0ZWMwMjM5IiwidGl0bGUiOiJEZW1vIC0gQWRkaW5nIEF1dGhlbnRpY2F0aW9uIFN1cHBvcnQgdG8gdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6ImNhNDE0MDIyLWY0NGItNDQ3Mi1hM2RhLTFhOGM5NDUzN2EzNCIsImR1cmF0aW9uIjo4OSwiZm9ybWF0dGVkRHVyYXRpb24iOiIxOjI5IiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOmFhMWJiZTYxLTNiMTAtNGZlMC05ZTYzLTQ2NTllNjk2OWU2NTo5OmtldmluLWRvY2t4IiwiaW5kZXgiOjksIm1vZHVsZUluZGV4Ijo1LCJtb2R1bGVUaXRsZSI6IkRlYWxpbmcgd2l0aCBEaWZmZXJlbnQgVmVyc2lvbnMgYW5kIFByb3RlY3RpbmcgdGhlIERvY3VtZW50YXRpb24iLCJuYW1lIjoiY2E0MTQwMjItZjQ0Yi00NDcyLWEzZGEtMWE4Yzk0NTM3YTM0IiwidGl0bGUiOiJTdW1tYXJ5Iiwid2F0Y2hlZCI6ZmFsc2V9XX0seyJuYW1lIjoiNzA3YmFlZDktY2Q4MS00NGM5LThlNTQtNTI4MGM3YjU0YTBlIiwidGl0bGUiOiJJbXByb3ZpbmcgWW91ciBEb2N1bWVudGF0aW9uIHdpdGggQWR2YW5jZWQgQ3VzdG9taXphdGlvbiIsImR1cmF0aW9uIjoxMDk1LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjE4OjE1IiwiYXV0aG9yIjoia2V2aW4tZG9ja3giLCJhdXRob3JpemVkIjp0cnVlLCJjbGlwcyI6W3siYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiZGZmZTMwMzMtMzc4OS00NmU5LTg5MTktMmRmYTRiYzdlNzZjIiwiZHVyYXRpb24iOjQ1LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjA6NDUiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6NzA3YmFlZDktY2Q4MS00NGM5LThlNTQtNTI4MGM3YjU0YTBlOjA6a2V2aW4tZG9ja3giLCJpbmRleCI6MCwibW9kdWxlSW5kZXgiOjYsIm1vZHVsZVRpdGxlIjoiSW1wcm92aW5nIFlvdXIgRG9jdW1lbnRhdGlvbiB3aXRoIEFkdmFuY2VkIEN1c3RvbWl6YXRpb24iLCJuYW1lIjoiZGZmZTMwMzMtMzc4OS00NmU5LTg5MTktMmRmYTRiYzdlNzZjIiwidGl0bGUiOiJDb21pbmcgVXAiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiIyYWQwOTNlYy02NjIwLTQ3NGYtOTMxYi1jODMxZTlhYmU3YTAiLCJkdXJhdGlvbiI6MzMsImZvcm1hdHRlZER1cmF0aW9uIjoiMDozMyIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjo3MDdiYWVkOS1jZDgxLTQ0YzktOGU1NC01MjgwYzdiNTRhMGU6MTprZXZpbi1kb2NreCIsImluZGV4IjoxLCJtb2R1bGVJbmRleCI6NiwibW9kdWxlVGl0bGUiOiJJbXByb3ZpbmcgWW91ciBEb2N1bWVudGF0aW9uIHdpdGggQWR2YW5jZWQgQ3VzdG9taXphdGlvbiIsIm5hbWUiOiIyYWQwOTNlYy02NjIwLTQ3NGYtOTMxYi1jODMxZTlhYmU3YTAiLCJ0aXRsZSI6IkVucmljaGluZyBDb21tZW50cyB3aXRoIE1hcmtkb3duIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiNjJjYWRiNjYtZjIzYS00NWQzLWFkNTItM2QzZDE3MTFmYjllIiwiZHVyYXRpb24iOjIwMywiZm9ybWF0dGVkRHVyYXRpb24iOiIzOjIzIiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjcwN2JhZWQ5LWNkODEtNDRjOS04ZTU0LTUyODBjN2I1NGEwZToyOmtldmluLWRvY2t4IiwiaW5kZXgiOjIsIm1vZHVsZUluZGV4Ijo2LCJtb2R1bGVUaXRsZSI6IkltcHJvdmluZyBZb3VyIERvY3VtZW50YXRpb24gd2l0aCBBZHZhbmNlZCBDdXN0b21pemF0aW9uIiwibmFtZSI6IjYyY2FkYjY2LWYyM2EtNDVkMy1hZDUyLTNkM2QxNzExZmI5ZSIsInRpdGxlIjoiRGVtbyAtIEVucmljaGluZyBDb21tZW50cyB3aXRoIE1hcmtkb3duIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiMmRkMTFlMzctOTkzYy00YjYwLTkwODctODVkNzQ1Y2EzYjQ1IiwiZHVyYXRpb24iOjEyNywiZm9ybWF0dGVkRHVyYXRpb24iOiIyOjA3IiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjcwN2JhZWQ5LWNkODEtNDRjOS04ZTU0LTUyODBjN2I1NGEwZTozOmtldmluLWRvY2t4IiwiaW5kZXgiOjMsIm1vZHVsZUluZGV4Ijo2LCJtb2R1bGVUaXRsZSI6IkltcHJvdmluZyBZb3VyIERvY3VtZW50YXRpb24gd2l0aCBBZHZhbmNlZCBDdXN0b21pemF0aW9uIiwibmFtZSI6IjJkZDExZTM3LTk5M2MtNGI2MC05MDg3LTg1ZDc0NWNhM2I0NSIsInRpdGxlIjoiRGVtbyAtIEJhc2ljIFVJIEN1c3RvbWl6YXRpb24gd2l0aCB0aGUgQ29uZmlndXJhdGlvbiBBUEkiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiI1OTcxZDYxMi03ZGYyLTQ3YjItYWRlNy04YTEwMGUxNGE0NjUiLCJkdXJhdGlvbiI6NDksImZvcm1hdHRlZER1cmF0aW9uIjoiMDo0OSIsImlkIjoiYXNwZG90bmV0LWNvcmUtYXBpLW9wZW5hcGktc3dhZ2dlcjo3MDdiYWVkOS1jZDgxLTQ0YzktOGU1NC01MjgwYzdiNTRhMGU6NDprZXZpbi1kb2NreCIsImluZGV4Ijo0LCJtb2R1bGVJbmRleCI6NiwibW9kdWxlVGl0bGUiOiJJbXByb3ZpbmcgWW91ciBEb2N1bWVudGF0aW9uIHdpdGggQWR2YW5jZWQgQ3VzdG9taXphdGlvbiIsIm5hbWUiOiI1OTcxZDYxMi03ZGYyLTQ3YjItYWRlNy04YTEwMGUxNGE0NjUiLCJ0aXRsZSI6IlN1cHBvcnRpbmcgRGVlcCBMaW5raW5nIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiMmJlN2U1ZDgtZjkxMS00NmVhLWI5OTUtMmQ1ZTY3YTYwY2MxIiwiZHVyYXRpb24iOjU5LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjA6NTkiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6NzA3YmFlZDktY2Q4MS00NGM5LThlNTQtNTI4MGM3YjU0YTBlOjU6a2V2aW4tZG9ja3giLCJpbmRleCI6NSwibW9kdWxlSW5kZXgiOjYsIm1vZHVsZVRpdGxlIjoiSW1wcm92aW5nIFlvdXIgRG9jdW1lbnRhdGlvbiB3aXRoIEFkdmFuY2VkIEN1c3RvbWl6YXRpb24iLCJuYW1lIjoiMmJlN2U1ZDgtZjkxMS00NmVhLWI5OTUtMmQ1ZTY3YTYwY2MxIiwidGl0bGUiOiJEZW1vIC0gU3VwcG9ydGluZyBEZWVwIExpbmtpbmciLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiI1MGE4ODc1Zi1kNTU1LTQwZjMtYTExNy1kNjk1ZjQ0NGYyM2QiLCJkdXJhdGlvbiI6MTM5LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjI6MTkiLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6NzA3YmFlZDktY2Q4MS00NGM5LThlNTQtNTI4MGM3YjU0YTBlOjY6a2V2aW4tZG9ja3giLCJpbmRleCI6NiwibW9kdWxlSW5kZXgiOjYsIm1vZHVsZVRpdGxlIjoiSW1wcm92aW5nIFlvdXIgRG9jdW1lbnRhdGlvbiB3aXRoIEFkdmFuY2VkIEN1c3RvbWl6YXRpb24iLCJuYW1lIjoiNTBhODg3NWYtZDU1NS00MGYzLWExMTctZDY5NWY0NDRmMjNkIiwidGl0bGUiOiJCcmFuZGluZyB0aGUgVUkiLCJ3YXRjaGVkIjpmYWxzZX0seyJhdXRob3JpemVkIjp0cnVlLCJjbGlwSWQiOiJhZjQxM2FhZC04N2NlLTQ1MGYtYTQ4My0xNTcxNDA3MzZiMmMiLCJkdXJhdGlvbiI6MTc3LCJmb3JtYXR0ZWREdXJhdGlvbiI6IjI6NTciLCJpZCI6ImFzcGRvdG5ldC1jb3JlLWFwaS1vcGVuYXBpLXN3YWdnZXI6NzA3YmFlZDktY2Q4MS00NGM5LThlNTQtNTI4MGM3YjU0YTBlOjc6a2V2aW4tZG9ja3giLCJpbmRleCI6NywibW9kdWxlSW5kZXgiOjYsIm1vZHVsZVRpdGxlIjoiSW1wcm92aW5nIFlvdXIgRG9jdW1lbnRhdGlvbiB3aXRoIEFkdmFuY2VkIEN1c3RvbWl6YXRpb24iLCJuYW1lIjoiYWY0MTNhYWQtODdjZS00NTBmLWE0ODMtMTU3MTQwNzM2YjJjIiwidGl0bGUiOiJEZW1vIC0gQnJhbmRpbmcgdGhlIFVJIGJ5IEluamVjdGluZyBDdXN0b20gQ1NTIiwid2F0Y2hlZCI6ZmFsc2V9LHsiYXV0aG9yaXplZCI6dHJ1ZSwiY2xpcElkIjoiMmE4YzRhNGItNjNkZi00MDk3LTg2MDEtYjZiZDczY2FhNDY1IiwiZHVyYXRpb24iOjE5MSwiZm9ybWF0dGVkRHVyYXRpb24iOiIzOjExIiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjcwN2JhZWQ5LWNkODEtNDRjOS04ZTU0LTUyODBjN2I1NGEwZTo4OmtldmluLWRvY2t4IiwiaW5kZXgiOjgsIm1vZHVsZUluZGV4Ijo2LCJtb2R1bGVUaXRsZSI6IkltcHJvdmluZyBZb3VyIERvY3VtZW50YXRpb24gd2l0aCBBZHZhbmNlZCBDdXN0b21pemF0aW9uIiwibmFtZSI6IjJhOGM0YTRiLTYzZGYtNDA5Ny04NjAxLWI2YmQ3M2NhYTQ2NSIsInRpdGxlIjoiRGVtbyAtIEJyYW5kaW5nIHRoZSBVSSBieSBJbmplY3RpbmcgYSBDdXN0b20gSW5kZXggUGFnZSIsIndhdGNoZWQiOmZhbHNlfSx7ImF1dGhvcml6ZWQiOnRydWUsImNsaXBJZCI6ImFmYTk1MTExLTgzNTgtNGI4Ny04OTIyLTdkZDg1OTA5OTA3ZiIsImR1cmF0aW9uIjo2OCwiZm9ybWF0dGVkRHVyYXRpb24iOiIxOjA4IiwiaWQiOiJhc3Bkb3RuZXQtY29yZS1hcGktb3BlbmFwaS1zd2FnZ2VyOjcwN2JhZWQ5LWNkODEtNDRjOS04ZTU0LTUyODBjN2I1NGEwZTo5OmtldmluLWRvY2t4IiwiaW5kZXgiOjksIm1vZHVsZUluZGV4Ijo2LCJtb2R1bGVUaXRsZSI6IkltcHJvdmluZyBZb3VyIERvY3VtZW50YXRpb24gd2l0aCBBZHZhbmNlZCBDdXN0b21pemF0aW9uIiwibmFtZSI6ImFmYTk1MTExLTgzNTgtNGI4Ny04OTIyLTdkZDg1OTA5OTA3ZiIsInRpdGxlIjoiU3VtbWFyeSIsIndhdGNoZWQiOmZhbHNlfV19XX19fX19
[download] Downloading playlist: Documenting an ASP.NET Core API with OpenAPI / Swagger
[pluralsight:course] playlist Documenting an ASP.NET Core API with OpenAPI / Swagger: Collected 61 video ids (downloading 61 of them)
[download] Downloading video 1 of 61
[pluralsight] Downloading login page
[pluralsight] Dumping request to https://app.pluralsight.com/id/
DQoNCg0KPCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiI+DQo8aGVhZD4NCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+d2luZG93Lk5SRVVNfHwoTlJFVU09e30pO05SRVVNLmluZm8gPSB7ImJlYWNvbiI6ImJhbS5uci1kYXRhLm5ldCIsImVycm9yQmVhY29uIjoiYmFtLm5yLWRhdGEubmV0IiwibGljZW5zZUtleSI6IjI3MDBhZjhhM2MiLCJhcHBsaWNhdGlvbklEIjoiODI5NTczNSIsInRyYW5zYWN0aW9uTmFtZSI6IloxWlJOMEVEQ0VNREFCVllXbDRjZmpWd1RUVlpCUTBvWDNaZlhVY1JYQTRLVlJCTUtGOVJWVXM9IiwicXVldWVUaW1lIjowLCJhcHBsaWNhdGlvblRpbWUiOjYsImFnZW50IjoiIiwiYXR0cyI6IiJ9PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPih3aW5kb3cuTlJFVU18fChOUkVVTT17fSkpLmxvYWRlcl9jb25maWc9e3hwaWQ6IlZ3VUdWbDVWR3dzQ1hWUlZCQVE9In07d2luZG93Lk5SRVVNfHwoTlJFVU09e30pLF9fbnJfcmVxdWlyZT1mdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcihlKXtpZighbltlXSl7dmFyIG89bltlXT17ZXhwb3J0czp7fX07dFtlXVswXS5jYWxsKG8uZXhwb3J0cyxmdW5jdGlvbihuKXt2YXIgbz10W2VdWzFdW25dO3JldHVybiByKG98fG4pfSxvLG8uZXhwb3J0cyl9cmV0dXJuIG5bZV0uZXhwb3J0c31pZigiZnVuY3Rpb24iPT10eXBlb2YgX19ucl9yZXF1aXJlKXJldHVybiBfX25yX3JlcXVpcmU7Zm9yKHZhciBvPTA7bzxlLmxlbmd0aDtvKyspcihlW29dKTtyZXR1cm4gcn0oezE6W2Z1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHQpe3RyeXtzLmNvbnNvbGUmJmNvbnNvbGUubG9nKHQpfWNhdGNoKG4pe319dmFyIG8saT10KCJlZSIpLGE9dCgxNikscz17fTt0cnl7bz1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiX19ucl9mbGFncyIpLnNwbGl0KCIsIiksY29uc29sZSYmImZ1bmN0aW9uIj09dHlwZW9mIGNvbnNvbGUubG9nJiYocy5jb25zb2xlPSEwLG8uaW5kZXhPZigiZGV2IikhPT0tMSYmKHMuZGV2PSEwKSxvLmluZGV4T2YoIm5yX2RldiIpIT09LTEmJihzLm5yRGV2PSEwKSl9Y2F0Y2goYyl7fXMubnJEZXYmJmkub24oImludGVybmFsLWVycm9yIixmdW5jdGlvbih0KXtyKHQuc3RhY2spfSkscy5kZXYmJmkub24oImZuLWVyciIsZnVuY3Rpb24odCxuLGUpe3IoZS5zdGFjayl9KSxzLmRldiYmKHIoIk5SIEFHRU5UIElOIERFVkVMT1BNRU5UIE1PREUiKSxyKCJmbGFnczogIithKHMsZnVuY3Rpb24odCxuKXtyZXR1cm4gdH0pLmpvaW4oIiwgIikpKX0se31dLDI6W2Z1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHQsbixlLHIscyl7dHJ5e3A/cC09MTpvKHN8fG5ldyBVbmNhdWdodEV4Y2VwdGlvbih0LG4sZSksITApfWNhdGNoKGYpe3RyeXtpKCJpZXJyIixbZixjLm5vdygpLCEwXSl9Y2F0Y2goZCl7fX1yZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdSYmdS5hcHBseSh0aGlzLGEoYXJndW1lbnRzKSl9ZnVuY3Rpb24gVW5jYXVnaHRFeGNlcHRpb24odCxuLGUpe3RoaXMubWVzc2FnZT10fHwiVW5jYXVnaHQgZXJyb3Igd2l0aCBubyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIix0aGlzLnNvdXJjZVVSTD1uLHRoaXMubGluZT1lfWZ1bmN0aW9uIG8odCxuKXt2YXIgZT1uP251bGw6Yy5ub3coKTtpKCJlcnIiLFt0LGVdKX12YXIgaT10KCJoYW5kbGUiKSxhPXQoMTcpLHM9dCgiZWUiKSxjPXQoImxvYWRlciIpLGY9dCgiZ29zIiksdT13aW5kb3cub25lcnJvcixkPSExLGw9Im5yQHNlZW5FcnJvciIscD0wO2MuZmVhdHVyZXMuZXJyPSEwLHQoMSksd2luZG93Lm9uZXJyb3I9cjt0cnl7dGhyb3cgbmV3IEVycm9yfWNhdGNoKGgpeyJzdGFjayJpbiBoJiYodCg4KSx0KDcpLCJhZGRFdmVudExpc3RlbmVyImluIHdpbmRvdyYmdCg1KSxjLnhocldyYXBwYWJsZSYmdCg5KSxkPSEwKX1zLm9uKCJmbi1zdGFydCIsZnVuY3Rpb24odCxuLGUpe2QmJihwKz0xKX0pLHMub24oImZuLWVyciIsZnVuY3Rpb24odCxuLGUpe2QmJiFlW2xdJiYoZihlLGwsZnVuY3Rpb24oKXtyZXR1cm4hMH0pLHRoaXMudGhyb3duPSEwLG8oZSkpfSkscy5vbigiZm4tZW5kIixmdW5jdGlvbigpe2QmJiF0aGlzLnRocm93biYmcD4wJiYocC09MSl9KSxzLm9uKCJpbnRlcm5hbC1lcnJvciIsZnVuY3Rpb24odCl7aSgiaWVyciIsW3QsYy5ub3coKSwhMF0pfSl9LHt9XSwzOltmdW5jdGlvbih0LG4sZSl7dCgibG9hZGVyIikuZmVhdHVyZXMuaW5zPSEwfSx7fV0sNDpbZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIodCl7fWlmKHdpbmRvdy5wZXJmb3JtYW5jZSYmd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZyYmd2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUpe3ZhciBvPXQoImVlIiksaT10KCJoYW5kbGUiKSxhPXQoOCkscz10KDcpLGM9ImxlYXJSZXNvdXJjZVRpbWluZ3MiLGY9ImFkZEV2ZW50TGlzdGVuZXIiLHU9InJlc291cmNldGltaW5nYnVmZmVyZnVsbCIsZD0iYnN0UmVzb3VyY2UiLGw9InJlc291cmNlIixwPSItc3RhcnQiLGg9Ii1lbmQiLG09ImZuIitwLHY9ImZuIitoLHc9ImJzdFRpbWVyIix5PSJwdXNoU3RhdGUiLGc9dCgibG9hZGVyIik7Zy5mZWF0dXJlcy5zdG49ITAsdCg2KTt2YXIgYj1OUkVVTS5vLkVWO28ub24obSxmdW5jdGlvbih0LG4pe3ZhciBlPXRbMF07ZSBpbnN0YW5jZW9mIGImJih0aGlzLmJzdFN0YXJ0PWcubm93KCkpfSksby5vbih2LGZ1bmN0aW9uKHQsbil7dmFyIGU9dFswXTtlIGluc3RhbmNlb2YgYiYmaSgiYnN0IixbZSxuLHRoaXMuYnN0U3RhcnQsZy5ub3coKV0pfSksYS5vbihtLGZ1bmN0aW9uKHQsbixlKXt0aGlzLmJzdFN0YXJ0PWcubm93KCksdGhpcy5ic3RUeXBlPWV9KSxhLm9uKHYsZnVuY3Rpb24odCxuKXtpKHcsW24sdGhpcy5ic3RTdGFydCxnLm5vdygpLHRoaXMuYnN0VHlwZV0pfSkscy5vbihtLGZ1bmN0aW9uKCl7dGhpcy5ic3RTdGFydD1nLm5vdygpfSkscy5vbih2LGZ1bmN0aW9uKHQsbil7aSh3LFtuLHRoaXMuYnN0U3RhcnQsZy5ub3coKSwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIl0pfSksby5vbih5K3AsZnVuY3Rpb24odCl7dGhpcy50aW1lPWcubm93KCksdGhpcy5zdGFydFBhdGg9bG9jYXRpb24ucGF0aG5hbWUrbG9jYXRpb24uaGFzaH0pLG8ub24oeStoLGZ1bmN0aW9uKHQpe2koImJzdEhpc3QiLFtsb2NhdGlvbi5wYXRobmFtZStsb2NhdGlvbi5oYXNoLHRoaXMuc3RhcnRQYXRoLHRoaXMudGltZV0pfSksZiBpbiB3aW5kb3cucGVyZm9ybWFuY2UmJih3aW5kb3cucGVyZm9ybWFuY2VbImMiK2NdP3dpbmRvdy5wZXJmb3JtYW5jZVtmXSh1LGZ1bmN0aW9uKHQpe2koZCxbd2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUobCldKSx3aW5kb3cucGVyZm9ybWFuY2VbImMiK2NdKCl9LCExKTp3aW5kb3cucGVyZm9ybWFuY2VbZl0oIndlYmtpdCIrdSxmdW5jdGlvbih0KXtpKGQsW3dpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKGwpXSksd2luZG93LnBlcmZvcm1hbmNlWyJ3ZWJraXRDIitjXSgpfSwhMSkpLGRvY3VtZW50W2ZdKCJzY3JvbGwiLHIse3Bhc3NpdmU6ITB9KSxkb2N1bWVudFtmXSgia2V5cHJlc3MiLHIsITEpLGRvY3VtZW50W2ZdKCJjbGljayIsciwhMSl9fSx7fV0sNTpbZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIodCl7Zm9yKHZhciBuPXQ7biYmIW4uaGFzT3duUHJvcGVydHkodSk7KW49T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pO24mJm8obil9ZnVuY3Rpb24gbyh0KXtzLmluUGxhY2UodCxbdSxkXSwiLSIsaSl9ZnVuY3Rpb24gaSh0LG4pe3JldHVybiB0WzFdfXZhciBhPXQoImVlIikuZ2V0KCJldmVudHMiKSxzPXQoMTkpKGEsITApLGM9dCgiZ29zIiksZj1YTUxIdHRwUmVxdWVzdCx1PSJhZGRFdmVudExpc3RlbmVyIixkPSJyZW1vdmVFdmVudExpc3RlbmVyIjtuLmV4cG9ydHM9YSwiZ2V0UHJvdG90eXBlT2YiaW4gT2JqZWN0PyhyKGRvY3VtZW50KSxyKHdpbmRvdykscihmLnByb3RvdHlwZSkpOmYucHJvdG90eXBlLmhhc093blByb3BlcnR5KHUpJiYobyh3aW5kb3cpLG8oZi5wcm90b3R5cGUpKSxhLm9uKHUrIi1zdGFydCIsZnVuY3Rpb24odCxuKXt2YXIgZT10WzFdLHI9YyhlLCJuckB3cmFwcGVkIixmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5oYW5kbGVFdmVudClyZXR1cm4gZS5oYW5kbGVFdmVudC5hcHBseShlLGFyZ3VtZW50cyl9dmFyIG49e29iamVjdDp0LCJmdW5jdGlvbiI6ZX1bdHlwZW9mIGVdO3JldHVybiBuP3MobiwiZm4tIixudWxsLG4ubmFtZXx8ImFub255bW91cyIpOmV9KTt0aGlzLndyYXBwZWQ9dFsxXT1yfSksYS5vbihkKyItc3RhcnQiLGZ1bmN0aW9uKHQpe3RbMV09dGhpcy53cmFwcGVkfHx0WzFdfSl9LHt9XSw2OltmdW5jdGlvbih0LG4sZSl7dmFyIHI9dCgiZWUiKS5nZXQoImhpc3RvcnkiKSxvPXQoMTkpKHIpO24uZXhwb3J0cz1yLG8uaW5QbGFjZSh3aW5kb3cuaGlzdG9yeSxbInB1c2hTdGF0ZSIsInJlcGxhY2VTdGF0ZSJdLCItIil9LHt9XSw3OltmdW5jdGlvbih0LG4sZSl7dmFyIHI9dCgiZWUiKS5nZXQoInJhZiIpLG89dCgxOSkociksaT0iZXF1ZXN0QW5pbWF0aW9uRnJhbWUiO24uZXhwb3J0cz1yLG8uaW5QbGFjZSh3aW5kb3csWyJyIitpLCJtb3pSIitpLCJ3ZWJraXRSIitpLCJtc1IiK2ldLCJyYWYtIiksci5vbigicmFmLXN0YXJ0IixmdW5jdGlvbih0KXt0WzBdPW8odFswXSwiZm4tIil9KX0se31dLDg6W2Z1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHQsbixlKXt0WzBdPWEodFswXSwiZm4tIixudWxsLGUpfWZ1bmN0aW9uIG8odCxuLGUpe3RoaXMubWV0aG9kPWUsdGhpcy50aW1lckR1cmF0aW9uPWlzTmFOKHRbMV0pPzA6K3RbMV0sdFswXT1hKHRbMF0sImZuLSIsdGhpcyxlKX12YXIgaT10KCJlZSIpLmdldCgidGltZXIiKSxhPXQoMTkpKGkpLHM9InNldFRpbWVvdXQiLGM9InNldEludGVydmFsIixmPSJjbGVhclRpbWVvdXQiLHU9Ii1zdGFydCIsZD0iLSI7bi5leHBvcnRzPWksYS5pblBsYWNlKHdpbmRvdyxbcywic2V0SW1tZWRpYXRlIl0scytkKSxhLmluUGxhY2Uod2luZG93LFtjXSxjK2QpLGEuaW5QbGFjZSh3aW5kb3csW2YsImNsZWFySW1tZWRpYXRlIl0sZitkKSxpLm9uKGMrdSxyKSxpLm9uKHMrdSxvKX0se31dLDk6W2Z1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHQsbil7ZC5pblBsYWNlKG4sWyJvbnJlYWR5c3RhdGVjaGFuZ2UiXSwiZm4tIixzKX1mdW5jdGlvbiBvKCl7dmFyIHQ9dGhpcyxuPXUuY29udGV4dCh0KTt0LnJlYWR5U3RhdGU+MyYmIW4ucmVzb2x2ZWQmJihuLnJlc29sdmVkPSEwLHUuZW1pdCgieGhyLXJlc29sdmVkIixbXSx0KSksZC5pblBsYWNlKHQseSwiZm4tIixzKX1mdW5jdGlvbiBpKHQpe2cucHVzaCh0KSxoJiYoeD94LnRoZW4oYSk6dj92KGEpOihFPS1FLE8uZGF0YT1FKSl9ZnVuY3Rpb24gYSgpe2Zvcih2YXIgdD0wO3Q8Zy5sZW5ndGg7dCsrKXIoW10sZ1t0XSk7Zy5sZW5ndGgmJihnPVtdKX1mdW5jdGlvbiBzKHQsbil7cmV0dXJuIG59ZnVuY3Rpb24gYyh0LG4pe2Zvcih2YXIgZSBpbiB0KW5bZV09dFtlXTtyZXR1cm4gbn10KDUpO3ZhciBmPXQoImVlIiksdT1mLmdldCgieGhyIiksZD10KDE5KSh1KSxsPU5SRVVNLm8scD1sLlhIUixoPWwuTU8sbT1sLlBSLHY9bC5TSSx3PSJyZWFkeXN0YXRlY2hhbmdlIix5PVsib25sb2FkIiwib25lcnJvciIsIm9uYWJvcnQiLCJvbmxvYWRzdGFydCIsIm9ubG9hZGVuZCIsIm9ucHJvZ3Jlc3MiLCJvbnRpbWVvdXQiXSxnPVtdO24uZXhwb3J0cz11O3ZhciBiPXdpbmRvdy5YTUxIdHRwUmVxdWVzdD1mdW5jdGlvbih0KXt2YXIgbj1uZXcgcCh0KTt0cnl7dS5lbWl0KCJuZXcteGhyIixbbl0sbiksbi5hZGRFdmVudExpc3RlbmVyKHcsbywhMSl9Y2F0Y2goZSl7dHJ5e3UuZW1pdCgiaW50ZXJuYWwtZXJyb3IiLFtlXSl9Y2F0Y2gocil7fX1yZXR1cm4gbn07aWYoYyhwLGIpLGIucHJvdG90eXBlPXAucHJvdG90eXBlLGQuaW5QbGFjZShiLnByb3RvdHlwZSxbIm9wZW4iLCJzZW5kIl0sIi14aHItIixzKSx1Lm9uKCJzZW5kLXhoci1zdGFydCIsZnVuY3Rpb24odCxuKXtyKHQsbiksaShuKX0pLHUub24oIm9wZW4teGhyLXN0YXJ0IixyKSxoKXt2YXIgeD1tJiZtLnJlc29sdmUoKTtpZighdiYmIW0pe3ZhciBFPTEsTz1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShFKTtuZXcgaChhKS5vYnNlcnZlKE8se2NoYXJhY3RlckRhdGE6ITB9KX19ZWxzZSBmLm9uKCJmbi1lbmQiLGZ1bmN0aW9uKHQpe3RbMF0mJnRbMF0udHlwZT09PXd8fGEoKX0pfSx7fV0sMTA6W2Z1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHQpe3ZhciBuPXRoaXMucGFyYW1zLGU9dGhpcy5tZXRyaWNzO2lmKCF0aGlzLmVuZGVkKXt0aGlzLmVuZGVkPSEwO2Zvcih2YXIgcj0wO3I8ZDtyKyspdC5yZW1vdmVFdmVudExpc3RlbmVyKHVbcl0sdGhpcy5saXN0ZW5lciwhMSk7aWYoIW4uYWJvcnRlZCl7aWYoZS5kdXJhdGlvbj1hLm5vdygpLXRoaXMuc3RhcnRUaW1lLDQ9PT10LnJlYWR5U3RhdGUpe24uc3RhdHVzPXQuc3RhdHVzO3ZhciBpPW8odCx0aGlzLmxhc3RTaXplKTtpZihpJiYoZS5yeFNpemU9aSksdGhpcy5zYW1lT3JpZ2luKXt2YXIgYz10LmdldFJlc3BvbnNlSGVhZGVyKCJYLU5ld1JlbGljLUFwcC1EYXRhIik7YyYmKG4uY2F0PWMuc3BsaXQoIiwgIikucG9wKCkpfX1lbHNlIG4uc3RhdHVzPTA7ZS5jYlRpbWU9dGhpcy5jYlRpbWUsZi5lbWl0KCJ4aHItZG9uZSIsW3RdLHQpLHMoInhociIsW24sZSx0aGlzLnN0YXJ0VGltZV0pfX19ZnVuY3Rpb24gbyh0LG4pe3ZhciBlPXQucmVzcG9uc2VUeXBlO2lmKCJqc29uIj09PWUmJm51bGwhPT1uKXJldHVybiBuO3ZhciByPSJhcnJheWJ1ZmZlciI9PT1lfHwiYmxvYiI9PT1lfHwianNvbiI9PT1lP3QucmVzcG9uc2U6dC5yZXNwb25zZVRleHQ7cmV0dXJuIGgocil9ZnVuY3Rpb24gaSh0LG4pe3ZhciBlPWMobikscj10LnBhcmFtcztyLmhvc3Q9ZS5ob3N0bmFtZSsiOiIrZS5wb3J0LHIucGF0aG5hbWU9ZS5wYXRobmFtZSx0LnNhbWVPcmlnaW49ZS5zYW1lT3JpZ2lufXZhciBhPXQoImxvYWRlciIpO2lmKGEueGhyV3JhcHBhYmxlKXt2YXIgcz10KCJoYW5kbGUiKSxjPXQoMTEpLGY9dCgiZWUiKSx1PVsibG9hZCIsImVycm9yIiwiYWJvcnQiLCJ0aW1lb3V0Il0sZD11Lmxlbmd0aCxsPXQoImlkIikscD10KDE0KSxoPXQoMTMpLG09d2luZG93LlhNTEh0dHBSZXF1ZXN0O2EuZmVhdHVyZXMueGhyPSEwLHQoOSksZi5vbigibmV3LXhociIsZnVuY3Rpb24odCl7dmFyIG49dGhpcztuLnRvdGFsQ2JzPTAsbi5jYWxsZWQ9MCxuLmNiVGltZT0wLG4uZW5kPXIsbi5lbmRlZD0hMSxuLnhockd1aWRzPXt9LG4ubGFzdFNpemU9bnVsbCxwJiYocD4zNHx8cDwxMCl8fHdpbmRvdy5vcGVyYXx8dC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZnVuY3Rpb24odCl7bi5sYXN0U2l6ZT10LmxvYWRlZH0sITEpfSksZi5vbigib3Blbi14aHItc3RhcnQiLGZ1bmN0aW9uKHQpe3RoaXMucGFyYW1zPXttZXRob2Q6dFswXX0saSh0aGlzLHRbMV0pLHRoaXMubWV0cmljcz17fX0pLGYub24oIm9wZW4teGhyLWVuZCIsZnVuY3Rpb24odCxuKXsibG9hZGVyX2NvbmZpZyJpbiBOUkVVTSYmInhwaWQiaW4gTlJFVU0ubG9hZGVyX2NvbmZpZyYmdGhpcy5zYW1lT3JpZ2luJiZuLnNldFJlcXVlc3RIZWFkZXIoIlgtTmV3UmVsaWMtSUQiLE5SRVVNLmxvYWRlcl9jb25maWcueHBpZCl9KSxmLm9uKCJzZW5kLXhoci1zdGFydCIsZnVuY3Rpb24odCxuKXt2YXIgZT10aGlzLm1ldHJpY3Mscj10WzBdLG89dGhpcztpZihlJiZyKXt2YXIgaT1oKHIpO2kmJihlLnR4U2l6ZT1pKX10aGlzLnN0YXJ0VGltZT1hLm5vdygpLHRoaXMubGlzdGVuZXI9ZnVuY3Rpb24odCl7dHJ5eyJhYm9ydCI9PT10LnR5cGUmJihvLnBhcmFtcy5hYm9ydGVkPSEwKSwoImxvYWQiIT09dC50eXBlfHxvLmNhbGxlZD09PW8udG90YWxDYnMmJihvLm9ubG9hZENhbGxlZHx8ImZ1bmN0aW9uIiE9dHlwZW9mIG4ub25sb2FkKSkmJm8uZW5kKG4pfWNhdGNoKGUpe3RyeXtmLmVtaXQoImludGVybmFsLWVycm9yIixbZV0pfWNhdGNoKHIpe319fTtmb3IodmFyIHM9MDtzPGQ7cysrKW4uYWRkRXZlbnRMaXN0ZW5lcih1W3NdLHRoaXMubGlzdGVuZXIsITEpfSksZi5vbigieGhyLWNiLXRpbWUiLGZ1bmN0aW9uKHQsbixlKXt0aGlzLmNiVGltZSs9dCxuP3RoaXMub25sb2FkQ2FsbGVkPSEwOnRoaXMuY2FsbGVkKz0xLHRoaXMuY2FsbGVkIT09dGhpcy50b3RhbENic3x8IXRoaXMub25sb2FkQ2FsbGVkJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5vbmxvYWR8fHRoaXMuZW5kKGUpfSksZi5vbigieGhyLWxvYWQtYWRkZWQiLGZ1bmN0aW9uKHQsbil7dmFyIGU9IiIrbCh0KSshIW47dGhpcy54aHJHdWlkcyYmIXRoaXMueGhyR3VpZHNbZV0mJih0aGlzLnhockd1aWRzW2VdPSEwLHRoaXMudG90YWxDYnMrPTEpfSksZi5vbigieGhyLWxvYWQtcmVtb3ZlZCIsZnVuY3Rpb24odCxuKXt2YXIgZT0iIitsKHQpKyEhbjt0aGlzLnhockd1aWRzJiZ0aGlzLnhockd1aWRzW2VdJiYoZGVsZXRlIHRoaXMueGhyR3VpZHNbZV0sdGhpcy50b3RhbENicy09MSl9KSxmLm9uKCJhZGRFdmVudExpc3RlbmVyLWVuZCIsZnVuY3Rpb24odCxuKXtuIGluc3RhbmNlb2YgbSYmImxvYWQiPT09dFswXSYmZi5lbWl0KCJ4aHItbG9hZC1hZGRlZCIsW3RbMV0sdFsyXV0sbil9KSxmLm9uKCJyZW1vdmVFdmVudExpc3RlbmVyLWVuZCIsZnVuY3Rpb24odCxuKXtuIGluc3RhbmNlb2YgbSYmImxvYWQiPT09dFswXSYmZi5lbWl0KCJ4aHItbG9hZC1yZW1vdmVkIixbdFsxXSx0WzJdXSxuKX0pLGYub24oImZuLXN0YXJ0IixmdW5jdGlvbih0LG4sZSl7biBpbnN0YW5jZW9mIG0mJigib25sb2FkIj09PWUmJih0aGlzLm9ubG9hZD0hMCksKCJsb2FkIj09PSh0WzBdJiZ0WzBdLnR5cGUpfHx0aGlzLm9ubG9hZCkmJih0aGlzLnhockNiU3RhcnQ9YS5ub3coKSkpfSksZi5vbigiZm4tZW5kIixmdW5jdGlvbih0LG4pe3RoaXMueGhyQ2JTdGFydCYmZi5lbWl0KCJ4aHItY2ItdGltZSIsW2Eubm93KCktdGhpcy54aHJDYlN0YXJ0LHRoaXMub25sb2FkLG5dLG4pfSl9fSx7fV0sMTE6W2Z1bmN0aW9uKHQsbixlKXtuLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLGU9d2luZG93LmxvY2F0aW9uLHI9e307bi5ocmVmPXQsci5wb3J0PW4ucG9ydDt2YXIgbz1uLmhyZWYuc3BsaXQoIjovLyIpOyFyLnBvcnQmJm9bMV0mJihyLnBvcnQ9b1sxXS5zcGxpdCgiLyIpWzBdLnNwbGl0KCJAIikucG9wKCkuc3BsaXQoIjoiKVsxXSksci5wb3J0JiYiMCIhPT1yLnBvcnR8fChyLnBvcnQ9Imh0dHBzIj09PW9bMF0/IjQ0MyI6IjgwIiksci5ob3N0bmFtZT1uLmhvc3RuYW1lfHxlLmhvc3RuYW1lLHIucGF0aG5hbWU9bi5wYXRobmFtZSxyLnByb3RvY29sPW9bMF0sIi8iIT09ci5wYXRobmFtZS5jaGFyQXQoMCkmJihyLnBhdGhuYW1lPSIvIityLnBhdGhuYW1lKTt2YXIgaT0hbi5wcm90b2NvbHx8IjoiPT09bi5wcm90b2NvbHx8bi5wcm90b2NvbD09PWUucHJvdG9jb2wsYT1uLmhvc3RuYW1lPT09ZG9jdW1lbnQuZG9tYWluJiZuLnBvcnQ9PT1lLnBvcnQ7cmV0dXJuIHIuc2FtZU9yaWdpbj1pJiYoIW4uaG9zdG5hbWV8fGEpLHJ9fSx7fV0sMTI6W2Z1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKCl7fWZ1bmN0aW9uIG8odCxuLGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBpKHQsW2Yubm93KCldLmNvbmNhdChzKGFyZ3VtZW50cykpLG4/bnVsbDp0aGlzLGUpLG4/dm9pZCAwOnRoaXN9fXZhciBpPXQoImhhbmRsZSIpLGE9dCgxNikscz10KDE3KSxjPXQoImVlIikuZ2V0KCJ0cmFjZXIiKSxmPXQoImxvYWRlciIpLHU9TlJFVU07InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cubmV3cmVsaWMmJihuZXdyZWxpYz11KTt2YXIgZD1bInNldFBhZ2VWaWV3TmFtZSIsInNldEN1c3RvbUF0dHJpYnV0ZSIsInNldEVycm9ySGFuZGxlciIsImZpbmlzaGVkIiwiYWRkVG9UcmFjZSIsImlubGluZUhpdCIsImFkZFJlbGVhc2UiXSxsPSJhcGktIixwPWwrIml4bi0iO2EoZCxmdW5jdGlvbih0LG4pe3Vbbl09byhsK24sITAsImFwaSIpfSksdS5hZGRQYWdlQWN0aW9uPW8obCsiYWRkUGFnZUFjdGlvbiIsITApLHUuc2V0Q3VycmVudFJvdXRlTmFtZT1vKGwrInJvdXRlTmFtZSIsITApLG4uZXhwb3J0cz1uZXdyZWxpYyx1LmludGVyYWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuKG5ldyByKS5nZXQoKX07dmFyIGg9ci5wcm90b3R5cGU9e2NyZWF0ZVRyYWNlcjpmdW5jdGlvbih0LG4pe3ZhciBlPXt9LHI9dGhpcyxvPSJmdW5jdGlvbiI9PXR5cGVvZiBuO3JldHVybiBpKHArInRyYWNlciIsW2Yubm93KCksdCxlXSxyKSxmdW5jdGlvbigpe2lmKGMuZW1pdCgobz8iIjoibm8tIikrImZuLXN0YXJ0IixbZi5ub3coKSxyLG9dLGUpLG8pdHJ5e3JldHVybiBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jYXRjaCh0KXt0aHJvdyBjLmVtaXQoImZuLWVyciIsW2FyZ3VtZW50cyx0aGlzLHRdLGUpLHR9ZmluYWxseXtjLmVtaXQoImZuLWVuZCIsW2Yubm93KCldLGUpfX19fTthKCJhY3Rpb25UZXh0LHNldE5hbWUsc2V0QXR0cmlidXRlLHNhdmUsaWdub3JlLG9uRW5kLGdldENvbnRleHQsZW5kLGdldCIuc3BsaXQoIiwiKSxmdW5jdGlvbih0LG4pe2hbbl09byhwK24pfSksbmV3cmVsaWMubm90aWNlRXJyb3I9ZnVuY3Rpb24odCxuKXsic3RyaW5nIj09dHlwZW9mIHQmJih0PW5ldyBFcnJvcih0KSksaSgiZXJyIixbdCxmLm5vdygpLCExLG5dKX19LHt9XSwxMzpbZnVuY3Rpb24odCxuLGUpe24uZXhwb3J0cz1mdW5jdGlvbih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQmJnQubGVuZ3RoKXJldHVybiB0Lmxlbmd0aDtpZigib2JqZWN0Ij09dHlwZW9mIHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJnQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmdC5ieXRlTGVuZ3RoKXJldHVybiB0LmJ5dGVMZW5ndGg7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiZ0IGluc3RhbmNlb2YgQmxvYiYmdC5zaXplKXJldHVybiB0LnNpemU7aWYoISgidW5kZWZpbmVkIiE9dHlwZW9mIEZvcm1EYXRhJiZ0IGluc3RhbmNlb2YgRm9ybURhdGEpKXRyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCkubGVuZ3RofWNhdGNoKG4pe3JldHVybn19fX0se31dLDE0OltmdW5jdGlvbih0LG4sZSl7dmFyIHI9MCxvPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0ZpcmVmb3hbXC9cc10oXGQrXC5cZCspLyk7byYmKHI9K29bMV0pLG4uZXhwb3J0cz1yfSx7fV0sMTU6W2Z1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHQsbil7aWYoIW8pcmV0dXJuITE7aWYodCE9PW8pcmV0dXJuITE7aWYoIW4pcmV0dXJuITA7aWYoIWkpcmV0dXJuITE7Zm9yKHZhciBlPWkuc3BsaXQoIi4iKSxyPW4uc3BsaXQoIi4iKSxhPTA7YTxyLmxlbmd0aDthKyspaWYoclthXSE9PWVbYV0pcmV0dXJuITE7cmV0dXJuITB9dmFyIG89bnVsbCxpPW51bGwsYT0vVmVyc2lvblwvKFxTKylccytTYWZhcmkvO2lmKG5hdmlnYXRvci51c2VyQWdlbnQpe3ZhciBzPW5hdmlnYXRvci51c2VyQWdlbnQsYz1zLm1hdGNoKGEpO2MmJnMuaW5kZXhPZigiQ2hyb21lIik9PT0tMSYmcy5pbmRleE9mKCJDaHJvbWl1bSIpPT09LTEmJihvPSJTYWZhcmkiLGk9Y1sxXSl9bi5leHBvcnRzPXthZ2VudDpvLHZlcnNpb246aSxtYXRjaDpyfX0se31dLDE2OltmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcih0LG4pe3ZhciBlPVtdLHI9IiIsaT0wO2ZvcihyIGluIHQpby5jYWxsKHQscikmJihlW2ldPW4ocix0W3JdKSxpKz0xKTtyZXR1cm4gZX12YXIgbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O24uZXhwb3J0cz1yfSx7fV0sMTc6W2Z1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHQsbixlKXtufHwobj0wKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPXQ/dC5sZW5ndGg6MCk7Zm9yKHZhciByPS0xLG89ZS1ufHwwLGk9QXJyYXkobzwwPzA6byk7KytyPG87KWlbcl09dFtuK3JdO3JldHVybiBpfW4uZXhwb3J0cz1yfSx7fV0sMTg6W2Z1bmN0aW9uKHQsbixlKXtuLmV4cG9ydHM9e2V4aXN0czoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5wZXJmb3JtYW5jZSYmd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZyYmInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydH19LHt9XSwxOTpbZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuISh0JiZ0IGluc3RhbmNlb2YgRnVuY3Rpb24mJnQuYXBwbHkmJiF0W2FdKX12YXIgbz10KCJlZSIpLGk9dCgxNyksYT0ibnJAb3JpZ2luYWwiLHM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxjPSExO24uZXhwb3J0cz1mdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUodCxuLGUsbyl7ZnVuY3Rpb24gbnJXcmFwcGVyKCl7dmFyIHIsYSxzLGM7dHJ5e2E9dGhpcyxyPWkoYXJndW1lbnRzKSxzPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2UocixhKTplfHx7fX1jYXRjaChmKXtsKFtmLCIiLFtyLGEsb10sc10pfXUobisic3RhcnQiLFtyLGEsb10scyk7dHJ5e3JldHVybiBjPXQuYXBwbHkoYSxyKX1jYXRjaChkKXt0aHJvdyB1KG4rImVyciIsW3IsYSxkXSxzKSxkfWZpbmFsbHl7dShuKyJlbmQiLFtyLGEsY10scyl9fXJldHVybiByKHQpP3Q6KG58fChuPSIiKSxucldyYXBwZXJbYV09dCxkKHQsbnJXcmFwcGVyKSxucldyYXBwZXIpfWZ1bmN0aW9uIGYodCxuLG8saSl7b3x8KG89IiIpO3ZhciBhLHMsYyxmPSItIj09PW8uY2hhckF0KDApO2ZvcihjPTA7YzxuLmxlbmd0aDtjKyspcz1uW2NdLGE9dFtzXSxyKGEpfHwodFtzXT1lKGEsZj9zK286byxpLHMpKX1mdW5jdGlvbiB1KGUscixvKXtpZighY3x8bil7dmFyIGk9YztjPSEwO3RyeXt0LmVtaXQoZSxyLG8sbil9Y2F0Y2goYSl7bChbYSxlLHIsb10pfWM9aX19ZnVuY3Rpb24gZCh0LG4pe2lmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmtleXMpdHJ5e3ZhciBlPU9iamVjdC5rZXlzKHQpO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbZV19LHNldDpmdW5jdGlvbihuKXtyZXR1cm4gdFtlXT1uLG59fSl9KSxufWNhdGNoKHIpe2woW3JdKX1mb3IodmFyIG8gaW4gdClzLmNhbGwodCxvKSYmKG5bb109dFtvXSk7cmV0dXJuIG59ZnVuY3Rpb24gbChuKXt0cnl7dC5lbWl0KCJpbnRlcm5hbC1lcnJvciIsbil9Y2F0Y2goZSl7fX1yZXR1cm4gdHx8KHQ9byksZS5pblBsYWNlPWYsZS5mbGFnPWEsZX19LHt9XSxlZTpbZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIoKXt9ZnVuY3Rpb24gbyh0KXtmdW5jdGlvbiBuKHQpe3JldHVybiB0JiZ0IGluc3RhbmNlb2Ygcj90OnQ/Yyh0LHMsaSk6aSgpfWZ1bmN0aW9uIGUoZSxyLG8saSl7aWYoIWwuYWJvcnRlZHx8aSl7dCYmdChlLHIsbyk7Zm9yKHZhciBhPW4obykscz1tKGUpLGM9cy5sZW5ndGgsZj0wO2Y8YztmKyspc1tmXS5hcHBseShhLHIpO3ZhciBkPXVbZ1tlXV07cmV0dXJuIGQmJmQucHVzaChbYixlLHIsYV0pLGF9fWZ1bmN0aW9uIHAodCxuKXt5W3RdPW0odCkuY29uY2F0KG4pfWZ1bmN0aW9uIGgodCxuKXt2YXIgZT15W3RdO2lmKGUpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZVtyXT09PW4mJmUuc3BsaWNlKHIsMSl9ZnVuY3Rpb24gbSh0KXtyZXR1cm4geVt0XXx8W119ZnVuY3Rpb24gdih0KXtyZXR1cm4gZFt0XT1kW3RdfHxvKGUpfWZ1bmN0aW9uIHcodCxuKXtmKHQsZnVuY3Rpb24odCxlKXtuPW58fCJmZWF0dXJlIixnW2VdPW4sbiBpbiB1fHwodVtuXT1bXSl9KX12YXIgeT17fSxnPXt9LGI9e29uOnAsYWRkRXZlbnRMaXN0ZW5lcjpwLHJlbW92ZUV2ZW50TGlzdGVuZXI6aCxlbWl0OmUsZ2V0OnYsbGlzdGVuZXJzOm0sY29udGV4dDpuLGJ1ZmZlcjp3LGFib3J0OmEsYWJvcnRlZDohMX07cmV0dXJuIGJ9ZnVuY3Rpb24gaSgpe3JldHVybiBuZXcgcn1mdW5jdGlvbiBhKCl7KHUuYXBpfHx1LmZlYXR1cmUpJiYobC5hYm9ydGVkPSEwLHU9bC5iYWNrbG9nPXt9KX12YXIgcz0ibnJAY29udGV4dCIsYz10KCJnb3MiKSxmPXQoMTYpLHU9e30sZD17fSxsPW4uZXhwb3J0cz1vKCk7bC5iYWNrbG9nPXV9LHt9XSxnb3M6W2Z1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHQsbixlKXtpZihvLmNhbGwodCxuKSlyZXR1cm4gdFtuXTt2YXIgcj1lKCk7aWYoT2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3Qua2V5cyl0cnl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4se3ZhbHVlOnIsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMX0pLHJ9Y2F0Y2goaSl7fXJldHVybiB0W25dPXIscn12YXIgbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O24uZXhwb3J0cz1yfSx7fV0saGFuZGxlOltmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcih0LG4sZSxyKXtvLmJ1ZmZlcihbdF0sciksby5lbWl0KHQsbixlKX12YXIgbz10KCJlZSIpLmdldCgiaGFuZGxlIik7bi5leHBvcnRzPXIsci5lZT1vfSx7fV0saWQ6W2Z1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHQpe3ZhciBuPXR5cGVvZiB0O3JldHVybiF0fHwib2JqZWN0IiE9PW4mJiJmdW5jdGlvbiIhPT1uPy0xOnQ9PT13aW5kb3c/MDphKHQsaSxmdW5jdGlvbigpe3JldHVybiBvKyt9KX12YXIgbz0xLGk9Im5yQGlkIixhPXQoImdvcyIpO24uZXhwb3J0cz1yfSx7fV0sbG9hZGVyOltmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcigpe2lmKCFFKyspe3ZhciB0PXguaW5mbz1OUkVVTS5pbmZvLG49cC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07aWYoc2V0VGltZW91dCh1LmFib3J0LDNlNCksISh0JiZ0LmxpY2Vuc2VLZXkmJnQuYXBwbGljYXRpb25JRCYmbikpcmV0dXJuIHUuYWJvcnQoKTtmKGcsZnVuY3Rpb24obixlKXt0W25dfHwodFtuXT1lKX0pLGMoIm1hcmsiLFsib25sb2FkIixhKCkreC5vZmZzZXRdLG51bGwsImFwaSIpO3ZhciBlPXAuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ZS5zcmM9Imh0dHBzOi8vIit0LmFnZW50LG4ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSxuKX19ZnVuY3Rpb24gbygpeyJjb21wbGV0ZSI9PT1wLnJlYWR5U3RhdGUmJmkoKX1mdW5jdGlvbiBpKCl7YygibWFyayIsWyJkb21Db250ZW50IixhKCkreC5vZmZzZXRdLG51bGwsImFwaSIpfWZ1bmN0aW9uIGEoKXtyZXR1cm4gTy5leGlzdHMmJnBlcmZvcm1hbmNlLm5vdz9NYXRoLnJvdW5kKHBlcmZvcm1hbmNlLm5vdygpKToocz1NYXRoLm1heCgobmV3IERhdGUpLmdldFRpbWUoKSxzKSkteC5vZmZzZXR9dmFyIHM9KG5ldyBEYXRlKS5nZXRUaW1lKCksYz10KCJoYW5kbGUiKSxmPXQoMTYpLHU9dCgiZWUiKSxkPXQoMTUpLGw9d2luZG93LHA9bC5kb2N1bWVudCxoPSJhZGRFdmVudExpc3RlbmVyIixtPSJhdHRhY2hFdmVudCIsdj1sLlhNTEh0dHBSZXF1ZXN0LHc9diYmdi5wcm90b3R5cGU7TlJFVU0ubz17U1Q6c2V0VGltZW91dCxTSTpsLnNldEltbWVkaWF0ZSxDVDpjbGVhclRpbWVvdXQsWEhSOnYsUkVROmwuUmVxdWVzdCxFVjpsLkV2ZW50LFBSOmwuUHJvbWlzZSxNTzpsLk11dGF0aW9uT2JzZXJ2ZXJ9O3ZhciB5PSIiK2xvY2F0aW9uLGc9e2JlYWNvbjoiYmFtLm5yLWRhdGEubmV0IixlcnJvckJlYWNvbjoiYmFtLm5yLWRhdGEubmV0IixhZ2VudDoianMtYWdlbnQubmV3cmVsaWMuY29tL25yLTExMTgubWluLmpzIn0sYj12JiZ3JiZ3W2hdJiYhL0NyaU9TLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHg9bi5leHBvcnRzPXtvZmZzZXQ6cyxub3c6YSxvcmlnaW46eSxmZWF0dXJlczp7fSx4aHJXcmFwcGFibGU6Yix1c2VyQWdlbnQ6ZH07dCgxMikscFtoXT8ocFtoXSgiRE9NQ29udGVudExvYWRlZCIsaSwhMSksbFtoXSgibG9hZCIsciwhMSkpOihwW21dKCJvbnJlYWR5c3RhdGVjaGFuZ2UiLG8pLGxbbV0oIm9ubG9hZCIscikpLGMoIm1hcmsiLFsiZmlyc3RieXRlIixzXSxudWxsLCJhcGkiKTt2YXIgRT0wLE89dCgxOCl9LHt9XX0se30sWyJsb2FkZXIiLDIsMTAsNCwzXSk7PC9zY3JpcHQ+DQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEiPg0KICAgIDx0aXRsZT5TaWduIEluIC0gUGx1cmFsc2lnaHQ8L3RpdGxlPg0KICAgIA0KDQo8c2NyaXB0IHNyYz0iLy9hc3NldHMuYWRvYmVkdG0uY29tLzJjNWYyYjMwNzYyYWU2MjM3NzkxNmMwOTYxMmNkOWQ2MDA1NGZiYTkvc2F0ZWxsaXRlTGliLTNmMjAwMWY4ODMxNTYxMGQyOTVlNDgyNjA3ZjdkMDAzYzg2MjdkMDguanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAgICFmdW5jdGlvbigpIHsNCiAgICAgICAgdmFyIGFuYWx5dGljcyA9IHdpbmRvdy5hbmFseXRpY3MgPSB3aW5kb3cuYW5hbHl0aWNzIHx8IFtdOw0KICAgICAgICBpZiAoIWFuYWx5dGljcy5pbml0aWFsaXplKQ0KICAgICAgICAgICAgaWYgKGFuYWx5dGljcy5pbnZva2VkKSB3aW5kb3cuY29uc29sZSAmJiBjb25zb2xlLmVycm9yICYmIGNvbnNvbGUuZXJyb3IoIlNlZ21lbnQgc25pcHBldCBpbmNsdWRlZCB0d2ljZS4iKTsNCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFuYWx5dGljcy5pbnZva2VkID0gITA7DQogICAgICAgICAgICAgICAgYW5hbHl0aWNzLm1ldGhvZHMgPSBbDQogICAgICAgICAgICAgICAgICAgICJ0cmFja1N1Ym1pdCIsICJ0cmFja0NsaWNrIiwgInRyYWNrTGluayIsICJ0cmFja0Zvcm0iLCAicGFnZXZpZXciLCAiaWRlbnRpZnkiLCAiZ3JvdXAiLCAidHJhY2siLA0KICAgICAgICAgICAgICAgICAgICAicmVhZHkiLCAiYWxpYXMiLCAicGFnZSIsICJvbmNlIiwgIm9mZiIsICJvbiINCiAgICAgICAgICAgICAgICBdOw0KICAgICAgICAgICAgICAgIGFuYWx5dGljcy5mYWN0b3J5ID0gZnVuY3Rpb24odCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7DQogICAgICAgICAgICAgICAgICAgICAgICBlLnVuc2hpZnQodCk7DQogICAgICAgICAgICAgICAgICAgICAgICBhbmFseXRpY3MucHVzaChlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbmFseXRpY3M7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgIGZvciAodmFyIHQgPSAwOyB0IDwgYW5hbHl0aWNzLm1ldGhvZHMubGVuZ3RoOyB0KyspIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGUgPSBhbmFseXRpY3MubWV0aG9kc1t0XTsNCiAgICAgICAgICAgICAgICAgICAgYW5hbHl0aWNzW2VdID0gYW5hbHl0aWNzLmZhY3RvcnkoZSkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYW5hbHl0aWNzLmxvYWQgPSBmdW5jdGlvbih0KSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7DQogICAgICAgICAgICAgICAgICAgIGUudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOw0KICAgICAgICAgICAgICAgICAgICBlLmFzeW5jID0gITA7DQogICAgICAgICAgICAgICAgICAgIGUuc3JjID0gKCJodHRwczoiID09PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCA/ICJodHRwczovLyIgOiAiaHR0cDovLyIpICsNCiAgICAgICAgICAgICAgICAgICAgICAgICJjZG4uc2VnbWVudC5jb20vYW5hbHl0aWNzLmpzL3YxLyIgKw0KICAgICAgICAgICAgICAgICAgICAgICAgdCArDQogICAgICAgICAgICAgICAgICAgICAgICAiL2FuYWx5dGljcy5taW4uanMiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTsNCiAgICAgICAgICAgICAgICAgICAgbi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLCBuKQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgYW5hbHl0aWNzLlNOSVBQRVRfVkVSU0lPTiA9ICIzLjAuMSI7DQoNCiAgICAgICAgICAgIH0NCiAgICB9KCk7DQo8L3NjcmlwdD4NCg0KPHNjcmlwdCBzcmM9Ii8vcy5wbHVyYWxzaWdodC5jb20vYW5hbHl0aWNzL2FuYWx5dGljcy1mYWNhZGUudjMuMTEuMC5qcyI+PC9zY3JpcHQ+DQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgICB2YXIgYW5hbHl0aWNzRmFjYWRlID0gbmV3IHdpbmRvdy5BbmFseXRpY3NGYWNhZGUoeyBjb250ZXh0TmFtZTogJ2lkZW50aXR5JyB9KTsNCiAgICBhbmFseXRpY3MubG9hZCgibjJMTGJGSTFNRHhGS0JMekkwZXMyWjdQckRodTZqRUEiKTsNCiAgICBhbmFseXRpY3NGYWNhZGUucGFnZSgpOw0KPC9zY3JpcHQ+DQoNCjwhLS1CRUdJTiBRVUFMVFJJQ1MgU0lURSBJTlRFUkNFUFQtLT4NCjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4NCiAgICB2YXIgcXVhbHRyaWNzU2FtcGxlUmF0ZSA9ICIxMDAiOw0KICAgIHZhciBxdWFsdHJpY3Nab25lSWQgPSAiWk5fZUpXNkZ6WHBPQzR6MnNKIjsNCiAgICB2YXIgcXVhbHRyaWNzVXJsID0gIi8vem5lanc2Znp4cG9jNHoyc2otcGx1cmFsc2lnaHQuc2l0ZWludGVyY2VwdC5xdWFsdHJpY3MuY29tL1dSU2l0ZUludGVyY2VwdEVuZ2luZS8/UV9aSUQ9Wk5fZUpXNkZ6WHBPQzR6MnNKJmFtcDtRX0xPQz0iOw0KDQogICAgKGZ1bmN0aW9uKCl7dmFyIGc9ZnVuY3Rpb24oZSxoLGYsZyl7DQogICAgICAgICAgICB0aGlzLmdldD1mdW5jdGlvbihhKXtmb3IodmFyIGE9YSsiPSIsYz1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKSxiPTAsZT1jLmxlbmd0aDtiPGU7YisrKXtmb3IodmFyIGQ9Y1tiXTsiICI9PWQuY2hhckF0KDApOylkPWQuc3Vic3RyaW5nKDEsZC5sZW5ndGgpO2lmKDA9PWQuaW5kZXhPZihhKSlyZXR1cm4gZC5zdWJzdHJpbmcoYS5sZW5ndGgsZC5sZW5ndGgpfXJldHVybiBudWxsfTsNCiAgICAgICAgICAgIHRoaXMuc2V0PWZ1bmN0aW9uKGEsYyl7dmFyIGI9IiIsYj1uZXcgRGF0ZTtiLnNldFRpbWUoYi5nZXRUaW1lKCkrNjA0OEU1KTtiPSI7IGV4cGlyZXM9IitiLnRvR01UU3RyaW5nKCk7ZG9jdW1lbnQuY29va2llPWErIj0iK2MrYisiOyBwYXRoPS87ICJ9Ow0KICAgICAgICAgICAgdGhpcy5jaGVjaz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0KGYpO2lmKGEpYT1hLnNwbGl0KCI6Iik7ZWxzZSBpZigxMDAhPWUpInYiPT1oJiYoZT1NYXRoLnJhbmRvbSgpPj1lLzEwMD8wOjEwMCksYT1baCxlLDBdLHRoaXMuc2V0KGYsYS5qb2luKCI6IikpO2Vsc2UgcmV0dXJuITA7dmFyIGM9YVsxXTtpZigxMDA9PWMpcmV0dXJuITA7c3dpdGNoKGFbMF0pe2Nhc2UgInYiOnJldHVybiExO2Nhc2UgInIiOnJldHVybiBjPWFbMl0lTWF0aC5mbG9vcigxMDAvYyksYVsyXSsrLHRoaXMuc2V0KGYsYS5qb2luKCI6IikpLCFjfXJldHVybiEwfTsNCiAgICAgICAgICAgIHRoaXMuZ289ZnVuY3Rpb24oKXtpZih0aGlzLmNoZWNrKCkpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2EudHlwZT0idGV4dC9qYXZhc2NyaXB0IjthLnNyYz1nKyAiJnQ9IiArIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7ZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKX19Ow0KICAgICAgICAgICAgdGhpcy5zdGFydD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7d2luZG93LmFkZEV2ZW50TGlzdGVuZXI/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7YS5nbygpfSwhMSk6d2luZG93LmF0dGFjaEV2ZW50JiZ3aW5kb3cuYXR0YWNoRXZlbnQoIm9ubG9hZCIsZnVuY3Rpb24oKXthLmdvKCl9KX19Ow0KICAgICAgICB0cnkgeyAobmV3IGcocXVhbHRyaWNzU2FtcGxlUmF0ZSwgInIiLCAiUVNJX1NfIiArIHF1YWx0cmljc1pvbmVJZCwgcXVhbHRyaWNzVXJsICsgZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKSkpLnN0YXJ0KCkgfSBjYXRjaCAoaSkgeyB9DQogICAgfSkoKTsNCjwvc2NyaXB0Pg0KDQo8ZGl2IGlkPSJaTl9lSlc2RnpYcE9DNHoyc0oiPjwhLS1ETyBOT1QgUkVNT1ZFLUNPTlRFTlRTIFBMQUNFRCBIRVJFLS0+PC9kaXY+DQo8IS0tRU5EIFNJVEUgSU5URVJDRVBULS0+DQoNCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9pZC9jb250ZW50L2Rpc3Qvc2lnbi1pbi0yNzZjODZjMTAxZjlmZTY0YzA2OS5jc3MiIC8+DQogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4NCjwvaGVhZD4NCjxib2R5Pg0KICAgIDxpbnB1dCBpZD0icGFnZU9iamVjdFRhZyIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iU2lnbkluUGFnZSIgLz4NCg0KDQogICAgDQoNCiAgICA8ZGl2IGlkPSJjb250YWluZXIiPg0KICAgICAgICA8ZGl2IGlkPSJsZWZ0Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWduaW4iPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndyYXBwZXIiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaWQvY29udGVudC9pbWcvbG9naW4tbG9nby5wbmciIGFsdD0iUGx1cmFsc2lnaHQiIC8+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KPGZvcm0gYWN0aW9uPSIvaWQvIiBpZD0ic2lnbkluRm9ybSIgbWV0aG9kPSJwb3N0Ij48aW5wdXQgaWQ9IlJlZGlyZWN0VXJsIiBuYW1lPSJSZWRpcmVjdFVybCIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiAvPiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIENsYXNzPSJwc2RzLXRleHQtaW5wdXRfX2xhYmVsIiBmb3I9IlVzZXJuYW1lIj5FbWFpbCBvciBVc2VybmFtZTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IENsYXNzPSJwc2RzLXRleHQtaW5wdXRfX2ZpZWxkIHBzZHMtdGV4dC1pbnB1dF9fZmllbGQtLWFwcGVhcmFuY2Utc3VidGxlIiBhdXRvY2FwaXRhbGl6ZT0ibm9uZSIgYXV0b2NvcnJlY3Q9Im9mZiIgZGF0YS12YWw9InRydWUiIGRhdGEtdmFsLXJlcXVpcmVkPSJUaGUgRW1haWwgb3IgVXNlcm5hbWUgZmllbGQgaXMgcmVxdWlyZWQuIiBpZD0iVXNlcm5hbWUiIG5hbWU9IlVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBDbGFzcz0icHNkcy10ZXh0LWlucHV0X19sYWJlbCIgZm9yPSJQYXNzd29yZCI+UGFzc3dvcmQ8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBDbGFzcz0icHNkcy10ZXh0LWlucHV0X19maWVsZCBwc2RzLXRleHQtaW5wdXRfX2ZpZWxkLS1hcHBlYXJhbmNlLXN1YnRsZSIgZGF0YS12YWw9InRydWUiIGRhdGEtdmFsLXJlcXVpcmVkPSJUaGUgUGFzc3dvcmQgZmllbGQgaXMgcmVxdWlyZWQuIiBpZD0iUGFzc3dvcmQiIG5hbWU9IlBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KPGlucHV0IGlkPSJTaG93Q2FwdGNoYSIgbmFtZT0iU2hvd0NhcHRjaGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IkZhbHNlIiAvPg0KPGlucHV0IGlkPSJSZUNhcHRjaGFTaXRlS2V5IiBuYW1lPSJSZUNhcHRjaGFTaXRlS2V5IiB0eXBlPSJoaWRkZW4iIHZhbHVlPSI2TGVWSWdvVEFBQUFBSWh4X1RPd0RXSVhlY2J2emNXeWpRRGJYc2FWIiAvPiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0ibG9naW4iIGNsYXNzPSJwc2RzLWJ1dHRvbiBwc2RzLWJ1dHRvbi0tc2l6ZS1tZWRpdW0iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpZ24gaW4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPg0KPC9mb3JtPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rcyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0icHNkcy1saW5rIHBzZHMtbGluay0tYXBwZWFyYW5jZS1kZWZhdWx0IiBocmVmPSIvaWQvRm9yZ290UGFzc3dvcmQiPkZvcmdvdCBwYXNzd29yZD88L2E+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0icHNkcy1saW5rIHBzZHMtbGluay0tYXBwZWFyYW5jZS1kZWZhdWx0IiBocmVmPSIvaWQvc2lnbmluL3Nzbz9yZWRpcmVjdFRvPSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lnbiBpbiB3aXRoIGNvbXBhbnkgb3Igc2Nob29sDQogICAgICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz0iYmFyIiAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+T1I8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9ImJhciIgLz4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cucGx1cmFsc2lnaHQuY29tL3ByaWNpbmciIGlkPSJjcmVhdGUtYWNjb3VudC1saW5rIiBjbGFzcz0icHNkcy1idXR0b24gcHNkcy1idXR0b24tLXNpemUtbWVkaXVtIHBzZHMtYnV0dG9uLS1hcHBlYXJhbmNlLXN0cm9rZSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHNkcy1idXR0b25fX3RleHQiPkNyZWF0ZSBhbiBhY2NvdW50PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxmb290ZXIgaWQ9ImZvb3RlciI+DQogICAgICAgICAgICAgICAgQ29weXJpZ2h0ICZjb3B5OyAyMDA0IC0gMjAxOSBQbHVyYWxzaWdodCBMTEMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQogICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InBzZHMtbGluayBwc2RzLWxpbmstLWFwcGVhcmFuY2Utc3VidGxlIiBocmVmPSJodHRwczovL3d3dy5wbHVyYWxzaWdodC5jb20vdGVybXMiPlRlcm1zIG9mIFVzZTwvYT4NCiAgICAgICAgICAgICAgICAgICAgfCA8YSBjbGFzcz0icHNkcy1saW5rIHBzZHMtbGluay0tYXBwZWFyYW5jZS1zdWJ0bGUiIGhyZWY9Imh0dHBzOi8vd3d3LnBsdXJhbHNpZ2h0LmNvbS9wcml2YWN5Ij5Qcml2YWN5IFBvbGljeTwvYT4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZm9vdGVyPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBpZD0icmlnaHQiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFubmVyIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZXRpbmctYmFubmVyIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2V0aW5nLWJhbm5lci10ZXh0Ij5MZXQncyBjcmVhdGUgdGhlIGZ1dHVyZSA8c3Ryb25nPnRvZ2V0aGVyPC9zdHJvbmc+LjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5wbHVyYWxzaWdodC5jb20vcHJpY2luZyIgY2xhc3M9InBzZHMtYnV0dG9uIHBzZHMtYnV0dG9uLS1zaXplLW1lZGl1bSBwc2RzLWJ1dHRvbi0tYXBwZWFyYW5jZS1zdHJva2UiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBzZHMtYnV0dG9uX190ZXh0Ij5TdGFydCBhIEZSRUUgMTAtZGF5IHRyaWFsPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogICAgPHNjcmlwdD4NCiAgICAgICAgJCgnLmFsZXJ0JykuYXBwZW5kKCc8ZGl2IGNsYXNzPSJjbG9zZSIgYXJpYS1sYWJlbD0iY2xvc2UiPiZ0aW1lczs8L2Rpdj4nKTsNCiAgICAgICAgJCgnLmFsZXJ0IC5jbG9zZScpLmNsaWNrKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICQodGhpcykucGFyZW50KCkuaGlkZSgpOw0KICAgICAgICB9KTsNCiAgICAgICAgJChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAkKCIjc2lnbkluRm9ybSIpLnN1Ym1pdChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYW5hbHl0aWNzRmFjYWRlLnRyYWNrKCd1c2VyX3NpZ25faW5fYnV0dG9uX2NsaWNrZWQnLCB7fSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICQoIiNlcnJvck1lc3NhZ2UgLmNsb3NlIikuY2xpY2soZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgYW5hbHl0aWNzRmFjYWRlLnRyYWNrKCd1c2VyX3NpZ25faW5fZXJyb3JfbWVzc2FnZV9kaXNtaXNzZWQnLCB7fSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfSk7DQogICAgPC9zY3JpcHQ+DQo8L2JvZHk+DQo8L2h0bWw+
[pluralsight] Logging in
ERROR: Unable to download webpage: HTTP Error 503: Service Temporarily Unavailable (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Kerruba commented 5 years ago

I get the same error here:

youtube-dl --verbose --username "xxxx" --password "xxxxx" https://app.pluralsight.com/library/courses/oauth2-json-web-tokens-openid-connect-introduction/table-of-contents
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'--verbose', u'--username', u'PRIVATE', u'--password', u'PRIVATE', u'https://app.pluralsight.com/library/courses/oauth2-json-web-tokens-openid-connect-introduction/table-of-contents']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.03.09
[debug] Python version 2.7.15 (CPython) - Linux-4.15.0-1033-oem-x86_64-with-debian-buster-sid
[debug] exe versions: none
[debug] Proxy map: {}
[pluralsight:course] oauth2-json-web-tokens-openid-connect-introduction: Downloading JSON metadata
[download] Downloading playlist: Introduction to OAuth2, OpenID Connect and JSON Web Tokens (JWT)
[pluralsight:course] playlist Introduction to OAuth2, OpenID Connect and JSON Web Tokens (JWT): Collected 48 video ids (downloading 48 of them)
[download] Downloading video 1 of 48
[pluralsight] Downloading login page
[pluralsight] Logging in
ERROR: Unable to download webpage: HTTP Error 503: Service Temporarily Unavailable (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you
are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 619, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2225, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/home/linuxbrew/.linuxbrew/Cellar/python@2/2.7.15_2/lib/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/home/linuxbrew/.linuxbrew/Cellar/python@2/2.7.15_2/lib/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/home/linuxbrew/.linuxbrew/Cellar/python@2/2.7.15_2/lib/python2.7/urllib2.py", line 473, in error
    return self._call_chain(*args)
  File "/home/linuxbrew/.linuxbrew/Cellar/python@2/2.7.15_2/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/home/linuxbrew/.linuxbrew/Cellar/python@2/2.7.15_2/lib/python2.7/urllib2.py", line 556, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
Kerruba commented 5 years ago

@jaan143 and @davidneudorfer, something changed for you?

Kerruba commented 5 years ago

I was able to make it work by using a different IP (a VPN in my case) I took inspiration from https://github.com/ytdl-org/youtube-dl/issues/18534 Now it seems to work

xvMODvx commented 5 years ago

I was having problems running it the way I've always done it. The way I solved the problem was to try using youtube-dl through pip instead of the version through npm like I was. Hope this helps someone.