video_info 2.8.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (276) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/unit_test.yml +39 -0
  3. data/Guardfile +1 -1
  4. data/README.md +8 -21
  5. data/lib/video_info.rb +2 -3
  6. data/lib/video_info/provider.rb +3 -2
  7. data/lib/video_info/providers/vimeo_scraper.rb +12 -2
  8. data/lib/video_info/providers/youtube.rb +4 -0
  9. data/lib/video_info/providers/youtube_api.rb +1 -1
  10. data/lib/video_info/providers/youtube_scraper.rb +42 -25
  11. data/lib/video_info/providers/youtubeplaylist_api.rb +15 -1
  12. data/lib/video_info/version.rb +1 -1
  13. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/_available_/with_invalid_video_url/_available_/1_2_2_1_1.yml +26 -37
  14. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/_available_/with_valid_video/_available_/1_2_1_1_1.yml +26 -35
  15. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author/1_3_7_1.yml +31 -40
  16. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author_thumbnail/1_3_9_1.yml +31 -40
  17. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author_url/1_3_8_1.yml +31 -40
  18. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_date/should_show_correct_date.yml +31 -40
  19. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_description/1_3_10_1.yml +31 -40
  20. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_duration/1_3_12_1.yml +31 -40
  21. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_keywords/1_3_11_1.yml +31 -40
  22. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail/{1_3_19_1.yml → 1_3_21_1.yml} +31 -40
  23. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_large/1_3_18_1.yml +31 -40
  24. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_medium/1_3_17_1.yml +31 -40
  25. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_small/1_3_16_1.yml +31 -40
  26. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_title/1_3_6_1.yml +31 -40
  27. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_view_count/{1_3_20_1.yml → 1_3_22_1.yml} +31 -40
  28. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_password_required_video/_available_/1_2_3_1_1.yml +38 -37
  29. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_password_required_video/_available_/2_2_3_1_1.yml +28 -25
  30. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_this_video_does_not_exist_video/_available_/1_2_2_1_1.yml +44 -41
  31. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_this_video_does_not_exist_video/_available_/2_2_2_1_1.yml +26 -23
  32. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_valid_video/_available_/1_2_1_1_1.yml +46 -38
  33. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_valid_video/_available_/2_2_1_1_1.yml +24 -23
  34. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author/1_13_2_1.yml +33 -31
  35. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author_thumbnail/1_13_3_1.yml +33 -31
  36. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author_url/1_13_4_1.yml +32 -28
  37. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/available_/1_13_1_1.yml +33 -31
  38. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/date/1_13_7_1.yml +34 -34
  39. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/description/1_13_6_1.yml +33 -30
  40. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/duration/1_13_8_1.yml +34 -32
  41. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/height/1_13_10_1.yml +33 -30
  42. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/keywords/1_13_9_1.yml +34 -34
  43. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_large/1_13_14_1.yml +34 -33
  44. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_medium/1_13_13_1.yml +34 -33
  45. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_small/1_13_12_1.yml +34 -33
  46. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/title/1_13_5_1.yml +33 -31
  47. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/view_count/1_13_15_1.yml +34 -33
  48. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/width/1_13_11_1.yml +34 -33
  49. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/1_3_20_1.yml +158 -0
  50. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/2_3_20_1.yml +80 -0
  51. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/1_3_19_1.yml +158 -0
  52. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/2_3_19_1.yml +85 -0
  53. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/1_3_21_1.yml +159 -0
  54. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/2_3_21_1.yml +80 -0
  55. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_date/should_have_correct_upload_date.yml +82 -68
  56. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_description/1_3_7_1.yml +44 -34
  57. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_description/2_3_7_1.yml +36 -35
  58. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_duration/1_3_9_1.yml +45 -37
  59. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_duration/2_3_9_1.yml +39 -33
  60. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_height/1_3_11_1.yml +46 -38
  61. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_height/2_3_11_1.yml +36 -35
  62. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_keywords/should_return_a_string_list_of_keywords.yml +85 -71
  63. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/1_3_18_1.yml +236 -0
  64. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/2_3_18_1.yml +82 -0
  65. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_large/1_3_15_1.yml +67 -53
  66. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_large/2_3_15_1.yml +37 -34
  67. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_medium/1_3_14_1.yml +67 -54
  68. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_medium/2_3_14_1.yml +37 -32
  69. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_small/1_3_13_1.yml +67 -53
  70. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_small/2_3_13_1.yml +37 -32
  71. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_title/1_3_6_1.yml +45 -36
  72. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_title/2_3_6_1.yml +39 -33
  73. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/1_3_22_1.yml +158 -0
  74. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/2_3_22_1.yml +84 -0
  75. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_width/1_3_10_1.yml +46 -40
  76. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_width/2_3_10_1.yml +37 -34
  77. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail/1_12_1_1.yml +234 -0
  78. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail/2_12_1_1.yml +78 -0
  79. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail_large/1_12_2_1.yml +233 -0
  80. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail_large/2_12_2_1.yml +78 -0
  81. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail_medium/1_12_3_1.yml +235 -0
  82. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail_medium/2_12_3_1.yml +73 -0
  83. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail_small/1_12_4_1.yml +234 -0
  84. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_141349194/thumbnail_small/2_12_4_1.yml +77 -0
  85. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/_available_/with_invalid_video/_available_/1_2_2_1_1.yml +25 -17
  86. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/_available_/with_valid_video/_available_/1_2_1_1_1.yml +28 -18
  87. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_duration/1_4_7_1.yml +33 -25
  88. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_height/1_4_9_1.yml +33 -25
  89. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_large/1_4_12_1.yml +33 -24
  90. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_medium/1_4_11_1.yml +34 -25
  91. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_small/1_4_10_1.yml +33 -25
  92. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_title/1_4_6_1.yml +33 -24
  93. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_width/1_4_8_1.yml +33 -24
  94. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_duration/1_3_7_1.yml +33 -25
  95. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_height/1_3_9_1.yml +33 -23
  96. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail/{1_3_13_1.yml → 1_3_15_1.yml} +33 -23
  97. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_large/1_3_12_1.yml +33 -23
  98. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_medium/1_3_11_1.yml +33 -23
  99. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_small/1_3_10_1.yml +33 -25
  100. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_title/1_3_6_1.yml +33 -25
  101. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_width/1_3_8_1.yml +33 -23
  102. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/1_2_2_1_1.yml +20 -442
  103. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/2_2_2_1_1.yml +81 -21
  104. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/1_2_2_11_1.yml +24 -446
  105. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/2_2_2_11_1.yml +81 -21
  106. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/1_2_2_8_1.yml +25 -449
  107. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/2_2_2_8_1.yml +81 -21
  108. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/1_2_2_10_1.yml +24 -450
  109. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/2_2_2_10_1.yml +81 -21
  110. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/1_2_2_9_1.yml +23 -449
  111. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/2_2_2_9_1.yml +81 -21
  112. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/1_2_2_7_1.yml +24 -446
  113. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/2_2_2_7_1.yml +81 -21
  114. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/1_2_2_18_1.yml +59 -0
  115. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/2_2_2_18_1.yml +114 -0
  116. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_valid_video/_available_/1_2_1_1_1.yml +23 -20
  117. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_valid_video/_available_/2_2_1_1_1.yml +152 -90
  118. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/1_2_3_1_1.yml +23 -447
  119. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/2_2_3_1_1.yml +81 -21
  120. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_a_video_without_description/_description/1_1_1_1.yml +59 -0
  121. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_date/should_return_date_video_was_posted.yml +181 -110
  122. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_description/1_17_7_1.yml +22 -19
  123. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_description/2_17_7_1.yml +152 -90
  124. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_duration/1_17_9_1.yml +23 -20
  125. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_duration/2_17_9_1.yml +152 -90
  126. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_keywords/1_17_8_1.yml +23 -20
  127. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_keywords/2_17_8_1.yml +152 -90
  128. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_title/1_17_6_1.yml +20 -17
  129. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_title/2_17_6_1.yml +152 -90
  130. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/1_17_17_1.yml +59 -0
  131. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/2_17_17_1.yml +187 -0
  132. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author/1_3_6_1.yml +74 -15
  133. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author/2_3_6_1.yml +152 -90
  134. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_thumbnail/1_3_7_1.yml +74 -15
  135. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_thumbnail/2_3_7_1.yml +271 -144
  136. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_url/1_3_8_1.yml +21 -18
  137. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_url/2_3_8_1.yml +271 -144
  138. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_url/can_be_called_twice_and_receive_the_same_value.yml +391 -0
  139. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_date/should_return_date_video_was_posted.yml +173 -108
  140. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_description/1_3_10_1.yml +23 -19
  141. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_description/2_3_10_1.yml +152 -90
  142. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_duration/1_3_12_1.yml +21 -18
  143. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_duration/2_3_12_1.yml +152 -90
  144. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_keywords/1_3_11_1.yml +21 -18
  145. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_keywords/2_3_11_1.yml +152 -90
  146. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_title/1_3_9_1.yml +23 -20
  147. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_title/2_3_9_1.yml +152 -90
  148. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/1_3_21_1.yml +59 -0
  149. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/2_3_21_1.yml +187 -0
  150. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_invalid_playlist/_available_/1_2_2_1_1.yml +87 -27
  151. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_list_url/_available_/1_2_3_1_1.yml +120 -60
  152. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_valid_playlist/_available_/1_2_1_1_1.yml +120 -60
  153. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author/1_3_21_1.yml +165 -0
  154. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_thumbnail/1_3_22_1.yml +274 -0
  155. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_url/1_3_23_1.yml +274 -0
  156. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_description/1_3_7_1.yml +131 -71
  157. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_keywords/1_3_8_1.yml +131 -71
  158. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail/1_3_18_1.yml +165 -0
  159. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_large/1_3_15_1.yml +131 -71
  160. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_large_2x/1_3_16_1.yml +165 -0
  161. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_maxres/1_3_17_1.yml +165 -0
  162. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_medium/1_3_14_1.yml +131 -71
  163. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_small/1_3_13_1.yml +131 -71
  164. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_title/1_3_6_1.yml +131 -71
  165. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_videos/returns_list_of_videos_in_playlist.yml +78 -231
  166. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_that_does_not_exist_in_embed_path/_videos/1_4_2_1.yml +81 -21
  167. data/spec/lib/video_info/providers/dailymotion_spec.rb +6 -6
  168. data/spec/lib/video_info/providers/vimeo_spec.rb +21 -21
  169. data/spec/lib/video_info/providers/wistia_spec.rb +6 -6
  170. data/spec/lib/video_info/providers/youtube_playlist_spec.rb +22 -28
  171. data/spec/lib/video_info/providers/youtube_scraper_spec.rb +4 -2
  172. data/spec/lib/video_info/providers/youtube_spec.rb +28 -26
  173. data/spec/lib/video_info_spec.rb +0 -4
  174. data/spec/spec_helper.rb +6 -1
  175. data/tmp/rspec_guard_result +25 -0
  176. data/video_info.gemspec +4 -4
  177. metadata +85 -215
  178. data/.travis.yml +0 -21
  179. data/lib/video_info/providers/vkontakte.rb +0 -208
  180. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/1_3_18_1.yml +0 -150
  181. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/2_3_18_1.yml +0 -79
  182. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/1_3_17_1.yml +0 -150
  183. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/2_3_17_1.yml +0 -79
  184. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/1_3_19_1.yml +0 -150
  185. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/2_3_19_1.yml +0 -79
  186. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/1_3_16_1.yml +0 -222
  187. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/2_3_16_1.yml +0 -79
  188. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/1_3_20_1.yml +0 -150
  189. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/2_3_20_1.yml +0 -79
  190. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail/1_12_1_1.yml +0 -222
  191. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail/2_12_1_1.yml +0 -75
  192. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_large/1_12_2_1.yml +0 -222
  193. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_large/2_12_2_1.yml +0 -75
  194. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_medium/1_12_3_1.yml +0 -222
  195. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_medium/2_12_3_1.yml +0 -75
  196. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_small/1_12_4_1.yml +0 -222
  197. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_small/2_12_4_1.yml +0 -75
  198. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_hashes/available_/1_2_6_1_1.yml +0 -86
  199. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_invalid_video/available_/1_2_2_1_1.yml +0 -50
  200. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_private_video/available_/1_2_3_1_1.yml +0 -132
  201. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_redirect/available_/1_2_4_1_1.yml +0 -134
  202. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_redirect_to_main_page_for_auth/available_/1_2_5_1_1.yml +0 -85
  203. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_valid_video/available_/1_2_1_1_1.yml +0 -87
  204. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/author/1_5_14_1.yml +0 -48
  205. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/author_thumbnail/1_5_15_1.yml +0 -48
  206. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/author_url/1_5_16_1.yml +0 -48
  207. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/description/1_5_8_1.yml +0 -48
  208. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/duration/1_5_10_1.yml +0 -48
  209. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/embed_code/1_5_6_1.yml +0 -48
  210. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/embed_url/1_5_5_1.yml +0 -48
  211. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/height/1_5_12_1.yml +0 -48
  212. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/thumbnail_small/1_5_18_1.yml +0 -48
  213. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/title/1_5_7_1.yml +0 -48
  214. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/view_count/1_5_13_1.yml +0 -48
  215. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/width/1_5_11_1.yml +0 -50
  216. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_https_/vk_com/id44052340_z_video61291456_159590018_2F2521d92730a272a9ea/author/1_3_7_1.yml +0 -48
  217. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_https_/vk_com/id44052340_z_video61291456_159590018_2F2521d92730a272a9ea/embed_code/1_3_6_1.yml +0 -48
  218. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_https_/vk_com/id44052340_z_video61291456_159590018_2F2521d92730a272a9ea/embed_url/1_3_5_1.yml +0 -48
  219. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_https_/vk_com/id44052340_z_video61291456_159590018_2F2521d92730a272a9ea/title/1_3_4_1.yml +0 -48
  220. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video-54799401_165822734/title/1_7_4_1.yml +0 -48
  221. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video3552522_171340713/embed_url/1_10_1_1.yml +0 -48
  222. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/description/1_6_8_1.yml +0 -48
  223. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/duration/1_6_10_1.yml +0 -48
  224. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/embed_code/1_6_6_1.yml +0 -48
  225. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/embed_url/1_6_5_1.yml +0 -48
  226. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/height/1_6_12_1.yml +0 -48
  227. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/title/1_6_7_1.yml +0 -48
  228. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/view_count/1_6_13_1.yml +0 -48
  229. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/width/1_6_11_1.yml +0 -48
  230. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author/1_4_5_1.yml +0 -48
  231. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author_thumbnail/1_4_6_1.yml +0 -48
  232. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author_url/1_4_7_1.yml +0 -48
  233. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/title/1_4_4_1.yml +0 -48
  234. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/foo/_available/1_2_2_1_1.yml +0 -1447
  235. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/foo/_available/2_2_2_1_1.yml +0 -156
  236. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/1_2_3_1_1.yml +0 -485
  237. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/2_2_3_1_1.yml +0 -54
  238. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/1_2_3_11_1.yml +0 -481
  239. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/2_2_3_11_1.yml +0 -54
  240. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/1_2_3_8_1.yml +0 -483
  241. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/2_2_3_8_1.yml +0 -54
  242. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/1_2_3_10_1.yml +0 -484
  243. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/2_2_3_10_1.yml +0 -54
  244. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/1_2_3_9_1.yml +0 -484
  245. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/2_2_3_9_1.yml +0 -54
  246. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/1_2_3_7_1.yml +0 -484
  247. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/2_2_3_7_1.yml +0 -54
  248. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/1_2_2_17_1.yml +0 -485
  249. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/1_2_3_17_1.yml +0 -485
  250. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/2_2_2_17_1.yml +0 -54
  251. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/2_2_3_17_1.yml +0 -54
  252. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/1_2_4_1_1.yml +0 -484
  253. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/2_2_4_1_1.yml +0 -54
  254. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/1_17_16_1.yml +0 -56
  255. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/2_17_16_1.yml +0 -125
  256. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/1_3_20_1.yml +0 -56
  257. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/2_3_20_1.yml +0 -125
  258. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_invalid_playlist/_available_/2_2_2_1_1.yml +0 -60
  259. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_list_url/_available_/2_2_3_1_1.yml +0 -94
  260. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_valid_playlist/_available_/2_2_1_1_1.yml +0 -94
  261. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author/1_3_19_1.yml +0 -105
  262. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author/2_3_19_1.yml +0 -105
  263. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_thumbnail/1_3_20_1.yml +0 -189
  264. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_thumbnail/2_3_20_1.yml +0 -189
  265. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_url/1_3_21_1.yml +0 -189
  266. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_url/2_3_21_1.yml +0 -189
  267. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_description/2_3_7_1.yml +0 -105
  268. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_keywords/2_3_8_1.yml +0 -105
  269. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail/1_3_16_1.yml +0 -105
  270. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail/2_3_16_1.yml +0 -105
  271. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_large/2_3_15_1.yml +0 -105
  272. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_medium/2_3_14_1.yml +0 -105
  273. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_small/2_3_13_1.yml +0 -105
  274. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_title/2_3_6_1.yml +0 -105
  275. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_that_does_not_exist_in_embed_path/_videos/2_4_2_1.yml +0 -54
  276. data/spec/lib/video_info/providers/vkontakte_spec.rb +0 -236
@@ -2,13 +2,13 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://www.googleapis.com/youtube/v3/videos?fields=items(id,snippet,statistics,status,contentDetails)&id=SUkXvWn1m7Q&key=AIzaSyA6PYwSr1EnLFUFy1cZDk3Ifb0rxeJaeZ0&part=snippet,statistics,status,contentDetails
5
+ uri: https://www.googleapis.com/youtube/v3/videos?fields=items(id,snippet,statistics,status,contentDetails)&id=SUkXvWn1m7Q&key=youtube_api_key_123&part=snippet,statistics,status,contentDetails
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
10
  User-Agent:
11
- - VideoInfo/2.7
11
+ - VideoInfo/2.8.0
12
12
  Accept-Encoding:
13
13
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
14
  Accept:
@@ -18,37 +18,97 @@ http_interactions:
18
18
  code: 200
19
19
  message: OK
20
20
  headers:
21
- Expires:
22
- - Mon, 27 Mar 2017 21:02:07 GMT
21
+ Content-Type:
22
+ - application/json; charset=UTF-8
23
+ Vary:
24
+ - Origin
25
+ - Referer
26
+ - X-Origin
23
27
  Date:
24
- - Mon, 27 Mar 2017 21:02:07 GMT
28
+ - Tue, 27 Oct 2020 18:33:51 GMT
29
+ Server:
30
+ - scaffolding on HTTPServer2
25
31
  Cache-Control:
26
- - private, max-age=0, must-revalidate, no-transform
27
- Etag:
28
- - '"uQc-MPTsstrHkQcRXL3IWLmeNsM/KeOik9Ri5nMPZgjDLHtO3tGN6Pc"'
32
+ - private
33
+ X-Xss-Protection:
34
+ - '0'
35
+ X-Frame-Options:
36
+ - SAMEORIGIN
37
+ X-Content-Type-Options:
38
+ - nosniff
39
+ Alt-Svc:
40
+ - h3-Q050=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-T050=":443";
41
+ ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443";
42
+ ma=2592000; v="46,43"
43
+ Transfer-Encoding:
44
+ - chunked
45
+ body:
46
+ encoding: ASCII-8BIT
47
+ string: |
48
+ {
49
+ "items": []
50
+ }
51
+ http_version:
52
+ recorded_at: Tue, 27 Oct 2020 18:33:51 GMT
53
+ - request:
54
+ method: get
55
+ uri: https://www.googleapis.com/youtube/v3/videos?fields=items(id,snippet,statistics,status,contentDetails)&id=SUkXvWn1m7Q&key=%3Cyoutube_api_key_123%3E&part=snippet,statistics,status,contentDetails
56
+ body:
57
+ encoding: US-ASCII
58
+ string: ''
59
+ headers:
60
+ User-Agent:
61
+ - VideoInfo/2.8.0
62
+ Accept-Encoding:
63
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
64
+ Accept:
65
+ - "*/*"
66
+ response:
67
+ status:
68
+ code: 400
69
+ message: Bad Request
70
+ headers:
29
71
  Vary:
30
72
  - Origin
73
+ - Referer
31
74
  - X-Origin
32
75
  Content-Type:
33
76
  - application/json; charset=UTF-8
34
- X-Content-Type-Options:
35
- - nosniff
77
+ Date:
78
+ - Tue, 27 Oct 2020 18:44:57 GMT
79
+ Server:
80
+ - scaffolding on HTTPServer2
81
+ Cache-Control:
82
+ - private
83
+ X-Xss-Protection:
84
+ - '0'
36
85
  X-Frame-Options:
37
86
  - SAMEORIGIN
38
- X-Xss-Protection:
39
- - 1; mode=block
40
- Content-Length:
41
- - '17'
42
- Server:
43
- - GSE
87
+ X-Content-Type-Options:
88
+ - nosniff
44
89
  Alt-Svc:
45
- - quic=":443"; ma=2592000; v="37,36,35"
90
+ - h3-Q050=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-T050=":443";
91
+ ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443";
92
+ ma=2592000; v="46,43"
93
+ Transfer-Encoding:
94
+ - chunked
46
95
  body:
47
- encoding: UTF-8
96
+ encoding: ASCII-8BIT
48
97
  string: |
49
98
  {
50
- "items": []
99
+ "error": {
100
+ "code": 400,
101
+ "message": "API key not valid. Please pass a valid API key.",
102
+ "errors": [
103
+ {
104
+ "message": "API key not valid. Please pass a valid API key.",
105
+ "domain": "global",
106
+ "reason": "badRequest"
107
+ }
108
+ ],
109
+ "status": "INVALID_ARGUMENT"
110
+ }
51
111
  }
52
- http_version:
53
- recorded_at: Mon, 27 Mar 2017 21:02:07 GMT
112
+ http_version:
113
+ recorded_at: Tue, 27 Oct 2020 18:44:57 GMT
54
114
  recorded_with: VCR 3.0.3
@@ -18,464 +18,42 @@ http_interactions:
18
18
  code: 200
19
19
  message: OK
20
20
  headers:
21
- X-Content-Type-Options:
22
- - nosniff
23
- Strict-Transport-Security:
24
- - max-age=31536000
25
- X-Xss-Protection:
26
- - 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube
27
- Cache-Control:
28
- - no-cache
29
21
  Content-Type:
30
22
  - text/html; charset=utf-8
23
+ Expires:
24
+ - Tue, 27 Apr 1971 19:44:06 GMT
25
+ Cache-Control:
26
+ - no-cache
27
+ X-Content-Type-Options:
28
+ - nosniff
31
29
  P3p:
32
- - CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en
30
+ - CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=pt-BR
33
31
  for more info."
34
- Expires:
35
- - Tue, 27 Apr 1971 19:44:06 EST
32
+ Strict-Transport-Security:
33
+ - max-age=31536000
36
34
  X-Frame-Options:
37
35
  - SAMEORIGIN
38
36
  Date:
39
- - Mon, 27 Mar 2017 21:01:59 GMT
37
+ - Tue, 27 Oct 2020 18:33:35 GMT
40
38
  Server:
41
- - YouTubeFrontEnd
39
+ - YouTube Frontend Proxy
40
+ X-Xss-Protection:
41
+ - '0'
42
42
  Set-Cookie:
43
- - VISITOR_INFO1_LIVE=0uA-K-EINiU; path=/; domain=.youtube.com; expires=Sun,
44
- 26-Nov-2017 08:54:59 GMT; httponly
45
- - YSC=0APBakQQ6kg; path=/; domain=.youtube.com; httponly
43
+ - GPS=1; path=/; domain=.youtube.com; expires=Tue, 27-Oct-2020 19:03:35 GMT
44
+ - VISITOR_INFO1_LIVE=blwzfYgCXp4; path=/; domain=.youtube.com; secure; expires=Sun,
45
+ 25-Apr-2021 18:33:35 GMT; httponly; samesite=None
46
+ - YSC=sIfLtZOs6gs; path=/; domain=.youtube.com; secure; httponly; samesite=None
46
47
  Alt-Svc:
47
- - quic=":443"; ma=2592000; v="37,36,35"
48
+ - h3-Q050=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-T050=":443";
49
+ ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443";
50
+ ma=2592000; v="46,43"
48
51
  Transfer-Encoding:
49
52
  - chunked
50
53
  body:
51
54
  encoding: ASCII-8BIT
52
- string: "<!DOCTYPE html><html lang=\"en\" data-cast-api-enabled=\"true\"><head><style
53
- name=\"www-roboto\">@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto
54
- Italic'),local('Roboto-Italic'),url(//fonts.gstatic.com/s/roboto/v15/W4wDsBUluyw0tK3tykhXEfesZW2xOQ-xsNqO47m55DA.ttf)format('truetype');}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto
55
- Regular'),local('Roboto-Regular'),url(//fonts.gstatic.com/s/roboto/v15/zN7GBFwfMP4uA6AR0HCoLQ.ttf)format('truetype');}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto
56
- Medium'),local('Roboto-Medium'),url(//fonts.gstatic.com/s/roboto/v15/RxZJdnzeo3R5zSexge8UUaCWcynf_cDxXwCLxiixG1c.ttf)format('truetype');}@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto
57
- Medium Italic'),local('Roboto-MediumItalic'),url(//fonts.gstatic.com/s/roboto/v15/OLffGBTaF0XFOW1gnuHF0Z0EAVxt0G0biEntp43Qt6E.ttf)format('truetype');}</style><script
58
- name=\"www-roboto\">if (document.fonts && document.fonts.load) {document.fonts.load(\"400
59
- 10pt Roboto\", \"E\");document.fonts.load(\"500 10pt Roboto\", \"E\");}</script><script>var
60
- ytcsi = {gt: function(n) {n = (n || '') + 'data_';return ytcsi[n] || (ytcsi[n]
61
- = {tick: {},info: {}});},now: window.performance && window.performance.timing
62
- &&window.performance.now ? function() {return window.performance.timing.navigationStart
63
- + window.performance.now();} : function() {return (new Date()).getTime();},tick:
64
- function(l, t, n) {ticks = ytcsi.gt(n).tick;var v = t || ytcsi.now();if (ticks[l])
65
- {ticks['_' + l] = (ticks['_' + l] || [ticks[l]]);ticks['_' + l].push(v);}ticks[l]
66
- = v;},info: function(k, v, n) {ytcsi.gt(n).info[k] = v;},setStart: function(s,
67
- t, n) {ytcsi.info('yt_sts', s, n);ytcsi.tick('_start', t, n);}};(function(w,
68
- d) {ytcsi.setStart('dhs', w.performance ? w.performance.timing.responseStart
69
- : null);var isPrerender = (d.visibilityState || d.webkitVisibilityState) ==
70
- 'prerender';var vName = d.webkitVisibilityState ? 'webkitvisibilitychange'
71
- : 'visibilitychange';if (isPrerender) {ytcsi.info('prerender', 1);var startTick
72
- = function() {ytcsi.setStart('dhs');d.removeEventListener(vName, startTick);};d.addEventListener(vName,
73
- startTick, false);}if (d.addEventListener) {d.addEventListener(vName, function()
74
- {ytcsi.tick('vc');}, false);}var slt = function(el, t) {setTimeout(function()
75
- {var n = ytcsi.now();el.loadTime = n;if (el.slt) {el.slt();}}, t);};w.__ytRIL
76
- = function(el) {if (!el.getAttribute('data-thumb')) {if (w.requestAnimationFrame)
77
- {w.requestAnimationFrame(function() {slt(el, 0);});} else {slt(el, 16);}}};})(window,
78
- document);</script><script>var ytcfg = {d: function() {return (window.yt &&
79
- yt.config_) || ytcfg.data_ || (ytcfg.data_ = {});},get: function(k, o) {return
80
- (k in ytcfg.d()) ? ytcfg.d()[k] : o;},set: function() {var a = arguments;if
81
- (a.length > 1) {ytcfg.d()[a[0]] = a[1];} else {for (var k in a[0]) {ytcfg.d()[k]
82
- = a[0][k];}}}};</script> <script>ytcfg.set(\"EXP_QUICK_FETCH_BISCOTTI\",
83
- false);ytcfg.set(\"LACT\", null);</script>\n \n\n\n\n\n <script>\n (function(){var
84
- b={a:\"content-snap-width-1\",b:\"content-snap-width-2\",c:\"content-snap-width-3\"};function
85
- f(){var a=[],c;for(c in b)a.push(b[c]);return a}\nfunction h(a){var c=f().concat([\"guide-pinned\",\"show-guide\"]),e=c.length,g=[];a.replace(/\\S+/g,function(a){for(var
86
- d=0;d<e;d++)if(a==c[d])return;g.push(a)});\nreturn g}\n;function k(a,c,e){var
87
- g=document.getElementsByTagName(\"html\")[0],d=h(g.className);a&&1251<=(window.innerWidth||document.documentElement.clientWidth)&&(d.push(\"guide-pinned\"),c&&d.push(\"show-guide\"));e&&(e=(window.innerWidth||document.documentElement.clientWidth)-21-50,1251<=(window.innerWidth||document.documentElement.clientWidth)&&a&&c&&(e-=230),d.push(1262<=e?\"content-snap-width-3\":1056<=e?\"content-snap-width-2\":\"content-snap-width-1\"));g.className=d.join(\"
88
- \")}\nvar l=[\"yt\",\"www\",\"masthead\",\"sizing\",\"runBeforeBodyIsReady\"],m=this;l[0]in
89
- m||!m.execScript||m.execScript(\"var \"+l[0]);for(var n;l.length&&(n=l.shift());)l.length||void
90
- 0===k?m[n]&&m[n]!==Object.prototype[n]?m=m[n]:m=m[n]={}:m[n]=k;}).call(this);\n\n
91
- \ try {window.ytbuffer = {};ytbuffer.handleClick = function(e) {var element
92
- = e.target || e.srcElement;while (element.parentElement) {if (/(^| )yt-can-buffer(
93
- |$)/.test(element.className)) {window.ytbuffer = {bufferedClick: e};element.className
94
- += ' yt-is-buffered';break;}element = element.parentElement;}};if (document.addEventListener)
95
- {document.addEventListener('click', ytbuffer.handleClick);} else {document.attachEvent('onclick',
96
- ytbuffer.handleClick);}} catch(e) {}\n\n yt.www.masthead.sizing.runBeforeBodyIsReady(false,false,true);\n
97
- \ </script>\n\n <script src=\"/yts/jsbin/scheduler-vflP0xYB-/scheduler.js\"
98
- type=\"text/javascript\" name=\"scheduler/scheduler\"></script>\n\n\n <script>var
99
- ytimg = {};ytimg.count = 1;ytimg.preload = function(src) {var img = new Image();var
100
- count = ++ytimg.count;ytimg[count] = img;img.onload = img.onerror = function()
101
- {delete ytimg[count];};img.src = src;};</script>\n\n\n <script src=\"/yts/jsbin/player-en_US-vflTzv1GM/base.js\"
102
- name=\"player/base\"></script>\n\n\n\n <link rel=\"stylesheet\" href=\"/yts/cssbin/www-core-vfl8pkKxk.css\"
103
- name=\"www-core\">\n <link rel=\"stylesheet\" href=\"/yts/cssbin/www-player-vflBdNOn0.css\"
104
- name=\"www-player\">\n\n <link rel=\"stylesheet\" href=\"/yts/cssbin/www-pageframe-vflnlJjDX.css\"
105
- name=\"www-pageframe\">\n \n\n<title>YouTube</title><meta name=\"robots\"
106
- content=\"noindex\"> <meta name=\"title\" content=\"\">\n\n <meta
107
- name=\"description\" content=\"\">\n\n <meta name=\"keywords\" content=\"\">\n\n<link
108
- rel=\"manifest\" href=\"/manifest.json\"><meta name=\"referrer\" content=\"origin\"><link
109
- rel=\"search\" type=\"application/opensearchdescription+xml\" href=\"https://www.youtube.com/opensearch?locale=en_US\"
110
- title=\"YouTube Video Search\"><link rel=\"shortcut icon\" href=\"https://s.ytimg.com/yts/img/favicon-vflz7uhzw.ico\"
111
- type=\"image/x-icon\"> <link rel=\"icon\" href=\"/yts/img/favicon_32-vfl8NGn4k.png\"
112
- sizes=\"32x32\"><link rel=\"icon\" href=\"/yts/img/favicon_48-vfl1s0rGh.png\"
113
- sizes=\"48x48\"><link rel=\"icon\" href=\"/yts/img/favicon_96-vfldSA3ca.png\"
114
- sizes=\"96x96\"><link rel=\"icon\" href=\"/yts/img/favicon_144-vflWmzoXw.png\"
115
- sizes=\"144x144\"><meta name=\"theme-color\" content=\"#e62117\"> \n<style>.yt-uix-button-primary,
116
- .yt-uix-button-primary[disabled], .yt-uix-button-primary[disabled]:hover,
117
- .yt-uix-button-primary[disabled]:active, .yt-uix-button-primary[disabled]:focus
118
- { background-color: #167ac6; }</style></head> <body dir=\"ltr\" id=\"body\"
119
- class=\" ltr exp-responsive exp-scrollable-guide exp-search-big-thumbs
120
- \ site-center-aligned site-as-giant-card appbar-hidden visibility-logging-enabled
121
- \ not-nirvana-dogfood not-yt-legacy-css flex-width-enabled flex-width-enabled-snap
122
- \ delayed-frame-styles-not-in \" data-spf-name=\"watch\">\n<div id=\"early-body\"></div><div
123
- id=\"body-container\"><div id=\"a11y-announcements-container\" role=\"alert\"><div
124
- id=\"a11y-announcements-message\"></div></div><form name=\"logoutForm\" method=\"POST\"
125
- action=\"/logout\"><input type=\"hidden\" name=\"action_logout\" value=\"1\"></form><div
126
- id=\"masthead-positioner\"> <div id=\"ticker-content\">\n \n\n </div>\n
127
- \ <div id=\"yt-masthead-container\" class=\"clearfix yt-base-gutter\"> <button
128
- id=\"a11y-skip-nav\" class=\"skip-nav\" data-target-id=\"main\" tabindex=\"3\">\nSkip
129
- navigation\n </button>\n<div id=\"yt-masthead\"><div class=\"yt-masthead-logo-container
130
- \"> <button class=\"yt-uix-button yt-uix-button-size-default yt-uix-button-text
131
- yt-uix-button-empty yt-uix-button-has-icon appbar-guide-toggle appbar-guide-clickable-ancestor\"
132
- type=\"button\" onclick=\";return false;\" aria-controls=\"appbar-guide-menu\"
133
- aria-label=\"Guide\" id=\"appbar-guide-button\"><span class=\"yt-uix-button-icon-wrapper\"><span
134
- class=\"yt-uix-button-icon yt-uix-button-icon-appbar-guide yt-sprite\"></span></span></button>\n
135
- \ <div id=\"appbar-main-guide-notification-container\"></div>\n<span id=\"yt-masthead-logo-fragment\"><a
136
- href=\"/\" class=\"masthead-logo-renderer yt-uix-sessionlink spf-link
137
- \" data-sessionlink=\"itct=CAUQsV4iEwiD_JG8yvfSAhWRcH4KHXEgBRIo-B0\" id=\"logo-container\"
138
- title=\"YouTube Home\"> <span title=\"YouTube Home\" class=\"logo masthead-logo-renderer-logo
139
- yt-sprite\"></span>\n</a></span></div><div id=\"yt-masthead-signin\"><a href=\"//www.youtube.com/upload\"
140
- class=\"yt-uix-button yt-uix-sessionlink yt-uix-button-opacity yt-uix-button-size-default
141
- yt-uix-button-has-icon yt-uix-tooltip yt-uix-button-empty\" data-sessionlink=\"ei=x33ZWMP8OpHh-QPxwJSQAQ&amp;feature=mhsb\"
142
- id=\"upload-btn\" title=\"Upload\"><span class=\"yt-uix-button-icon-wrapper\"><span
143
- class=\"yt-uix-button-icon yt-uix-button-icon-material-upload yt-sprite\"></span></span></a><div
144
- class=\"signin-container \"><button class=\"yt-uix-button yt-uix-button-size-default
145
- yt-uix-button-primary\" type=\"button\" onclick=\";window.location.href=this.getAttribute(&#39;href&#39;);return
146
- false;\" href=\"https://accounts.google.com/ServiceLogin?continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Fnext%3D%252Fwatch%253Fv%253DSUkXvWn1m7Q%26hl%3Den%26feature%3Dsign_in_button%26app%3Ddesktop%26action_handle_signin%3Dtrue&amp;hl=en&amp;passive=true&amp;service=youtube&amp;uilel=3\"
147
- role=\"link\"><span class=\"yt-uix-button-content\">Sign in</span></button></div></div><div
148
- id=\"yt-masthead-content\"><form id=\"masthead-search\" class=\" search-form
149
- consolidated-form vve-check\" action=\"/results\" onsubmit=\"if (document.getElementById(&#39;masthead-search-term&#39;).value
150
- == &#39;&#39;) return false;\" data-clicktracking=\"CAEQ7VAiEwiD_JG8yvfSAhWRcH4KHXEgBRIo-B0\"
151
- data-visibility-tracking=\"CAEQ7VAiEwiD_JG8yvfSAhWRcH4KHXEgBRIo-B0\"><button
152
- class=\"yt-uix-button yt-uix-button-size-default yt-uix-button-default search-btn-component
153
- search-button\" type=\"submit\" onclick=\"if (document.getElementById(&#39;masthead-search-term&#39;).value
154
- == &#39;&#39;) return false; document.getElementById(&#39;masthead-search&#39;).submit();
155
- return false;;return true;\" dir=\"ltr\" tabindex=\"2\" id=\"search-btn\"><span
156
- class=\"yt-uix-button-content\">Search</span></button><div id=\"masthead-search-terms\"
157
- class=\"masthead-search-terms-border\" dir=\"ltr\"><input id=\"masthead-search-term\"
158
- autocomplete=\"off\" onkeydown=\"if (!this.value &amp;&amp; (event.keyCode
159
- == 40 || event.keyCode == 32 || event.keyCode == 34)) {this.onkeydown = null;
160
- this.blur();}\" class=\"search-term masthead-search-renderer-input yt-uix-form-input-bidi\"
161
- name=\"search_query\" value=\"\" type=\"text\" tabindex=\"1\" placeholder=\"Search\"
162
- title=\"Search\" aria-label=\"Search\"></div></form></div></div></div>\n <div
163
- id=\"masthead-appbar-container\" class=\"clearfix\"><div id=\"masthead-appbar\"><div
164
- id=\"appbar-content\" class=\"\"></div></div></div>\n\n</div><div id=\"masthead-positioner-height-offset\"></div><div
165
- id=\"page-container\"><div id=\"page\" class=\" watch video- clearfix\"><div
166
- id=\"guide\" class=\"yt-scrollbar\"> <div id=\"appbar-guide-menu\" class=\"appbar-menu
167
- appbar-guide-menu-layout appbar-guide-clickable-ancestor\">\n <div id=\"guide-container\">\n
168
- \ <div class=\"guide-module-content guide-module-loading\">\n <p
169
- class=\"yt-spinner \">\n <span title=\"Loading icon\" class=\"yt-spinner-img
170
- \ yt-sprite\"></span>\n\n <span class=\"yt-spinner-message\">\nLoading...\n
171
- \ </span>\n </p>\n\n </div>\n </div>\n </div>\n\n</div><div class=\"alerts-wrapper\"><div
172
- id=\"alerts\" class=\"content-alignment\"> \n <div id=\"editor-progress-alert-container\"></div>\n
173
- \ <div class=\"yt-alert yt-alert-default yt-alert-warn hid \" id=\"editor-progress-alert-template\">
174
- \ <div class=\"yt-alert-icon\">\n <span class=\"icon master-sprite yt-sprite\"></span>\n
175
- \ </div>\n<div class=\"yt-alert-content\" role=\"alert\"></div><div class=\"yt-alert-buttons\"><button
176
- class=\"yt-uix-button yt-uix-button-size-default yt-uix-button-close close
177
- yt-uix-close\" type=\"button\" onclick=\";return false;\" aria-label=\"Close\"
178
- data-close-parent-class=\"yt-alert\"><span class=\"yt-uix-button-content\">Close</span></button></div></div>\n\n
179
- \ <div id=\"edit-confirmation-alert\"></div>\n <div class=\"yt-alert yt-alert-actionable
180
- yt-alert-info hid \" id=\"edit-confirmation-alert-template\"> <div class=\"yt-alert-icon\">\n
181
- \ <span class=\"icon master-sprite yt-sprite\"></span>\n </div>\n<div class=\"yt-alert-content\"
182
- role=\"alert\"> <div class=\"yt-alert-message\" tabindex=\"0\">\n </div>\n</div><div
183
- class=\"yt-alert-buttons\"> <button class=\"yt-uix-button yt-uix-button-size-default
184
- yt-uix-button-alert-info yt-uix-button-has-icon edit-confirmation-yes\" type=\"button\"
185
- onclick=\";return false;\"><span class=\"yt-uix-button-icon-wrapper\"><span
186
- class=\"yt-uix-button-icon yt-uix-button-icon-watch-like-invert yt-sprite\"></span></span><span
187
- class=\"yt-uix-button-content\">Yeah, keep it</span></button>\n <button class=\"yt-uix-button
188
- yt-uix-button-size-default yt-uix-button-alert-info yt-uix-button-has-icon
189
- edit-confirmation-no\" type=\"button\" onclick=\";return false;\"><span class=\"yt-uix-button-icon-wrapper\"><span
190
- class=\"yt-uix-button-icon yt-uix-button-icon-watch-unlike-invert yt-sprite\"></span></span><span
191
- class=\"yt-uix-button-content\">Undo</span></button>\n<button class=\"yt-uix-button
192
- yt-uix-button-size-default yt-uix-button-close close yt-uix-close\" type=\"button\"
193
- onclick=\";return false;\" aria-label=\"Close\" data-close-parent-class=\"yt-alert\"><span
194
- class=\"yt-uix-button-content\">Close</span></button></div></div>\n\n\n\n</div></div><div
195
- id=\"header\"></div><div id=\"player\" class=\" content-alignment watch-small
196
- \ off-screen-trigger \" role=\"complementary\"><div id=\"theater-background\"
197
- class=\"player-height\"></div> <div id=\"player-mole-container\">\n <div
198
- id=\"player-unavailable\" class=\" player-width player-height player-unavailable
199
- \">\n <div class=\"icon meh\"></div>\n <div class=\"content\">\n
200
- \ <h1 id=\"unavailable-message\" class=\"message\">\n This
201
- video is unavailable.\n\n </h1>\n <div id=\"unavailable-submessage\"
202
- class=\"submessage\">\nSorry about that.\n </div>\n </div>\n\n\n </div>\n\n
203
- \ <div id=\"player-api\" class=\"player-width player-height off-screen-target
204
- player-api\" tabIndex=\"-1\"></div>\n \n\n <div id=\"watch-queue-mole\"
205
- class=\"video-mole mole-collapsed hid\"><div id=\"watch-queue\" class=\"watch-playlist
206
- player-height\"><div class=\"main-content\"><div class=\"watch-queue-header\"><div
207
- class=\"watch-queue-info\"><div class=\"watch-queue-info-icon\"><span class=\"tv-queue-list-icon
208
- yt-sprite\"></span></div><h3 class=\"watch-queue-title\">Watch Queue</h3><h3
209
- class=\"tv-queue-title\">Queue</h3><span class=\"tv-queue-details\"></span></div><div
210
- class=\"watch-queue-control-bar control-bar-button\"><div class=\"watch-queue-mole-info\"><div
211
- class=\"watch-queue-control-bar-icon\"><span class=\"watch-queue-icon yt-sprite\"></span></div><div
212
- class=\"watch-queue-title-container\"><span class=\"watch-queue-count\"></span><span
213
- class=\"watch-queue-title\">Watch Queue</span><span class=\"tv-queue-title\">Queue</span></div></div>
214
- \ <span class=\"dark-overflow-action-menu\">\n \n \n <button class=\"flip
215
- control-bar-button yt-uix-button yt-uix-button-dark-overflow-action-menu yt-uix-button-size-default
216
- yt-uix-button-has-icon no-icon-markup yt-uix-button-empty\" type=\"button\"
217
- aria-expanded=\"false\" aria-label=\"Actions for the queue\" aria-haspopup=\"true\"
218
- onclick=\";return false;\" ><span class=\"yt-uix-button-arrow yt-sprite\"></span><ul
219
- class=\"watch-queue-menu yt-uix-button-menu yt-uix-button-menu-dark-overflow-action-menu
220
- hid\" role=\"menu\" aria-haspopup=\"true\"><li role=\"menuitem\"><span onclick=\";return
221
- false;\" class=\"watch-queue-menu-choice overflow-menu-choice yt-uix-button-menu-item\"
222
- data-action=\"remove-all\" >Remove all</span></li><li role=\"menuitem\"><span
223
- onclick=\";return false;\" class=\"watch-queue-menu-choice overflow-menu-choice
224
- yt-uix-button-menu-item\" data-action=\"disconnect\" >Disconnect</span></li></ul></button>\n
225
- \ </span>\n <div class=\"watch-queue-controls\">\n <button class=\"yt-uix-button
226
- yt-uix-button-size-default yt-uix-button-empty yt-uix-button-has-icon control-bar-button
227
- prev-watch-queue-button yt-uix-button-opacity yt-uix-tooltip yt-uix-tooltip\"
228
- type=\"button\" onclick=\";return false;\" title=\"Previous video\"><span
229
- class=\"yt-uix-button-icon-wrapper\"><span class=\"yt-uix-button-icon yt-uix-button-icon-watch-queue-prev
230
- yt-sprite\"></span></span></button>\n\n <button class=\"yt-uix-button yt-uix-button-size-default
231
- yt-uix-button-empty yt-uix-button-has-icon control-bar-button play-watch-queue-button
232
- yt-uix-button-opacity yt-uix-tooltip yt-uix-tooltip\" type=\"button\" onclick=\";return
233
- false;\" title=\"Play\"><span class=\"yt-uix-button-icon-wrapper\"><span class=\"yt-uix-button-icon
234
- yt-uix-button-icon-watch-queue-play yt-sprite\"></span></span></button>\n\n
235
- \ <button class=\"yt-uix-button yt-uix-button-size-default yt-uix-button-empty
236
- yt-uix-button-has-icon control-bar-button pause-watch-queue-button yt-uix-button-opacity
237
- yt-uix-tooltip hid yt-uix-tooltip\" type=\"button\" onclick=\";return false;\"
238
- title=\"Pause\"><span class=\"yt-uix-button-icon-wrapper\"><span class=\"yt-uix-button-icon
239
- yt-uix-button-icon-watch-queue-pause yt-sprite\"></span></span></button>\n\n
240
- \ <button class=\"yt-uix-button yt-uix-button-size-default yt-uix-button-empty
241
- yt-uix-button-has-icon control-bar-button next-watch-queue-button yt-uix-button-opacity
242
- yt-uix-tooltip yt-uix-tooltip\" type=\"button\" onclick=\";return false;\"
243
- title=\"Next video\"><span class=\"yt-uix-button-icon-wrapper\"><span class=\"yt-uix-button-icon
244
- yt-uix-button-icon-watch-queue-next yt-sprite\"></span></span></button>\n
245
- \ </div>\n</div><div class=\"autoplay-dismiss-bar fade-out\"><span class=\"autoplay-dismiss-title-label\">The
246
- next video is starting</span><span><button class=\"yt-uix-button yt-uix-button-size-default
247
- autoplay-dismiss-button yt-uix-tooltip\" type=\"button\" onclick=\";return
248
- false;\" title=\"stop\"><span class=\"yt-uix-button-content\">stop</span></button></span></div></div><div
249
- class=\"watch-queue-items-container yt-scrollbar-dark yt-scrollbar\"><div
250
- class=\"yt-uix-scroller playlist-videos-list\"><ol class=\"watch-queue-items-list\"
251
- data-scroll-action=\"yt.www.watchqueue.loadThumbnails\"> <p class=\"yt-spinner
252
- \">\n <span title=\"Loading icon\" class=\"yt-spinner-img yt-sprite\"></span>\n\n
253
- \ <span class=\"yt-spinner-message\">\nLoading...\n </span>\n </p>\n</ol><div
254
- class=\"autoplay-control-container yt-uix-scroller-scroll-unit hid\"> <div
255
- class=\"autoplay-control-bar\">\n <label class=\"autoplay-label\" for=autoplay-toggle-id></label>\n
256
- \ <label class=\"yt-uix-form-input-checkbox-container yt-uix-form-input-container
257
- yt-uix-form-input-paper-toggle-container \"><input class=\"yt-uix-form-input-checkbox\"
258
- type=\"checkbox\" id=\"autoplay-toggle-id\"/><div class=\"yt-uix-form-input-paper-toggle-bg
259
- yt-uix-form-input-paper-toggle-bar\"></div><div class=\"yt-uix-form-input-paper-toggle-bg
260
- yt-uix-form-input-paper-toggle-button\"></div></label>\n </div>\n</div><div
261
- class=\"up-next-item-container hid\"></div></div></div></div> <div class=\"hid\">\n
262
- \ <div id=\"watch-queue-title-msg\">\nWatch Queue\n </div>\n\n <div
263
- id=\"tv-queue-title-msg\">Queue</div>\n\n <div id=\"watch-queue-count-msg\">\n__count__/__total__\n
264
- \ </div>\n\n <div id=\"watch-queue-loading-template\">\n <!--\n
265
- \ <p class=\"yt-spinner \">\n <span title=\"Loading icon\"
266
- class=\"yt-spinner-img yt-sprite\"></span>\n\n <span class=\"yt-spinner-message\">\nLoading...\n
267
- \ </span>\n </p>\n\n -->\n </div>\n </div>\n</div></div>\n <div
268
- id=\"player-playlist\" class=\" content-alignment watch-player-playlist
269
- \ \">\n \n </div>\n\n </div>\n\n <div class=\"clear\"></div>\n</div><div
270
- id=\"content\" class=\" content-alignment\" role=\"main\"> <div id=\"placeholder-player\">\n
271
- \ <div class=\"player-api player-width player-height\"></div>\n </div>\n\n
272
- \ <div id=\"watch7-container\" class=\"\">\n <div id=\"player-messages\">\n
273
- \ </div>\n <div id=\"watch7-main-container\">\n <div id=\"watch7-main\"
274
- class=\"clearfix\">\n <div id=\"watch7-preview\" class=\"player-width
275
- player-height hid\">\n </div>\n <div id=\"watch7-content\" class=\"watch-main-col
276
- \" itemscope itemid=\"\" itemtype=\"http://schema.org/VideoObject\"\n >\n
277
- \ \n </div>\n <div id=\"watch7-sidebar\" class=\"watch-sidebar\">\n
278
- \ </div>\n </div>\n </div>\n <div id=\"watch7-hidden-extras\">\n
279
- \ <div style=\"visibility: hidden; height: 0px; padding: 0px; overflow:
280
- hidden;\">\n </div>\n\n </div>\n\n\n </div>\n\n</div></div></div></div>
281
- \ <div id=\"footer-container\" class=\"yt-base-gutter force-layer\"><div id=\"footer\"><div
282
- id=\"footer-main\"><div id=\"footer-logo\"><a href=\"/\" id=\"footer-logo-link\"
283
- title=\"YouTube home\" data-sessionlink=\"ei=x33ZWMP8OpHh-QPxwJSQAQ&amp;ved=CAIQpmEiEwiD_JG8yvfSAhWRcH4KHXEgBRIo-B0\"
284
- class=\"yt-uix-sessionlink\"><span class=\"footer-logo-icon yt-sprite\"></span></a></div>
285
- \ <ul class=\"pickers yt-uix-button-group\" data-button-toggle-group=\"optional\">\n
286
- \ <li>\n <button class=\"yt-uix-button yt-uix-button-size-default
287
- yt-uix-button-default yt-uix-button-has-icon\" type=\"button\" onclick=\";return
288
- false;\" id=\"yt-picker-language-button\" data-picker-key=\"language\" data-button-action=\"yt.www.picker.load\"
289
- data-picker-position=\"footer\" data-button-menu-id=\"arrow-display\" data-button-toggle=\"true\"><span
290
- class=\"yt-uix-button-icon-wrapper\"><span class=\"yt-uix-button-icon yt-uix-button-icon-footer-language
291
- yt-sprite\"></span></span><span class=\"yt-uix-button-content\"> <span class=\"yt-picker-button-label\">\nLanguage:\n
292
- \ </span>\n English\n</span><span class=\"yt-uix-button-arrow yt-sprite\"></span></button>\n\n\n
293
- \ </li>\n <li>\n <button class=\"yt-uix-button yt-uix-button-size-default
294
- yt-uix-button-default\" type=\"button\" onclick=\";return false;\" id=\"yt-picker-country-button\"
295
- data-picker-key=\"country\" data-button-action=\"yt.www.picker.load\" data-picker-position=\"footer\"
296
- data-button-menu-id=\"arrow-display\" data-button-toggle=\"true\"><span class=\"yt-uix-button-content\">
297
- \ <span class=\"yt-picker-button-label\">\nContent location:\n </span>\n
298
- \ United States\n</span><span class=\"yt-uix-button-arrow yt-sprite\"></span></button>\n\n\n
299
- \ </li>\n <li>\n <button class=\"yt-uix-button yt-uix-button-size-default
300
- yt-uix-button-default\" type=\"button\" onclick=\";return false;\" id=\"yt-picker-safetymode-button\"
301
- data-picker-key=\"safetymode\" data-button-action=\"yt.www.picker.load\" data-picker-position=\"footer\"
302
- data-button-menu-id=\"arrow-display\" data-button-toggle=\"true\"><span class=\"yt-uix-button-content\">
303
- \ <span class=\"yt-picker-button-label\">\nRestricted Mode:\n </span>\nOff\n</span><span
304
- class=\"yt-uix-button-arrow yt-sprite\"></span></button>\n\n\n </li>\n
305
- \ </ul>\n<a href=\"/feed/history\" class=\"yt-uix-button footer-history yt-uix-sessionlink
306
- yt-uix-button-default yt-uix-button-size-default yt-uix-button-has-icon\"
307
- data-sessionlink=\"ei=x33ZWMP8OpHh-QPxwJSQAQ\"><span class=\"yt-uix-button-icon-wrapper\"><span
308
- class=\"yt-uix-button-icon yt-uix-button-icon-footer-history yt-sprite\"></span></span><span
309
- class=\"yt-uix-button-content\">History</span></a> <button class=\"yt-uix-button
310
- yt-uix-button-size-default yt-uix-button-default yt-uix-button-has-icon yt-uix-button-reverse
311
- yt-google-help-link inq-no-click \" type=\"button\" onclick=\";return false;\"
312
- data-ghelp-tracking-param=\"\" id=\"google-help\" data-ghelp-anchor=\"google-help\"
313
- data-load-chat-support=\"\" data-feedback-product-id=\"59\"><span class=\"yt-uix-button-icon-wrapper\"><span
314
- class=\"yt-uix-button-icon yt-uix-button-icon-questionmark yt-sprite\"></span></span><span
315
- class=\"yt-uix-button-content\">Help\n</span></button>\n <div id=\"yt-picker-language-footer\"
316
- class=\"yt-picker\" style=\"display: none\">\n <p class=\"yt-spinner
317
- \">\n <span title=\"Loading icon\" class=\"yt-spinner-img yt-sprite\"></span>\n\n
318
- \ <span class=\"yt-spinner-message\">\nLoading...\n </span>\n </p>\n\n
319
- \ </div>\n\n <div id=\"yt-picker-country-footer\" class=\"yt-picker\"
320
- style=\"display: none\">\n <p class=\"yt-spinner \">\n <span title=\"Loading
321
- icon\" class=\"yt-spinner-img yt-sprite\"></span>\n\n <span class=\"yt-spinner-message\">\nLoading...\n
322
- \ </span>\n </p>\n\n </div>\n\n <div id=\"yt-picker-safetymode-footer\"
323
- class=\"yt-picker\" style=\"display: none\">\n <p class=\"yt-spinner
324
- \">\n <span title=\"Loading icon\" class=\"yt-spinner-img yt-sprite\"></span>\n\n
325
- \ <span class=\"yt-spinner-message\">\nLoading...\n </span>\n </p>\n\n
326
- \ </div>\n\n</div><div id=\"footer-links\"><ul id=\"footer-links-primary\">
327
- \ <li><a href=\"//www.youtube.com/yt/about/\">About</a></li>\n <li><a href=\"//www.youtube.com/yt/press/\">Press</a></li>\n
328
- \ <li><a href=\"//www.youtube.com/yt/copyright/\">Copyright</a></li>\n <li><a
329
- href=\"//www.youtube.com/yt/creators/\">Creators</a></li>\n <li><a href=\"//www.youtube.com/yt/advertise/\">Advertise</a></li>\n
330
- \ <li><a href=\"//www.youtube.com/yt/dev/\">Developers</a></li>\n <li><a
331
- href=\"https://plus.google.com/+youtube\" dir=\"ltr\">+YouTube</a></li>\n</ul><ul
332
- id=\"footer-links-secondary\"> <li><a href=\"/t/terms\">Terms</a></li>\n
333
- \ <li><a href=\"https://www.google.com/intl/en/policies/privacy/\">Privacy</a></li>\n
334
- \ <li><a href=\"//www.youtube.com/yt/policyandsafety/\">\nPolicy &amp; Safety\n
335
- \ </a></li>\n <li><a href=\"//support.google.com/youtube/?hl=en\" onclick=\"return
336
- yt.www.feedback.start(59);\" class=\"reportbug\">Send feedback</a></li>\n
337
- \ <li>\n <a href=\"/testtube\">Test new features</a>\n </li>\n <li></li>\n</ul></div></div></div>\n\n\n
338
- \ <div class=\"yt-dialog hid \" id=\"feed-privacy-lb\">\n <div class=\"yt-dialog-base\">\n
339
- \ <span class=\"yt-dialog-align\"></span>\n <div class=\"yt-dialog-fg\"
340
- role=\"dialog\">\n <div class=\"yt-dialog-fg-content\">\n <div
341
- class=\"yt-dialog-loading\">\n <div class=\"yt-dialog-waiting-content\">\n
342
- \ <p class=\"yt-spinner \">\n <span title=\"Loading icon\" class=\"yt-spinner-img
343
- \ yt-sprite\"></span>\n\n <span class=\"yt-spinner-message\">\nLoading...\n
344
- \ </span>\n </p>\n\n </div>\n\n </div>\n <div class=\"yt-dialog-content\">\n
345
- \ <div id=\"feed-privacy-dialog\">\n </div>\n\n </div>\n
346
- \ <div class=\"yt-dialog-working\">\n <div class=\"yt-dialog-working-overlay\"></div>\n
347
- \ <div class=\"yt-dialog-working-bubble\">\n <div class=\"yt-dialog-waiting-content\">\n
348
- \ <p class=\"yt-spinner \">\n <span title=\"Loading icon\" class=\"yt-spinner-img
349
- \ yt-sprite\"></span>\n\n <span class=\"yt-spinner-message\">\n Working...\n
350
- \ </span>\n </p>\n\n </div>\n </div>\n\n </div>\n </div>\n
351
- \ <div class=\"yt-dialog-focus-trap\" tabindex=\"0\"></div>\n </div>\n
352
- \ </div>\n </div>\n\n\n<div id=\"hidden-component-template-wrapper\" class=\"hid\">
353
- \ <div id=\"shared-addto-watch-later-login\" class=\"hid\">\n <a href=\"https://accounts.google.com/ServiceLogin?continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Fnext%3D%252Fwatch%253Fv%253DSUkXvWn1m7Q%26hl%3Den%26feature%3Dplaylist%26app%3Ddesktop%26action_handle_signin%3Dtrue&amp;hl=en&amp;passive=true&amp;service=youtube&amp;uilel=3\"
354
- class=\"sign-in-link\">Sign in</a> to add this to Watch Later\n\n </div>\n<div
355
- id=\"yt-uix-videoactionmenu-menu\" class=\"yt-ui-menu-content\"> <div class=\"hide-on-create-pl-panel\">\n
356
- \ <h3>\nAdd to\n </h3>\n </div>\n <div class=\"add-to-widget\">\n <p
357
- class=\"yt-spinner \">\n <span title=\"Loading icon\" class=\"yt-spinner-img
358
- \ yt-sprite\"></span>\n\n <span class=\"yt-spinner-message\">\n Loading
359
- playlists...\n </span>\n </p>\n\n </div>\n</div></div> <script>var
360
- ytspf = ytspf || {};ytspf.enabled = true;ytspf.config = {'reload-identifier':
361
- 'spfreload'};ytspf.config['request-headers'] = {'X-YouTube-Identity-Token':
362
- null};ytspf.config['experimental-request-headers'] = ytspf.config['request-headers'];ytspf.config['cache-max']
363
- = 50;ytspf.config['navigate-limit'] = 50;ytspf.config['navigate-lifetime']
364
- = 64800000;ytspf.config['animation-duration'] = 0;</script>\n <script src=\"/yts/jsbin/spf-vflbAG6Qt/spf.js\"
365
- type=\"text/javascript\" name=\"spf/spf\"></script>\n <script src=\"/yts/jsbin/www-en_US-vflJLkLjx/base.js\"
366
- name=\"www/base\"></script>\n<script>spf.script.path({'www/': '/yts/jsbin/www-en_US-vflJLkLjx/'});var
367
- ytdepmap = {\"www/base\": null, \"www/common\": \"www/base\", \"www/angular_base\":
368
- \"www/common\", \"www/channels_accountupload\": \"www/common\", \"www/channels\":
369
- \"www/common\", \"www/dashboard\": \"www/common\", \"www/downloadreports\":
370
- \"www/common\", \"www/experiments\": \"www/common\", \"www/feed\": \"www/common\",
371
- \"www/instant\": \"www/common\", \"www/legomap\": \"www/common\", \"www/live_chat\":
372
- \"www/common\", \"www/live_chat_moderation\": \"www/common\", \"www/promo_join_network\":
373
- \"www/common\", \"www/results_harlemshake\": \"www/common\", \"www/results\":
374
- \"www/common\", \"www/results_starwars\": \"www/common\", \"www/subscriptionmanager\":
375
- \"www/common\", \"www/unlimited\": \"www/common\", \"www/watch\": \"www/common\",
376
- \"www/ypc_bootstrap\": \"www/common\", \"www/ypc_core\": \"www/common\", \"www/channels_edit\":
377
- \"www/channels\", \"www/live_dashboard\": \"www/angular_base\", \"www/videomanager\":
378
- \"www/angular_base\", \"www/watch_autoplayrenderer\": \"www/watch\", \"www/watch_edit\":
379
- \"www/watch\", \"www/watch_editor\": \"www/watch\", \"www/watch_live\": \"www/watch\",
380
- \"www/watch_promos\": \"www/watch\", \"www/watch_speedyg\": \"www/watch\",
381
- \"www/watch_transcript\": \"www/watch\", \"www/watch_videoshelf\": \"www/watch\",
382
- \"www/ct_advancedsearch\": \"www/videomanager\", \"www/my_videos\": \"www/videomanager\"};spf.script.declare(ytdepmap);</script><script>if
383
- (window.ytcsi) {window.ytcsi.tick(\"je\", null, '');}</script><script>yt.setConfig({INNERTUBE_CONTEXT_CLIENT_VERSION:
384
- \"1.20170322\",INNERTUBE_API_VERSION: \"v1\",APIARY_HOST: \"\",APIARY_HOST_FIRSTPARTY:
385
- \"\",INNERTUBE_API_KEY: \"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",INNERTUBE_CONTEXT_CLIENT_NAME:
386
- 1,GAPI_HINT_PARAMS: \"m;\\/_\\/scs\\/abc-static\\/_\\/js\\/k=gapi.gapi.en.DTPeBB_SvOA.O\\/m=__features__\\/rt=j\\/d=1\\/rs=AHpOoo-J3J0yqNDMPVrmQT6j-SBFfGx8oA\",'VISITOR_DATA':
387
- \"CgswdUEtSy1FSU5pVQ%3D%3D\",'GAPI_HOST': \"https:\\/\\/apis.google.com\",'GAPI_LOCALE':
388
- \"en_US\",'INNERTUBE_CONTEXT_HL': \"en\",'INNERTUBE_CONTEXT_GL': \"US\",'XHR_APIARY_HOST':
389
- \"youtubei.youtube.com\"});yt.setConfig({'ROOT_VE_CHILDREN': [\"CAEQ7VAiEwiD_JG8yvfSAhWRcH4KHXEgBRIo-B0\",\"CAIQpmEiEwiD_JG8yvfSAhWRcH4KHXEgBRIo-B0\"],'ROOT_VE_TYPE':
390
- 3832});yt.setConfig({'EVENT_ID': \"x33ZWMP8OpHh-QPxwJSQAQ\",'PAGE_NAME': \"watch\",'LOGGED_IN':
391
- false,'SESSION_INDEX': null,'VALID_SESSION_TEMPDATA_DOMAINS': [\"www.youtube.com\",\"gaming.youtube.com\"],'PARENT_TRACKING_PARAMS':
392
- \"\",'FORMATS_FILE_SIZE_JS': [\"%s B\",\"%s KB\",\"%s MB\",\"%s GB\",\"%s
393
- TB\"],'DELEGATED_SESSION_ID': null,'ONE_PICK_URL': \"\",'UNIVERSAL_HOVERCARDS':
394
- true,'GOOGLEPLUS_HOST': \"https:\\/\\/plus.google.com\",'PAGEFRAME_JS': \"\\/yts\\/jsbin\\/www-pageframe-vflliZgBm\\/www-pageframe.js\",'GAPI_LOADER_URL':
395
- \"\\/yts\\/jsbin\\/www-gapi-loader-vflNhfwHJ\\/www-gapi-loader.js\",'JS_COMMON_MODULE':
396
- \"\\/yts\\/jsbin\\/www-en_US-vflJLkLjx\\/common.js\",'PAGE_FRAME_DELAYLOADED_CSS':
397
- \"\\/yts\\/cssbin\\/www-pageframedelayloaded-vflyiAVoi.css\",'EXPERIMENT_FLAGS':
398
- {\"navigation_only_csi_reset\":true,\"service_worker_push_prompt_cap\":1,\"service_worker_scope\":\"\\/\",\"service_worker_enabled\":true,\"autoescape_tempdata_url\":true,\"comment_deep_link\":true,\"desktop_pyv_on_watch_missing_params\":true,\"warm_load_nav_start_web\":true,\"log_window_onerror_fraction\":0.1,\"same_domain_static_resources_desktop\":true,\"autoplay_pause_sampling_fraction\":0.0,\"service_worker_push_enabled\":true,\"web_gel_lact\":true,\"player_swfcfg_cleanup\":true,\"clear_web_implicit_clicktracking\":true,\"gfeedback_for_signed_out_users_enabled\":true,\"web_logging_max_batch\":20,\"watch_next_pause_autoplay_lact_sec\":0,\"enable_youtubei_innertube\":true,\"enable_more_related_ve_logging\":true,\"desktop_pyv_on_watch_via_valor\":true,\"desktop_pyv_on_watch_override_lact\":true,\"use_push_for_desktop_live_chat\":true,\"cold_load_nav_start_web\":true,\"block_spf_search_ads_impressions\":true,\"enable_server_side_search_pyv\":true,\"chat_smoothing_animations\":84,\"consent_url_override\":\"\",\"service_worker_push_home_only\":true},'GUIDE_DELAY_LOAD':
399
- true,'GUIDE_DELAYLOADED_CSS': \"\\/yts\\/cssbin\\/www-guide-vflzcam_P.css\",'GUIDED_HELP_PARAMS':
400
- {\"logged_in\":\"0\"},'HIGH_CONTRAST_MODE_CSS': \"\\/yts\\/cssbin\\/www-highcontrastmode-vflUxH5WH.css\",'PREFETCH_LINKS':
401
- false,'PREFETCH_LINKS_MAX': 1,'PREFETCH_AUTOPLAY': false,'PREFETCH_AUTOPLAY_TIME':
402
- 0,'PREFETCH_AUTONAV': false,'PREBUFFER_MAX': 1,'PREBUFFER_LINKS': false,'PREBUFFER_AUTOPLAY':
403
- false,'PREBUFFER_AUTONAV': false,'WATCH_LATER_BUTTON': \"\\n\\n \\u003cbutton
404
- class=\\\"yt-uix-button yt-uix-button-size-small yt-uix-button-default yt-uix-button-empty
405
- yt-uix-button-has-icon no-icon-markup addto-button video-actions spf-nolink
406
- hide-until-delayloaded addto-watch-later-button-sign-in yt-uix-tooltip\\\"
407
- type=\\\"button\\\" onclick=\\\";return false;\\\" title=\\\"Watch Later\\\"
408
- role=\\\"button\\\" data-video-ids=\\\"__VIDEO_ID__\\\" data-button-menu-id=\\\"shared-addto-watch-later-login\\\"\\u003e\\u003cspan
409
- class=\\\"yt-uix-button-arrow yt-sprite\\\"\\u003e\\u003c\\/span\\u003e\\u003c\\/button\\u003e\\n\",'WATCH_QUEUE_BUTTON':
410
- \" \\u003cbutton class=\\\"yt-uix-button yt-uix-button-size-small yt-uix-button-default
411
- yt-uix-button-empty yt-uix-button-has-icon no-icon-markup addto-button addto-queue-button
412
- video-actions spf-nolink hide-until-delayloaded addto-tv-queue-button yt-uix-tooltip\\\"
413
- type=\\\"button\\\" onclick=\\\";return false;\\\" title=\\\"Queue\\\" data-style=\\\"tv-queue\\\"
414
- data-video-ids=\\\"__VIDEO_ID__\\\"\\u003e\\u003c\\/button\\u003e\\n\",'WATCH_QUEUE_MENU':
415
- \" \\u003cspan class=\\\"thumb-menu dark-overflow-action-menu video-actions\\\"\\u003e\\n
416
- \ \\u003cbutton aria-haspopup=\\\"true\\\" onclick=\\\";return false;\\\"
417
- class=\\\"yt-uix-button-reverse flip addto-watch-queue-menu spf-nolink hide-until-delayloaded
418
- yt-uix-button yt-uix-button-dark-overflow-action-menu yt-uix-button-size-default
419
- yt-uix-button-has-icon no-icon-markup yt-uix-button-empty\\\" type=\\\"button\\\"
420
- aria-expanded=\\\"false\\\" \\u003e\\u003cspan class=\\\"yt-uix-button-arrow
421
- yt-sprite\\\"\\u003e\\u003c\\/span\\u003e\\u003cul class=\\\"watch-queue-thumb-menu
422
- yt-uix-button-menu yt-uix-button-menu-dark-overflow-action-menu hid\\\"\\u003e\\u003cli
423
- role=\\\"menuitem\\\" class=\\\"overflow-menu-choice addto-watch-queue-menu-choice
424
- addto-watch-queue-play-next yt-uix-button-menu-item\\\" data-action=\\\"play-next\\\"
425
- onclick=\\\";return false;\\\" data-video-ids=\\\"__VIDEO_ID__\\\"\\u003e\\u003cspan
426
- class=\\\"addto-watch-queue-menu-text\\\"\\u003ePlay next\\u003c\\/span\\u003e\\u003c\\/li\\u003e\\u003cli
427
- role=\\\"menuitem\\\" class=\\\"overflow-menu-choice addto-watch-queue-menu-choice
428
- addto-watch-queue-play-now yt-uix-button-menu-item\\\" data-action=\\\"play-now\\\"
429
- onclick=\\\";return false;\\\" data-video-ids=\\\"__VIDEO_ID__\\\"\\u003e\\u003cspan
430
- class=\\\"addto-watch-queue-menu-text\\\"\\u003ePlay now\\u003c\\/span\\u003e\\u003c\\/li\\u003e\\u003c\\/ul\\u003e\\u003c\\/button\\u003e\\n
431
- \ \\u003c\\/span\\u003e\\n\",'SAFETY_MODE_PENDING': false,'ZWIEBACK_PING_URLS':
432
- [\"https:\\/\\/www.google.com\\/pagead\\/lvz?pg=watch\\u0026evtid=AJhsOuiguSUJLQZ1sEeOxTv9DB0jB_kjVEcre5lJmdwuGsIvUjAY6kxGZ5xiIKbFKqQ6WPpuLHGrsqX-YMk6vnNE9fXXL5qbJQ\\u0026req_ts=1490648519\\u0026sigh=AIz_a8-XgEmAhWykEW0CXnWmHna3jf-Q6w\"],'LOCAL_DATE_TIME_CONFIG':
433
- {\"shortMonths\":[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],\"formatLongDateOnly\":\"MMMM
434
- d, yyyy\",\"weekdays\":[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],\"firstWeekCutoffDay\":3,\"firstDayOfWeek\":0,\"formatShortDate\":\"MMM
435
- d, yyyy\",\"weekendRange\":[6,5],\"months\":[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],\"formatShortTime\":\"h:mm
436
- a\",\"formatLongDate\":\"MMMM d, yyyy h:mm a\",\"amPms\":[\"AM\",\"PM\"],\"shortWeekdays\":[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],\"formatWeekdayShortTime\":\"EE
437
- h:mm a\",\"dateFormats\":[\"MMMM d, yyyy h:mm a\",\"MMMM d, yyyy\",\"MMM d,
438
- yyyy\",\"MMM d, yyyy\"]},'PAGE_CL': 151286026,'PAGE_BUILD_LABEL': \"youtube_20170322_0_RC6_RC4\",'VARIANTS_CHECKSUM':
439
- \"cbbba52c74fed3739bb77d64a73d2d56\",'CLIENT_PROTOCOL': \"HTTP\\/1.1\",'CLIENT_TRANSPORT':
440
- \"tcp\",'MDX_ENABLE_CASTV2': true,'MDX_ENABLE_QUEUE': true,'FEEDBACK_BUCKET_ID':
441
- \"Watch\",'FEEDBACK_LOCALE_LANGUAGE': \"en\",'FEEDBACK_LOCALE_EXTRAS': {\"is_partner\":\"\",\"experiments\":\"9406125,9415398,9416475,9417482,9419979,9420289,9422596,9423555,9428398,9431012,9432939,9433221,9433839,9433870,9434046,9434289,9434949,9438309,9439294,9439831,9439880,9440054,9441194,9441929,9442387,9442746,9443436,9443662,9444189,9444997,9445139,9446054,9446364,9448302,9449243,9449256,9450059,9450402,9450544,9450707,9451814,9451827,9451937,9452448,9452814,9452833,9452850,9453098,9453167,9453540,9453553,9453897,9454394,9454653,9454837,9454899,9454976,9455031,9455068,9455939,9456249,9456445,9456629,9456640,9456955,9457115,9457141,9457169,9457542,9457591,9457595,9457597,9457968,9458171,9458231,9458240,9458265,9458577,9458668,9458881,9458947,9459067,9459075,9459187,9459288,9459651,9459655,9459793,9459801,9460088,9460160,9460266,9460295,9460350,9460458,9460554,9460611,9460637,9460829,9461124,9461452,9461765,9461777,9461906,9462003,9462015,9462018,9462032,9462127,9462233,9462359,9462377,9462474,9462948,9463002,9463004,9463083,9463175,9463177,9463251,9463287,9463460,9463470,9463496,9463512,9463594,9463664,9463784,9463809,9463882,9463963,9463965,9464039,9464111,9464207,9464272,9464408,9464440,9464490,9464496,9464823,9464888,9464889,9464896,9464909,9465117,9465354,9465513,9465533,9465560,9465652,9465676,9465710,9465732,9465950,9466136,9466181,9466186,9466194,9466397,9466777,9466793,9466795,9466835,9467030,9467085,9467338,9467401,9467588,9467653,9467655,9467700,9467795,9467867,9467977,9468153,9468195,9468228,9468389,9468433,9468714\",\"accept_language\":null,\"logged_in\":false}});
442
- \ yt.setConfig({\n 'GUIDED_HELP_LOCALE': \"en_US\",\n 'GUIDED_HELP_ENVIRONMENT':
443
- \"prod\"\n });\nyt.setConfig('SPF_SEARCH_BOX', true);yt.setMsg({'ADDTO_CREATE_NEW_PLAYLIST':
444
- \"Create new playlist\\n\",'ADDTO_CREATE_PLAYLIST_DYNAMIC_TITLE': \" $dynamic_title_placeholder
445
- (create new)\\n\",'ADDTO_WATCH_LATER': \"Watch Later\",'ADDTO_WATCH_LATER_ADDED':
446
- \"Added\",'ADDTO_WATCH_LATER_ERROR': \"Error\",'ADDTO_WATCH_QUEUE': \"Watch
447
- Queue\",'ADDTO_WATCH_QUEUE_ADDED': \"Added\",'ADDTO_WATCH_QUEUE_ERROR': \"Error\",'ADDTO_TV_QUEUE':
448
- \"Queue\",'ADS_INSTREAM_FIRST_PLAY': \"A video ad is playing.\",'ADS_INSTREAM_SKIPPABLE':
449
- \"Video ad can be skipped.\",'ADS_OVERLAY_IMPRESSION': \"Ad displayed.\",'MASTHEAD_NOTIFICATIONS_LABEL':
450
- {\"case0\": \"0 unread notifications.\", \"case1\": \"1 unread notification.\",
451
- \"other\": \"# unread notifications.\"},'MASTHEAD_NOTIFICATIONS_COUNT_99PLUS':
452
- \"99+\",'MDX_AUTOPLAY_OFF': 'Autoplay is off','MDX_AUTOPLAY_ON': 'Autoplay
453
- is on'}); yt.setConfig('FEED_PRIVACY_CSS_URL', \"\\/yts\\/cssbin\\/www-feedprivacydialog-vflW29Bds.css\");\n\n
454
- \ yt.setConfig('FEED_PRIVACY_LIGHTBOX_ENABLED', true);\nyt.setConfig({'SBOX_JS_URL':
455
- \"\\/yts\\/jsbin\\/www-searchbox-legacy-vflYjU91s\\/www-searchbox-legacy.js\",'SBOX_SETTINGS':
456
- {\"SUGG_EXP_ID\":\"\",\"REQUEST_DOMAIN\":\"us\",\"PQ\":\"\",\"REQUEST_LANGUAGE\":\"en\",\"IS_FUSION\":false,\"PSUGGEST_TOKEN\":null,\"SESSION_INDEX\":null,\"HAS_ON_SCREEN_KEYBOARD\":false},'SBOX_LABELS':
457
- {\"SUGGESTION_DISMISS_LABEL\":\"Remove\",\"SUGGESTION_DISMISSED_LABEL\":\"Suggestion
458
- dismissed\"}}); yt.setConfig({\n 'YPC_LOADER_JS': \"\\/yts\\/jsbin\\/www-ypc-vflEWOCqz\\/www-ypc.js\",\n
459
- \ 'YPC_LOADER_CSS': \"\\/yts\\/cssbin\\/www-ypc-vfl_wOJp6.css\",\n 'YPC_SIGNIN_URL':
460
- \"https:\\/\\/accounts.google.com\\/ServiceLogin?continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Fnext%3D%252F%26hl%3Den%26app%3Ddesktop%26action_handle_signin%3Dtrue\\u0026hl=en\\u0026passive=true\\u0026service=youtube\\u0026uilel=3\",\n
461
- \ 'DBLCLK_ADVERTISER_ID': \"2542116\",\n 'DBLCLK_YPC_ACTIVITY_GROUP':
462
- \"youtu444\",\n 'SUBSCRIPTION_URL': \"\\/subscription_ajax\",\n 'YPC_SWITCH_URL':
463
- \"\\/signin?next=%2F\\u0026feature=purchases\\u0026skip_identity_prompt=True\\u0026action_handle_signin=true\",\n
464
- \ 'YPC_GB_LANGUAGE': \"en_US\",\n 'YPC_MB_URL': \"https:\\/\\/payments.google.com\\/payments\\/v4\\/js\\/integrator.js?ss=md\",\n
465
- \ 'YPC_TRANSACTION_URL': \"\\/transaction_handler\",\n 'YPC_SUBSCRIPTION_URL':
466
- \"\\/ypc_subscription_ajax\",\n 'YPC_POST_PURCHASE_URL': \"\\/ypc_post_purchase_ajax\",\n
467
- \ 'YTR_FAMILY_CREATION_URL': \"https:\\/\\/families.google.com\\/webcreation?usegapi=1\",\n
468
- \ 'YTO_GTM_DATA': {'event': 'purchased', 'purchaseStatus': 'success'},\n
469
- \ 'YTO_GTM_1_BUTTON_CLICK_DATA': {'event': 'landingButtonClick', 'buttonPosition':
470
- '1'},\n 'YTO_GTM_2_BUTTON_CLICK_DATA': {'event': 'landingButtonClick',
471
- 'buttonPosition': '2'}\n });\n yt.setMsg({\n 'YPC_OFFER_OVERLAY': \"
472
- \ \\n\",\n 'YPC_UNSUBSCRIBE_OVERLAY': \" \\n\"\n });\n yt.setConfig('GOOGLE_HELP_CONTEXT',
473
- \"watch\");\nytcsi.info('st', 88);ytcfg.set({\"CSI_SERVICE_NAME\":\"youtube\",\"TIMING_INFO\":{\"GetWatchNext_rid\":\"0x14a4c8188a46248a\",\"yt_lt\":\"cold\",\"GetPlayer_rid\":\"0x14a4c8188a46248a\",\"yt_pl\":0,\"cver\":\"1.20170322\",\"c\":\"WEB\",\"yt_li\":\"0\"},\"TIMING_ACTION\":\"watch,watch7_html5\",\"CSI_VIEWPORT\":true});;
474
- \ yt.setConfig({\n 'XSRF_TOKEN': \"QUFFLUhqblhvUGZSaGRnQ1VRRDc5RWNDbHlvT0xOOWVjd3xBQ3Jtc0trN28xY3RmWGwwbV9zQUNYbHExbzc4aEg5SGZzMHdFZ1RtVkVhaEVPMXVEVXZzd29mSWdyX1l6VUtVV1d3TDRYSDRHdWdXU1NieU1JcWdmbDJFZ096Zk43N1U1VlYzQkswb2duZmRJMl9Hc1k5elNYSWlzd25hN3ZWQTVvaXVLX2NVNzJoc3BiNFQ3cWdOUmsxWFhXdGVXM0hQV2c=\",\n
475
- \ 'XSRF_FIELD_NAME': \"session_token\",\n\n 'XSRF_REDIRECT_TOKEN':
476
- \"ThpEVDH2WFKYA7oFAyML9cBXRSt8MTQ5MDczNDkyMEAxNDkwNjQ4NTIw\" });\nyt.setConfig('ID_TOKEN',
477
- null);window.ytcfg.set('SERVICE_WORKER_KILLSWITCH', false); yt.setConfig('THUMB_DELAY_LOAD_BUFFER',
478
- 0);\nif (window.ytcsi) {window.ytcsi.tick(\"jl\", null, '');}</script>\n</body></html>"
479
- http_version:
480
- recorded_at: Mon, 27 Mar 2017 21:02:00 GMT
55
+ string: !binary |-
56
+ PCFkb2N0eXBlIGh0bWw+PGh0bWwgIHN0eWxlPSJmb250LXNpemU6IDEwcHg7Zm9udC1mYW1pbHk6IFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7IiBsYW5nPSJwdC1CUiIgZGlyPSJsdHIiIGdsPSJCUiI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIiAvPjxtZXRhIGh0dHAtZXF1aXY9Im9yaWdpbi10cmlhbCIgZGF0YS1mZWF0dXJlPSJXZWIgQ29tcG9uZW50cyBWMCIgZGF0YS1leHBpcmVzPSIyMDIwLTEwLTIzIiBjb250ZW50PSJBaGJtUkRBU1k3TnVPWkQ5Y0ZNZ1FpaForbVFwQ3dhOFdUR2RUeDgydlNhcjlkZEJRYnppQmZaWFpnK1Njb2Z2RVpEZEhRTkNFd3o0eU03SGpCUzlSZ2tBQUFCbmV5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwzbHZkWFIxWW1VdVkyOXRPalEwTXlJc0ltWmxZWFIxY21VaU9pSlhaV0pEYjIxd2IyNWxiblJ6VmpBaUxDSmxlSEJwY25raU9qRTJNRE0wT0RZNE5UWXNJbWx6VTNWaVpHOXRZV2x1SWpwMGNuVmxmUT09Ij48bWV0YSBodHRwLWVxdWl2PSJvcmlnaW4tdHJpYWwiIGRhdGEtZmVhdHVyZT0iV2ViIENvbXBvbmVudHMgVjAiIGRhdGEtZXhwaXJlcz0iMjAyMC0xMC0yNyIgY29udGVudD0iQXYyKzFxZlVwM013RWZBRmNDY2N5a1MxcUZtdkxpQ3JNWi8vcEhRS25SWldHOWRsZFZvOEhZdUptR2oyd1o3bkRnK3hFNFJRTVErS3UxektNM1B2WUFJQUFBQm1leUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMMmR2YjJkc1pTNWpiMjA2TkRReklpd2labVZoZEhWeVpTSTZJbGRsWWtOdmJYQnZibVZ1ZEhOV01DSXNJbVY0Y0dseWVTSTZNVFl3TXpnek5qYzNNaXdpYVhOVGRXSmtiMjFoYVc0aU9uUnlkV1Y5Ij48bWV0YSBodHRwLWVxdWl2PSJvcmlnaW4tdHJpYWwiIGRhdGEtZmVhdHVyZT0iV2ViIENvbXBvbmVudHMgVjAiIGRhdGEtZXhwaXJlcz0iMjAyMS0wMS0wOCIgY29udGVudD0iQWl4VUsrOFVFU2hsdDYrSlgxd3k5ZWcrWEwrZVY1UFlTRURQSDNDOTBKTlZiSWtFMVJnMUZ5VlVmdTJiWi95NlBtMXhiUEx6dXdIWUhqdjR1S1BObkE0QUFBQnFleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMMmR2YjJkc1pYQnliMlF1WTI5dE9qUTBNeUlzSW1abFlYUjFjbVVpT2lKWFpXSkRiMjF3YjI1bGJuUnpWakFpTENKbGVIQnBjbmtpT2pFMk1UQXdOalEwTWpNc0ltbHpVM1ZpWkc5dFlXbHVJanAwY25WbGZRPT0iPjxtZXRhIGh0dHAtZXF1aXY9Im9yaWdpbi10cmlhbCIgZGF0YS1mZWF0dXJlPSJXZWIgQ29tcG9uZW50cyBWMCIgZGF0YS1leHBpcmVzPSIyMDIxLTAzLTA5IiBjb250ZW50PSJBaEhwcTJuVVQ2ZnFQMEtta3E0OUVXSWNsMlAxTEsxY2VVMDVCb2lWbldpOFpJV0RkbVgva013TCtadHVDM29JZjB0bnM4WG5PNWZtOTQ2SkV6UFZFd2dBQUFCcWV5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwyTXVaMjl2WjJ4bGNuTXVZMjl0T2pRME15SXNJbVpsWVhSMWNtVWlPaUpYWldKRGIyMXdiMjVsYm5SelZqQWlMQ0psZUhCcGNua2lPakUyTVRJeU1qTTVPVGtzSW1selUzVmlaRzl0WVdsdUlqcDBjblZsZlE9PSI+PHNjcmlwdCA+dmFyIHl0Y2ZnID0ge2Q6IGZ1bmN0aW9uKCkge3JldHVybiAod2luZG93Lnl0ICYmIHl0LmNvbmZpZ18pIHx8IHl0Y2ZnLmRhdGFfIHx8ICh5dGNmZy5kYXRhXyA9IHt9KTt9LGdldDogZnVuY3Rpb24oaywgbykge3JldHVybiAoayBpbiB5dGNmZy5kKCkpID8geXRjZmcuZCgpW2tdIDogbzt9LHNldDogZnVuY3Rpb24oKSB7dmFyIGEgPSBhcmd1bWVudHM7aWYgKGEubGVuZ3RoID4gMSkge3l0Y2ZnLmQoKVthWzBdXSA9IGFbMV07fSBlbHNlIHtmb3IgKHZhciBrIGluIGFbMF0pIHt5dGNmZy5kKClba10gPSBhWzBdW2tdO319fX07d2luZG93Lnl0Y2ZnLnNldCgnRU1FUkdFTkNZX0JBU0VfVVJMJywgIlwvZXJyb3JfMjA0P2NsaWVudC5uYW1lPTFcdTAwMjZjbGllbnQudmVyc2lvbj0yLjIwMjAxMDIzLjAyLjAwXHUwMDI2bGV2ZWw9RVJST1JcdTAwMjZ0PWpzZXJyb3IiKTs8L3NjcmlwdD4gIAo8c2NyaXB0ID52YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihhKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGEpfX07JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTsKJGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGQpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWQudmFsdWU7cmV0dXJuIGF9OyRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGEpe2E9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgZD1hW2JdO2lmKGQmJmQuTWF0aD09TWF0aClyZXR1cm4gZH10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7CiRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsZCxlKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGQsZSk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGQsZSkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiKXt2YXIgZD0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IodmFyIGU9MDtlPGEubGVuZ3RoLTE7ZSsrKXt2YXIgYz1hW2VdO2lmKCEoYyBpbiBkKSlyZXR1cm47ZD1kW2NdfWE9YVthLmxlbmd0aC0xXTtlPWRbYV07Yj1iKGUpO2IhPWUmJm51bGwhPWImJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZCxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGEsYixkKXt2YXIgZT1hLnNwbGl0KCIuIik7YT0xPT09ZS5sZW5ndGg7dmFyIGM9ZVswXTtjPSFhJiZjIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGgtMTtmKyspe3ZhciBnPWVbZl07aWYoIShnIGluIGMpKXJldHVybjtjPWNbZ119ZT1lW2UubGVuZ3RoLTFdO2Q9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWQ/Y1tlXTpudWxsO2I9YihkKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWQmJigkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU/JGpzY29tcC5nbG9iYWwuU3ltYm9sKGUpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2UsCmU9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0sJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSkpKX07JGpzY29tcC5pbml0U3ltYm9sPWZ1bmN0aW9uKCl7fTsKJGpzY29tcC5wb2x5ZmlsbCgiU3ltYm9sIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO3ZhciBiPWZ1bmN0aW9uKGMsZil7dGhpcy4kanNjb21wJHN5bWJvbCRpZF89YzskanNjb21wLmRlZmluZVByb3BlcnR5KHRoaXMsImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KX07Yi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kanNjb21wJHN5bWJvbCRpZF99O3ZhciBkPTAsZT1mdW5jdGlvbihjKXtpZih0aGlzIGluc3RhbmNlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3IiKTtyZXR1cm4gbmV3IGIoImpzY29tcF9zeW1ib2xfIisoY3x8IiIpKyJfIitkKyssYyl9O3JldHVybiBlfSwiZXM2IiwiZXMzIik7CiRqc2NvbXAucG9seWZpbGwoIlN5bWJvbC5pdGVyYXRvciIsZnVuY3Rpb24oYSl7aWYoYSlyZXR1cm4gYTthPVN5bWJvbCgiU3ltYm9sLml0ZXJhdG9yIik7Zm9yKHZhciBiPSJBcnJheSBJbnQ4QXJyYXkgVWludDhBcnJheSBVaW50OENsYW1wZWRBcnJheSBJbnQxNkFycmF5IFVpbnQxNkFycmF5IEludDMyQXJyYXkgVWludDMyQXJyYXkgRmxvYXQzMkFycmF5IEZsb2F0NjRBcnJheSIuc3BsaXQoIiAiKSxkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPSRqc2NvbXAuZ2xvYmFsW2JbZF1dOyJmdW5jdGlvbiI9PT10eXBlb2YgZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUucHJvdG90eXBlW2FdJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiAkanNjb21wLml0ZXJhdG9yUHJvdG90eXBlKCRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwodGhpcykpfX0pfXJldHVybiBhfSwiZXM2IiwKImVzMyIpOyRqc2NvbXAuaXRlcmF0b3JQcm90b3R5cGU9ZnVuY3Rpb24oYSl7YT17bmV4dDphfTthW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307cmV0dXJuIGF9OyRqc2NvbXAuaXRlcmF0b3JGcm9tQXJyYXk9ZnVuY3Rpb24oYSxiKXthIGluc3RhbmNlb2YgU3RyaW5nJiYoYSs9IiIpO3ZhciBkPTAsZT0hMSxjPXtuZXh0OmZ1bmN0aW9uKCl7aWYoIWUmJmQ8YS5sZW5ndGgpe3ZhciBmPWQrKztyZXR1cm57dmFsdWU6YihmLGFbZl0pLGRvbmU6ITF9fWU9ITA7cmV0dXJue2RvbmU6ITAsdmFsdWU6dm9pZCAwfX19O2NbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiBjfTtyZXR1cm4gY307CiRqc2NvbXAucG9seWZpbGwoIkFycmF5LnByb3RvdHlwZS5rZXlzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmE9ZnVuY3Rpb24oKXtyZXR1cm4gJGpzY29tcC5pdGVyYXRvckZyb21BcnJheSh0aGlzLGZ1bmN0aW9uKGIpe3JldHVybiBifSl9fSwiZXM2IiwiZXMzIik7d2luZG93Lnl0ZXJyPXdpbmRvdy55dGVycnx8ITA7d2luZG93LnVuaGFuZGxlZEVycm9yTWVzc2FnZXM9e307d2luZG93LnVuaGFuZGxlZEVycm9yQ291bnQ9MDsKd2luZG93Lm9uZXJyb3I9ZnVuY3Rpb24oYSxiLGQsZSxjKXtjfHwoYz1FcnJvcigpLGMuc3RhY2s9IiIsYy5tZXNzYWdlPWEsYy5maWxlTmFtZT1iLGMubGluZU51bWJlcj1kLGlzTmFOKGUpfHwoYy5jb2x1bW5OdW1iZXI9ZSkpO2I9U3RyaW5nKGMubWVzc2FnZSk7aWYoISghYy5tZXNzYWdlfHxiIGluIHdpbmRvdy51bmhhbmRsZWRFcnJvck1lc3NhZ2VzfHw1PD13aW5kb3cudW5oYW5kbGVkRXJyb3JDb3VudCkpe3dpbmRvdy51bmhhbmRsZWRFcnJvckNvdW50Kz0xO3dpbmRvdy51bmhhbmRsZWRFcnJvck1lc3NhZ2VzW2JdPSEwO2E9bmV3IEltYWdlO3dpbmRvdy5lbWVyZ2VuY3lUaW1lb3V0SW1nPWE7YS5vbmxvYWQ9YS5vbmVycm9yPWZ1bmN0aW9uKCl7ZGVsZXRlIHdpbmRvdy5lbWVyZ2VuY3lUaW1lb3V0SW1nfTtlPWMubGluZU51bWJlcjtpc05hTihjLmNvbHVtbk51bWJlcil8fChlKz0iOiIrYy5jb2x1bW5OdW1iZXIpO2Q9Yy5zdGFja3x8IiI7Yj17bXNnOmIsdHlwZTpjLm5hbWUsCiJjbGllbnQucGFyYW1zIjoidW5oYW5kbGVkIHdpbmRvdyBlcnJvciIsZmlsZTpjLmZpbGVOYW1lLGxpbmU6ZSxzdGFjazpkLnN1YnN0cigwLDUwMCl9O2M9Ijxhbm9ueW1vdXM+Ij09PWMuZmlsZU5hbWU7ZD1kLnJlcGxhY2UoL2h0dHBzOlwvXC93d3cueW91dHViZS5jb21cLy9nLCIiKTtkLm1hdGNoKC9odHRwcz86XC9cL1teL10rXC8vKSYmKGM9ITApO2MmJihiLmxldmVsPSJXQVJOSU5HIik7Yz1bd2luZG93Lnl0Y2ZnLmdldCgiRU1FUkdFTkNZX0JBU0VfVVJMIiwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZXJyb3JfMjA0P3Q9anNlcnJvciZsZXZlbD1FUlJPUiIpXTtmb3IodmFyIGYgaW4gYikoZD1iW2ZdKSYmYy5wdXNoKGYrIj0iK2VuY29kZVVSSUNvbXBvbmVudChkKSk7YS5zcmM9Yy5qb2luKCImIil9fTsKKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShmKXt2YXIgZz10aGlzLl9uYXRpdmVQcm90b3R5cGVzW2ZdO2lmKCFnKXtnPU9iamVjdC5jcmVhdGUodGhpcy5nZXROYXRpdmVQcm90b3R5cGUoZikpO2Zvcih2YXIgbD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cuUG9seW1lci5CYXNlKSxrPTAsaD12b2lkIDA7azxsLmxlbmd0aCYmKGg9bFtrXSk7aysrKWlmKCF3aW5kb3cuUG9seW1lci5CYXNlRGVzY3JpcHRvcnNbaF0pdHJ5e2dbaF09d2luZG93LlBvbHltZXIuQmFzZVtoXX1jYXRjaChtKXt0aHJvdyBFcnJvcigiRXJyb3Igd2hpbGUgY29weWluZyBwcm9wZXJ0eTogIitoKyIuIFRhZyBpcyAiK2YpO310cnl7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZyx3aW5kb3cuUG9seW1lci5CYXNlRGVzY3JpcHRvcnMpfWNhdGNoKG0pe3Rocm93IEVycm9yKCJQb2x5bWVyIGRlZmluZSBwcm9wZXJ0eSBmYWlsZWQgZm9yICIrT2JqZWN0LmtleXMoZykpO310aGlzLl9uYXRpdmVQcm90b3R5cGVzW2ZdPQpnfXJldHVybiBnfWZ1bmN0aW9uIGIoZil7d2luZG93Lm9uZXJyb3IoZix3aW5kb3cubG9jYXRpb24uaHJlZiwwLDAsRXJyb3IoQXJyYXkucHJvdG90eXBlLmpvaW4uY2FsbChhcmd1bWVudHMsIiwiKSkpfXZhciBkPXdpbmRvdy5Qb2x5bWVyLGU9ZnVuY3Rpb24oZil7IWQuX3l0SW50ZXJjZXB0ZWQmJndpbmRvdy5Qb2x5bWVyLkJhc2UmJihkLl95dEludGVyY2VwdGVkPSEwLHdpbmRvdy5Qb2x5bWVyLkJhc2UuX2dldEV4dGVuZGVkTmF0aXZlUHJvdG90eXBlPWEsd2luZG93LlBvbHltZXIuQmFzZS5fZXJyb3I9Yix3aW5kb3cuUG9seW1lci5CYXNlLl93YXJuPWIpO3JldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywiUG9seW1lciIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIlBvbHltZXIiLHtzZXQ6ZnVuY3Rpb24oZil7YyYmYy5zZXQmJmMuZ2V0PyhjLnNldChmKSxkPWMuZ2V0KCkpOmQ9ZjsKImZ1bmN0aW9uIj09PXR5cGVvZiBkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCJQb2x5bWVyIix7dmFsdWU6ZCxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMH0pfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIGQ/ZTpkfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfSkoKTsKPC9zY3JpcHQ+ICAKPHNjcmlwdCA+d2luZG93LlNoYWR5RE9NID0ge2ZvcmNlOiB0cnVlfTt3aW5kb3cuU2hhZHlET00ucHJlZmVyUGVyZm9ybWFuY2UgPSB0cnVlO3dpbmRvdy5TaGFkeURPTS5ub1BhdGNoID0gdHJ1ZTt3aW5kb3cuUG9seW1lciA9ICh3aW5kb3cuUG9seW1lciB8fCB7fSk7d2luZG93LlBvbHltZXIubGVnYWN5T3B0aW1pemF0aW9ucyA9IHRydWU7PC9zY3JpcHQ+PGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL2Rlc2t0b3AvYTkwMDM2ZWEvaW1nL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFnZS94LWljb24iID48bGluayByZWw9Imljb24iIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvZGVza3RvcC9hOTAwMzZlYS9pbWcvZmF2aWNvbl8zMi5wbmciIHNpemVzPSIzMngzMiIgPjxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9kZXNrdG9wL2E5MDAzNmVhL2ltZy9mYXZpY29uXzQ4LnBuZyIgc2l6ZXM9IjQ4eDQ4IiA+PGxpbmsgcmVsPSJpY29uIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL2Rlc2t0b3AvYTkwMDM2ZWEvaW1nL2Zhdmljb25fOTYucG5nIiBzaXplcz0iOTZ4OTYiID48bGluayByZWw9Imljb24iIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvZGVza3RvcC9hOTAwMzZlYS9pbWcvZmF2aWNvbl8xNDQucG5nIiBzaXplcz0iMTQ0eDE0NCIgPjxzY3JpcHQgPnZhciB5dGNzaSA9IHtndDogZnVuY3Rpb24obikge24gPSAobiB8fCAnJykgKyAnZGF0YV8nO3JldHVybiB5dGNzaVtuXSB8fCAoeXRjc2lbbl0gPSB7dGljazoge30saW5mbzoge319KTt9LG5vdzogKHdpbmRvdy5wZXJmb3JtYW5jZSAmJiB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nICYmd2luZG93LnBlcmZvcm1hbmNlLm5vdyAmJiB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydCkgP2Z1bmN0aW9uKCkge3JldHVybiB3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydCArd2luZG93LnBlcmZvcm1hbmNlLm5vdygpO30gOmZ1bmN0aW9uKCkge3JldHVybiAobmV3IERhdGUoKSkuZ2V0VGltZSgpO30sdGljazogZnVuY3Rpb24obCwgdCwgbikge3ZhciB0aWNrcyA9IHl0Y3NpLmd0KG4pLnRpY2s7dmFyIHYgPSB0IHx8IHl0Y3NpLm5vdygpO2lmICh0aWNrc1tsXSkge3RpY2tzWydfJyArIGxdID0gKHRpY2tzWydfJyArIGxdIHx8IFt0aWNrc1tsXV0pO3RpY2tzWydfJyArIGxdLnB1c2godik7fXRpY2tzW2xdID0gdjt9LGluZm86IGZ1bmN0aW9uKGssIHYsIG4pIHt5dGNzaS5ndChuKS5pbmZvW2tdID0gdjt9LHNldFN0YXJ0OiBmdW5jdGlvbihzLCB0LCBuKSB7eXRjc2kuaW5mbygneXRfc3RzJywgcywgbik7eXRjc2kudGljaygnX3N0YXJ0JywgdCwgbik7fX07KGZ1bmN0aW9uKHcsIGQpIHt5dGNzaS5zZXRTdGFydCgnZGhzJywgdy5wZXJmb3JtYW5jZSA/IHcucGVyZm9ybWFuY2UudGltaW5nLnJlc3BvbnNlU3RhcnQgOiBudWxsKTt2YXIgaXNQcmVyZW5kZXIgPSAoZC52aXNpYmlsaXR5U3RhdGUgfHwgZC53ZWJraXRWaXNpYmlsaXR5U3RhdGUpID09ICdwcmVyZW5kZXInO3ZhciB2TmFtZSA9ICghZC52aXNpYmlsaXR5U3RhdGUgJiYgZC53ZWJraXRWaXNpYmlsaXR5U3RhdGUpPyAnd2Via2l0dmlzaWJpbGl0eWNoYW5nZScgOiAndmlzaWJpbGl0eWNoYW5nZSc7aWYgKGlzUHJlcmVuZGVyKSB7eXRjc2kuaW5mbygncHJlcmVuZGVyJywgMSk7dmFyIHN0YXJ0VGljayA9IGZ1bmN0aW9uKCkge3l0Y3NpLnNldFN0YXJ0KCdkaHMnKTtkLnJlbW92ZUV2ZW50TGlzdGVuZXIodk5hbWUsIHN0YXJ0VGljayk7fTtkLmFkZEV2ZW50TGlzdGVuZXIodk5hbWUsIHN0YXJ0VGljaywgZmFsc2UpO31pZiAoZC5hZGRFdmVudExpc3RlbmVyKSB7ZC5hZGRFdmVudExpc3RlbmVyKHZOYW1lLCBmdW5jdGlvbigpIHt5dGNzaS50aWNrKCd2YycpO30sIGZhbHNlKTt9ZnVuY3Rpb24gaXNHZWNrbygpIHtpZiAoIXcubmF2aWdhdG9yIHx8ICF3Lm5hdmlnYXRvci51c2VyQWdlbnQpIHtyZXR1cm4gZmFsc2U7fXZhciB1YSA9IHcubmF2aWdhdG9yLnVzZXJBZ2VudDtyZXR1cm4gdWEuaW5kZXhPZignR2Vja28nKSA+IDAgJiZ1YS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ3dlYmtpdCcpIDwgMCAmJnVhLmluZGV4T2YoJ0VkZ2UnKSA8IDAgJiZ1YS5pbmRleE9mKCdUcmlkZW50JykgPCAwICYmdWEuaW5kZXhPZignTVNJRScpIDwgMDt9aWYgKGlzR2Vja28oKSkge3ZhciBpc0hpZGRlbiA9IChkLnZpc2liaWxpdHlTdGF0ZSB8fCBkLndlYmtpdFZpc2liaWxpdHlTdGF0ZSkgPT0gJ2hpZGRlbic7aWYgKGlzSGlkZGVuKSB7eXRjc2kudGljaygndmMnKTt9fXZhciBzbHQgPSBmdW5jdGlvbihlbCwgdCkge3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7dmFyIG4gPSB5dGNzaS5ub3coKTtlbC5sb2FkVGltZSA9IG47aWYgKGVsLnNsdCkge2VsLnNsdCgpO319LCB0KTt9O3cuX195dFJJTCA9IGZ1bmN0aW9uKGVsKSB7aWYgKCFlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGh1bWInKSkge2lmICh3LnJlcXVlc3RBbmltYXRpb25GcmFtZSkge3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkge3NsdChlbCwgMCk7fSk7fSBlbHNlIHtzbHQoZWwsIDE2KTt9fX07fSkod2luZG93LCBkb2N1bWVudCk7PC9zY3JpcHQ+PHNjcmlwdCA+KGZ1bmN0aW9uKCkge3ZhciBpbWcgPSBuZXcgSW1hZ2UoKS5zcmMgPSAiaHR0cHM6Ly9pLnl0aW1nLmNvbS9nZW5lcmF0ZV8yMDQiO30pKCk7PC9zY3JpcHQ+ICA8c2NyaXB0ID5pZiAod2luZG93Lnl0Y3NpKSB7d2luZG93Lnl0Y3NpLnRpY2soImxwY3MiLCBudWxsLCAnJyk7fShmdW5jdGlvbigpIHt3aW5kb3cueXRwbGF5ZXIgPSB7fTt5dGNmZy5zZXQoeyJSRVVTRV9DT01QT05FTlRTIjp0cnVlLCJESVNBQkxFX1dBUk1fTE9BRFMiOmZhbHNlLCJZUENfTUJfVVJMIjoiaHR0cHM6XC9cL3BheW1lbnRzLnlvdXR1YmUuY29tXC9wYXltZW50c1wvdjRcL2pzXC9pbnRlZ3JhdG9yLmpzP3NzPW1kIiwiU0JPWF9KU19VUkwiOiJodHRwczpcL1wvd3d3LnlvdXR1YmUuY29tXC9zXC9kZXNrdG9wXC9hOTAwMzZlYVwvanNiaW5cL3d3dy1zZWFyY2hib3gudmZsc2V0XC93d3ctc2VhcmNoYm94LmpzIiwiSFRNTF9MQU5HIjoicHQtQlIiLCJTVEFNUEVSX1NUQUJMRV9MSVNUIjp0cnVlLCJQTEFZRVJfQ1NTX1VSTCI6Ilwvc1wvcGxheWVyXC85YjY1ZTk4MFwvd3d3LXBsYXllci5jc3MiLCJTVEFSVF9JTl9GVUxMX1dJTkRPV19NT0RFIjpmYWxzZSwiWVRSX0ZBTUlMWV9DUkVBVElPTl9VUkwiOiJodHRwczpcL1wvZmFtaWxpZXMuZ29vZ2xlLmNvbVwvd2ViY3JlYXRpb24/dXNlZ2FwaT0xIiwiSU5ORVJUVUJFX0NPTlRFWFRfSEwiOiJwdCIsIlhTUkZfRklFTERfTkFNRSI6InNlc3Npb25fdG9rZW4iLCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfVkVSU0lPTiI6IjIuMjAyMDEwMjMuMDIuMDAiLCJFWFBFUklNRU5UX0ZMQUdTIjp7InBvbHltZXJfZW5hYmxlX21keCI6dHJ1ZSwic2VydmljZV93b3JrZXJfcHVzaF9wcm9tcHRfY2FwIjotMSwiaHRtbDVfZXhwZXJpbWVudF9pZF9sYWJlbCI6MjM5NTAyNzMsImtldmxhcl9wbGF5ZXJfZGlzYWJsZV9ydnNfdXBkYXRlIjp0cnVlLCJ1c2VyX21lbnRpb25fc3VnZ2VzdGlvbnNfZWR1X2ltcHJlc3Npb25fY2FwIjoxMCwic2hvdWxkX2NsZWFyX3ZpZGVvX2RhdGFfb25fcGxheWVyX2N1ZWRfdW5zdGFydGVkIjp0cnVlLCJ5b29kbGVfc3RhcnRfdGltZV91dGMiOjE2MDM3NzExOTksImtldmxhcl9taW5pcGxheWVyX3F1ZXVlX3VzZXJfYWN0aXZhdGlvbiI6dHJ1ZSwia2V2bGFyX21pbmlwbGF5ZXIiOnRydWUsImdsb2JhbF9zcGFjZWJhcl9wYXVzZSI6dHJ1ZSwia2V2bGFyX29wX21pZ3JhdGlvbiI6dHJ1ZSwia2V2bGFyX3VzZV9wYWdlX2RhdGFfd2lsbF91cGRhdGUiOnRydWUsIndlYl9jbGllbnRfdmVyc2lvbl9vdmVycmlkZSI6IiIsInByZWZldGNoX2NvbW1lbnRzX21zX2FmdGVyX3ZpZGVvIjowLCJsb2dfdmlzX29uX3RhYl9jaGFuZ2UiOnRydWUsInR3ZWx2ZV92aWRlb19yZW9yZGVyaW5nIjpbMCwxLDIsNCw3LDgsMyw1LDYsOSwxMCwxMV0sImRpc2FibGVfeW91dGhlcmVfbGFjdF90aHJlc2hvbGRfY2hlY2siOnRydWUsImtldmxhcl9pY29uc19vbl9tZW51cyI6dHJ1ZSwia2V2bGFyX21lbnVfbG9nZ2luZyI6dHJ1ZSwic2VhcmNoYm94X3JlcG9ydGluZyI6dHJ1ZSwiZW5hYmxlX2JvcmRlcnNfb25fY29tbXVuaXR5Ijp0cnVlLCJrZXZsYXJfYXV0b2ZvY3VzX21lbnVfb25fa2V5Ym9hcmRfbmF2Ijp0cnVlLCJrZXZsYXJfYWRfYmFkZ2VfbGluZV9oZWlnaHRfdXBkYXRlIjp0cnVlLCJhbGxvd19odHRwc19zdHJlYW1pbmdfZm9yX2FsbCI6dHJ1ZSwia2V2bGFyX2FsbG93X3BsYXlsaXN0X3Jlb3JkZXIiOnRydWUsImtldmxhcl9ndWlkZV9hamF4X21pZ3JhdGlvbiI6dHJ1ZSwid2ViX2Fsd2F5c19sb2FkX2NoYXRfc3VwcG9ydCI6dHJ1ZSwia2V2bGFyX2hpZGVfcHBfdXJsX3BhcmFtIjp0cnVlLCJrZXZsYXJfZmFsbGJhY2tfdG9fcGFnZV9kYXRhX3Jvb3RfdmUiOnRydWUsImtldmxhcl9hbGxvd19tdWx0aXN0ZXBfdmlkZW9faW5pdCI6dHJ1ZSwia2V2bGFyX3BsYXllcl9hdXRvcGxheV9jb3VudF9mcm9tX3J2cyI6dHJ1ZSwia2V2bGFyX2Zyb250ZW5kX3F1ZXVlX2F1dG9tYXRpY19yZWNvdmVyIjp0cnVlLCJ3YXRjaF9uZXh0X3BhdXNlX2F1dG9wbGF5X2xhY3Rfc2VjIjo0NTAwLCJlbmFibGVfbGNyX2Jyb2FkY2FzdF9lZGl0b3IiOnRydWUsIm5vX3N1Yl9jb3VudF9vbl9zdWJfYnV0dG9uIjp0cnVlLCJib3RndWFyZF9hc3luY19zbmFwc2hvdF90aW1lb3V0X21zIjozMDAwLCJyZW5kZXJfbWV0YV90YWdzX2xhYnMiOnRydWUsImVuYWJsZV9wcm9ncmFtbWVkX3BsYXlsaXN0X3JlZGVzaWduIjp0cnVlLCJwb2x5bWVyX2JhZF9idWlsZF9sYWJlbHMiOnRydWUsImVuYWJsZV9zZXJ2bGV0X3N0cmVhbXoiOnRydWUsIm92ZXJ3cml0ZV9wb2x5ZmlsbF9vbl9sb2dnaW5nX2xpYl9sb2FkZWQiOnRydWUsImtldmxhcl9ndWlkZV9yZWZyZXNoIjp0cnVlLCJzZXJ2aWNlX3dvcmtlcl9zY29wZSI6IlwvIiwiYXV0b3BsYXlfcGF1c2VfYnlfbGFjdF9zYW1wbGluZ19mcmFjdGlvbiI6MC4wLCJsb2dfd2ViX21ldGFfaW50ZXJ2YWxfbXMiOjAsInJlbmRlcl9taWNyb2Zvcm1hdF9pbl9oZWFkIjp0cnVlLCJwb2x5bWVyX3ZlcmlmaXlfYXBwX3N0YXRlIjp0cnVlLCJrZXZsYXJfc2V0dGluZ3NfcHJpdmFjeSI6dHJ1ZSwiZW5hYmxlX3RvcHNvaWxfd3RhX2Zvcl9oYWxmdGltZSI6dHJ1ZSwiZW5hYmxlX2NhbGxfdG9fYWN0aW9uX2NsYXJpZmljYXRpb25fcmVuZGVyZXJfYm90dG9tX3NlY3Rpb25fY29uZGl0aW9ucyI6dHJ1ZSwid2ViX2RlcHJlY2F0ZV9zZXJ2aWNlX2FqYXhfbWFwX2RlcGVuZGVuY3kiOnRydWUsImRlc2t0b3BfdG91Y2hfZ2VzdHVyZXNfdXNhZ2VfbG9nIjp0cnVlLCJwZXJzaXN0ZW50X21pbmlwbGF5ZXIiOnRydWUsImtldmxhcl9jaGFubmVsc19wbGF5ZXJfaGFuZGxlX21pc3Npbmdfc3dmY29uZmlnIjp0cnVlLCJzZXJ2ZV9jcm9zc3dhbGtfY29tcGxpYW50X3BkcCI6dHJ1ZSwia2V2bGFyX21pbmlwbGF5ZXJfbm9fdXBkYXRlX29uX2RlYWN0aXZhdGUiOnRydWUsImVsZW1lbnRfcG9vbF9wb3B1bGF0b3JfYXV0b19hYm9ydCI6dHJ1ZSwibGl2ZV9jaGF0X3VuaWNvZGVfZW1vamlfanNvbl91cmwiOiJodHRwczpcL1wvd3d3LmdzdGF0aWMuY29tXC95b3V0dWJlXC9pbWdcL2Vtb2ppc1wvZW1vamlzLXN2Zy00Lmpzb24iLCJrZXZsYXJfb25lX3BpY2tfYWRkX3ZpZGVvX3RvX3BsYXlsaXN0Ijp0cnVlLCJsaXZlX2NoYXRfaXRmZV9lbmRwb2ludF9taWdyYXRpb24iOnRydWUsImtldmxhcl9zbmFwX3N0YXRlX3JlZnJlc2giOnRydWUsImVuYWJsZV9idXR0b25fYmVoYXZpb3JfcmV1c2UiOnRydWUsImRlc2t0b3BfYWN0aW9uX2NvbXBhbmlvbl93dGFfc3VwcG9ydCI6dHJ1ZSwid2ViX3NjcmVlbl9hc3NvY2lhdGVkX2FsbF9sYXllcnMiOnRydWUsImtldmxhcl90cmFuc2NyaXB0X3BhbmVsX3JlZnJlc2hlZF9zdHlsZXMiOnRydWUsImtldmxhcl93YXRjaF9za2VsZXRvbiI6dHJ1ZSwid2ViX2xvZ2dpbmdfbWF4X2JhdGNoIjoxNTAsIndlYl9hcGlfdXJsIjp0cnVlLCJ3ZWJfcGxheWVyX3dhdGNoX25leHRfcmVzcG9uc2UiOnRydWUsImtldmxhcl9sb2dfbmF0aXZlX3JpZ2h0X2NsaWNrX3ZlIjp0cnVlLCJwb2x5bWVyX3ZpZGVvX3JlbmRlcmVyX2RlZmVyX21lbnUiOnRydWUsInBial9uYXZpZ2F0ZV9saW1pdCI6LTEsInNlcnZpY2Vfd29ya2VyX3B1c2hfd2F0Y2hfcGFnZV9wcm9tcHQiOnRydWUsImVuYWJsZV95cGNfc3Bpbm5lcnMiOnRydWUsImtldmxhcl9vcF9taWdyYXRpb25fYmF0Y2hfMiI6dHJ1ZSwia2V2bGFyX29wX21pZ3JhdGlvbl9iYXRjaF8zIjp0cnVlLCJmaXhfZm9yX3NhZmFyaV9kZXNrdG9wX21hc3RoZWFkX2Jhbm5lcl9zaXplIjp0cnVlLCJ3ZWJfeXRfY29uZmlnX2NvbnRleHQiOnRydWUsImxpdmVfY2hhdF9pbmNyZWFzZWRfbWluX2hlaWdodCI6dHJ1ZSwia2V2bGFyX2Rpc2FibGVfY2hhbm5lbHNfZmxvd19wYXJhbSI6dHJ1ZSwic3VwcHJlc3NfZ2VuXzIwNCI6dHJ1ZSwibG9nX3dpbmRvd19vbmVycm9yX2ZyYWN0aW9uIjowLjEsImNzaV9vbl9nZWwiOnRydWUsIm1keF9lbmFibGVfcHJpdmFjeV9kaXNjbG9zdXJlX3VpIjp0cnVlLCJuZXR3b3JrbGVzc190aHJvdHRsZV90aW1lb3V0IjoxMDAsImtldmxhcl9jb2xsZWN0X2JhdHRlcnlfbmV0d29ya19zdGF0dXMiOnRydWUsInBvbHltZXIyX3BvbHlmaWxsX21hbnVhbF9mbHVzaCI6dHJ1ZSwidmlzaWJpbGl0eV90aW1lX2JldHdlZW5fam9ic19tcyI6MTAwLCJlbmFibGVfc2VydmljZV9hamF4X2NzbiI6dHJ1ZSwiYXBwX3NldHRpbmdzX3NuYXBzaG90X21pbl90aW1lX2JldHdlZW5fc25hcHNob3RzX2hvdXJzIjoyNCwiZGlzYWJsZV9sZWdhY3lfZGVza3RvcF9yZW1vdGVfcXVldWUiOnRydWUsImRlY29yYXRlX2F1dG9wbGF5X3JlbmRlcmVyIjp0cnVlLCJ3ZWJfZm9yZWdyb3VuZF9oZWFydGJlYXRfaW50ZXJ2YWxfbXMiOjI4MDAwLCJzdXBwcmVzc19lcnJvcl8yMDRfbG9nZ2luZyI6dHJ1ZSwia2V2bGFyX3RpbWVfY2FjaGluZ19lbmRfdGhyZXNob2xkIjoxNSwia2V2bGFyX25leHRfdXBfbmV4dF9lZHVfZW1vamkiOiIiLCJkZWxheV9nZWxfdW50aWxfY29uZmlnX3JlYWR5Ijp0cnVlLCJlbmFibGVfbWljcm9mb3JtYXRfZGF0YSI6dHJ1ZSwiYXV0b3BsYXlfdGltZV9mb3JfbXVzaWNfY29udGVudF9hZnRlcl9hdXRvcGxheWVkX3ZpZGVvIjotMSwid2ViX3JlZnJlc2hfaW5mb19wYW5lbCI6dHJ1ZSwiZW5hYmxlX2RldmljZV9mb3J3YXJkaW5nX2Zyb21feGhyX2NsaWVudCI6dHJ1ZSwiZGVza3RvcF9wZXJzaXN0ZW50X21lbnUiOnRydWUsImtldmxhcl9tZW51X3JlZnJlc2giOnRydWUsInNlcnZpY2Vfd29ya2VyX3B1c2hfZm9yY2Vfbm90aWZpY2F0aW9uX3Byb21wdF90YWciOiIxIiwia2V2bGFyX3RodW1ibmFpbF9vdmVybGF5X2J1dHRvbl9yZWZyZXNoIjp0cnVlLCJrZXZsYXJfaG9tZV9za2VsZXRvbiI6dHJ1ZSwia2V2bGFyX3ByZWZldGNoIjp0cnVlLCJ5b29kbGVfYmFzZV91cmwiOiJodHRwczpcL1wvd3d3LnlvdXR1YmUuY29tXC9pbWdcL2JyYW5kaW5nXC9kZXNrdG9wXC9nbG9iYWxfdGVzdFwveXRfbG9nb192MSIsImRlc2t0b3BfcHl2X29uX3dhdGNoX21pc3NpbmdfcGFyYW1zIjp0cnVlLCJzZXJ2aWNlX3dvcmtlcl9wdXNoX2hvbWVfcGFnZV9wcm9tcHQiOnRydWUsImRpc2FibGVfc2ltcGxlX21peGVkX2RpcmVjdGlvbl9mb3JtYXR0ZWRfc3RyaW5ncyI6dHJ1ZSwia2V2bGFyX2V4aXRfZnVsbHNjcmVlbl9sZWF2aW5nX3dhdGNoIjp0cnVlLCJkZXNrdG9wX3N3aXBlYWJsZV9ndWlkZSI6dHJ1ZSwia2V2bGFyX2ZpeF9wbGF5bGlzdF9jb250aW51YXRpb24iOnRydWUsImV4dGVybmFsX2Z1bGxzY3JlZW5fd2l0aF9lZHUiOnRydWUsImtldmxhcl9ub19lYXJseV9pbml0X3VucGF1c2UiOnRydWUsImtldmxhcl91c2Vfb25lX3BsYXRmb3JtX2Zvcl9xdWV1ZV9yZWZyZXNoIjp0cnVlLCJkZXNrdG9wX3RoZW1lYWJsZV92dWxjYW4iOnRydWUsImtldmxhcl9mcm9udGVuZF92aWRlb19saXN0X2FjdGlvbnMiOnRydWUsImtldmxhcl9maXhfbWluaXBsYXllcl9sb2dnaW5nIjp0cnVlLCJjbGllbnRfc3RyZWFtel93ZWJfZmx1c2hfY291bnQiOjEwMCwiZW5hYmxlX3B1cmNoYXNlX2FjdGl2aXR5X2luX3BhaWRfbWVtYmVyc2hpcHMiOnRydWUsIndlYl9wbGF5ZXJfZW5hYmxlX2lwcCI6dHJ1ZSwiZW5hYmxlX3BsYXllcl9taWNyb2Zvcm1hdF9kYXRhIjp0cnVlLCJrZXZsYXJfY2FuY2VsX3NjaGVkdWxlZF9jb21tZW50X2pvYnNfb25fbmF2aWdhdGUiOnRydWUsImZpeF9kZXNrdG9wX2Fkc19jdGFfZHVwX2NsaWNrX3BpbmciOnRydWUsInBhaXJfc2VydmxldF9kZXByZWNhdGlvbl93YXJuaW5nX2VuYWJsZWQiOnRydWUsImtldmxhcl9jbGllbnRfc2F2ZV9zdWJzX3ByZWZlcmVuY2VzIjp0cnVlLCJtYXhfZHVyYXRpb25fdG9fY29uc2lkZXJfbW91c2VvdmVyX2FzX2hvdmVyIjo2MDAwMDAsInRlbl92aWRlb19yZW9yZGVyaW5nIjpbMCwxLDIsMyw2LDQsNSw3LDgsOV0sIndlYl9vcF9zaWduYWxfdHlwZV9iYW5saXN0IjpbXSwia2V2bGFyX2Rpc2FibGVfZmFzdF9wbGF5ZXJfc2l6aW5nX29uX2NoYW5uZWxfcGFnZSI6dHJ1ZSwia2V2bGFyX2xvZ19wcmVmZXJzX2NvbG9yX3RoZW1lIjp0cnVlLCJyZW5kZXJfc2NoZW1hX29yZ190YWdzIjp0cnVlLCJ1c2VfcHJldmlld19zZWxlY3Rpb25fdG9vbCI6dHJ1ZSwibGl2ZV9jaGF0X2NsaWVudF91cmwiOnRydWUsImtldmxhcl9oZWxwX3VzZV9sb2NhbGUiOnRydWUsInBsYXlsaXN0X3JlbW92ZV93YXRjaGVkIjp0cnVlLCJyZW5kZXJfY2hhbm5lbF9jYW5vbmljYWxfdGFncyI6dHJ1ZSwia2V2bGFyX21pbmlfZ3VpZGVfd2lkdGhfdGhyZXNob2xkIjo3OTEsImtldmxhcl9kZXByZWNhdGVkX3RpY2tlciI6dHJ1ZSwid2ViX2dlbF9kZWJvdW5jZV9tcyI6MTAwMDAsImRlc2t0b3Bfbm90aWZpY2F0aW9uX2hpZ2hfcHJpb3JpdHlfaWdub3JlX3B1c2giOnRydWUsImVuYWJsZV95dG9fd2luZG93Ijp0cnVlLCJrZXZsYXJfcGVyc2lzdGVudF9ndWlkZV93aWR0aF90aHJlc2hvbGQiOjEzMTIsImZpbGxfd2ViX3BsYXllcl9jb250ZXh0X2NvbmZpZyI6dHJ1ZSwid2ViX21vdmVfcGFzc2l2ZV9zaWduaW4iOnRydWUsImtldmxhcl9hcHBseV9wcmVmZXJzX2NvbG9yX3RoZW1lIjp0cnVlLCJkZXNrdG9wX2tleWJvYXJkX2NhcHR1cmVfa2V5ZG93bl9raWxsc3dpdGNoIjp0cnVlLCJsaXZlX2NoYXRfbGl2ZV9jb21tZW50YXJ5X21vZGUiOnRydWUsImtldmxhcl9sb2dnZWRfb3V0X3RvcGJhcl9tZW51X21pZ3JhdGlvbiI6dHJ1ZSwid2FybV9sb2FkX25hdl9zdGFydF93ZWIiOnRydWUsImtldmxhcl9wbGF5bGlzdF9kcmFnX2hhbmRsZXMiOnRydWUsImVuYWJsZV9jbGllbnRfc3RyZWFtel93ZWIiOnRydWUsImtldmxhcl90cmFuc2NyaXB0X2VuZ2FnZW1lbnRfcGFuZWwiOnRydWUsImRlc2t0b3BfYWRkX3RvX3BsYXlsaXN0X3JlbmRlcmVyX2RpYWxvZ19wb3B1cCI6dHJ1ZSwia2V2bGFyX3NldF9pbnRlcm5hbF9wbGF5ZXJfc2l6ZSI6dHJ1ZSwiYXV0b3BsYXlfdGltZV9mb3JfbXVzaWNfY29udGVudCI6LTEsImtldmxhcl9ob21lX3NrZWxldG9uX2hpZGVfbGF0ZXIiOnRydWUsImtldmxhcl9yZXBvc2l0aW9uX2d1aWRlX2h0bWwiOnRydWUsIndlYl9lbmFibGVfaGlzdG9yeV9jYWNoZV9tYXAiOnRydWUsInVzZV90eXBlc2NyaXB0X3RyYW5zcG9ydCI6dHJ1ZSwic3VwcHJlc3Nfc3BhcmtsZXNfZm9yX3doaXRlbGlzdGVkX2luc3RyZWFtX29uX2Rlc2t0b3AiOnRydWUsImVuYWJsZV9taXhlZF9kaXJlY3Rpb25fZm9ybWF0dGVkX3N0cmluZ3MiOnRydWUsImtldmxhcl90b29sdGlwX2ltcHJlc3Npb25fY2FwIjoyLCJwb2x5bWVyX3JlcG9ydF9taXNzaW5nX3dlYl9uYXZpZ2F0aW9uX2VuZHBvaW50X3JhdGUiOjAuMDAxLCJwb2x5bWVyX3JlcG9ydF9jbGllbnRfdXJsX3JlcXVlc3RlZF9yYXRlIjowLjAwMSwiZW5hYmxlX3dlYl9wb3N0ZXJfaG92ZXJfYW5pbWF0aW9uIjp0cnVlLCJrZXZsYXJfZW5hYmxlX2VkaXRhYmxlX3BsYXlsaXN0cyI6dHJ1ZSwid2ViX2VtdWxhdGVkX2lkbGVfY2FsbGJhY2tfZGVsYXkiOjAsImxvZ19qc19leGNlcHRpb25zX2ZyYWN0aW9uIjoxLjAsImVuYWJsZV9wcmVtaXVtX3ZvbHVudGFyeV9wYXVzZSI6dHJ1ZSwiZGVmZXJfb3ZlcmxheXMiOnRydWUsIndlYl9wb3N0X3NlYXJjaCI6dHJ1ZSwiY2xpZW50X3N0cmVhbXpfd2ViX2ZsdXNoX2ludGVydmFsX3NlY29uZHMiOjYwLCJrZXZsYXJfdGh1bWJuYWlsX2ZseW91dF9kZWxheSI6MzAwLCJrZXZsYXJfbmV4dF9jb2xkX29uX2F1dGhfY2hhbmdlX2RldGVjdGVkIjp0cnVlLCJzZXJ2aWNlX3dvcmtlcl9wdXNoX2VuYWJsZWQiOnRydWUsImtldmxhcl9hbGxvd19xdWV1ZV9yZW9yZGVyIjp0cnVlLCJrZXZsYXJfcHJlcGFyZV9wbGF5ZXJfb25fbWluaXBsYXllcl9hY3RpdmF0aW9uIjp0cnVlLCJ5b3VyX2RhdGFfZW50cnlwb2ludCI6dHJ1ZSwiY29uZmlnX2FnZV9yZXBvcnRfa2lsbHN3aXRjaCI6dHJ1ZSwia2V2bGFyX25pdHJhdGVfZHJpdmVuX3Rvb2x0aXBzIjp0cnVlLCJ3ZWJfbG9nX2Nvbm5lY3Rpb24iOnRydWUsImtldmxhcl9oaWRlX3RpbWVfY29udGludWVfdXJsX3BhcmFtIjp0cnVlLCJlbmFibGVfc3VwZXJfdm9kX3ByaWNlX3NlbGVjdG9yIjp0cnVlLCJwb2x5bWVyX3Rhc2tfbWFuYWdlcl9zdGF0dXMiOiJwcm9kdWN0aW9uIiwid2ViX3Nob3dfZGVzY3JpcHRpb25fdGFnX21vdmllcyI6dHJ1ZSwia2V2bGFyX2Ryb3BwYWJsZV9wcmVmZXRjaGFibGVfcmVxdWVzdHMiOnRydWUsImtldmxhcl9rZXlib2FyZF9idXR0b25fZm9jdXMiOnRydWUsIndlYl9nZWxfdGltZW91dF9jYXAiOnRydWUsImRlYnVnX2ZvcmNlZF9pbnRlcm5hbGNvdW50cnljb2RlIjoiIiwia2V2bGFyX21pbmlwbGF5ZXJfcGxheV9wYXVzZV9vbl9zY3JpbSI6dHJ1ZSwiZW5hYmxlX3dlYl9rZXRjaHVwX2hlcm9fYW5pbWF0aW9uIjp0cnVlLCJrZXZsYXJfc2V0dGluZ3Nfc2hhcmluZyI6dHJ1ZSwiZXh0ZXJuYWxfZnVsbHNjcmVlbiI6dHJ1ZSwidmlld3BvcnRfbG9hZF9jb2xsZWN0aW9uX3dhaXRfdGltZSI6MCwic2VydmljZV93b3JrZXJfcHVzaF9sb2dnZWRfb3V0X3Byb21wdF93YXRjaGVzIjotMSwia2V2bGFyX3BsYXllcl9yZXNwb25zZV9zd2ZfY29uZmlnX3dyYXBwZXJfa2lsbHN3aXRjaCI6dHJ1ZSwia2V2bGFyX2F1dG9uYXZfcG9wdXBfZmlsdGVyaW5nIjp0cnVlLCJkZXNrdG9wX2FkanVzdF90b3VjaF90YXJnZXQiOnRydWUsImtldmxhcl9tYWNyb19tYXJrZXJzX2tleWJvYXJkX3Nob3J0Y3V0Ijp0cnVlLCJtaW5fbW91c2Vfc3RpbGxfZHVyYXRpb24iOjEwMCwid2ViX2xpZmVjeWNsZXMiOnRydWUsIndlYl9vcF9jb250aW51YXRpb25fdHlwZV9iYW5saXN0IjpbXSwiZW5hYmxlX21lbnRpb25zX2luX3JlcG9zdHMiOnRydWUsImtldmxhcl9ub19hdXRvc2Nyb2xsX29uX3BsYXlsaXN0X2hvdmVyIjp0cnVlLCJsaXZlX2NoYXRfY29udGludWF0aW9uc19taWdyYXRpb24iOnRydWUsImVuYWJsZV9wb3N0X3NjaGVkdWxpbmciOnRydWUsInNlcnZlX3BkcF9hdF9jYW5vbmljYWxfdXJsIjp0cnVlLCJ5b29kbGVfZW5kX3RpbWUiOiIiLCJmbHVzaF9vbmJlZm9yZXVubG9hZCI6dHJ1ZSwia2V2bGFyX3NldHRpbmdzX3BsYXliYWNrIjp0cnVlLCJpc19wYXJ0X29mX2FueV91c2VyX2VuZ2FnZW1lbnRfZXhwZXJpbWVudCI6dHJ1ZSwiZW5hYmxlX3NlcnZsZXRfZXJyb3JzX3N0cmVhbXoiOnRydWUsImNvbGRfbWlzc2luZ19oaXN0b3J5Ijp0cnVlLCJrZXZsYXJfdGh1bWJuYWlsX292ZXJsYXlfbmV3X2VsZW1lbnRwb29sX3NjaGVkdWxlIjp0cnVlLCJrZXZsYXJfcGxheWxpc3RfY29sbGFwc2libGUiOnRydWUsImtldmxhcl9jbGVhbl91cCI6dHJ1ZSwia2V2bGFyX3RpbWVfY2FjaGluZ19zdGFydF90aHJlc2hvbGQiOjE1LCJuZXR3b3JrbGVzc195dGlkYl92ZXJzaW9uIjoxLCJrZXZsYXJfbWluaXBsYXllcl9zZXRfZWxlbWVudF9lYXJseSI6dHJ1ZSwic2tpcF9pbml0X3ByZXZpZXdfc2VsZWN0aW9uIjp0cnVlLCJsaXZlX2NoYXRfb3Zlcl9wbGF5bGlzdCI6dHJ1ZSwiZGlzYWJsZV90aHVtYm5haWxfcHJlbG9hZGluZyI6dHJ1ZSwibGl2ZV9jaGF0X3VzZV95b3V0dWJlX2hvc3RlZF90YW5nb19kb21haW5zIjp0cnVlLCJrZXZsYXJfcXVldWVfdXNlX3VwZGF0ZV9hcGkiOnRydWUsInNlcnZpY2Vfd29ya2VyX2VuYWJsZWQiOnRydWUsImVuYWJsZV9zaWduYWxzIjp0cnVlLCJsb2dfd2ViX2VuZHBvaW50X3RvX2xheWVyIjp0cnVlLCJrZXZsYXJfbW91c2Vkb3duX3ByZWZldGNoIjp0cnVlLCJrZXZsYXJfcGxheWVyX3BsYXlsaXN0X3VzZV9sb2NhbF9pbmRleCI6dHJ1ZSwiZGVmZXJfbWVudXMiOnRydWUsIndlYl9yZXNwb25zZV9wcm9jZXNzb3Jfc3VwcG9ydCI6dHJ1ZSwicG9wdXBfZm9yX3NpZ25fb3V0X3JlcG9ydF9wbGF5bGlzdCI6dHJ1ZSwiZW5hYmxlX2Nvb2tpZV9yZWlzc3VlX2lmcmFtZSI6dHJ1ZSwiZW5hYmxlX2RvY2tlZF9jaGF0X21lc3NhZ2VzIjp0cnVlLCJ3ZWJfc3lzdGVtX2hlYWx0aF9mcmFjdGlvbiI6MC4wMSwia2V2bGFyX2NsZWFyX25vbl9kaXNwbGF5YWJsZV91cmxfcGFyYW1zIjp0cnVlLCJlbmFibGVfbGNyX25ld19oZWFkZXIiOnRydWUsImtldmxhcl9jb2xsZWN0X2hvdmVyX3RvdWNoX3N1cHBvcnQiOnRydWUsImd1aWRlX2J1c2luZXNzX2luZm9fY291bnRyaWVzIjpbIktSIl0sImtldmxhcl93YXRjaF9jb2xvcl91cGRhdGUiOnRydWUsImVuYWJsZV9hbHBhY2FfY2xpZW50X3BsYXllcl9jaGFuZ2VzIjp0cnVlLCJrZXZsYXJfb3BfcGFnZV9zZXJ2aWNlX3NlYXJjaCI6dHJ1ZSwic3BmX2tldmxhcl9hc3N1bWVfY2h1bmtlZCI6dHJ1ZSwia2V2bGFyX2pzX2ZpeGVzIjp0cnVlLCJyZWNvbW1lbmRlZF92aWRlb19yZW9yZGVyaW5nIjp0cnVlLCJkaXNhYmxlX2xlZ2FjeV9kZXNrdG9wX3JlbW90ZV9xdWV1ZV93YXRjaCI6dHJ1ZSwiYXV0b3BsYXlfdGltZSI6ODAwMCwiY3VzdG9tX2NzaV90aW1lbGluZV91c2VfZ2VsIjp0cnVlLCJrZXZsYXJfc2VydmVfdW52ZXJzaW9uZWRfYmluYXJ5Ijp0cnVlLCJjb25zZW50X3VybF9vdmVycmlkZSI6IiIsImRlc2t0b3Bfc2VhcmNoX3Byb21pbmVudF90aHVtYnMiOnRydWUsImtldmxhcl9taXhfaGFuZGxlX2ZpcnN0X2VuZHBvaW50X2RpZmZlcmVudCI6dHJ1ZSwicG9seW1lcjJfbm90X3NoYWR5X2J1aWxkIjp0cnVlLCJrZXZsYXJfaTE4bl9saWJyYXJ5Ijp0cnVlLCJzaG93X2dob3N0X2NhcmRfY29udGludWF0aW9ucyI6MCwiaGlnaF9wcmlvcml0eV9mbHlvdXRfZnJlcXVlbmN5IjozLCJrZXZsYXJfYWRkX3RvX3F1ZXVlX29wdGlvbiI6dHJ1ZSwia2V2bGFyX21pbmlwbGF5ZXJfZXhwYW5kX3RvcCI6dHJ1ZSwia2V2bGFyX2luY2x1ZGVfcXVlcnlfaW5fc2VhcmNoX2VuZHBvaW50Ijp0cnVlLCJuZXR3b3JrbGVzc19yZXRyeV9hdHRlbXB0cyI6MSwicmljaF9ncmlkX21pbmlfbW9kZSI6dHJ1ZSwid2ViX2NsaWVudF9jb3VudGVyX3JhbmRvbV9zZWVkIjp0cnVlLCJzZXJ2aWNlX3dvcmtlcl9zdWJzY3JpYmVfd2l0aF92YXBpZF9rZXkiOnRydWUsInBsYXllcl9hbGxvd19hdXRvbmF2X2FmdGVyX3BsYXlsaXN0Ijp0cnVlLCJtaW5pbXVtX2R1cmF0aW9uX3RvX2NvbnNpZGVyX21vdXNlb3Zlcl9hc19ob3ZlciI6NTAwLCJwcmV2aWV3X3BsYXlfZHVyYXRpb24iOjMwMDAsImtldmxhcl9wYWdlX3NlcnZpY2VfdXJsX3ByZWZpeF9jYXJ2ZW91dHMiOltdLCJrZXZsYXJfZGlzYWJsZV9odG1sX2ltcG9ydHMiOnRydWUsImtldmxhcl93YXRjaF9pbmNyZWFzZWRfd2lkdGhfdGhyZXNob2xkIjp0cnVlLCJrZXZsYXJfdGh1bWJuYWlsX2ZsdWlkIjp0cnVlLCJsaXZlX2NoYXRfdXNlX2ZldGNoX2NvbW1hbmQiOnRydWUsImtldmxhcl9iYWNrZ3JvdW5kX2NvbG9yX3VwZGF0ZSI6dHJ1ZSwicmVuZGVyX3NjaGVtYV9vcmdfYWxidW0iOnRydWUsImRlc2t0b3Bfc2VhcmNoX3Byb21pbmVudF90aHVtYnNfc3R5bGUiOiJERUZBVUxUIiwid2ViX2RvbnRfY2FuY2VsX3BlbmRpbmdfbmF2aWdhdGlvbl9zYW1lX3VybCI6dHJ1ZSwia2V2bGFyX2Zyb250ZW5kX3F1ZXVlX3JlY292ZXIiOnRydWUsInlvb2RsZV9kYXRlX292ZXJyaWRlX2RlYnVnIjoiIiwia2V2bGFyX2hvbWVfa2V5Ym9hcmRfc2Nyb2xsX2Rpc3RhbmNlIjowLCJrZXZsYXJfbGF6eV9saXN0X3Jlc3VtZV9mb3JfYXV0b2ZpbGwiOnRydWUsImtldmxhcl9vcF9icm93c2Vfc2FtcGxlZF9wcmVmaXhfaWRzIjpbXSwidXNlX3dhdGNoX2ZyYWdtZW50czIiOnRydWUsImtldmxhcl9zZXR0aW5nc19hZHZhbmNlZCI6dHJ1ZSwicmVuZGVyX21ldGFfZ2VuZXJhbF90YWdzIjp0cnVlLCJ3ZWJfc2hvd19yZWdleF9lcnJvcl90ZXh0YXJlYSI6dHJ1ZSwiZXh0ZXJuYWxfZnVsbHNjcmVlbl9idXR0b25fc2hvd25fdGhyZXNob2xkIjoxMCwia2V2bGFyX3NldHRpbmdzX2JpbGxpbmciOnRydWUsImtldmxhcl9zYXZlX3F1ZXVlIjp0cnVlLCJzZXJ2aWNlX3dvcmtlcl9wdXNoX3Byb21wdF9kZWxheV9taWNyb3NlY29uZHMiOjM4ODgwMDAwMDAwMDAsInJlbG9hZF93aXRob3V0X3BvbHltZXJfaW5uZXJ0dWJlIjp0cnVlLCJndWlkZV9sZWdhbF9mb290ZXJfZW5hYmxlZF9jb3VudHJpZXMiOlsiTkwiLCJFUyJdLCJhdXRvZXNjYXBlX3RlbXBkYXRhX3VybCI6dHJ1ZSwia2V2bGFyX29wX2luZnJhIjp0cnVlLCJlbmFibGVfd2F0Y2hfbmV4dF9wYXVzZV9hdXRvcGxheV9sYWN0Ijp0cnVlLCJrZXZsYXJfZ2FpYV9saW5rIjp0cnVlLCJrZXZsYXJfbWVhbGJhcl9hYm92ZV9wbGF5ZXIiOnRydWUsImtldmxhcl9jb3B5X3BsYXlsaXN0Ijp0cnVlLCJ5b29kbGVfYWx0X3RleHRfbG9jYWxlIjoiIiwieW9vZGxlX2FsdF90ZXh0IjoiIiwiZW5hYmxlX2RldmljZV9mb3J3YXJkaW5nX2Zyb21fcG9seW1lcl9uZXR3b3JrX21hbmFnZXIiOnRydWUsImRlc2t0b3Bfc3BhcmtsZXNfbGlnaHRfY3RhX2J1dHRvbiI6dHJ1ZSwia2V2bGFyX3NldHRpbmdzX25vdGlmaWNhdGlvbnMiOnRydWUsImNhbmNlbF9wZW5kaW5nX25hdnMiOnRydWUsImtldmxhcl93YXRjaF9kcmFnX2hhbmRsZXMiOnRydWUsImtldmxhcl9wbGF5YmFja19hc3NvY2lhdGVkX3F1ZXVlIjp0cnVlLCJrZXZsYXJfaW5saW5lZF9odG1sX3RlbXBsYXRlc19wb2x5bWVyX2ZsYWdzIjp0cnVlLCJrZXZsYXJfYXV0b25hdl9taW5pcGxheWVyX2ZpeCI6dHJ1ZSwicGxheWVyX2Jvb3RzdHJhcF9tZXRob2QiOnRydWUsImF1dG9wbGF5X3BhdXNlX2J5X2xhY3Rfc2VjIjowLCJuZXR3b3JrX3BvbGxpbmdfaW50ZXJ2YWwiOjMwMDAwLCJlbmFibGVfcG9seW1lcl9yZXNpbl9taWdyYXRpb24iOnRydWUsImRlc2t0b3Bfbm90aWZpY2F0aW9uX3NldF90aXRsZV9iYXIiOnRydWUsInlvb2RsZV9lbmRfdGltZV91dGMiOjE2MDM4NzkxOTksIndlYl9sb2dfYXBwX2luc3RhbGxfZXhwZXJpbWVudHMiOnRydWUsInVzZXJfZW5nYWdlbWVudF9leHBlcmltZW50c19yYXRlX2xpbWl0X21zIjo4NjQwMDAwMCwiYWRkX2RldmljZV90aGVtZV9wcmVmZXJlbmNlX3dlYiI6dHJ1ZSwia2V2bGFyX2NlbnRlcl9zZWFyY2hfcmVzdWx0cyI6dHJ1ZSwia2V2bGFyX2dlbF9lcnJvcl9yb3V0aW5nIjp0cnVlLCJrZXZsYXJfdXNlX2VuZHBvaW50X2Zvcl9jaGFubmVsX2NyZWF0aW9uX2Zvcm0iOnRydWUsInVzZV9wbGF5ZXJfcGFyYW1zX2Zvcl9wYXNzaW5nX2Rlc2t0b3BfY29udmVyc2lvbl91cmxzIjp0cnVlLCJrZXZsYXJfY2hhbm5lbF90cmFpbGVyX211bHRpX2F0dGFjaCI6dHJ1ZSwiaHRtbDVfZm9yY2VfZGVidWdfZGF0YV9mb3JfY2xpZW50X3RtcF9sb2dzIjp0cnVlLCJlbmFibGVfbWVtYmVyc2hpcHNfYW5kX3B1cmNoYXNlcyI6dHJ1ZSwia2V2bGFyX3NldHRpbmdzX292ZXJ2aWV3Ijp0cnVlLCJyaWNoX2dyaWQiOnRydWUsImtldmxhcl9ub191cmxfcGFyYW1zIjp0cnVlLCJ3ZWJfb3BfZW5kcG9pbnRfYmFubGlzdCI6W10sImxvZ19qc19lcnJvcl9jbHVzdGVycyI6MS4wLCJ3ZWJfcGxheWVyX3RvdWNoX21vZGVfaW1wcm92ZW1lbnRzIjp0cnVlLCJlbmFibGVfc3RyZWFtbGluZV9yZXBvc3RfZmxvdyI6dHJ1ZSwiZGVza3RvcF9wb2x5bWVyX3ZpZGVvX21hc3RoZWFkX3Nlc3Npb25fdGVtcGRhdGFfdHRsIjozMCwiZGVza3RvcF93ZWJfY2xpZW50X3ZlcnNpb25fb3ZlcnJpZGUiOiIiLCJlbmFibGVfb2ZmZXJfc3VwcHJlc3Npb24iOnRydWUsImtldmxhcl9lbmFibGVfcmVvcmRlcmFibGVfcGxheWxpc3RzIjp0cnVlLCJrZXZsYXJfd2F0Y2hfanNfcGFuZWxfaGVpZ2h0Ijp0cnVlLCJleHRlcm5hbF9mdWxsc2NyZWVuX2J1dHRvbl9jbGlja190aHJlc2hvbGQiOjIsImtldmxhcl9taW5pcGxheWVyX3NldF93YXRjaF9uZXh0Ijp0cnVlLCJlbmFibGVfbWFzdGhlYWRfcXVhcnRpbGVfcGluZ19maXgiOnRydWUsInBsYXllcl9lbmFibGVfcGxheWJhY2tfcGxheWxpc3RfY2hhbmdlIjp0cnVlLCJib3RndWFyZF9ldmFsX3dpdGhfc2NyaXB0X3RhZyI6dHJ1ZSwiYm90Z3VhcmRfcGVyaW9kaWNfcmVmcmVzaCI6dHJ1ZSwicmVuZGVyX2Jhc2VfdGFnc19ob21lX3BhZ2UiOnRydWUsImdmZWVkYmFja19mb3Jfc2lnbmVkX291dF91c2Vyc19lbmFibGVkIjp0cnVlLCJkZXNrdG9wX3B5dl9vbl93YXRjaF9vdmVycmlkZV9sYWN0Ijp0cnVlLCJrZXZsYXJfbGVnYWN5X2Jyb3dzZXJzIjp0cnVlLCJuZXR3b3JrbGVzc19yZXF1ZXN0X2FnZV9saW1pdCI6MzAsImtldmxhcl91c2VfeXRkX3BsYXllciI6dHJ1ZSwicGxheWVyX2RvdWJsZXRhcF90b19zZWVrIjp0cnVlLCJkZXNrdG9wX2NsaWVudF9yZWxlYXNlIjp0cnVlLCJrZXZsYXJfZGlzYWJsZV9iYWNrZ3JvdW5kX3ByZWZldGNoIjp0cnVlLCJodG1sNV9lbmFibGVfYWRzX2NsaWVudF9tb25pdG9yaW5nX2xvZyI6dHJ1ZSwia2V2bGFyX2N0cmxfdGFwX2ZpeCI6dHJ1ZSwieW9vZGxlX3N0YXJ0X3RpbWUiOiIiLCJrZXZsYXJfb3BfcGFnZV9zZXJ2aWNlX2Jyb3dzZSI6dHJ1ZSwid2ViX25ldHdvcmtfY29tYmluZWRfY2F0Y2giOnRydWUsImtldmxhcl9lbmFibGVfc2xpcyI6dHJ1ZSwiZW5hYmxlX3ZlX3RyYWNrZXJfa2V5Ijp0cnVlLCJpZ25vcmVfZW1wdHlfeGhyIjp0cnVlLCJkZWZlcl9yZW5kZXJpbmdfb3V0c2lkZV92aXNpYmxlX2FyZWEiOnRydWUsImtldmxhcl91c2VfYWxwaGFfaW5fY29sb3JfcGFsZXR0ZXMiOnRydWUsInBvbHltZXJfd2FybV90aHVtYm5haWxfcHJlbG9hZCI6dHJ1ZSwicGRnX2VuYWJsZV9zaWduX2luX21vZGFsX2Zvcl9zdXBlcl92b2QiOnRydWUsInBvbHltZXIyX2VsZW1lbnRfcG9vbF9wcm9wZXJ0aWVzIjp0cnVlLCJrZXZsYXJfdXNlX3Jlc3BvbnNlX3R0bF90b19pbnZhbGlkYXRlX2NhY2hlIjp0cnVlLCJrZXZsYXJfYWJhbmRvbl9vbl9zdG9wIjp0cnVlLCJodG1sNV9jb250cm9sX2Zsb3dfaW5jbHVkZV90cmlnZ2VyX2xvZ2dpbmdfaW5fdG1wX2xvZ3MiOnRydWUsImtldmxhcl9vcF9taWdyYXRpb25feXBjIjp0cnVlLCJrZXZsYXJfcXVldWVfdXNlX2RlZGljYXRlZF9saXN0X3R5cGUiOnRydWUsInNraXBfZW5kcG9pbnRfcGFyYW1fY29tcGFyaXNvbiI6dHJ1ZSwicmV0cnlfd2ViX2xvZ2dpbmdfYmF0Y2hlcyI6dHJ1ZSwia2V2bGFyX21vdXNlZG93bl9wcmVmZXRjaGFibGVfY29tcG9uZW50cyI6WyJ5dGQtcGxheWxpc3QtdmlkZW8tcmVuZGVyZXIiLCJ5dGQtZ3JpZC12aWRlby1yZW5kZXJlciIsInl0ZC1jb21wYWN0LXZpZGVvLXJlbmRlcmVyIiwieXRkLXZpZGVvLXJlbmRlcmVyIiwieXRkLXBsYXlsaXN0LXBhbmVsLXZpZGVvLXJlbmRlcmVyIl0sImRlc2t0b3Bfc2VhcmNoX3N1Z2dlc3Rpb25fdGFwX3RhcmdldCI6MCwia2V2bGFyX2NsaWVudF9zaWRlX3NjcmVlbnMiOnRydWV9LCJHQVBJX0hJTlRfUEFSQU1TIjoibTtcL19cL3Njc1wvYWJjLXN0YXRpY1wvX1wvanNcL2s9Z2FwaS5nYXBpLmVuLjlLeTVHZjNnUDBvLk9cL2Q9MVwvY3Q9emdtc1wvcnM9QUhwT29vOW50Z1VnYVZtU0t4YjZvWHNrMTExODgwYWR5Z1wvbT1fX2ZlYXR1cmVzX18iLCJST09UX1ZFX1RZUEUiOjM4MzIsIklOTkVSVFVCRV9DT05URVhUX0dMIjoiQlIiLCJJTk5FUlRVQkVfQVBJX0tFWSI6IkFJemFTeUFPX0ZKMlNscVU4UTRTVEVITEdDaWx3X1k5XzExcWNXOCIsIkNMSUVOVF9UUkFOU1BPUlQiOiJ0Y3AiLCJHQVBJX0xPQ0FMRSI6InB0X0JSIiwiTEFURVNUX0VDQVRDSEVSX1NFUlZJQ0VfVFJBQ0tJTkdfUEFSQU1TIjp7ImNsaWVudC5uYW1lIjoiV0VCIn0sIkdBUElfSE9TVCI6Imh0dHBzOlwvXC9hcGlzLmdvb2dsZS5jb20iLCJBU1lOQ19XQVRDSCI6dHJ1ZSwiU0lHTklOX1VSTCI6Imh0dHBzOlwvXC9hY2NvdW50cy5nb29nbGUuY29tXC9TZXJ2aWNlTG9naW4/Y29udGludWU9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZzaWduaW4lM0ZhY3Rpb25faGFuZGxlX3NpZ25pbiUzRHRydWUlMjZhcHAlM0RkZXNrdG9wJTI2ZmVhdHVyZSUzRF9fRkVBVFVSRV9fJTI2aGwlM0RwdCUyNm5leHQlM0QlMjUyRndhdGNoJTI1M0Z2JTI1M0RTVWtYdlduMW03UVx1MDAyNmhsPXB0LUJSXHUwMDI2cGFzc2l2ZT10cnVlXHUwMDI2c2VydmljZT15b3V0dWJlXHUwMDI2dWlsZWw9MyIsIkRJU0FCTEVfWVRfSU1HX0RFTEFZX0xPQURJTkciOmZhbHNlLCJTVFMiOjE4NTYxLCJYU1JGX1RPS0VOIjoiUVVGRkxVaHFiV3hHVGtGWE5WTldkMVV4Vms5RVNFWlBibkZUVGxWUmEweE9kM3hCUTNKdGMwdHJiRkJGVEhwdVpsTkRlbmRoUjFCVU1UVlpTalpuWXpNNVgyVktXbFpIUmxkYWJDMU9Va0V0VkV4TmQyaGxlV1JqU1Zjek5sZENRWEJVWlVGeWJXVmxZbFF4YTFRMFIyWk1TMFphZVRkWWRsVlVWMGxDZDI5SFpWVnZNMEZTUkZwUk1tSk5OVGxQZEd4UE5scG5SRzl2WW1GdGJUTmZTak5sT0doWU5uRkdNRU5vYjJad016TTRiVk4wZDBJNGIyRkdXbkZHVUZSUWRFTkxRVkU9IiwiTE9HR0VEX0lOIjpmYWxzZSwiVklTSUJJTElUWV9USU1FX0JFVFdFRU5fSk9CU19NUyI6MTAwLCJOT19FTVBUWV9EQVRBX0lNRyI6dHJ1ZSwiUExBWUVSX0pTX1VSTCI6Ilwvc1wvcGxheWVyXC85YjY1ZTk4MFwvcGxheWVyX2lhcy52ZmxzZXRcL3B0X0JSXC9iYXNlLmpzIiwiU0JPWF9TRVRUSU5HUyI6eyJWSVNJVE9SX0RBVEEiOiJDZ3RpYkhkNlpsbG5RMWh3TkNqX3otSDhCUSUzRCUzRCIsIlJFUVVFU1RfTEFOR1VBR0UiOiJwdCIsIlNFQVJDSEJPWF9IT1NUX09WRVJSSURFIjoiIiwiSVNfUE9MWU1FUiI6dHJ1ZSwiU0VORF9WSVNJVE9SX0RBVEEiOnRydWUsIlNFQVJDSEJPWF9UQVBfVEFSR0VUX0VYUEVSSU1FTlQiOjAsIlNFQVJDSEJPWF9FTkFCTEVfUkVGSU5FTUVOVF9TVUdHRVNUIjp0cnVlLCJSRVFVRVNUX0RPTUFJTiI6ImJyIiwiU0VBUkNIQk9YX0JFSEFWSU9SX0VYUEVSSU1FTlQiOiJ6ZXJvLXByZWZpeCIsIkhBU19PTl9TQ1JFRU5fS0VZQk9BUkQiOnRydWUsIlNFQVJDSEJPWF9aRVJPX1RZUElOR19TVUdHRVNUX1VTRV9SRUdVTEFSX1NVR0dFU1QiOiJhbHdheXMiLCJJU19GVVNJT04iOmZhbHNlfSwiSVNfVEFCTEVUIjpmYWxzZSwiSFRNTF9ESVIiOiJsdHIiLCJHT09HTEVfRkVFREJBQ0tfUFJPRFVDVF9JRCI6IjU5IiwiR09PR0xFX0ZFRURCQUNLX1BST0RVQ1RfREFUQSI6eyJwb2x5bWVyMiI6ImFjdGl2ZSIsInBvbHltZXIiOiJhY3RpdmUiLCJhY2NlcHRfbGFuZ3VhZ2UiOm51bGx9LCJJTk5FUlRVQkVfQVBJX1ZFUlNJT04iOiJ2MSIsIlBBR0VfQlVJTERfTEFCRUwiOiJ5b3V0dWJlLnl0ZmUuZGVza3RvcF8yMDIwMTAyMl8yX1JDMCIsIlJFQ0FQVENIQV9WM19TSVRFS0VZIjoiNkxlZG9PY1VBQUFBQUhBNENGRzl6UnBhQ05qWWozM1NZanpROWNUeSIsIlZPWl9BUElfS0VZIjoiQUl6YVN5QlUyeEVfSkh2QjZ3YWczdE1maHhYcGcyUV9XOHhuTS1JIiwiTElWRV9DSEFUX0JBU0VfVEFOR09fQ09ORklHIjp7ImFwaUtleSI6IkFJemFTeURaTmt5Qy1BdFJPd01CcExmZXZJdnFZay1HZmk4Wk9lbyIsInJlcXVpcmVzQXV0aFRva2VuIjp0cnVlLCJ1c2VOZXdUYW5nbyI6dHJ1ZSwiY2xpZW50VHlwZSI6MTA1Nywic2VuZGVyVXJpIjoiaHR0cHM6XC9cL2NsaWVudHM0Lmdvb2dsZS5jb21cL2ludmFsaWRhdGlvblwvbGNzXC9jbGllbnQiLCJjaGFubmVsVXJpIjoiaHR0cHM6XC9cL2NsaWVudC1jaGFubmVsLmdvb2dsZS5jb21cL2NsaWVudC1jaGFubmVsXC9jbGllbnQiLCJjbGllbnROYW1lIjoieXQtbGl2ZS1jaGF0LWFub24ifSwiQ09VTlRSWSI6IkJyYXNpbCIsIlhIUl9BUElBUllfSE9TVCI6InlvdXR1YmVpLnlvdXR1YmUuY29tIiwiRkVYUF9FWFBFUklNRU5UUyI6WzIzNzQ0MTc2LDIzODA0MjgxLDIzODM0NjExLDIzODM5NTk3LDIzODU2OTUwLDIzODU3OTQ4LDIzODU4MDU3LDIzODY4MzIwLDIzODc4NDE1LDIzODgwMDQzLDIzODgwODI5LDIzODgyNTAyLDIzODg0Mzg2LDIzODg1NTcyLDIzODkwOTU5LDIzODk1NjcxLDIzOTExMDU1LDIzOTE0NzQ5LDIzOTE1OTkxLDIzOTE4NTk3LDIzOTIwNzcwLDIzOTIwNzcwLDIzOTIxNTU0LDIzOTI3NzY3LDIzOTI3NzY3LDIzOTI4NTA4LDIzOTMwMjIwLDIzOTM0OTcwLDIzOTQyMzM4LDIzOTQyNDM1LDIzOTQyNjMzLDIzOTQ0Nzc5LDIzOTQ1NDc5LDIzOTQ2NDIwLDIzOTQ3Njk4LDIzOTQ4ODQxLDIzOTUwMjczLDIzOTUwNTk3LDIzOTUxMTA3LDIzOTUxMTM4LDIzOTUxNjIxLDIzOTU1MzczLDIzOTU2NzU0LDIzOTYxMjkxLDIzOTYyOTIwLDIzOTYyOTYyLDIzOTYzNjE2LDIzOTYzNjYwLDI0NTkwMjkwLDk0NDkyNDNdLCJTVEFSVF9JTl9USEVBVEVSX01PREUiOmZhbHNlLCJMSVZFX0NIQVRfU0VORF9NRVNTQUdFX0FDVElPTiI6ImxpdmVfY2hhdFwvd2F0Y2hfcGFnZVwvc2VuZCIsIlZJU0lUT1JfREFUQSI6IkNndGliSGQ2WmxsblExaHdOQ2pfei1IOEJRJTNEJTNEIiwiREVWSUNFIjoiY2VuZz1VU0VSX0RFRklORUQiLCJFTEVNRU5UX1BPT0xfREVGQVVMVF9DQVAiOjc1LCJaV0lFQkFDS19QSU5HX1VSTFMiOlsiaHR0cHM6XC9cL3d3dy5nb29nbGUuY29tLmJyXC9wYWdlYWRcL2x2ej9ldnRpZD1BS0I3OGNnYWg3Umt2OGQ5MHJRdGU3MVB2akRLM1pGS3A0WjQxaGZzcHh3OTZMZ0RQZjNkWnM3c3BaOU1xZ3lzMnFaZnA4ZjBPd2pWZ3hxWE1kUUhCZlQ5SUZ4YVp6VFAxUVx1MDAyNnBnPXdhdGNoXHUwMDI2cmVxX3RzPTE2MDM4MjM2MTVcdTAwMjZzaWdoPUFLRnB5WVY0bURpYlJzS2FVRXdIYUhRLXZxRldKV0ZGSnciLCJodHRwczpcL1wvd3d3Lmdvb2dsZS5jb21cL3BhZ2VhZFwvbHZ6P2V2dGlkPUFLQjc4Y2l2T01JcXFacTZGckt4dzJzeEpYMFBmVGp2b2lPYkRDeUh1SDVwQjhteFRtV3RZNVVDTGwyWkpYMkkyYXRFb2ZOS0VNNFVQSHV1TUc5OXBPaHBiRjUwV29maDNRXHUwMDI2cGc9d2F0Y2hcdTAwMjZyZXFfdHM9MTYwMzgyMzYxNVx1MDAyNnNpZ2g9QUtGcHlZVk04ZzA0OGVNdlV2a1p1N3NtUE14WHlmTE1kUSJdLCJFVkVOVF9JRCI6Il8yZVlYN25mQTRHaXdRVEp3S2FvQ1EiLCJQQUdFX0NMIjozMzg0NDM5MTAsIkxBTkdVQUdFIjoiUG9ydHVndcOqcyIsIlNFUlZJQ0VfV09SS0VSX1BST01QVF9OT1RJRklDQVRJT05TIjpmYWxzZSwiSU5ORVJUVUJFX0NPTlRFWFRfQ0xJRU5UX05BTUUiOjEsIkRFRkVSUkVEX0RFVEFDSCI6dHJ1ZSwiVkFSSUFOVFNfQ0hFQ0tTVU0iOiJhOTUwNGU2ZGMzNTVkNmRlMTI5MjU4ZjRkZGYxZWQ0MSIsIkNMSUVOVF9QUk9UT0NPTCI6IkhUVFBcLzEuMSJ9KTt5dGNmZy5zZXQoIlNCT1hfTEFCRUxTIiwgeyJTVUdHRVNUSU9OX0RJU01JU1NfTEFCRUwiOiJSZW1vdmVyIiwiU1VHR0VTVElPTl9ESVNNSVNTRURfTEFCRUwiOiJTdWdlc3TDo28gcmVtb3ZpZGEifSk7dmFyIHNldE1lc3NhZ2UgPSBmdW5jdGlvbihtc2cpIHtpZiAod2luZG93Lnl0ICYmIHl0LnNldE1zZykge3l0LnNldE1zZyhtc2cpO30gZWxzZSB7d2luZG93Lnl0Y2ZnID0gd2luZG93Lnl0Y2ZnIHx8IHt9O3l0Y2ZnLm1zZ3MgPSBtc2c7fX07c2V0TWVzc2FnZSh7J1NJR05fSU5fTEFCRUwnOiAiRmF6ZXIgbG9naW4iLCdTSEFSRV9MQUJFTCc6ICJDb21wYXJ0aWxoYXIiLCdHVUlERV9BTFRfTEFCRUwnOiAiR3VpYSIsJ0xPR09fQUxUX0xBQkVMJzogIlDDoWdpbmEgaW5pY2lhbCBkbyBZb3VUdWJlIiwnQkFDS19BTFRfTEFCRUwnOiAiVm9sdGFyIiwnQ0hPT1NFX0NPVU5UUllfTEFCRUwnOiAiU2VsZWNpb25lIHNldSBsb2NhbCIsJ0NPVU5UUllfTEFCRUwnOiAiTG9jYWw6IiwnQ0hPT1NFX0xBTkdVQUdFX0xBQkVMJzogIlNlbGVjaW9uZSBzZXUgaWRpb21hIiwnTEFOR1VBR0VfTEFCRUwnOiAiSWRpb21hOiIsJ1RJTUVaT05FX0ZPUk1BVCc6ICIoJHV0Y19vZmZzZXRfdGV4dCkgJGNpdHlfbmFtZSIsJ0xPQ0FMX1RJTUVfTEFCRUwnOiAiSG9yYSBsb2NhbCIsJ0xPQ0FMX1RJTUVfR01UX0xBQkVMJzogIkhvcsOhcmlvIGxvY2FsICgkZ210X3RleHQpIiwnVVRDX09GRlNFVF9GT1JNQVQnOiAiR01UJHV0Y19vZmZzZXQiLCdFTlRFUl9EQVRFX09SX0VBUkxJRVInOiAiSW5zaXJhICRhbGxvd2VkX2RhdGUgb3UgdW1hIGRhdGEgYW50ZXJpb3IiLCdFTlRFUl9EQVRFX09SX0xBVEVSJzogIkluc2lyYSAkYWxsb3dlZF9kYXRlIG91IHVtIGhvcsOhcmlvIHBvc3RlcmlvciIsJ0lOVkFMSURfREFURV9FUlJPUic6ICJEYXRhIGludsOhbGlkYSIsJ09GRic6ICJEZXNhdGl2YWRvIiwnT04nOiAiQXRpdmFkbyIsJ1JFU1RSSUNURURfTU9ERV9MQUJFTCc6ICJNb2RvIHJlc3RyaXRvOiIsJ1JFU1RSSUNURURfTU9ERV9URVhUX0xJTkVfMSc6ICJPIE1vZG8gcmVzdHJpdG8gb2N1bHRhIHbDrWRlb3MgcXVlIHBvZGVtIGNvbnRlciBjb250ZcO6ZG8gaW5hZGVxdWFkbywgc2luYWxpemFkbyBwb3IgdXN1w6FyaW9zIG91IG91dHJvcyBpbmRpY2Fkb3Jlcy4gTmVuaHVtIGZpbHRybyDDqSAxMDAlIHByZWNpc28sIG1hcyBkZXZlIGFqdWRhciB2b2PDqiBhIGV2aXRhciBhIG1haW9yaWEgZG9zIGNvbnRlw7pkb3MgaW5hZGVxdWFkb3MuIiwnUkVTVFJJQ1RFRF9NT0RFX1RFWFRfTElORV8yJzogIkEgY29uZmlndXJhw6fDo28gZG8gTW9kbyByZXN0cml0byBzZXLDoSBhcGxpY2FkYSBzb21lbnRlIGEgZXN0ZSBuYXZlZ2Fkb3IuIiwnUkVTVFJJQ1RFRF9NT0RFX1RJVExFJzogIk1vZG8gcmVzdHJpdG8iLCdJTUFHRV9IT1JJWk9OVEFMX1BPU0lUSU9OX0xBQkVMJzogIk8gY2VudHJvIGRhIHZpc3VhbGl6YcOnw6NvIGVzdMOhIGEgJHhfcGVyY2VudCUgZGEgZXNxdWVyZGEgZSBhJHlfcGVyY2VudCUgZGEgZGlyZWl0YS4iLCdJTUFHRV9WRVJUSUNBTF9QT1NJVElPTl9MQUJFTCc6ICJPIGNlbnRybyBkYSB2aXN1YWxpemHDp8OjbyBlc3TDoSBhICR4X3BlcmNlbnQlIGRhIHBhcnRlIHN1cGVyaW9yIGUgYSR5X3BlcmNlbnQlIGRhIHBhcnRlIGluZmVyaW9yLiIsJ1JFUE9TSVRJT05fSU1BR0VfSE9SSVpPTlRBTExZX0xBQkVMJzogIlVzZSBhcyB0ZWNsYXMgZGUgc2V0YSBlc3F1ZXJkYSBlIGRpcmVpdGEgcGFyYSBwb3NpY2lvbmFyIGEgdmlzdWFsaXphw6fDo28iLCdSRVBPU0lUSU9OX0lNQUdFX1ZFUlRJQ0FMTFlfTEFCRUwnOiAiVXNlIGFzIHRlY2xhcyBkZSBzZXRhIHBhcmEgY2ltYSBlIHBhcmEgYmFpeG8gcGFyYSBwb3NpY2lvbmFyIGEgdmlzdWFsaXphw6fDo28iLCdSRUFDSF9UT1BfT0ZfSU1BR0VfVEVYVCc6ICJWb2PDqiBhbGNhbsOnb3UgYSBwYXJ0ZSBzdXBlcmlvciBkYSBpbWFnZW0iLCdSRUFDSF9CT1RUT01fT0ZfSU1BR0VfVEVYVCc6ICJWb2PDqiBhbGNhbsOnb3UgYSBwYXJ0ZSBpbmZlcmlvciBkYSBpbWFnZW0iLCdSRUFDSF9MRUZUX09GX0lNQUdFX1RFWFQnOiAiVm9jw6ogYWxjYW7Dp291IG8gbGFkbyBlc3F1ZXJkbyBkYSBpbWFnZW0iLCdSRUFDSF9SSUdIVF9PRl9JTUFHRV9URVhUJzogIlZvY8OqIGFsY2Fuw6dvdSBvIGxhZG8gZGlyZWl0byBkYSBpbWFnZW0iLCdTQk9YX1BMQUNFSE9MREVSJzogIlBlc3F1aXNhciIsJ1NCT1hfSU5BUFBST1BSSUFURV9QUk9NUFQnOiAiRGVudW5jaWFyIHByZXZpc8O1ZXMgZGUgZW5xdWV0ZSIsJ1NCT1hfSU5BUFBST1BSSUFURV9USVRMRSc6ICJEZW51bmNpYXIgcHJldmlzw7VlcyBkZSBlbnF1ZXRlIiwnU0JPWF9JTkFQUFJPUFJJQVRFX1NVR0dFU1RJT05TJzogIlNlbGVjaW9uZSBhcyBwcmV2aXPDtWVzIHF1ZSB2b2PDqiBxdWVyIGRlbnVuY2lhcjoiLCdTQk9YX0lOQVBQUk9QUklBVEVfQ0FURUdPUlknOiAiTyBjb250ZcO6ZG8gZGFzIHByZXZpc8O1ZXMgc2VsZWNpb25hZGFzOiIsJ1NCT1hfSU5BUFBST1BSSUFURV9IQVRFRlVMJzogImluY2l0YSBhbyDDs2RpbyIsJ1NCT1hfSU5BUFBST1BSSUFURV9FWFBMSUNJVCc6ICLDqSBzZXh1YWxtZW50ZSBleHBsw61jaXRvIiwnU0JPWF9JTkFQUFJPUFJJQVRFX1ZJT0xFTlQnOiAiY29udMOpbSB2aW9sw6puY2lhIiwnU0JPWF9JTkFQUFJPUFJJQVRFX0RBTkdFUk9VUyc6ICJjb250w6ltIGF0aXZpZGFkZXMgcGVyaWdvc2FzIG91IG5vY2l2YXMiLCdTQk9YX0lOQVBQUk9QUklBVEVfT1RIRVInOiAib3V0cm8iLCdTQk9YX0lOQVBQUk9QUklBVEVfUkVBU09OJzogIk1vdGl2byAob2JyaWdhdMOzcmlvKSIsJ1NCT1hfSU5BUFBST1BSSUFURV9BRERJVElPTkFMJzogIkZvcm5lw6dhIG1haXMgZGV0YWxoZXMgKG9wY2lvbmFsKSIsJ1NCT1hfSU5BUFBST1BSSUFURV9TVUJNSVQnOiAiRW52aWFyIiwnU0JPWF9JTkFQUFJPUFJJQVRFX1JFUE9SVCc6ICJEZW51bmNpYXIiLCdTQk9YX0lOQVBQUk9QUklBVEVfQ0FOQ0VMJzogIkNhbmNlbGFyIiwnU0JPWF9JTkFQUFJPUFJJQVRFX1RPQVNUJzogIkFncmFkZWNlbW9zIHNldSBmZWVkYmFjay4iLCdTQk9YX1ZPSUNFX09WRVJMQVlfUExBQ0VIT0xERVInOiAiT3V2aW5kb+KApiIsJ0FERF9UT19EUk9QRE9XTl9MQUJFTCc6ICJTYWx2YXIgZW0uLi4iLCdSRVFVSVJFRF9MQUJFTCc6ICJPYnJpZ2F0w7NyaW8iLCdOT19BTkdMRV9CUkFDS0VUX0xBQkVMJzogIk8gbm9tZSBkYSBwbGF5bGlzdCBuw6NvIHBvZGUgY29udGVyIFx1MDAzYyBvdSBcdTAwM2VcbiIsJ0VESVRfQVZBVEFSX0xBQkVMJzogIkVkaXRhciBmb3RvIGRvIHBlcmZpbCIsJ0FEX0JBREdFX1RFWFQnOiAiQW7Dum5jaW8iLCdFRFVfR09UX0lUJzogIk9rIiwnTUlOSVBMQVlFUl9DT0xMQVBTRV9MQUJFTCc6ICJSZWNvbGhlciIsJ01JTklQTEFZRVJfRVhQQU5EX0xBQkVMJzogIkV4cGFuZGlyIiwnUVVFVUUnOiAiRmlsYSIsJ0FEREVEX1RPX1FVRVVFJzogIkFkaWNpb25hZG8gw6AgZmlsYSIsJ1FVRVVFX0NMRUFSRUQnOiB7ImNhc2UxIjogIjEgdlx1MDBlZGRlbyByZW1vdmlkbyBkYSBmaWxhIiwgIm90aGVyIjogIiMgdlx1MDBlZGRlb3MgcmVtb3ZpZG9zIGRhIGZpbGEiLCAib25lIjogIiMgdlx1MDBlZGRlbyByZW1vdmlkbyBkYSBmaWxhIn0sJ1FVRVVFX0NMRUFSRURfVU5QTFVSQUxJWkVEJzoiRmlsYSB2YXppYSIsJ01JTklQTEFZRVJfQ0xPU0UnOiAiRmVjaGFyIHBsYXllciIsJ1FVRVVFX0NMT1NFX01JTklQTEFZRVJfQ09ORklSTV9USVRMRSc6ICJBIGZpbGEgc2Vyw6EgZXhjbHXDrWRhIiwnUVVFVUVfQ0xPU0VfTUlOSVBMQVlFUl9DT05GSVJNX0JPRFlfVEVYVCc6ICJWb2PDqiBxdWVyIG1lc21vIGZlY2hhciBvIHBsYXllcj8iLCdRVUVVRV9SRUNPVkVSX0JVVFRPTic6ICJSZWF0aXZhciIsJ1FVRVVFX1JFQ09WRVJfTUVTU0FHRSc6ICJSZWN1cGVyYXIgYSBmaWxhIiwnQ0xFQVInOiAiTGltcGFyIiwnVU5ETyc6ICJEZXNmYXplciIsJ0NBTkNFTCc6ICJDYW5jZWxhciIsJ1NVQlNfRklMVEVSX0VEVV9URVhUJzogIlZlamEgbm92b3MgdsOtZGVvcyBkZSBjYWRhIGNhbmFsIiwnU1VCU19HVUlERV9JVEVNX0VEVV9URVhUJzogIlZlamEgbm92b3MgdsOtZGVvcyBkZSB0b2RhcyBhcyBzdWFzIGluc2NyacOnw7VlcyIsJ1NVQlNfRklMVEVSX0VEVV9DSEFOTkVMX1RFWFQnOiAiTW9zdHJhbmRvIG5vdm9zIHbDrWRlb3MgZGVzdGUgY2FuYWwuIiwnTElCUkFSWV9HVUlERV9JVEVNX0VEVV9USVRMRSc6ICJWZWphIHN1YSBub3ZhIGJpYmxpb3RlY2EiLCdMSUJSQVJZX0dVSURFX0lURU1fRURVX1RFWFQnOiAiRW5jb250cmUgc2V1IGhpc3TDs3JpY28sIHBsYXlsaXN0cywgY29tcHJhcyBlIG11aXRvIG1haXMiLCdNRU5USU9OU19FRFVfVElUTEUnOiAiU2FpYmEgbWFpcyIsJ01FTlRJT05TX0VEVV9URVhUJzogIkFjZXNzZSBhIENlbnRyYWwgZGUgQWp1ZGEgcGFyYSB2ZXIgY29tbyBhcyBtZW7Dp8O1ZXMgZnVuY2lvbmFtIG5vIFlvdVR1YmUuIiwnTk9fSU5URVJORVRfQ09OTkVDVElPTic6ICJTZW0gY29uZXjDo28gw6AgSW50ZXJuZXQiLCdDT05ORUNUX1RPX1RIRV9JTlRFUk5FVCc6ICJDb25lY3RlLXNlIMOgIEludGVybmV0IiwnT0ZGTElORV9DSEVDS19DT05ORUNUSU9OJzogIlZvY8OqIGVzdMOhIG9mZi1saW5lLiBWZXJpZmlxdWUgc3VhIGNvbmV4w6NvLiIsJ1JFVFJZJzogIlRlbnRhciBub3ZhbWVudGUiLCdKT0lOX01FTUJFUlNISVBfRURVX1RJVExFJzogIkFzc2luYXR1cmEiLCdKT0lOX01FTUJFUlNISVBfRURVX1RFWFQnOiAiR2FuaGUgYmVuZWbDrWNpb3MgZXhjbHVzaXZvcyBhbyBzZSB0b3JuYXIgbWVtYnJvIGRlc3RlIGNhbmFsLiIsJ1NIQVJFX1BPU1RfRURVX1RFWFQnOiAiQWdvcmEsIHZvY8OqIHBvZGUgY29tcGFydGlsaGFyIHBvc3RhZ2VucyBubyBZb3VUdWJlIiwnRlJFRUJJRV9KT0lOX01FTUJFUlNISVBfRURVX1RFWFQnOiAiRXN0ZSBjYW5hbCBvZmVyZWNlIHVtYSBhc3NpbmF0dXJhIHF1ZSB2b2PDqiBwb2RlIGFwcm92ZWl0YXIgZ3JhdHVpdGFtZW50ZSBjb20gbyBZb3VUdWJlIFByZW1pdW0iLCdNQU5BR0VfTUVNQkVSU0hJUF9FRFVfVEVYVCc6ICJBY2Vzc2Ugc2V1cyBiZW5lZsOtY2lvcyBlIGdlcmVuY2llIHN1YSBhc3NpbmF0dXJhIGFxdWkuIn0pO30pKCk7eXRjZmcuc2V0KCdNRU5USU9OU19FRFVfSEVMUF9MSU5LJywgJ2h0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL3lvdXR1YmUvP3A9Y3JlYXRvcl9jb21tdW5pdHknKTt5dGNmZy5zZXQoJ3NjaGVkdWxlcicsIHt1c2VSYWY6IHRydWUsIHRpbWVvdXQ6IDIwfSk7eXRjZmcuc2V0KCdpbml0aWFsSW5uZXJXaWR0aCcsIHdpbmRvdy5pbm5lcldpZHRoKTt5dGNmZy5zZXQoJ2luaXRpYWxJbm5lckhlaWdodCcsIHdpbmRvdy5pbm5lckhlaWdodCk7d2luZG93Lnl0Y2ZnLnNldCgnSVNfV0FUQ0hfUEFHRV9DT0xEJywgdHJ1ZSk7d2luZG93Lnl0Y2ZnLnNldCgnTElOS19BUElfS0VZJywgIkFJemFTeURvcGhBUXV5eWlCcjhoMG55cEV3WFVLb3pILUJFc3dEMCIpO3dpbmRvdy55dGNmZy5zZXQoJ0xJTktfR0FMX0RPTUFJTicsICJodHRwczpcL1wvYWNjb3VudGxpbmtpbmctcGEtY2xpZW50czYueW91dHViZS5jb20iKTt3aW5kb3cueXRjZmcuc2V0KCdMSU5LX09JU19ET01BSU4nLCAib2F1dGhpbnRlZ3JhdGlvbnMuZ29vZ2xlYXBpcy5jb20iKTtpZiAod2luZG93Lnl0Y3NpKSB7d2luZG93Lnl0Y3NpLnRpY2soImxwY2YiLCBudWxsLCAnJyk7fTwvc2NyaXB0PiAgCjxzY3JpcHQgIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9kZXNrdG9wL2E5MDAzNmVhL2pzYmluL3NjaGVkdWxlci52ZmxzZXQvc2NoZWR1bGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIG5hbWU9InNjaGVkdWxlci9zY2hlZHVsZXIiID48L3NjcmlwdD4gIAogIDxzY3JpcHQgPgogICAgeXRjZmcuc2V0KHsiSU5ORVJUVUJFX0NPTlRFWFQiOnsiY2xpZW50Ijp7ImhsIjoicHQiLCJnbCI6IkJSIiwidmlzaXRvckRhdGEiOiJDZ3RpYkhkNlpsbG5RMWh3TkNqX3otSDhCUSUzRCUzRCIsInVzZXJBZ2VudCI6IlJ1YnksZ3ppcChnZmUpIiwiY2xpZW50TmFtZSI6IldFQiIsImNsaWVudFZlcnNpb24iOiIyLjIwMjAxMDIzLjAyLjAwIn0sInJlcXVlc3QiOnsic2Vzc2lvbklkIjoiNjg4ODM2OTk3NTI4MzUwOTQwOCJ9LCJhZFNpZ25hbHNJbmZvIjp7ImNvbnNlbnRCdW1wUGFyYW1zIjp7ImNvbnNlbnRIb3N0bmFtZU92ZXJyaWRlIjoiaHR0cHM6Ly93d3cueW91dHViZS5jb20iLCJ1cmxPdmVycmlkZSI6IiJ9fX19KTsKICA8L3NjcmlwdD4KICAKPHNjcmlwdCAgc3JjPSIvcy9wbGF5ZXIvOWI2NWU5ODAvcGxheWVyX2lhcy52ZmxzZXQvcHRfQlIvYmFzZS5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBuYW1lPSJwbGF5ZXJfaWFzL2Jhc2UiID48L3NjcmlwdD4gIAo8c2NyaXB0ID5pZiAod2luZG93Lnl0Y3NpKSB7d2luZG93Lnl0Y3NpLnRpY2soImNzbCIsIG51bGwsICcnKTt9PC9zY3JpcHQ+CiAgPHN0eWxlIG5hbWU9Ind3dy1yb2JvdG8iID5AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6bG9jYWwoJ1JvYm90byBJdGFsaWMnKSxsb2NhbCgnUm9ib3RvLUl0YWxpYycpLHVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3YxOC9LRk9rQ25xRXU5MkZyMU11NTF4SUl6Yy50dGYpZm9ybWF0KCd0cnVldHlwZScpO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtd2VpZ2h0OjUwMDtzcmM6bG9jYWwoJ1JvYm90byBNZWRpdW0gSXRhbGljJyksbG9jYWwoJ1JvYm90by1NZWRpdW1JdGFsaWMnKSx1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92MTgvS0ZPakNucUV1OTJGcjFNdTUxUzdBQ2M2Q3NFLnR0Zilmb3JtYXQoJ3RydWV0eXBlJyk7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO3NyYzpsb2NhbCgnUm9ib3RvIFJlZ3VsYXInKSxsb2NhbCgnUm9ib3RvLVJlZ3VsYXInKSx1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92MTgvS0ZPbUNucUV1OTJGcjFNdTRteFAudHRmKWZvcm1hdCgndHJ1ZXR5cGUnKTt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7c3JjOmxvY2FsKCdSb2JvdG8gTWVkaXVtJyksbG9jYWwoJ1JvYm90by1NZWRpdW0nKSx1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92MTgvS0ZPbENucUV1OTJGcjFNbUVVOWZCQmM5LnR0Zilmb3JtYXQoJ3RydWV0eXBlJyk7fTwvc3R5bGU+PHNjcmlwdCBuYW1lPSJ3d3ctcm9ib3RvIiA+aWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLmxvYWQpIHtkb2N1bWVudC5mb250cy5sb2FkKCI0MDAgMTBwdCBSb2JvdG8iLCAiUCIpO2RvY3VtZW50LmZvbnRzLmxvYWQoIjUwMCAxMHB0IFJvYm90byIsICJQIik7fTwvc2NyaXB0Pgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1ZVCUyMFNhbnMlM0EzMDAlMkM1MDAlMkM3MDAiIG5hbWU9Ind3dy13ZWJmb250LXl0LXNhbnMiPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3MvcGxheWVyLzliNjVlOTgwL3d3dy1wbGF5ZXIuY3NzIiBuYW1lPSJwbGF5ZXIvd3d3LXBsYXllciIgaWQ9InBsYXllci1jc3MiPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9kZXNrdG9wL2E5MDAzNmVhL2Nzc2Jpbi93d3ctbWFpbi1kZXNrdG9wLXBsYXllci1za2VsZXRvbi5jc3MiIG5hbWU9Ind3dy1tYWluLWRlc2t0b3AtcGxheWVyLXNrZWxldG9uIj48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvZGVza3RvcC9hOTAwMzZlYS9jc3NiaW4vd3d3LW1haW4tZGVza3RvcC13YXRjaC1wYWdlLXNrZWxldG9uLmNzcyIgbmFtZT0id3d3LW1haW4tZGVza3RvcC13YXRjaC1wYWdlLXNrZWxldG9uIj48c3R5bGUgbmFtZT0iZ2xvYmFsX3N0eWxlcyI+Ym9keXtwYWRkaW5nOjA7bWFyZ2luOjA7b3ZlcmZsb3cteTpzY3JvbGx9Ym9keS5hdXRvc2Nyb2xse292ZXJmbG93LXk6YXV0b31ib2R5Lm5vLXNjcm9sbHtvdmVyZmxvdzpoaWRkZW59Ym9keS5uby15LXNjcm9sbHtvdmVyZmxvdy15OmhpZGRlbn0uaGlkZGVue2Rpc3BsYXk6bm9uZX10ZXh0YXJlYXstLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dF8tX3doaXRlLXNwYWNlOnByZS13cmFwfS5ncmVjYXB0Y2hhLWJhZGdle3Zpc2liaWxpdHk6aGlkZGVufTwvc3R5bGU+PHN0eWxlIG5hbWU9Im1hc3RoZWFkX3NoZWxsIj55dGQtbWFzdGhlYWQuc2hlbGx7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuOTgpO3Bvc2l0aW9uOmZpeGVkO3RvcDowO3JpZ2h0OjA7bGVmdDowO2Rpc3BsYXk6LW1zLWZsZXg7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O2hlaWdodDo1NnB4Oy1tcy1mbGV4LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9eXRkLW1hc3RoZWFkLnNoZWxsICNtZW51LWljb257bWFyZ2luLWxlZnQ6MTZweH15dGQtYXBwPnl0ZC1tYXN0aGVhZC5jaHVua2Vke3Bvc2l0aW9uOmZpeGVkO3RvcDowO3dpZHRoOjEwMCV9eXRkLW1hc3RoZWFkLnNoZWxsLmRhcmsseXRkLW1hc3RoZWFkLnNoZWxsLnRoZWF0ZXJ7YmFja2dyb3VuZDpyZ2JhKDQwLDQwLDQwLDAuOTgpfXl0ZC1tYXN0aGVhZC5zaGVsbC5mdWxsLXdpbmRvdy1tb2Rle2JhY2tncm91bmQ6cmdiYSg0MCw0MCw0MCwwLjk4KTtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygtMTAwJSAtIDVweCkpfXl0ZC1tYXN0aGVhZC5zaGVsbD4qOmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDoxNnB4fXl0ZC1tYXN0aGVhZC5zaGVsbD4qOmxhc3QtY2hpbGR7cGFkZGluZy1yaWdodDoxNnB4fXl0ZC1tYXN0aGVhZCAjbWFzdGhlYWQtbG9nb3tkaXNwbGF5Oi1tcy1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleH15dGQtbWFzdGhlYWQgI21hc3RoZWFkLWxvZ28gI2NvdW50cnktY29kZXttYXJnaW4tcmlnaHQ6MnB4fXl0ZC1tYXN0aGVhZC5zaGVsbCAjeXQtbG9nby1zdmcseXRkLW1hc3RoZWFkLnNoZWxsICN5dC1sb2dvLXJlZC1zdmd7YWxpZ24tc2VsZjpjZW50ZXI7bWFyZ2luLWxlZnQ6OHB4O3BhZGRpbmc6MDtjb2xvcjpibGFja315dGQtbWFzdGhlYWQuc2hlbGwgI2ExMXktc2tpcC1uYXZ7ZGlzcGxheTpub25lfXl0ZC1tYXN0aGVhZC5zaGVsbCBzdmd7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtwYWRkaW5nOjhweDttYXJnaW4tcmlnaHQ6OHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojNjA2MDYwO2ZpbGw6Y3VycmVudENvbG9yfXl0ZC1tYXN0aGVhZCAuZXh0ZXJuYWwtaWNvbnt3aWR0aDoyNHB4O2hlaWdodDoyNHB4fXl0ZC1tYXN0aGVhZCAueXQtaWNvbnMtZXh0e2ZpbGw6Y3VycmVudENvbG9yO2NvbG9yOiM2MDYwNjB9eXRkLW1hc3RoZWFkLnNoZWxsLmRhcmsgLnl0LWljb25zLWV4dCB5dGQtbWFzdGhlYWQuc2hlbGwudGhlYXRlciAueXQtaWNvbnMtZXh0e2ZpbGw6I2ZmZn15dGQtbWFzdGhlYWQgc3ZnI3l0LWxvZ28tc3Zne3dpZHRoOjgwcHh9eXRkLW1hc3RoZWFkIHN2ZyN5dC1sb2dvLXJlZC1zdmd7d2lkdGg6MTA2LjRweH1AbWVkaWEgKG1heC13aWR0aDo2NTZweCl7eXRkLW1hc3RoZWFkLnNoZWxsPio6Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0OjhweH15dGQtbWFzdGhlYWQuc2hlbGw+KjpsYXN0LWNoaWxke3BhZGRpbmctcmlnaHQ6OHB4fXl0ZC1tYXN0aGVhZC5zaGVsbCBzdmd7bWFyZ2luLXJpZ2h0OjB9eXRkLW1hc3RoZWFkICNtYXN0aGVhZC1sb2dvey1tcy1mbGV4OjEgMSAuMDAwMDAwMDAxcHg7LXdlYmtpdC1mbGV4OjE7ZmxleDoxOy13ZWJraXQtZmxleC1iYXNpczouMDAwMDAwMDAxcHg7ZmxleC1iYXNpczouMDAwMDAwMDAxcHh9eXRkLW1hc3RoZWFkLnNoZWxsICN5dC1sb2dvLXN2Zyx5dGQtbWFzdGhlYWQuc2hlbGwgI3l0LWxvZ28tcmVkLXN2Z3ttYXJnaW4tbGVmdDo0cHh9fUBtZWRpYSAobWluLXdpZHRoOjg3NnB4KXt5dGQtbWFzdGhlYWQgI21hc3RoZWFkLWxvZ297d2lkdGg6MTI5cHh9fSNtYXN0aGVhZC1za2VsZXRvbi1pY29uc3tkaXNwbGF5OmZsZXg7ZmxleDoxO2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9eXRkLW1hc3RoZWFkLm1hc3RoZWFkLWZpbmlzaCAjbWFzdGhlYWQtc2tlbGV0b24taWNvbnN7ZGlzcGxheTpub25lfS5tYXN0aGVhZC1za2VsZXRvbi1pY29ue2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDozMnB4O3dpZHRoOjMycHg7bWFyZ2luOjAgOHB4O2JhY2tncm91bmQtY29sb3I6aHNsKDAsMCUsODklKX15dGQtbWFzdGhlYWQuZGFyayAubWFzdGhlYWQtc2tlbGV0b24taWNvbntiYWNrZ3JvdW5kLWNvbG9yOmhzbCgwLDAlLDE2JSl9PC9zdHlsZT48c3R5bGUgbmFtZT0ibWFzdGhlYWRfY3VzdG9tX3N0eWxlcyIgaXM9ImN1c3RvbS1zdHlsZSIgIGlkPSJleHQtc3R5bGVzIiA+eXRkLW1hc3RoZWFkIC55dC1pY29ucy1leHR7Y29sb3I6dmFyKC0teXQtc3BlYy1pY29uLWFjdGl2ZS1vdGhlcil9eXRkLW1hc3RoZWFkIHN2ZyN5dC1sb2dvLXN2ZyAjeW91dHViZS1wYXRocyBwYXRoLHl0ZC1tYXN0aGVhZCBzdmcjeXQtbG9nby1yZWQtc3ZnICN5b3V0dWJlLXJlZC1wYXRocyBwYXRoe2ZpbGw6IzI4MjgyOH15dGQtbWFzdGhlYWQuZGFyayBzdmcjeXQtbG9nby1zdmcgI3lvdXR1YmUtcGF0aHMgcGF0aCx5dGQtbWFzdGhlYWQuZGFyayBzdmcjeXQtbG9nby1yZWQtc3ZnICN5b3V0dWJlLXJlZC1wYXRocyBwYXRoLHl0ZC1tYXN0aGVhZC50aGVhdGVyIHN2ZyN5dC1sb2dvLXN2ZyAjeW91dHViZS1wYXRocyBwYXRoLHl0ZC1tYXN0aGVhZC50aGVhdGVyIHN2ZyN5dC1sb2dvLXJlZC1zdmcgI3lvdXR1YmUtcmVkLXBhdGhzIHBhdGh7ZmlsbDojZmZmfTwvc3R5bGU+PHN0eWxlIG5hbWU9InNlYXJjaGJveCI+I3NlYXJjaC1pbnB1dC55dGQtc2VhcmNoYm94LXNwdCBpbnB1dHstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Ym94LXNoYWRvdzpub25lO2NvbG9yOmluaGVyaXQ7Zm9udC1mYW1pbHk6J1JvYm90bycsJ05vdG8nLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjI0cHg7bWFyZ2luLWxlZnQ6NHB4O21heC13aWR0aDoxMDAlO291dGxpbmU6bm9uZTt0ZXh0LWFsaWduOmluaGVyaXQ7d2lkdGg6MTAwJTstbXMtZmxleDoxIDEgLjAwMDAwMDAwMXB4Oy13ZWJraXQtZmxleDoxO2ZsZXg6MTstd2Via2l0LWZsZXgtYmFzaXM6LjAwMDAwMDAwMXB4O2ZsZXgtYmFzaXM6LjAwMDAwMDAwMXB4fSNzZWFyY2gtY29udGFpbmVyLnl0ZC1zZWFyY2hib3gtc3B0e3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjB9I3NlYXJjaC1pbnB1dC55dGQtc2VhcmNoYm94LXNwdCAjc2VhcmNoOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLCNzZWFyY2gtaW5wdXQueXRkLXNlYXJjaGJveC1zcHQgI3NlYXJjaDo6LW1vei1pbnB1dC1wbGFjZWhvbGRlciwjc2VhcmNoLWlucHV0Lnl0ZC1zZWFyY2hib3gtc3B0ICNzZWFyY2g6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOmhzbCgwLDAlLDUzLjMlKX08L3N0eWxlPjxzdHlsZSBuYW1lPSJrZXZsYXJfZ2xvYmFsX3N0eWxlcyI+aHRtbHtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5ZjkhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDpub25lfWh0bWxbZGFya117YmFja2dyb3VuZC1jb2xvcjojMTgxODE4IWltcG9ydGFudH0jbG9nby1yZWQtaWNvbi1jb250YWluZXIueXRkLXRvcGJhci1sb2dvLXJlbmRlcmVye3dpZHRoOjg2cHh9PC9zdHlsZT48c3R5bGUgbmFtZT0iZW1lcmdlbmN5Y3NzZXhwIj4KICAgICAgCiAgICAgIAogICAgPC9zdHlsZT48bGluayByZWw9InNlYXJjaCIgdHlwZT0iYXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9uK3htbCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vb3BlbnNlYXJjaD9sb2NhbGU9cHRfQlIiIHRpdGxlPSJZb3VUdWJlIj48bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvcy9ub3RpZmljYXRpb25zL21hbmlmZXN0L21hbmlmZXN0Lmpzb24iIGNyb3Nzb3JpZ2luPSJ1c2UtY3JlZGVudGlhbHMiPjwhLS0gZW5kIG9mIGNodW5rIC0tPiAgICAgICAgPHNjcmlwdCA+CiAgICAgICAgaWYgKHdpbmRvdy55dGNzaSkge3dpbmRvdy55dGNzaS50aWNrKCJiYyIsIG51bGwsICcnKTt9ICAgICAgICB2YXIgeXRpbWcgPSB7fTt5dGltZy5jb3VudCA9IDE7eXRpbWcucHJlbG9hZCA9IGZ1bmN0aW9uKHNyYykge3ZhciBpbWcgPSBuZXcgSW1hZ2UoKTt2YXIgY291bnQgPSArK3l0aW1nLmNvdW50O3l0aW1nW2NvdW50XSA9IGltZztpbWcub25sb2FkID0gaW1nLm9uZXJyb3IgPSBmdW5jdGlvbigpIHtkZWxldGUgeXRpbWdbY291bnRdO307aW1nLnNyYyA9IHNyYzt9OwogICAgICAgICAgeXRpbWcucHJlbG9hZCgiaHR0cHM6XC9cL3I1LS0tc24tb3h1bnhnOHBqdm4tMnY1ZS5nb29nbGV2aWRlby5jb21cL2dlbmVyYXRlXzIwNCIpOwogICAgICAgICAgeXRpbWcucHJlbG9hZCgiaHR0cHM6XC9cL3I1LS0tc24tb3h1bnhnOHBqdm4tMnY1ZS5nb29nbGV2aWRlby5jb21cL2dlbmVyYXRlXzIwND9jb25uMiIpOwogICAgICA8L3NjcmlwdD4KCiAgCiAgICAKICA8ZGl2IGlkPSJwbGF5ZXIiIGNsYXNzPSJza2VsZXRvbiI+CiAgICAgIDxkaXYgaWQ9InBsYXllci1hcGkiIGNsYXNzPSJwbGF5ZXItd2lkdGggcGxheWVyLWhlaWdodCBvZmYtc2NyZWVuLXRhcmdldCBwbGF5ZXItYXBpIj48L2Rpdj4KICAgICAgICAKICA8L2Rpdj4KCiAgPCEtLSBlbmQgb2YgY2h1bmsgLS0+CiAgICA8c2NyaXB0ID5pZiAod2luZG93Lnl0Y3NpKSB7d2luZG93Lnl0Y3NpLnRpY2soImFpIiwgbnVsbCwgJycpO308L3NjcmlwdD4KICA8eXRkLWFwcCBkaXNhYmxlLXVwZ3JhZGU9InRydWUiPgogICAgPHl0ZC1tYXN0aGVhZCBpZD0ibWFzdGhlYWQiIHNsb3Q9Im1hc3RoZWFkIiBjbGFzcz0ic2hlbGwgIGNodW5rZWQiZGlzYWJsZS11cGdyYWRlPSJ0cnVlIj48ZGl2IGlkPSJzZWFyY2gtY29udGFpbmVyIiBjbGFzcz0ieXRkLXNlYXJjaGJveC1zcHQiIHNsb3Q9InNlYXJjaC1jb250YWluZXIiPjwvZGl2PjxkaXYgaWQ9InNlYXJjaC1pbnB1dCIgY2xhc3M9Inl0ZC1zZWFyY2hib3gtc3B0IiBzbG90PSJzZWFyY2gtaW5wdXQiPjxpbnB1dCBpZD0ic2VhcmNoIiBhdXRvY2FwaXRhbGl6ZT0ibm9uZSIgYXV0b2NvbXBsZXRlPSJvZmYiYXV0b2NvcnJlY3Q9Im9mZiIgIGhpZGRlbiBuYW1lPSJzZWFyY2hfcXVlcnkiIHRhYmluZGV4PSIwInR5cGU9InRleHQiIHNwZWxsY2hlY2s9ImZhbHNlIj48L2Rpdj48c3ZnIGlkPSJtZW51LWljb24iIGNsYXNzPSJleHRlcm5hbC1pY29uIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0Ij48ZyBpZD0ibWVudSIgY2xhc3M9Inl0LWljb25zLWV4dCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyAxOGgxOHYtMkgzdjJ6bTAtNWgxOHYtMkgzdjJ6bTAtN3YyaDE4VjZIM3oiLz48L2c+PC9zdmc+PGRpdiBpZD0ibWFzdGhlYWQtbG9nbyIgc2xvdD0ibWFzdGhlYWQtbG9nbyI+ICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyI+CiAgICA8c3ZnIGlkPSJ5dC1sb2dvLXN2ZyIgY2xhc3M9ImV4dGVybmFsLWljb24iIHZpZXdCb3g9IjAgMCAyMDAgNjAiPgogICAgICA8ZyBpZD0ieXQtbG9nbyIgdmlld0JveD0iMCAwIDIwMCA2MCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+CiAgICAgICAgPGc+CiAgICAgICAgICA8cGF0aCBmaWxsPSIjRkYwMDAwIiBkPSJNNjMsMTQuODdjLTAuNzItMi43LTIuODUtNC44My01LjU2LTUuNTZDNTIuNTQsOCwzMi44OCw4LDMyLjg4LDhTMTMuMjMsOCw4LjMyLDkuMzEKICAgICAgICAgICAgYy0yLjcsMC43Mi00LjgzLDIuODUtNS41Niw1LjU2QzEuNDUsMTkuNzcsMS40NSwzMCwxLjQ1LDMwczAsMTAuMjMsMS4zMSwxNS4xM2MwLjcyLDIuNywyLjg1LDQuODMsNS41Niw1LjU2CiAgICAgICAgICAgIEMxMy4yMyw1MiwzMi44OCw1MiwzMi44OCw1MnMxOS42NiwwLDI0LjU2LTEuMzFjMi43LTAuNzIsNC44My0yLjg1LDUuNTYtNS41NkM2NC4zMSw0MC4yMyw2NC4zMSwzMCw2NC4zMSwzMAogICAgICAgICAgICBTNjQuMzEsMTkuNzcsNjMsMTQuODd6Ii8+CiAgICAgICAgICA8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBwb2ludHM9IjI2LjYsMzkuNDMgNDIuOTMsMzAgMjYuNiwyMC41NyIvPgogICAgICAgIDwvZz4KICAgICAgICA8Zz4KICAgICAgICAgIDxnIGlkPSJ5b3V0dWJlLXBhdGhzIj4KICAgICAgICAgICAgPHBhdGggZmlsbD0iIzI4MjgyOCIgZD0iTTkyLjY5LDQ4LjAzYy0xLjI0LTAuODQtMi4xMy0yLjE0LTIuNjUtMy45MWMtMC41Mi0xLjc3LTAuNzktNC4xMi0wLjc5LTcuMDZ2LTQKICAgICAgICAgICAgICBjMC0yLjk3LDAuMy01LjM1LDAuOS03LjE1YzAuNi0xLjgsMS41NC0zLjExLDIuODEtMy45M2MxLjI3LTAuODIsMi45NC0xLjI0LDUuMDEtMS4yNGMyLjA0LDAsMy42NywwLjQyLDQuOSwxLjI2CiAgICAgICAgICAgICAgYzEuMjMsMC44NCwyLjEzLDIuMTUsMi43LDMuOTNjMC41NywxLjc4LDAuODUsNC4xNiwwLjg1LDcuMTJ2NGMwLDIuOTQtMC4yOCw1LjMtMC44Myw3LjA4Yy0wLjU1LDEuNzgtMS40NSwzLjA5LTIuNywzLjkxCiAgICAgICAgICAgICAgYy0xLjI0LDAuODItMi45MywxLjI0LTUuMDYsMS4yNEM5NS42NSw0OS4yOSw5My45Myw0OC44Nyw5Mi42OSw0OC4wM3ogTTk5LjY2LDQzLjcxYzAuMzQtMC45LDAuNTItMi4zNywwLjUyLTQuNHYtOC41OQogICAgICAgICAgICAgIGMwLTEuOTgtMC4xNy0zLjQyLTAuNTItNC4zNGMtMC4zNC0wLjkxLTAuOTUtMS4zNy0xLjgyLTEuMzdjLTAuODQsMC0xLjQzLDAuNDYtMS43OCwxLjM3Yy0wLjM0LDAuOTEtMC41MiwyLjM2LTAuNTIsNC4zNHY4LjU5CiAgICAgICAgICAgICAgYzAsMi4wNCwwLjE2LDMuNTEsMC40OSw0LjRjMC4zMywwLjksMC45MywxLjM1LDEuOCwxLjM1Qzk4LjcxLDQ1LjA2LDk5LjMxLDQ0LjYxLDk5LjY2LDQzLjcxeiIvPgogICAgICAgICAgICA8cGF0aCBmaWxsPSIjMjgyODI4IiBkPSJNMTg4LjE2LDM3LjEzdjEuMzljMCwxLjc3LDAuMDUsMy4wOSwwLjE2LDMuOThjMC4xLDAuODgsMC4zMiwxLjUzLDAuNjUsMS45MwogICAgICAgICAgICAgIGMwLjMzLDAuNCwwLjg0LDAuNjEsMS41MywwLjYxYzAuOTMsMCwxLjU3LTAuMzYsMS45MS0xLjA4YzAuMzQtMC43MiwwLjUzLTEuOTIsMC41Ni0zLjZsNS4zNSwwLjMxCiAgICAgICAgICAgICAgYzAuMDMsMC4yNCwwLjA0LDAuNTcsMC4wNCwwLjk5YzAsMi41NS0wLjcsNC40NS0yLjA5LDUuNzFjLTEuMzksMS4yNi0zLjM2LDEuODktNS45MSwxLjg5Yy0zLjA2LDAtNS4yLTAuOTYtNi40My0yLjg4CiAgICAgICAgICAgICAgYy0xLjIzLTEuOTItMS44NC00Ljg4LTEuODQtOC45di00LjgxYzAtNC4xNCwwLjY0LTcuMTUsMS45MS05LjA2YzEuMjctMS45LDMuNDUtMi44NSw2LjU0LTIuODVjMi4xMywwLDMuNzYsMC4zOSw0LjksMS4xNwogICAgICAgICAgICAgIGMxLjE0LDAuNzgsMS45NCwxLjk5LDIuNDEsMy42NGMwLjQ2LDEuNjUsMC43LDMuOTMsMC43LDYuODN2NC43MkgxODguMTZ6IE0xODguOTUsMjUuNTNjLTAuMzEsMC4zOS0wLjUyLDEuMDMtMC42MywxLjkxCiAgICAgICAgICAgICAgYy0wLjExLDAuODgtMC4xNiwyLjIzLTAuMTYsNC4wMnYxLjk4aDQuNTR2LTEuOThjMC0xLjc3LTAuMDYtMy4xMS0wLjE4LTQuMDJjLTAuMTItMC45MS0wLjM0LTEuNTYtMC42NS0xLjkzCiAgICAgICAgICAgICAgYy0wLjMxLTAuMzctMC44LTAuNTYtMS40Ni0wLjU2QzE4OS43NSwyNC45NCwxODkuMjYsMjUuMTQsMTg4Ljk1LDI1LjUzeiIvPgogICAgICAgICAgICA8cGF0aCBmaWxsPSIjMjgyODI4IiBkPSJNNzcuNTksMzYuNjFsLTcuMDYtMjUuNDloNi4xNmwyLjQ3LDExLjU1YzAuNjMsMi44NSwxLjA5LDUuMjcsMS4zOSw3LjI4aDAuMTgKICAgICAgICAgICAgICBjMC4yMS0xLjQ0LDAuNjctMy44NSwxLjM5LTcuMjRsMi41Ni0xMS42aDYuMTZMODMuNywzNi42MXYxMi4yM2gtNi4xMVYzNi42MXoiLz4KICAgICAgICAgICAgPHBhdGggZmlsbD0iIzI4MjgyOCIgZD0iTTEyNi40NSwyMS4yOHYyNy41NWgtNC44NWwtMC41NC0zLjM3aC0wLjEzYy0xLjMyLDIuNTUtMy4zLDMuODItNS45MywzLjgyYy0xLjgzLDAtMy4xOC0wLjYtNC4wNS0xLjgKICAgICAgICAgICAgICBjLTAuODctMS4yLTEuMy0zLjA3LTEuMy01LjYyVjIxLjI4aDYuMnYyMC4yM2MwLDEuMjMsMC4xMywyLjExLDAuNCwyLjYzYzAuMjcsMC41MiwwLjcyLDAuNzksMS4zNSwwLjc5CiAgICAgICAgICAgICAgYzAuNTQsMCwxLjA2LTAuMTYsMS41NS0wLjQ5YzAuNDktMC4zMywwLjg2LTAuNzUsMS4xLTEuMjZWMjEuMjhIMTI2LjQ1eiIvPgogICAgICAgICAgICA8cGF0aCBmaWxsPSIjMjgyODI4IiBkPSJNMTU4LjI3LDIxLjI4djI3LjU1aC00Ljg1bC0wLjU0LTMuMzdoLTAuMTNjLTEuMzIsMi41NS0zLjMsMy44Mi01LjkzLDMuODJjLTEuODMsMC0zLjE4LTAuNi00LjA1LTEuOAogICAgICAgICAgICAgIGMtMC44Ny0xLjItMS4zLTMuMDctMS4zLTUuNjJWMjEuMjhoNi4ydjIwLjIzYzAsMS4yMywwLjEzLDIuMTEsMC40LDIuNjNjMC4yNywwLjUyLDAuNzIsMC43OSwxLjM1LDAuNzkKICAgICAgICAgICAgICBjMC41NCwwLDEuMDYtMC4xNiwxLjU1LTAuNDljMC40OS0wLjMzLDAuODYtMC43NSwxLjEtMS4yNlYyMS4yOEgxNTguMjd6Ii8+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiMyODI4MjgiIGQ9Ik0xNDMuMzEsMTYuMTFoLTYuMTZ2MzIuNzJoLTYuMDdWMTYuMTFoLTYuMTZ2LTQuOTloMTguMzhWMTYuMTF6Ii8+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiMyODI4MjgiIGQ9Ik0xNzguOCwyNS42OWMtMC4zOC0xLjc0LTAuOTgtMy0xLjgyLTMuNzhjLTAuODQtMC43OC0xLjk5LTEuMTctMy40Ni0xLjE3Yy0xLjE0LDAtMi4yLDAuMzItMy4xOSwwLjk3CiAgICAgICAgICAgICAgYy0wLjk5LDAuNjQtMS43NSwxLjQ5LTIuMjksMi41NGgtMC4wNWwwLTE0LjUyaC01Ljk4djM5LjExaDUuMTJsMC42My0yLjYxaDAuMTNjMC40OCwwLjkzLDEuMiwxLjY2LDIuMTYsMi4yCiAgICAgICAgICAgICAgYzAuOTYsMC41NCwyLjAyLDAuODEsMy4xOSwwLjgxYzIuMSwwLDMuNjQtMC45Nyw0LjYzLTIuOWMwLjk5LTEuOTMsMS40OC00Ljk1LDEuNDgtOS4wNnYtNC4zNgogICAgICAgICAgICAgIEMxNzkuMzYsMjkuODQsMTc5LjE3LDI3LjQzLDE3OC44LDI1LjY5eiBNMTczLjExLDM2LjkzYzAsMi4wMS0wLjA4LDMuNTgtMC4yNSw0LjcyYy0wLjE2LDEuMTQtMC40NCwxLjk1LTAuODMsMi40MwogICAgICAgICAgICAgIGMtMC4zOSwwLjQ4LTAuOTEsMC43Mi0xLjU3LDAuNzJjLTAuNTEsMC0wLjk4LTAuMTItMS40Mi0wLjM2Yy0wLjQzLTAuMjQtMC43OS0wLjYtMS4wNi0xLjA4VjI3LjcxCiAgICAgICAgICAgICAgYzAuMjEtMC43NSwwLjU3LTEuMzYsMS4wOC0xLjg0YzAuNTEtMC40OCwxLjA2LTAuNzIsMS42Ni0wLjcyYzAuNjMsMCwxLjEyLDAuMjUsMS40NiwwLjc0YzAuMzQsMC40OSwwLjU4LDEuMzMsMC43MiwyLjQ5CiAgICAgICAgICAgICAgYzAuMTMsMS4xNywwLjIsMi44MywwLjIsNC45OVYzNi45M3oiLz4KICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgIDwvZz4KICAgIDwvc3ZnPgogIDwvZGl2PgogIDxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgIDxzdmcgaWQ9Inl0LWxvZ28tcmVkLXN2ZyIgY2xhc3M9ImV4dGVybmFsLWljb24iIHZpZXdCb3g9IjAgMCA5OCAyNCIgc3R5bGU9IndpZHRoOjg2cHg7Ij4KICAgICAgPGcgaWQ9Inl0LWxvZ28tcmVkIiB2aWV3Qm94PSIwIDAgOTggMjQiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPgogICAgICAgIDxnPgogICAgICAgICAgPHBhdGggZmlsbD0iI0ZGMDAwMCIgZD0iTTI4LjQsNS4xMmMtMC4zNC0xLjI0LTEuMzEtMi4yLTIuNTUtMi41MkMyMy42MiwyLDE0LjY4LDIsMTQuNjgsMlM1Ljc1LDIsMy41MiwyLjYKICAgICAgICAgICAgQzIuMjksMi45MywxLjMzLDMuODksMSw1LjEyQzAuNTksNy4zOSwwLjM5LDkuNjksMC40LDEyYy0wLjAxLDIuMzEsMC4xOSw0LjYxLDAuNiw2Ljg4YzAuMzMsMS4yMywxLjI5LDIuMTksMi41MiwyLjUyCiAgICAgICAgICAgIEM1Ljc1LDIyLDE0LjY4LDIyLDE0LjY4LDIyczguOTMsMCwxMS4xNi0wLjZjMS4yNC0wLjMyLDIuMjItMS4yOCwyLjU2LTIuNTJjMC40MS0yLjI3LDAuNjEtNC41NywwLjYtNi44OAogICAgICAgICAgICBDMjkuMDEsOS42OSwyOC44MSw3LjM5LDI4LjQsNS4xMnoiLz4KICAgICAgICAgIDxwb2x5Z29uIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iMTEuODMsMTYuMjkgMTkuMjUsMTIgMTEuODMsNy43MSIvPgogICAgICAgIDwvZz4KICAgICAgICA8ZyBpZD0ieW91dHViZS1yZWQtcGF0aHMiPgogICAgICAgICAgPHBhdGggZmlsbD0iIzI4MjgyOCIgZD0iTTQxLjY3LDguMzVWOWMwLDMuNDUtMS41Myw1LjQ4LTQuODgsNS40OGgtMC41MXY2aC0yLjc0VjMuNDJoMy40OUM0MC4yMiwzLjQyLDQxLjY3LDQuNzcsNDEuNjcsOC4zNXoKICAgICAgICAgICAgTTM4Ljc5LDguNmMwLTIuNDktMC40NS0zLjA5LTItMy4wOWgtMC41MXY3aDAuNDdjMS40NywwLDItMS4wNiwyLTMuMzdMMzguNzksOC42eiIvPgogICAgICAgICAgPHBhdGggZmlsbD0iIzI4MjgyOCIgZD0iTTQ4LjE0LDcuODNMNDgsMTEuMDhjLTEuMTctMC4yNC0yLjEzLTAuMDgtMi42LDAuNjl2OC43OGgtMi42N1Y4aDIuMTdsMC4yNCwyLjcxaDAuMWMwLjI4LTIsMS4yLTMsMi4zOS0zCiAgICAgICAgICAgIEM0Ny44LDcuNzMsNDcuOTgsNy43Nyw0OC4xNCw3LjgzeiIvPgogICAgICAgICAgPHBhdGggZmlsbD0iIzI4MjgyOCIgZD0iTTUxLjI3LDE1LjI1djAuNjNjMCwyLjIxLDAuMTIsMywxLjA2LDNzMS4xLTAuNjksMS4xMi0yLjEybDIuNDMsMC4xNGMwLjE4LDIuNy0xLjIzLDMuOS0zLjYxLDMuOQogICAgICAgICAgICBjLTIuOSwwLTMuNzYtMS45LTMuNzYtNS4zNXYtMi4yM2MwLTMuNjQsMS01LjQxLDMuODQtNS40MXMzLjY0LDEuNTEsMy42NCw1LjI5djIuMTVINTEuMjd6IE01MS4yNywxMi42N3YwLjloMi4wNnYtMC44OQogICAgICAgICAgICBjMC0yLjMtMC4xNi0zLTEtM3MtMSwwLjY3LTEsM0w1MS4yNywxMi42N3oiLz4KICAgICAgICAgIDxwYXRoIGZpbGw9IiMyODI4MjgiIGQ9Ik03MC4wMiwxMS4xdjkuNDZINjcuMnYtOS4yNWMwLTEtMC4yNy0xLjUzLTAuODgtMS41M2MtMC41NCwwLjAyLTEuMDIsMC4zNC0xLjI1LDAuODIKICAgICAgICAgICAgYzAuMDEsMC4xNywwLjAxLDAuMzQsMCwwLjUxdjkuNDZoLTIuNzl2LTkuMjZjMC0xLTAuMjctMS41My0wLjg4LTEuNTNjLTAuNTMsMC4wMi0xLDAuMzMtMS4yMywwLjh2MTBINTcuNFY4aDIuMjNsMC4yNSwxLjU5bDAsMAogICAgICAgICAgICBjMC41MS0xLjEyLDEuNjMtMS44NSwyLjg2LTEuODZjMS4wNS0wLjA3LDEuOTgsMC42NywyLjE2LDEuN2MwLjU1LTEuMDEsMS42MS0xLjY1LDIuNzYtMS42NkM2OS40LDcuNzgsNzAuMDIsOSw3MC4wMiwxMS4xeiIvPgogICAgICAgICAgPHBhdGggZmlsbD0iIzI4MjgyOCIgZD0iTTcxLjQsNC44M2MwLTEuMzUsMC40OS0xLjc0LDEuNTMtMS43NHMxLjUzLDAuNDUsMS41MywxLjc0cy0wLjQ3LDEuNzQtMS41MywxLjc0UzcxLjQsNi4yMiw3MS40LDQuODN6CiAgICAgICAgICAgIE03MS41OSw4aDIuN3YxMi41NmgtMi43Vjh6Ii8+CiAgICAgICAgICA8cGF0aCBmaWxsPSIjMjgyODI4IiBkPSJNODMuNSw4djEyLjU2aC0yLjJMODEuMDUsMTloLTAuMDZjLTAuNDYsMS4wOC0xLjUzLDEuNzctMi43LDEuNzRjLTEuNjcsMC0yLjQzLTEuMDYtMi40My0zLjM3VjhoMi44MgogICAgICAgICAgICB2OS4xOWMwLDEuMSwwLjIzLDEuNTUsMC44LDEuNTVjMC41Mi0wLjAyLDAuOTgtMC4zMywxLjItMC44VjhIODMuNXoiLz4KICAgICAgICAgIDxwYXRoIGZpbGw9IiMyODI4MjgiIGQ9Ik05Ny44LDExLjF2OS40NmgtMi44MnYtOS4yNWMwLTEtMC4yNy0xLjUzLTAuODgtMS41M2MtMC41NCwwLjAyLTEuMDIsMC4zNC0xLjI1LDAuODIKICAgICAgICAgICAgYzAuMDEsMC4xNywwLjAxLDAuMzQsMCwwLjUxdjkuNDZoLTIuNzl2LTkuMjZjMC0xLTAuMjctMS41My0wLjg4LTEuNTNjLTAuNTMsMC4wMi0xLDAuMzMtMS4yMywwLjh2MTBoLTIuODFWOGgyLjI2bDAuMjQsMS41OWwwLDAKICAgICAgICAgICAgYzAuNTEtMS4xMiwxLjYzLTEuODUsMi44Ni0xLjg2YzEuMDQtMC4wNywxLjk3LDAuNjQsMi4xNywxLjY2YzAuNTUtMC45OSwxLjYtMS42MSwyLjczLTEuNjJDOTcuMTUsNy43OCw5Ny44LDksOTcuOCwxMS4xeiIvPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9zdmc+CiAgPC9kaXY+CjxzcGFuIGlkPSJjb3VudHJ5LWNvZGUiPjwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJtYXN0aGVhZC1za2VsZXRvbi1pY29ucyIgc2xvdD0ibWFzdGhlYWQtc2tlbGV0b24iPjxkaXYgY2xhc3M9Im1hc3RoZWFkLXNrZWxldG9uLWljb24iPjwvZGl2PjxkaXYgY2xhc3M9Im1hc3RoZWFkLXNrZWxldG9uLWljb24iPjwvZGl2PjxkaXYgY2xhc3M9Im1hc3RoZWFkLXNrZWxldG9uLWljb24iPjwvZGl2PjxkaXYgY2xhc3M9Im1hc3RoZWFkLXNrZWxldG9uLWljb24iPjwvZGl2PjwvZGl2PjwveXRkLW1hc3RoZWFkPgogICAgICA8YSBzbG90PSJndWlkZS1saW5rcy1wcmltYXJ5IiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9hYm91dC8iIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+U29icmU8L2E+CiAgPGEgc2xvdD0iZ3VpZGUtbGlua3MtcHJpbWFyeSIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vYWJvdXQvcHJlc3MvIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPkltcHJlbnNhPC9hPgogIDxhIHNsb3Q9Imd1aWRlLWxpbmtzLXByaW1hcnkiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2Fib3V0L2NvcHlyaWdodC8iIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+RGlyZWl0b3MgYXV0b3JhaXM8L2E+CiAgPGEgc2xvdD0iZ3VpZGUtbGlua3MtcHJpbWFyeSIgaHJlZj0iL3QvY29udGFjdF91cyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij5FbnRyZSBlbSBjb250YXRvPC9hPgogIDxhIHNsb3Q9Imd1aWRlLWxpbmtzLXByaW1hcnkiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NyZWF0b3JzLyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij5DcmlhZG9yZXMgZGUgY29udGXDumRvPC9hPgogIDxhIHNsb3Q9Imd1aWRlLWxpbmtzLXByaW1hcnkiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2Fkcy8iIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+UHVibGljaWRhZGU8L2E+CiAgPGEgc2xvdD0iZ3VpZGUtbGlua3MtcHJpbWFyeSIgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20veW91dHViZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij5EZXNlbnZvbHZlZG9yZXM8L2E+CgogICAgICA8YSBzbG90PSJndWlkZS1saW5rcy1zZWNvbmRhcnkiIGhyZWY9Ii90L3Rlcm1zIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPlRlcm1vczwvYT4KICA8YSBzbG90PSJndWlkZS1saW5rcy1zZWNvbmRhcnkiIGhyZWY9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20uYnIvaW50bC9wdC1CUi9wb2xpY2llcy9wcml2YWN5LyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij5Qcml2YWNpZGFkZTwvYT4KICA8YSBzbG90PSJndWlkZS1saW5rcy1zZWNvbmRhcnkiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2Fib3V0L3BvbGljaWVzLyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij5Qb2zDrXRpY2EgZSBTZWd1cmFuw6dhPC9hPgogICAgPGEgc2xvdD0iZ3VpZGUtbGlua3Mtc2Vjb25kYXJ5IiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9ob3d5b3V0dWJld29ya3M/dXRtX2NhbXBhaWduPXl0Z2VuJmFtcDt1dG1fc291cmNlPXl0aHAmYW1wO3V0bV9tZWRpdW09TGVmdE5hdiZhbXA7dXRtX2NvbnRlbnQ9dHh0JmFtcDt1PWh0dHBzJTNBJTJGJTJGd3d3LnlvdXR1YmUuY29tJTJGaG93eW91dHViZXdvcmtzJTNGdXRtX3NvdXJjZSUzRHl0aHAlMjZ1dG1fbWVkaXVtJTNETGVmdE5hdiUyNnV0bV9jYW1wYWlnbiUzRHl0Z2VuIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPkNvbW8gZnVuY2lvbmEgbyBZb3VUdWJlPC9hPgogIDxhIHNsb3Q9Imd1aWRlLWxpbmtzLXNlY29uZGFyeSIgaHJlZj0iL25ldyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij5UZXN0YXIgb3Mgbm92b3MgcmVjdXJzb3M8L2E+CgogICAgICA8ZGl2IGlkPSJ2YXQtbm90aWNlIiBzbG90PSJ2YXQtbm90aWNlIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogIDwvZGl2PgoKICAgICAgPGRpdiBpZD0iY29weXJpZ2h0IiBzbG90PSJjb3B5cmlnaHQiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CiAgICA8ZGl2IGRpcj0ibHRyIiBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiZjb3B5OyAyMDIwIEdvb2dsZSBMTEM8L2Rpdj4KICA8L2Rpdj4KCiAgPC95dGQtYXBwPgoKICA8c2NyaXB0ID5pZiAod2luZG93Lnl0Y3NpKSB7d2luZG93Lnl0Y3NpLnRpY2soIm5jX3BqIiwgbnVsbCwgJycpO308L3NjcmlwdD4KICAgIAo8c2NyaXB0ICBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvZGVza3RvcC9hOTAwMzZlYS9qc2Jpbi9zcGYudmZsc2V0L3NwZi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBuYW1lPSJzcGYvc3BmIiA+PC9zY3JpcHQ+ICAKPHNjcmlwdCA+aWYgKHdpbmRvd1snX3NwZl9zdGF0ZSddKSB7d2luZG93Wydfc3BmX3N0YXRlJ10uY29uZmlnID0geyJhc3N1bWUtYWxsLWpzb24tcmVxdWVzdHMtY2h1bmtlZCI6dHJ1ZX07fTwvc2NyaXB0PiAgCjxzY3JpcHQgIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9kZXNrdG9wL2E5MDAzNmVhL2pzYmluL25ldHdvcmsudmZsc2V0L25ldHdvcmsuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgbmFtZT0ibmV0d29yay9uZXR3b3JrIiA+PC9zY3JpcHQ+ICAKICAKPHNjcmlwdCAgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL2Rlc2t0b3AvYTkwMDM2ZWEvanNiaW4vd2ViLWFuaW1hdGlvbnMtbmV4dC1saXRlLm1pbi52ZmxzZXQvd2ViLWFuaW1hdGlvbnMtbmV4dC1saXRlLm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBuYW1lPSJ3ZWItYW5pbWF0aW9ucy1uZXh0LWxpdGUubWluL3dlYi1hbmltYXRpb25zLW5leHQtbGl0ZS5taW4iID48L3NjcmlwdD4gIAogIAo8c2NyaXB0ICBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvZGVza3RvcC9hOTAwMzZlYS9qc2Jpbi93ZWJjb21wb25lbnRzLWxpdGUtbm9QYXRjaC52ZmxzZXQvd2ViY29tcG9uZW50cy1saXRlLW5vUGF0Y2guanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgbmFtZT0id2ViY29tcG9uZW50cy1saXRlLW5vUGF0Y2gvd2ViY29tcG9uZW50cy1saXRlLW5vUGF0Y2giID48L3NjcmlwdD4gIAogIAo8c2NyaXB0ICBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvZGVza3RvcC9hOTAwMzZlYS9qc2Jpbi9mZXRjaC1wb2x5ZmlsbC52ZmxzZXQvZmV0Y2gtcG9seWZpbGwuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgbmFtZT0iZmV0Y2gtcG9seWZpbGwvZmV0Y2gtcG9seWZpbGwiID48L3NjcmlwdD4gIAogIAo8c2NyaXB0ICBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvZGVza3RvcC9hOTAwMzZlYS9qc2Jpbi93d3ctaTE4bi1jb25zdGFudHMtcHRfQlIudmZsc2V0L3d3dy1pMThuLWNvbnN0YW50cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBuYW1lPSJ3d3ctaTE4bi1jb25zdGFudHMvd3d3LWkxOG4tY29uc3RhbnRzIiA+PC9zY3JpcHQ+ICAKICAgICAgPHNjcmlwdCA+aWYgKHdpbmRvdy55dGNzaSkge3dpbmRvdy55dGNzaS50aWNrKCJyc2JlX2RwaiIsIG51bGwsICcnKTt9PC9zY3JpcHQ+CgoKPHNjcmlwdCA+KGZ1bmN0aW9uKCkge3ZhciBsb2FkSlMgPSBmdW5jdGlvbihlKSB7aWYgKGUpIHt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignSFRNTEltcG9ydHNMb2FkZWQnLCBsb2FkSlMpO312YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7c2NyaXB0LnNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9kZXNrdG9wL2E5MDAzNmVhL2pzYmluL2Rlc2t0b3BfcG9seW1lcl9pbmxpbmVkX2h0bWxfcG9seW1lcl9mbGFnc19sZWdhY3lfYnJvd3NlcnMudmZsc2V0L2Rlc2t0b3BfcG9seW1lcl9pbmxpbmVkX2h0bWxfcG9seW1lcl9mbGFnc19sZWdhY3lfYnJvd3NlcnMuanMiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtzY3JpcHQub25sb2FkID0gZnVuY3Rpb24oKSB7dmFyIGxvYWRFdmVudCA9IG5ldyBFdmVudCgic2NyaXB0LWxvYWQtZHBqIik7d2luZG93LmRpc3BhdGNoRXZlbnQobG9hZEV2ZW50KTt9O307aWYgKHdpbmRvdy5IVE1MSW1wb3J0cyAmJiB3aW5kb3cuSFRNTEltcG9ydHMucmVhZHkpIHtsb2FkSlMoKTt9IGVsc2Uge3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdIVE1MSW1wb3J0c0xvYWRlZCcsIGxvYWRKUyk7fX0pKCk7PC9zY3JpcHQ+ICAgICAgPHNjcmlwdCA+aWYgKHdpbmRvdy55dGNzaSkge3dpbmRvdy55dGNzaS50aWNrKCJyc2FlX2RwaiIsIG51bGwsICcnKTt9PC9zY3JpcHQ+CgogIAo8c2NyaXB0ID52YXIgc2NoZWR1bGVBcHBMb2FkPWZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcmlwdC1sb2FkLWRwaiIsc2NoZWR1bGVBcHBMb2FkKTtpZih3aW5kb3cueXRzaWduYWxzJiZ3aW5kb3cueXRzaWduYWxzLmdldEluc3RhbmNlKXt2YXIgYT13aW5kb3cueXRzaWduYWxzLmdldEluc3RhbmNlKCksYj1hLm9uQW55KFsiZW9pciIsImVvciJdKTthLnBhcmtPclNjaGVkdWxlSm9iKGFwcExvYWQsMyxiKX1lbHNlIGlmKGFwcExvYWQoKSxhPXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LGE9LTE9PT1hLmluZGV4T2YoIm1zbmJvdCIpJiYtMT09PWEuaW5kZXhPZigiQmluZ1ByZXZpZXciKSYmLTE9PT1hLmluZGV4T2YoImJpbmdib3QiKSl3aW5kb3cub25lcnJvcigieXRzaWduYWxzIG1pc3NpbmciLCJhc3luY19hdHRhY2hfYXBwX2xvYWRlci5qcyIsMCwwLEVycm9yKCJ5dHNpZ25hbHMgbWlzc2luZyIpKX0sYXBwTG9hZD1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy55dGNzaTsKYSYmYS50aWNrKCJhcGFfYiIpO3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInl0ZC1hcHAiKSxjPWImJmIucXVlcnlTZWxlY3RvcigieXRkLW1hc3RoZWFkIik7YyYmYy5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGUtdXBncmFkZSIpO2ImJmIucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlLXVwZ3JhZGUiKTthJiZhLnRpY2soImFwYV9hIil9LHl0U2lnbmFscz13aW5kb3cueXRzaWduYWxzO3l0U2lnbmFscz9zY2hlZHVsZUFwcExvYWQoKTp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2NyaXB0LWxvYWQtZHBqIixzY2hlZHVsZUFwcExvYWQpOwo8L3NjcmlwdD4gIAoKICA8c2NyaXB0ID4KICAgIGlmICh3aW5kb3cueXRjc2kpIHt3aW5kb3cueXRjc2kudGljaygiYWMiLCBudWxsLCAnJyk7fQogICAgdmFyIG9uUG9seW1lclJlYWR5ID0gZnVuY3Rpb24oZSkgewogICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2NyaXB0LWxvYWQtZHBqJywgb25Qb2x5bWVyUmVhZHkpOwogICAgICBpZiAod2luZG93Lnl0Y3NpKSB7d2luZG93Lnl0Y3NpLnRpY2soImFwciIsIG51bGwsICcnKTt9CiAgICB9CgogICAgaWYgKHdpbmRvdy5Qb2x5bWVyICYmIFBvbHltZXIuUmVuZGVyU3RhdHVzKSB7CiAgICAgIG9uUG9seW1lclJlYWR5KCk7CiAgICB9IGVsc2UgewogICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2NyaXB0LWxvYWQtZHBqJywgb25Qb2x5bWVyUmVhZHkpOwogICAgfQoKICA8L3NjcmlwdD4KICA8IS0tIGVuZCBvZiBjaHVuayAtLT4KICAgIDxkaXYgaWQ9IndhdGNoLXBhZ2Utc2tlbGV0b24iIGNsYXNzPSJ3YXRjaC1za2VsZXRvbiAiPgogICAgPGRpdiBpZD0iY29udGFpbmVyIj4KICAgICAgPGRpdiBpZD0icmVsYXRlZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iYXV0b3BsYXkgc2tlbGV0b24tbGlnaHQtYm9yZGVyLWJvdHRvbSI+CiAgICAgICAgICA8ZGl2IGlkPSJ1cG5leHQiIGNsYXNzPSJza2VsZXRvbi1iZy1jb2xvciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXNrZWxldG9uIj4KICAgIDxkaXYgY2xhc3M9InZpZGVvLWRldGFpbHMiPgogICAgICA8ZGl2IGNsYXNzPSJ0aHVtYm5haWwgc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWxzIGZsZXgtMSI+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tdGl0bGUgdGV4dC1zaGVsbCBza2VsZXRvbi1iZy1jb2xvciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tbWV0YSB0ZXh0LXNoZWxsIHNrZWxldG9uLWJnLWNvbG9yIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXNrZWxldG9uIj4KICAgIDxkaXYgY2xhc3M9InZpZGVvLWRldGFpbHMiPgogICAgICA8ZGl2IGNsYXNzPSJ0aHVtYm5haWwgc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWxzIGZsZXgtMSI+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tdGl0bGUgdGV4dC1zaGVsbCBza2VsZXRvbi1iZy1jb2xvciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tbWV0YSB0ZXh0LXNoZWxsIHNrZWxldG9uLWJnLWNvbG9yIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXNrZWxldG9uIj4KICAgIDxkaXYgY2xhc3M9InZpZGVvLWRldGFpbHMiPgogICAgICA8ZGl2IGNsYXNzPSJ0aHVtYm5haWwgc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWxzIGZsZXgtMSI+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tdGl0bGUgdGV4dC1zaGVsbCBza2VsZXRvbi1iZy1jb2xvciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tbWV0YSB0ZXh0LXNoZWxsIHNrZWxldG9uLWJnLWNvbG9yIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXNrZWxldG9uIj4KICAgIDxkaXYgY2xhc3M9InZpZGVvLWRldGFpbHMiPgogICAgICA8ZGl2IGNsYXNzPSJ0aHVtYm5haWwgc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWxzIGZsZXgtMSI+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tdGl0bGUgdGV4dC1zaGVsbCBza2VsZXRvbi1iZy1jb2xvciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tbWV0YSB0ZXh0LXNoZWxsIHNrZWxldG9uLWJnLWNvbG9yIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXNrZWxldG9uIj4KICAgIDxkaXYgY2xhc3M9InZpZGVvLWRldGFpbHMiPgogICAgICA8ZGl2IGNsYXNzPSJ0aHVtYm5haWwgc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWxzIGZsZXgtMSI+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tdGl0bGUgdGV4dC1zaGVsbCBza2VsZXRvbi1iZy1jb2xvciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tbWV0YSB0ZXh0LXNoZWxsIHNrZWxldG9uLWJnLWNvbG9yIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXNrZWxldG9uIj4KICAgIDxkaXYgY2xhc3M9InZpZGVvLWRldGFpbHMiPgogICAgICA8ZGl2IGNsYXNzPSJ0aHVtYm5haWwgc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWxzIGZsZXgtMSI+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tdGl0bGUgdGV4dC1zaGVsbCBza2VsZXRvbi1iZy1jb2xvciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tbWV0YSB0ZXh0LXNoZWxsIHNrZWxldG9uLWJnLWNvbG9yIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXNrZWxldG9uIj4KICAgIDxkaXYgY2xhc3M9InZpZGVvLWRldGFpbHMiPgogICAgICA8ZGl2IGNsYXNzPSJ0aHVtYm5haWwgc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWxzIGZsZXgtMSI+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tdGl0bGUgdGV4dC1zaGVsbCBza2VsZXRvbi1iZy1jb2xvciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tbWV0YSB0ZXh0LXNoZWxsIHNrZWxldG9uLWJnLWNvbG9yIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXNrZWxldG9uIj4KICAgIDxkaXYgY2xhc3M9InZpZGVvLWRldGFpbHMiPgogICAgICA8ZGl2IGNsYXNzPSJ0aHVtYm5haWwgc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWxzIGZsZXgtMSI+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tdGl0bGUgdGV4dC1zaGVsbCBza2VsZXRvbi1iZy1jb2xvciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tbWV0YSB0ZXh0LXNoZWxsIHNrZWxldG9uLWJnLWNvbG9yIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXNrZWxldG9uIj4KICAgIDxkaXYgY2xhc3M9InZpZGVvLWRldGFpbHMiPgogICAgICA8ZGl2IGNsYXNzPSJ0aHVtYm5haWwgc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWxzIGZsZXgtMSI+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tdGl0bGUgdGV4dC1zaGVsbCBza2VsZXRvbi1iZy1jb2xvciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tbWV0YSB0ZXh0LXNoZWxsIHNrZWxldG9uLWJnLWNvbG9yIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXNrZWxldG9uIj4KICAgIDxkaXYgY2xhc3M9InZpZGVvLWRldGFpbHMiPgogICAgICA8ZGl2IGNsYXNzPSJ0aHVtYm5haWwgc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkZXRhaWxzIGZsZXgtMSI+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tdGl0bGUgdGV4dC1zaGVsbCBza2VsZXRvbi1iZy1jb2xvciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tbWV0YSB0ZXh0LXNoZWxsIHNrZWxldG9uLWJnLWNvbG9yIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGlkPSJpbmZvLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBpZD0icHJpbWFyeS1pbmZvIiBjbGFzcz0ic2tlbGV0b24tbGlnaHQtYm9yZGVyLWJvdHRvbSI+CiAgICAgICAgICA8ZGl2IGlkPSJ0aXRsZSIgY2xhc3M9InRleHQtc2hlbGwgc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICAgICAgPGRpdiBpZD0iaW5mbyI+CiAgICAgICAgICAgIDxkaXYgaWQ9ImNvdW50IiBjbGFzcz0idGV4dC1zaGVsbCBza2VsZXRvbi1iZy1jb2xvciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtMSI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgaWQ9Im1lbnUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1idXR0b24gc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1idXR0b24gc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1idXR0b24gc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1idXR0b24gc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1idXR0b24gc2tlbGV0b24tYmctY29sb3IiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgaWQ9InNlY29uZGFyeS1pbmZvIiBjbGFzcz0ic2tlbGV0b24tbGlnaHQtYm9yZGVyLWJvdHRvbSI+CiAgICAgICAgICA8ZGl2IGlkPSJ0b3Atcm93Ij4KICAgICAgICAgICAgPGRpdiBpZD0idmlkZW8tb3duZXIiIGNsYXNzPSJmbGV4LTEiPgogICAgICAgICAgICAgIDxkaXYgaWQ9ImNoYW5uZWwtaWNvbiIgY2xhc3M9InNrZWxldG9uLWJnLWNvbG9yIj48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGlkPSJ1cGxvYWQtaW5mbyIgY2xhc3M9ImZsZXgtMSI+CiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJvd25lci1uYW1lIgogICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGV4dC1zaGVsbCBza2VsZXRvbi1iZy1jb2xvciI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InB1Ymxpc2hlZC1kYXRlIgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXh0LXNoZWxsIHNrZWxldG9uLWJnLWNvbG9yIj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBpZD0ic3Vic2NyaWJlLWJ1dHRvbiIgY2xhc3M9InNrZWxldG9uLWJnLWNvbG9yIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgoKICAgIDxzY3JpcHQgPmlmICh3aW5kb3cueXRjc2kpIHt3aW5kb3cueXRjc2kudGljaygiZ2NjIiwgbnVsbCwgJycpO308L3NjcmlwdD4gIDxzY3JpcHQgPmlmICh3aW5kb3cueXRjc2kpIHt3aW5kb3cueXRjc2kudGljaygicGRjIiwgbnVsbCwgJycpO308L3NjcmlwdD4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVNVa1h2V24xbTdRIj4KCiAgICA8bGluayByZWw9ImFsdGVybmF0ZSIgbWVkaWE9ImhhbmRoZWxkIiBocmVmPSJodHRwczovL20ueW91dHViZS5jb20vd2F0Y2g/dj1TVWtYdlduMW03USI+CiAgICA8bGluayByZWw9ImFsdGVybmF0ZSIgbWVkaWE9Im9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkiIGhyZWY9Imh0dHBzOi8vbS55b3V0dWJlLmNvbS93YXRjaD92PVNVa1h2V24xbTdRIj4KICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0icmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KSI+CgogICAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iQXByb3ZlaXRlIHbDrWRlb3MgZSBtw7pzaWNhIHF1ZSB2b2PDqiBhbWEsIGVudmllIGNvbnRlw7pkbyBvcmlnaW5hbCBlIGNvbXBhcnRpbGhlLW8gY29tIGFtaWdvcywgcGFyZW50ZXMgZSBvIG11bmRvIG5vIFlvdVR1YmUuIj4KICAgIDxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJ2w61kZW8sIGNvbXBhcnRpbGhhbWVudG8sIGNlbHVsYXIgY29tIGPDom1lcmEsIHZpZGVvZm9uZSwgZ3JhdHVpdG8sIHVwbG9hZCI+CiAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL1NlcnZpY2VMb2dpbj9jb250aW51ZT1odHRwcyUzQSUyRiUyRnd3dy55b3V0dWJlLmNvbSUyRnNpZ25pbiUzRmFjdGlvbl9oYW5kbGVfc2lnbmluJTNEdHJ1ZSUyNmFwcCUzRGRlc2t0b3AlMjZmZWF0dXJlJTNEcGFzc2l2ZSUyNmhsJTNEcHQlMjZuZXh0JTNEJTI1MkZzaWduaW5fcGFzc2l2ZSZhbXA7aGw9cHQtQlImYW1wO3Bhc3NpdmU9dHJ1ZSZhbXA7c2VydmljZT15b3V0dWJlJmFtcDt1aWxlbD0zIiBzdHlsZT0iZGlzcGxheTogbm9uZSIgPjwvaWZyYW1lPgogIDwvaGVhZD4KICA8Ym9keSBkaXI9Imx0ciIgbm8teS1vdmVyZmxvdz4KICA8c2NyaXB0ID4KICAgIGlmICh3aW5kb3cueXRjc2kpIHt3aW5kb3cueXRjc2kudGljaygiYnMiLCBudWxsLCAnJyk7fSAgICB5dGNmZy5zZXQoJ2luaXRpYWxCb2R5Q2xpZW50V2lkdGgnLCBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoKTsKCiAgICB3aW5kb3cueXRjZmcuc2V0KCdTRVJWSUNFX1dPUktFUl9LSUxMU1dJVENIJywgZmFsc2UpOwogIDwvc2NyaXB0PgogIDxzY3JpcHQgPgogICAgd2luZG93WyJ5dEluaXRpYWxEYXRhIl0gPSB7InJlc3BvbnNlQ29udGV4dCI6eyJ3ZWJSZXNwb25zZUNvbnRleHRFeHRlbnNpb25EYXRhIjp7Inl0Q29uZmlnRGF0YSI6eyJjc24iOiJfMmVZWDduZkE0R2l3UVRKd0thb0NRIiwidmlzaXRvckRhdGEiOiJDZ3RpYkhkNlpsbG5RMWh3TkNqX3otSDhCUSUzRCUzRCIsInJvb3RWaXN1YWxFbGVtZW50VHlwZSI6MzgzMn19fSwid2ViV2F0Y2hOZXh0UmVzcG9uc2VFeHRlbnNpb25EYXRhIjp7InJlbGF0ZWRWaWRlb0FyZ3MiOiIifX07CiAgICB3aW5kb3dbInl0SW5pdGlhbFBsYXllclJlc3BvbnNlIl0gPSB7InJlc3BvbnNlQ29udGV4dCI6eyJzZXJ2aWNlVHJhY2tpbmdQYXJhbXMiOlt7InNlcnZpY2UiOiJHRkVFREJBQ0siLCJwYXJhbXMiOlt7ImtleSI6ImlzX3ZpZXdlZF9saXZlIiwidmFsdWUiOiJGYWxzZSJ9LHsia2V5IjoibG9nZ2VkX2luIiwidmFsdWUiOiIwIn0seyJrZXkiOiJlIiwidmFsdWUiOiIyMzk0MjQzNSwyMzg4NTU3MiwyNDU5MDI5MCwyMzk0NDc3OSwyMzk2MjkyMCwyMzkyODUwOCwyMzkyMDc3MCwyMzk2Mjk2MiwyMzg4MDgyOSwyMzkyNzc2NywyMzkzMDIyMCwyMzkxMTA1NSwyMzk1MTYyMSwyMzg4NDM4NiwyMzg4MjUwMiwyMzkxODU5NywyMzk1MTEzOCwyMzg1ODA1NywyMzk1NTM3MywyMzgzNDYxMSwyMzg1Nzk0OCwyMzk1MDU5NywxNzE0MjQ0LDIzOTM0OTcwLDIzODA0MjgxLDIzOTQ4ODQxLDIzOTYzNjYwLDIzOTQ3Njk4LDIzOTQ2NDIwLDIzOTIxNTU0LDIzOTYzNjE2LDIzOTQyMzM4LDIzODgwODM1LDIzOTQyNjMzLDIzOTE0NzQ5LDIzOTU2NzU0LDIzODgwMDQzLDIzODkwOTU5LDIzNzQ0MTc2LDIzODM5NTk3LDIzOTUwMjczIn1dfSx7InNlcnZpY2UiOiJDU0kiLCJwYXJhbXMiOlt7ImtleSI6ImMiLCJ2YWx1ZSI6IldFQiJ9LHsia2V5IjoiY3ZlciIsInZhbHVlIjoiMi4yMDIwMTAyMy4wMi4wMCJ9LHsia2V5IjoieXRfbGkiLCJ2YWx1ZSI6IjAifSx7ImtleSI6IkdldFBsYXllcl9yaWQiLCJ2YWx1ZSI6IjB4NDhlMzZjMjQ4MjU2MjkzMSJ9XX0seyJzZXJ2aWNlIjoiR1VJREVEX0hFTFAiLCJwYXJhbXMiOlt7ImtleSI6ImxvZ2dlZF9pbiIsInZhbHVlIjoiMCJ9XX0seyJzZXJ2aWNlIjoiRUNBVENIRVIiLCJwYXJhbXMiOlt7ImtleSI6ImNsaWVudC52ZXJzaW9uIiwidmFsdWUiOiIyLjIwMjAxMDIzIn0seyJrZXkiOiJjbGllbnQubmFtZSIsInZhbHVlIjoiV0VCIn1dfV0sIndlYlJlc3BvbnNlQ29udGV4dEV4dGVuc2lvbkRhdGEiOnsieXRDb25maWdEYXRhIjp7ImNzbiI6Il8yZVlYN25mQTRHaXdRVEp3S2FvQ1EiLCJ2aXNpdG9yRGF0YSI6IkNndGliSGQ2WmxsblExaHdOQ2pfei1IOEJRJTNEJTNEIiwicm9vdFZpc3VhbEVsZW1lbnRUeXBlIjozODMyfSwiaGFzRGVjb3JhdGVkIjp0cnVlfX0sInBsYXlhYmlsaXR5U3RhdHVzIjp7InN0YXR1cyI6IkVSUk9SIiwicmVhc29uIjoiVsOtZGVvIGluZGlzcG9uw612ZWwiLCJlcnJvclNjcmVlbiI6eyJwbGF5ZXJFcnJvck1lc3NhZ2VSZW5kZXJlciI6eyJyZWFzb24iOnsic2ltcGxlVGV4dCI6IlbDrWRlbyBpbmRpc3BvbsOtdmVsIn0sInRodW1ibmFpbCI6eyJ0aHVtYm5haWxzIjpbeyJ1cmwiOiIvL3MueXRpbWcuY29tL3l0cy9pbWcvbWVoNy12ZmxHZXZlajcucG5nIiwid2lkdGgiOjE0MCwiaGVpZ2h0IjoxMDB9XX0sImljb24iOnsiaWNvblR5cGUiOiJFUlJPUl9PVVRMSU5FIn19fSwiY29udGV4dFBhcmFtcyI6IlEwRkJVMEZuWjBFPSJ9LCJ0cmFja2luZ1BhcmFtcyI6IkNBQVF1MmtpRXdqQXhQVEd0TlhzQWhWSWNaQUtIVW0xQ3c4PSJ9OwogICAgaWYgKHdpbmRvdy55dGNzaSkge3dpbmRvdy55dGNzaS50aWNrKCJwZHIiLCBudWxsLCAnJyk7fQogIDwvc2NyaXB0PgogICAgICA8c2NyaXB0ID4oZnVuY3Rpb24oKSB7dmFyIGNvbmZpZ3MgPSB7IldFQl9QTEFZRVJfQ09OVEVYVF9DT05GSUdfSURfS0VWTEFSX1BMQVlMSVNUX09WRVJWSUVXIjp7InJvb3RFbGVtZW50SWQiOiJjNC1wbGF5ZXIiLCJqc1VybCI6Ii9zL3BsYXllci85YjY1ZTk4MC9wbGF5ZXJfaWFzLnZmbHNldC9wdF9CUi9iYXNlLmpzIiwiY3NzVXJsIjoiL3MvcGxheWVyLzliNjVlOTgwL3d3dy1wbGF5ZXIuY3NzIiwiY29udGV4dElkIjoiV0VCX1BMQVlFUl9DT05URVhUX0NPTkZJR19JRF9LRVZMQVJfUExBWUxJU1RfT1ZFUlZJRVciLCJldmVudExhYmVsIjoicGxheWxpc3RvdmVydmlldyIsImNvbnRlbnRSZWdpb24iOiJCUiIsImhsIjoicHRfQlIiLCJob3N0TGFuZ3VhZ2UiOiJwdCIsInBsYXllclN0eWxlIjoiZGVza3RvcC1wb2x5bWVyIiwiaW5uZXJ0dWJlQXBpS2V5IjoiQUl6YVN5QU9fRkoyU2xxVThRNFNURUhMR0NpbHdfWTlfMTFxY1c4IiwiaW5uZXJ0dWJlQXBpVmVyc2lvbiI6InYxIiwiaW5uZXJ0dWJlQ29udGV4dENsaWVudFZlcnNpb24iOiIyLjIwMjAxMDIzLjAyLjAwIiwiZGV2aWNlIjp7ImludGVyZmFjZU5hbWUiOiJXRUIiLCJpbnRlcmZhY2VWZXJzaW9uIjoiMi4yMDIwMTAyMy4wMi4wMCJ9LCJkaXNhYmxlU2hhcmluZyI6dHJ1ZSwiaGlkZUluZm8iOnRydWUsImRpc2FibGVXYXRjaExhdGVyIjp0cnVlLCJjYW5hcnlTdGF0ZSI6Im5vbmUiLCJlbmFibGVDc2lMb2dnaW5nIjp0cnVlLCJjc2lQYWdlVHlwZSI6InBsYXlsaXN0X292ZXJ2aWV3In0sIldFQl9QTEFZRVJfQ09OVEVYVF9DT05GSUdfSURfS0VWTEFSX1dBVENIIjp7InRyYW5zcGFyZW50QmFja2dyb3VuZCI6dHJ1ZSwidXNlRmFzdFNpemluZ09uV2F0Y2hEZWZhdWx0IjpmYWxzZSwic2hvd01pbmlwbGF5ZXJCdXR0b24iOnRydWUsImV4dGVybmFsRnVsbHNjcmVlbiI6dHJ1ZSwic2hvd01pbmlwbGF5ZXJVaVdoZW5NaW5pbWl6ZWQiOnRydWUsInJvb3RFbGVtZW50SWQiOiJtb3ZpZV9wbGF5ZXIiLCJqc1VybCI6Ii9zL3BsYXllci85YjY1ZTk4MC9wbGF5ZXJfaWFzLnZmbHNldC9wdF9CUi9iYXNlLmpzIiwiY3NzVXJsIjoiL3MvcGxheWVyLzliNjVlOTgwL3d3dy1wbGF5ZXIuY3NzIiwiY29udGV4dElkIjoiV0VCX1BMQVlFUl9DT05URVhUX0NPTkZJR19JRF9LRVZMQVJfV0FUQ0giLCJldmVudExhYmVsIjoiZGV0YWlscGFnZSIsImNvbnRlbnRSZWdpb24iOiJCUiIsImhsIjoicHRfQlIiLCJob3N0TGFuZ3VhZ2UiOiJwdCIsInBsYXllclN0eWxlIjoiZGVza3RvcC1wb2x5bWVyIiwiaW5uZXJ0dWJlQXBpS2V5IjoiQUl6YVN5QU9fRkoyU2xxVThRNFNURUhMR0NpbHdfWTlfMTFxY1c4IiwiaW5uZXJ0dWJlQXBpVmVyc2lvbiI6InYxIiwiaW5uZXJ0dWJlQ29udGV4dENsaWVudFZlcnNpb24iOiIyLjIwMjAxMDIzLjAyLjAwIiwiZGV2aWNlIjp7ImludGVyZmFjZU5hbWUiOiJXRUIiLCJpbnRlcmZhY2VWZXJzaW9uIjoiMi4yMDIwMTAyMy4wMi4wMCJ9LCJjYW5hcnlTdGF0ZSI6Im5vbmUiLCJlbmFibGVDc2lMb2dnaW5nIjp0cnVlLCJjc2lQYWdlVHlwZSI6IndhdGNoIn0sIldFQl9QTEFZRVJfQ09OVEVYVF9DT05GSUdfSURfS0VWTEFSX1ZFUlRJQ0FMX0xBTkRJTkdfUEFHRV9QUk9NTyI6eyJyb290RWxlbWVudElkIjoieXRkLWRlZmF1bHQtcHJvbW8tcGFuZWwtcmVuZGVyZXItaW5saW5lLXBsYXliYWNrLXJlbmRlcmVyIiwianNVcmwiOiIvcy9wbGF5ZXIvOWI2NWU5ODAvcGxheWVyX2lhcy52ZmxzZXQvcHRfQlIvYmFzZS5qcyIsImNzc1VybCI6Ii9zL3BsYXllci85YjY1ZTk4MC93d3ctcGxheWVyLmNzcyIsImNvbnRleHRJZCI6IldFQl9QTEFZRVJfQ09OVEVYVF9DT05GSUdfSURfS0VWTEFSX1ZFUlRJQ0FMX0xBTkRJTkdfUEFHRV9QUk9NTyIsImV2ZW50TGFiZWwiOiJwcm9maWxlcGFnZSIsImNvbnRlbnRSZWdpb24iOiJCUiIsImhsIjoicHRfQlIiLCJob3N0TGFuZ3VhZ2UiOiJwdCIsInBsYXllclN0eWxlIjoiZGVza3RvcC1wb2x5bWVyIiwiaW5uZXJ0dWJlQXBpS2V5IjoiQUl6YVN5QU9fRkoyU2xxVThRNFNURUhMR0NpbHdfWTlfMTFxY1c4IiwiaW5uZXJ0dWJlQXBpVmVyc2lvbiI6InYxIiwiaW5uZXJ0dWJlQ29udGV4dENsaWVudFZlcnNpb24iOiIyLjIwMjAxMDIzLjAyLjAwIiwiY29udHJvbHNUeXBlIjowLCJkaXNhYmxlUmVsYXRlZFZpZGVvcyI6dHJ1ZSwiYW5ub3RhdGlvbnNMb2FkUG9saWN5IjozLCJkZXZpY2UiOnsiaW50ZXJmYWNlTmFtZSI6IldFQiIsImludGVyZmFjZVZlcnNpb24iOiIyLjIwMjAxMDIzLjAyLjAwIn0sImhpZGVJbmZvIjp0cnVlLCJzdGFydE11dGVkIjp0cnVlLCJlbmFibGVNdXRlZEF1dG9wbGF5Ijp0cnVlLCJjYW5hcnlTdGF0ZSI6Im5vbmUiLCJlbmFibGVDc2lMb2dnaW5nIjp0cnVlLCJjc2lQYWdlVHlwZSI6ImNoYW5uZWxzIn0sIldFQl9QTEFZRVJfQ09OVEVYVF9DT05GSUdfSURfS0VWTEFSX0NIQU5ORUxfVFJBSUxFUiI6eyJyb290RWxlbWVudElkIjoiYzQtcGxheWVyIiwianNVcmwiOiIvcy9wbGF5ZXIvOWI2NWU5ODAvcGxheWVyX2lhcy52ZmxzZXQvcHRfQlIvYmFzZS5qcyIsImNzc1VybCI6Ii9zL3BsYXllci85YjY1ZTk4MC93d3ctcGxheWVyLmNzcyIsImNvbnRleHRJZCI6IldFQl9QTEFZRVJfQ09OVEVYVF9DT05GSUdfSURfS0VWTEFSX0NIQU5ORUxfVFJBSUxFUiIsImV2ZW50TGFiZWwiOiJwcm9maWxlcGFnZSIsImNvbnRlbnRSZWdpb24iOiJCUiIsImhsIjoicHRfQlIiLCJob3N0TGFuZ3VhZ2UiOiJwdCIsInBsYXllclN0eWxlIjoiZGVza3RvcC1wb2x5bWVyIiwiaW5uZXJ0dWJlQXBpS2V5IjoiQUl6YVN5QU9fRkoyU2xxVThRNFNURUhMR0NpbHdfWTlfMTFxY1c4IiwiaW5uZXJ0dWJlQXBpVmVyc2lvbiI6InYxIiwiaW5uZXJ0dWJlQ29udGV4dENsaWVudFZlcnNpb24iOiIyLjIwMjAxMDIzLjAyLjAwIiwiZGV2aWNlIjp7ImludGVyZmFjZU5hbWUiOiJXRUIiLCJpbnRlcmZhY2VWZXJzaW9uIjoiMi4yMDIwMTAyMy4wMi4wMCJ9LCJjYW5hcnlTdGF0ZSI6Im5vbmUiLCJlbmFibGVDc2lMb2dnaW5nIjp0cnVlLCJjc2lQYWdlVHlwZSI6ImNoYW5uZWxzIn0sIldFQl9QTEFZRVJfQ09OVEVYVF9DT05GSUdfSURfS0VWTEFSX1NQT05TT1JTSElQU19PRkZFUiI6eyJyb290RWxlbWVudElkIjoieXRkLXNwb25zb3JzaGlwcy1vZmZlci13aXRoLXZpZGVvLXJlbmRlcmVyIiwianNVcmwiOiIvcy9wbGF5ZXIvOWI2NWU5ODAvcGxheWVyX2lhcy52ZmxzZXQvcHRfQlIvYmFzZS5qcyIsImNzc1VybCI6Ii9zL3BsYXllci85YjY1ZTk4MC93d3ctcGxheWVyLmNzcyIsImNvbnRleHRJZCI6IldFQl9QTEFZRVJfQ09OVEVYVF9DT05GSUdfSURfS0VWTEFSX1NQT05TT1JTSElQU19PRkZFUiIsImV2ZW50TGFiZWwiOiJzcG9uc29yc2hpcHNvZmZlciIsImNvbnRlbnRSZWdpb24iOiJCUiIsImhsIjoicHRfQlIiLCJob3N0TGFuZ3VhZ2UiOiJwdCIsInBsYXllclN0eWxlIjoiZGVza3RvcC1wb2x5bWVyIiwiaW5uZXJ0dWJlQXBpS2V5IjoiQUl6YVN5QU9fRkoyU2xxVThRNFNURUhMR0NpbHdfWTlfMTFxY1c4IiwiaW5uZXJ0dWJlQXBpVmVyc2lvbiI6InYxIiwiaW5uZXJ0dWJlQ29udGV4dENsaWVudFZlcnNpb24iOiIyLjIwMjAxMDIzLjAyLjAwIiwiZGlzYWJsZVJlbGF0ZWRWaWRlb3MiOnRydWUsImFubm90YXRpb25zTG9hZFBvbGljeSI6MywiZGV2aWNlIjp7ImludGVyZmFjZU5hbWUiOiJXRUIiLCJpbnRlcmZhY2VWZXJzaW9uIjoiMi4yMDIwMTAyMy4wMi4wMCJ9LCJkaXNhYmxlRnVsbHNjcmVlbiI6dHJ1ZSwiY2FuYXJ5U3RhdGUiOiJub25lIn19O2ZvciAodmFyIGNvbnRleHRJZCBpbiBjb25maWdzKSB7Y29uZmlnc1tjb250ZXh0SWRdWydzZXJpYWxpemVkRXhwZXJpbWVudElkcyddID0gIjIzNzQ0MTc2LDIzODA0MjgxLDIzODM0NjExLDIzODM5NTk3LDIzODU2OTUwLDIzODU3OTQ4LDIzODU4MDU3LDIzODY4MzIwLDIzODc4NDE1LDIzODgwMDQzLDIzODgwODI5LDIzODgyNTAyLDIzODg0Mzg2LDIzODg1NTcyLDIzODkwOTU5LDIzODk1NjcxLDIzOTExMDU1LDIzOTE0NzQ5LDIzOTE1OTkxLDIzOTE4NTk3LDIzOTIwNzcwLDIzOTIwNzcwLDIzOTIxNTU0LDIzOTI3NzY3LDIzOTI3NzY3LDIzOTI4NTA4LDIzOTMwMjIwLDIzOTM0OTcwLDIzOTQyMzM4LDIzOTQyNDM1LDIzOTQyNjMzLDIzOTQ0Nzc5LDIzOTQ1NDc5LDIzOTQ2NDIwLDIzOTQ3Njk4LDIzOTQ4ODQxLDIzOTUwMjczLDIzOTUwNTk3LDIzOTUxMTA3LDIzOTUxMTM4LDIzOTUxNjIxLDIzOTU1MzczLDIzOTU2NzU0LDIzOTYxMjkxLDIzOTYyOTIwLDIzOTYyOTYyLDIzOTYzNjE2LDIzOTYzNjYwLDI0NTkwMjkwLDk0NDkyNDMiO2NvbmZpZ3NbY29udGV4dElkXVsnc2VyaWFsaXplZEV4cGVyaW1lbnRGbGFncyddID0gImh0bWw1X3JlYWRhaGVhZF9yYXRlbGltaXQ9MzAwMFx1MDAyNndlYl9wbGF5ZXJfaW5uZXJ0dWJlX3NoYXJlX3BhbmVsPXRydWVcdTAwMjZodG1sNV9kaXNhYmxlX2FhY19hYzM9dHJ1ZVx1MDAyNmh0bWw1X2V4cGVyaW1lbnRfaWRfbGFiZWw9MjM5NTAyNzNcdTAwMjZ1c2VfdmlkZW9fYWRfYnJlYWtfb2Zmc2V0X21zX2ludDY0PXRydWVcdTAwMjZzaG91bGRfY2xlYXJfdmlkZW9fZGF0YV9vbl9wbGF5ZXJfY3VlZF91bnN0YXJ0ZWQ9dHJ1ZVx1MDAyNmtldmxhcl9hdXRvbmF2X21pbmlwbGF5ZXJfZml4PXRydWVcdTAwMjZodG1sNV9lbmFibGVfbmV3X2h2Y19lbmM9dHJ1ZVx1MDAyNmh0bWw1X3N0YXRpY19hYnJfcmVzb2x1dGlvbl9zaGVsZj0wXHUwMDI2cHJlc2tpcF9idXR0b25fc3R5bGVfYWRzX2JhY2tlbmQ9Y291bnRkb3duX25leHRfdG9fdGh1bWJuYWlsXHUwMDI2aHRtbDVfZ2xfZnBzX3RocmVzaG9sZD0wXHUwMDI2ZW5hYmxlX2NsaWVudF9kZWZlcnJlZF9mdWxsX3NjcmVlbl9maWx0ZXJpbmdfZm9yX213ZWJfcGhvbmVzPXRydWVcdTAwMjZ3ZWJfcGxheWVyX3NlbnRpbmVsX2lzX3VuaXBsYXllcj10cnVlXHUwMDI2ZmFzdF9hdXRvbmF2X2luX2JhY2tncm91bmQ9dHJ1ZVx1MDAyNmVuYWJsZV9rZXZsYXJfYWN0aW9uX2NvbXBhbmlvbl9jbGVhbnVwPXRydWVcdTAwMjZ3ZWJfZ2VsX3RpbWVvdXRfY2FwPXRydWVcdTAwMjZhbGxvd19saXZlX2F1dG9wbGF5PXRydWVcdTAwMjZodG1sNV9wZWFrX3NoYXZlPXRydWVcdTAwMjZodG1sNV9wcmVmZXJfc2VydmVyX2J3ZTM9dHJ1ZVx1MDAyNmtldmxhcl9taW5pcGxheWVyX3BsYXlfcGF1c2Vfb25fc2NyaW09dHJ1ZVx1MDAyNndlYl9jbGllbnRfdmVyc2lvbl9vdmVycmlkZT1cdTAwMjZodG1sNV9uZXdfZWxlbWVudF9vbl9pbnZhbGlkX3N0YXRlPXRydWVcdTAwMjZodG1sNV9nYXBsZXNzX21heF9wbGF5ZWRfcmFuZ2VzPTEyXHUwMDI2aHRtbDVfZGVza3RvcF92cjE4MF9hbGxvd19wYW5uaW5nPXRydWVcdTAwMjZzdXBwcmVzc19lcnJvcl8yMDRfbG9nZ2luZz10cnVlXHUwMDI2dW5wbHVnZ2VkX3R2aHRtbDVfYm90Z3VhcmRfYXR0ZXN0YXRpb249dHJ1ZVx1MDAyNmh0bWw1X2RlbGF5X2luaXRpYWxfbG9hZGluZz10cnVlXHUwMDI2cGxheXJlYWR5X2ZpcnN0X3BsYXlfZXhwaXJhdGlvbj0tMVx1MDAyNndlYl9wbGF5ZXJfYXBpX2xvZ2dpbmdfZnJhY3Rpb249MC4wMVx1MDAyNmh0bWw1X21pbl91cGdyYWRlX2hlYWx0aD0wXHUwMDI2c2VsZl9wb2RkaW5nX21pZHJvbGxfY2hvaWNlX3N0cmluZ190ZW1wbGF0ZT1zZWxmX3BvZGRpbmdfbWlkcm9sbF9jaG9pY2VcdTAwMjZ1c2Vfc3VydmV5X3NraXBfaW5fMHM9dHJ1ZVx1MDAyNmh0bWw1X2hsc19taW5fdmlkZW9faGVpZ2h0PTBcdTAwMjZlbmFibGVfZXZpY3Rpb25fcHJvdGVjdGlvbl9mb3JfYnVsbGVpdD10cnVlXHUwMDI2aHRtbDVfaGRjcF9wcm9iaW5nX3N0cmVhbV91cmw9XHUwMDI2d2ViX29wX2NvbnRpbnVhdGlvbl90eXBlX2Jhbmxpc3Q9KClcdTAwMjZodG1sNV9hdjFfdGhyZXNoX2hjYz0xMDgwXHUwMDI2aHRtbDVfc291cmNlX2J1ZmZlcl9hdHRhY2hfZGVsYXlfdGltZT0xNTAwMFx1MDAyNmh0bWw1X3BsYXRmb3JtX21pbmltdW1fcmVhZGFoZWFkX3NlY29uZHM9MC4wXHUwMDI2aHRtbDVfbG9uZ19yZWJ1ZmZlcl90aHJlc2hvbGRfbXM9MzAwMDBcdTAwMjZtd2ViX25hdGl2ZV9jb250cm9sX2luX2ZhdXhfZnVsbHNjcmVlbl9zaGFyZWQ9dHJ1ZVx1MDAyNnZhcmlhYmxlX2xvYWRfdGltZW91dF9tcz0wXHUwMDI2aHRtbDVfZ2FwbGVzc19lbmRlZF90cmFuc2l0aW9uX2J1ZmZlcl9tcz0yMDBcdTAwMjZodG1sNV9hdXRvbmF2X2NhcF9pZGxlX3NlY3M9MFx1MDAyNmh0bWw1X2VuYWJsZV9lbWJlZGRlZF9wbGF5ZXJfdmlzaWJpbGl0eV9zaWduYWxzPXRydWVcdTAwMjZodG1sNV9nYXBsZXNzX2FkX2J5dGVyYXRlX211bHRpcGxpZXI9MS42XHUwMDI2d2ViX2xvZ19jb25uZWN0aW9uPXRydWVcdTAwMjZkZWJ1Z19kYXBwZXJfdHJhY2VfaWQ9XHUwMDI2aHRtbDVfc3Vic2VnbWVudF9yZWFkYWhlYWRfbWluX2J1ZmZlcl9oZWFsdGhfc2Vjcz0wLjI1XHUwMDI2aHRtbDVfbGl2ZV9ub3JtYWxfbGF0ZW5jeV9iYW5kd2lkdGhfd2luZG93PTAuMFx1MDAyNmJvdGd1YXJkX2FzeW5jX3NuYXBzaG90X3RpbWVvdXRfbXM9MzAwMFx1MDAyNmh0bWw1X2hlYWx0aF90b19nZWw9dHJ1ZVx1MDAyNnBvbHltZXJfYmFkX2J1aWxkX2xhYmVscz10cnVlXHUwMDI2aHRtbDVfbGl2ZV9sb3dfbGF0ZW5jeV9iYW5kd2lkdGhfd2luZG93PTAuMFx1MDAyNm92ZXJ3cml0ZV9wb2x5ZmlsbF9vbl9sb2dnaW5nX2xpYl9sb2FkZWQ9dHJ1ZVx1MDAyNndlYl9wbGF5ZXJfcmVzcG9uc2Vfb3ZlcmxheV9wYXJzaW5nPWZhbHNlXHUwMDI2aHRtbDVfYWxsb3dhYmxlX2xpdmVuZXNzX2RyaWZ0X2NodW5rcz0yXHUwMDI2aHRtbDVfcGVyZm9ybWFuY2VfY2FwX2Zsb29yPTM2MFx1MDAyNmh0bWw1X2JhY2tncm91bmRfY2FwX2lkbGVfc2Vjcz02MFx1MDAyNmh0bWw1X3VucmVwb3J0ZWRfc2Vla19yZXNlZWtfZGVsYXlfbXM9MFx1MDAyNmh0bWw1X2p1bWJvX3VsbF9zdWJzZWdtZW50X3JlYWRhaGVhZF90YXJnZXQ9MS4zXHUwMDI2ZW5hYmxlX2xpdmVfcHJlbWllcmVfd2ViX3BsYXllcl9pbmRpY2F0b3I9dHJ1ZVx1MDAyNmh0bWw1X21hbmlmZXN0bGVzc19tZWRpYV9zb3VyY2VfZHVyYXRpb249MjUyMDBcdTAwMjZwb2x5bWVyX3ZlcmlmaXlfYXBwX3N0YXRlPXRydWVcdTAwMjZodG1sNV9wbGF5ZXJfZHluYW1pY19ib3R0b21fZ3JhZGllbnQ9dHJ1ZVx1MDAyNmVuYWJsZV90b3Bzb2lsX3d0YV9mb3JfaGFsZnRpbWU9dHJ1ZVx1MDAyNmVuYWJsZV95cGNfY2xpY2t3cmFwX29uX2xpdmluZ19yb29tPXRydWVcdTAwMjZodG1sNV9tYXhfcmVhZGFoZWFkX2JhbmR3aWR0aF9jYXA9MFx1MDAyNmh0bWw1X3N1YnNlZ21lbnRfcmVhZGFoZWFkX21pbl9idWZmZXJfaGVhbHRoX3NlY3Nfb25fdGltZW91dD0wLjFcdTAwMjZ3ZWJfcGxheWVyX3Nob3dfbXVzaWNfaW5fdGhpc192aWRlb19ncmFwaGljPXZpZGVvX3RodW1ibmFpbFx1MDAyNmtldmxhcl9taW5pcGxheWVyPXRydWVcdTAwMjZrZXZsYXJfcXVldWVfdXNlX3VwZGF0ZV9hcGk9dHJ1ZVx1MDAyNm5ldHdvcmtsZXNzX3l0aWRiX3ZlcnNpb249MVx1MDAyNnNraXBfYWRfYnV0dG9uX3dpdGhfdGh1bWJuYWlsPXRydWVcdTAwMjZodG1sNV9kZWZhdWx0X3F1YWxpdHlfY2FwPTcyMFx1MDAyNmxvZ193aW5kb3dfb25lcnJvcl9mcmFjdGlvbj0wLjFcdTAwMjZodG1sNV9oZnJfcXVhbGl0eV9jYXA9MFx1MDAyNmxpdmVfZnJlc2NhX3YyPXRydWVcdTAwMjZ3ZWJfcGxheWVyX2lvc19td2ViX3Jlc2l6aW5nPXRydWVcdTAwMjZodG1sNV9tYXhfbGl2ZV9kdnJfd2luZG93X3BsdXNfbWFyZ2luX3NlY3M9NDY4MDAuMFx1MDAyNmh0bWw1X3JlbGVhc2Vfb25fZXJyb3I9dHJ1ZVx1MDAyNndlYl9wbGF5ZXJfcmVzcG9uc2VfcGxheWJhY2tfdHJhY2tpbmdfcGFyc2luZz10cnVlXHUwMDI2aHRtbDVfZGlzYWJsZV9tb3ZlX3Bzc2hfdG9fbW9vdj10cnVlXHUwMDI2aHRtbDVfbmV3X2VsZW1fb25faGlkZGVuPXRydWVcdTAwMjZzZXRfaW50ZXJzdGl0aWFsX2FkdmVydGlzZXJzX3F1ZXN0aW9uX3RleHQ9dHJ1ZVx1MDAyNmxpdmVfY2h1bmtfcmVhZGFoZWFkPTNcdTAwMjZodG1sNV9kZWNvZGVfdG9fdGV4dHVyZV9jYXA9dHJ1ZVx1MDAyNmRlYnVnX3NoZXJsb2dfdXNlcm5hbWU9XHUwMDI2d2ViX3BsYXllcl93YXRjaF9uZXh0X3Jlc3BvbnNlPXRydWVcdTAwMjZ3ZWJfcGxheWVyX2xpdmVfbW9uaXRvcl9lbnY9dHJ1ZVx1MDAyNmh0bWw1X3Jld3JpdGVfbWFuaWZlc3RsZXNzX2Zvcl9jb250aW51aXR5PXRydWVcdTAwMjZodG1sNV9xb2VfdXNlcl9pbnRlbnRfbWF0Y2hfaGVhbHRoPXRydWVcdTAwMjZodG1sNV9sb2dfbGl2ZV9kaXNjb250aW51aXR5PXRydWVcdTAwMjZodG1sNV9tYXhfaGVhZG1fZm9yX3N0cmVhbWluZ194aHI9MFx1MDAyNnVzZV9pbmxpbmVkX3BsYXllcl9ycGM9dHJ1ZVx1MDAyNmVtYmVkc19lbmFibGVfZW1iZWRfbW9kdWxlPXRydWVcdTAwMjZodG1sNV9saXZlX3VsdHJhX2xvd19sYXRlbmN5X2JhbmR3aWR0aF93aW5kb3c9MC4wXHUwMDI2ZGVza3RvcF9hY3Rpb25fY29tcGFuaW9uX3d0YV9zdXBwb3J0PXRydWVcdTAwMjZodG1sNV91bmlmeV9zcWxlc3NfZmxvdz10cnVlXHUwMDI2d2ViX3NjcmVlbl9hc3NvY2lhdGVkX2FsbF9sYXllcnM9dHJ1ZVx1MDAyNnZhcmlhYmxlX2J1ZmZlcl90aW1lb3V0X21zPTBcdTAwMjZzZWxmX3BvZGRpbmdfaGVhZGVyX3N0cmluZ190ZW1wbGF0ZT1zZWxmX3BvZGRpbmdfaW50ZXJzdGl0aWFsX21lc3NhZ2VcdTAwMjZodG1sNV9hdjFfdHZfa2lsbHN3aXRjaD10cnVlXHUwMDI2aHRtbDVfZGlzYWJsZV9zdWJzY3JpYmVfbmV3X3Zpcz10cnVlXHUwMDI2aHRtbDVfaWdub3JlX2JhZF9iaXRyYXRlcz10cnVlXHUwMDI2d2ViX3BsYXllcl92c3NfcGFnZWlkX2hlYWRlcj10cnVlXHUwMDI2aHRtbDVfbm9fcGxhY2Vob2xkZXJfcm9sbGJhY2tzPXRydWVcdTAwMjZodG1sNV9taW5fcmVhZGJlaGluZF9zZWNzPTBcdTAwMjZodG1sNV9jaGVja19zZWdudW1fZGlzY29udGludWl0eT10cnVlXHUwMDI2aHRtbDVfdW5yZXdyaXRlX3RpbWVzdGFtcHM9dHJ1ZVx1MDAyNndlYl9sb2dnaW5nX21heF9iYXRjaD0xNTBcdTAwMjZ3ZWJfYXBpX3VybD10cnVlXHUwMDI2Y3VzdG9tX2NzaV90aW1lbGluZV91c2VfZ2VsPXRydWVcdTAwMjZkaXNhYmxlX3RodW1ibmFpbF9wcmVsb2FkaW5nPXRydWVcdTAwMjZzZWxmX3BvZGRpbmdfaGlnaGxpZ2h0ZWRfYnV0dG9uX2JsdWU9dHJ1ZVx1MDAyNmh0bWw1X2hhY2tfZ2FwbGVzc19pbml0PXRydWVcdTAwMjZ3ZWJfcGxheWVyX2luY2x1ZGVfaW5uZXJ0dWJlX2NvbW1hbmRzPXRydWVcdTAwMjZodG1sNV9sb2dfcmVidWZmZXJfZXZlbnRzPTVcdTAwMjZodG1sNV9lbmNvdXJhZ2VfYXJyYXlfY29hbGVzY2luZz10cnVlXHUwMDI2aHRtbDVfc2Vla19vdmVyX2Rpc2NvbnRpbnVpdGllcz10cnVlXHUwMDI2aHRtbDVfZ2FwbGVzc19zZWVrX3RvbGVyYW5jZV9zZWNzPTMuMFx1MDAyNmhmcl9kcm9wcGVkX2ZyYW1lcmF0ZV9mYWxsYmFja190aHJlc2hvbGQ9MFx1MDAyNmh0bWw1X2Vycm9yX2Nvb2xkb3duX2luX21zPTMwMDAwXHUwMDI2aHRtbDVfc3Vic2VnbWVudF9yZWFkYWhlYWRfc2Vla19sYXRlbmN5X2Z1ZGdlPTAuNVx1MDAyNmhvZmZsZV9tYXhfdmlkZW9fZHVyYXRpb25fc2Vjcz0wXHUwMDI2aHRtbDVfZGlzYWJsZV9leHRyYV91cGRhdGVfcmVzb3VyY2U9dHJ1ZVx1MDAyNmJvdGd1YXJkX2V2YWxfd2l0aF9zY3JpcHRfdGFnPXRydWVcdTAwMjZodG1sNV9hbGxvd192aWRlb19rZXlmcmFtZV93aXRob3V0X2F1ZGlvPXRydWVcdTAwMjZ3ZWJfcGxheWVyX2ljb25zPXRydWVcdTAwMjZodG1sNV9lbmFibGVfYWRzX2NsaWVudF9tb25pdG9yaW5nX2xvZz10cnVlXHUwMDI2a2V2bGFyX21pbmlwbGF5ZXJfZXhwYW5kX3RvcD10cnVlXHUwMDI2aHRtbDVfZ2FwbGVzc19ub19yZXF1ZXN0c19hZnRlcl9sb2NrPXRydWVcdTAwMjZodG1sNV9zZWVrX25ld19lbGVtX2RlbGF5X21zPTEyMDAwXHUwMDI2aHRtbDVfbWFuaWZlc3RsZXNzX3ZwOT10cnVlXHUwMDI2d2ViX3l0X2NvbmZpZ19jb250ZXh0PXRydWVcdTAwMjZuZXR3b3JrbGVzc19yZXRyeV9hdHRlbXB0cz0xXHUwMDI2aHRtbDVfcmVsb2FkX2VsZW1lbnRfbG9uZ19yZWJ1ZmZlcl9kZWxheV9tcz0yMDAwMFx1MDAyNmVuYWJsZV9kcm1fc3NkYWk9dHJ1ZVx1MDAyNndlYl9jbGllbnRfY291bnRlcl9yYW5kb21fc2VlZD10cnVlXHUwMDI2ZXJyb3JfbWVzc2FnZV9mb3JfZ3N1aXRlX25ldHdvcmtfcmVzdHJpY3Rpb25zPXRydWVcdTAwMjZzdXBwcmVzc19nZW5fMjA0PXRydWVcdTAwMjZodG1sNV9saXZlX2Ficl9oZWFkX21pc3NfZnJhY3Rpb249MC4wXHUwMDI2Y3NpX29uX2dlbD10cnVlXHUwMDI2bWR4X2VuYWJsZV9wcml2YWN5X2Rpc2Nsb3N1cmVfdWk9dHJ1ZVx1MDAyNndlYl9kZXByZWNhdGVfc2VydmljZV9hamF4X21hcF9kZXBlbmRlbmN5PXRydWVcdTAwMjZodG1sNV9hdjFfdGhyZXNoX2FybT0yNDBcdTAwMjZuZXR3b3JrbGVzc190aHJvdHRsZV90aW1lb3V0PTEwMFx1MDAyNmh0bWw1X3N0b3BfdmlkZW9faW5fY2FuY2VsX3BsYXliYWNrPXRydWVcdTAwMjZodG1sNV9kaXNhYmxlX3Jlc2V0X29uX2FwcGVuZF9lcnJvcj10cnVlXHUwMDI2aHRtbDVfcW9lX2ludGVyY2VwdD1cdTAwMjZtYXhfcmVzb2x1dGlvbl9mb3Jfd2hpdGVfbm9pc2U9MzYwXHUwMDI2aHRtbDVfZGlzYWJsZV9wcmVzZXJ2ZV9yZWZlcmVuY2U9dHJ1ZVx1MDAyNndlYl9wbGF5ZXJfaW5saW5lX2JvdGd1YXJkPXRydWVcdTAwMjZodG1sNV9kaXNhYmxlX25vbl9jb250aWd1b3VzPXRydWVcdTAwMjZodG1sNV9tYW5pZmVzdGxlc3NfbWF4X3NlZ21lbnRfaGlzdG9yeT0wXHUwMDI2aHRtbDVfbG9nX3RpbWVzdGFtcF9vZmZzZXQ9dHJ1ZVx1MDAyNnBsYXllcl9ib290c3RyYXBfbWV0aG9kPXRydWVcdTAwMjZodG1sNV9saWNlbnNlX2NvbnN0cmFpbnRfZGVsYXk9NTAwMFx1MDAyNmh0bWw1X2FzcGVjdF9mcm9tX2FkYXB0aXZlX2Zvcm1hdD10cnVlXHUwMDI2ZGlzYWJsZV9sZWdhY3lfZGVza3RvcF9yZW1vdGVfcXVldWU9dHJ1ZVx1MDAyNndlYl9wbGF5ZXJfdG91Y2hfbW9kZV9pbXByb3ZlbWVudHM9dHJ1ZVx1MDAyNndlYl9mb3JlZ3JvdW5kX2hlYXJ0YmVhdF9pbnRlcnZhbF9tcz0yODAwMFx1MDAyNndlYl9wbGF5ZXJfbm9fZW5kc2NyZWVuX2Nyb3A9dHJ1ZVx1MDAyNmd2aV9jaGFubmVsX2NsaWVudF9zY3JlZW49dHJ1ZVx1MDAyNmh0bWw1X3F1YWxpdHlfY2FwX21pbl9hZ2Vfc2Vjcz0wXHUwMDI2ZGFzaF9tYW5pZmVzdF92ZXJzaW9uPTVcdTAwMjZyZWxlYXNlX3BsYXllcl9vbl9hYmFuZG9uX2Zvcl9idWxsZWl0X2xyX2Fkc19mcm9udGVuZD10cnVlXHUwMDI2ZGVsYXlfZ2VsX3VudGlsX2NvbmZpZ19yZWFkeT10cnVlXHUwMDI2aHRtbDVfc2Vla19zZXRfY210X2RlbGF5X21zPTIwMDBcdTAwMjZodG1sNV9hdjFfdGhyZXNoX2xjYz00ODBcdTAwMjZodG1sNV9wZXJmX2NhcF9vdmVycmlkZV9zdGlja3k9dHJ1ZVx1MDAyNmF1dG9wbGF5X3RpbWVfZm9yX211c2ljX2NvbnRlbnRfYWZ0ZXJfYXV0b3BsYXllZF92aWRlbz0tMVx1MDAyNmVuYWJsZV9jbGllbnRfcGFnZV9pZF9oZWFkZXJfZm9yX2ZpcnN0X3BhcnR5X3BpbmdzPXRydWVcdTAwMjZ1bnBsdWdnZWRfdHZodG1sNV92aWRlb19wcmVsb2FkX29uX2ZvY3VzX2RlbGF5X21zPTBcdTAwMjZodG1sNV9hZF90aW1lb3V0X21zPTBcdTAwMjZlbmFibGVfZGV2aWNlX2ZvcndhcmRpbmdfZnJvbV94aHJfY2xpZW50PXRydWVcdTAwMjZlbmFibGVfYWRfcG9kX3NwZWNpZmljX3VpPXRydWVcdTAwMjZodG1sNV9wb3N0X2ludGVycnVwdF9yZWFkYWhlYWQ9MjBcdTAwMjZkZXNrdG9wX3BsYXllcl9idXR0b25fdG9vbHRpcF93aXRoX3Nob3J0Y3V0PXRydWVcdTAwMjZsb2dfanNfZXJyb3JfY2x1c3RlcnM9MS4wXHUwMDI2aHRtbDVfaW5saW5lX3ZpZGVvX3F1YWxpdHlfc3VydmV5PXRydWVcdTAwMjZwbGF5ZXJfYWxsb3dfYXV0b25hdl9hZnRlcl9wbGF5bGlzdD10cnVlXHUwMDI2aHRtbDVfdnA5X21pbWVfZnVsbF9yYW5nZV9mbGFnPXRydWVcdTAwMjZodG1sNV9yZXF1ZXN0X3NpemVfcGFkZGluZ19zZWNzPTMuMFx1MDAyNmh0bWw1X21heGltdW1fcmVhZGFoZWFkX3NlY29uZHM9MC4wXHUwMDI2bGl2ZV9mcmVzY2Ffc2NoZWR1bGVkX3BlcnNpc3RlbnQ9dHJ1ZVx1MDAyNmh0bWw1X3N1YnNlZ21lbnRfcmVhZGFoZWFkX21pbl9sb2FkX3NwZWVkPTEuNVx1MDAyNmh0bWw1X2luX2J1ZmZlcl9wdGxfdGltZW91dF9tcz0wXHUwMDI2aHRtbDVfbWF4X2RyaWZ0X3Blcl90cmFja19zZWNzPTAuMFx1MDAyNmh0bWw1X2VuYWJsZV9lYWMzPXRydWVcdTAwMjZ1c2VfaXZhcl90b19leHRyYWN0X2FkX3ZpZGVvX2lkPXRydWVcdTAwMjZ3ZWJfcGxheWVyX3dhdGNoX25leHRfcmVzcG9uc2VfcGFyc2luZz10cnVlXHUwMDI2aHRtbDVfcGF1c2Vfb25fbm9uZm9yZWdyb3VuZF9wbGF0Zm9ybV9lcnJvcnM9dHJ1ZVx1MDAyNmh0bWw1X2RlY29kZXJfZnJlZXplX3RpbWVvdXRfZGVsYXlfbXM9MFx1MDAyNmh0bWw1X2lvc19mb3JjZV9zZWVrX3RvX3plcm9fb25fc3RvcD10cnVlXHUwMDI2dHZodG1sNV91bnBsdWdnZWRfcHJlbG9hZF9jYWNoZV9zaXplPTVcdTAwMjZodG1sNV9wcm9iZV9wcmltYXJ5X2RlbGF5X2Jhc2VfbXM9MFx1MDAyNnJlbmRlcl9lbmhhbmNlZF9vdmVybGF5c19hc19jdGFzX2Zvcl9kZXNrdG9wX3N0eWxlPXVuc2V0XHUwMDI2YWRfcG9kX2Rpc2FibGVfY29tcGFuaW9uX3BlcnNpc3RfYWRzX3F1YWxpdHk9dHJ1ZVx1MDAyNmh0bWw1X2J1ZmZlcl9oZWFsdGhfdG9fZGVmZXJfc2xpY2VfcHJvY2Vzc2luZz0wLjBcdTAwMjZkaXNhYmxlX3NpbXBsZV9taXhlZF9kaXJlY3Rpb25fZm9ybWF0dGVkX3N0cmluZ3M9dHJ1ZVx1MDAyNm13ZWJfZW5hYmxlX2N1c3RvbV9jb250cm9sX3NoYXJlZD10cnVlXHUwMDI2ZW5hYmxlX2RldmljZV9mb3J3YXJkaW5nX2Zyb21fcG9seW1lcl9uZXR3b3JrX21hbmFnZXI9dHJ1ZVx1MDAyNmh0bWw1X3N1YnNlZ21lbnRfcmVhZGFoZWFkX3RpbWVvdXRfc2Vjcz0yLjBcdTAwMjZhbGlnbl9hZF90b192aWRlb19wbGF5ZXJfbGlmZWN5Y2xlX2Zvcl9idWxsZWl0PXRydWVcdTAwMjZ3d3dfZm9yX3ZpZGVvc3RhdHM9dHJ1ZVx1MDAyNmh0bWw1X3N0aWNreV9yZWR1Y2VzX2Rpc2NvdW50X2J5PTAuMFx1MDAyNndlYl9wbGF5ZXJfc3NfbWVkaWFfdGltZV9vZmZzZXQ9dHJ1ZVx1MDAyNmtldmxhcl9wbGF5YmFja19hc3NvY2lhdGVkX3F1ZXVlPXRydWVcdTAwMjZleHRlcm5hbF9mdWxsc2NyZWVuX3dpdGhfZWR1PXRydWVcdTAwMjZodG1sNV9tYXhfcmVhZGJlaGluZF9zZWNzPTBcdTAwMjZtd2ViX2NvdWdhcl9iaWdfY29udHJvbHM9dHJ1ZVx1MDAyNmh0bWw1X2F1dG9wbGF5X2RlZmF1bHRfcXVhbGl0eV9jYXA9MFx1MDAyNnNldF9pbnRlcnN0aXRpYWxfc3RhcnRfYnV0dG9uPXRydWVcdTAwMjZodG1sNV9iYW5kd2lkdGhfd2luZG93X3NpemU9MFx1MDAyNmh0bWw1X3JlcXVlc3Rfc2l6aW5nX211bHRpcGxpZXI9MC44XHUwMDI2a2V2bGFyX2Zyb250ZW5kX3ZpZGVvX2xpc3RfYWN0aW9ucz10cnVlXHUwMDI2bXVzaWNfZW5hYmxlX3NoYXJlZF9hdWRpb190aWVyX2xvZ2ljPXRydWVcdTAwMjZodG1sNV9pZ25vcmVfc3RhcnRfc2Vjb25kc19mb3JfYWRzX2tpbGxzd2l0Y2g9dHJ1ZVx1MDAyNmh0bWw1X2dhcGxlc3NfZXJyb3JfY2hlY2tfa2lsbHN3aXRjaD10cnVlXHUwMDI2bmV0d29ya19wb2xsaW5nX2ludGVydmFsPTMwMDAwXHUwMDI2aHRtbDVfdmlkZW9fdGJkX21pbl9rYj0wXHUwMDI2cGxheWVyX3dlYl9jYW5hcnlfc3RhZ2U9MFx1MDAyNmh0bWw1X2RlZmF1bHRfYWRfZ2Fpbj0wLjVcdTAwMjZodG1sNV9obHNfaW5pdGlhbF9iaXRyYXRlPTBcdTAwMjZodG1sNV9tYW5pZmVzdGxlc3NfdnA5X290Zj10cnVlXHUwMDI2d2ViX3BsYXllcl9pcHBfY2FuYXJ5X3R5cGVfZm9yX2xvZ2dpbmc9XHUwMDI2d2ViX2xvZ19hcHBfaW5zdGFsbF9leHBlcmltZW50cz10cnVlXHUwMDI2cGFpcl9zZXJ2bGV0X2RlcHJlY2F0aW9uX3dhcm5pbmdfZW5hYmxlZD10cnVlXHUwMDI2aHRtbDVfYXV0b25hdl9xdWFsaXR5X2NhcD0wXHUwMDI2aHRtbDVfc3luY19zZWVraW5nX3N0YXRlPXRydWVcdTAwMjZoaWRlX3ByZXNraXA9dHJ1ZVx1MDAyNmVuYWJsZV9jb29raWVfcmVpc3N1ZV9pZnJhbWU9dHJ1ZVx1MDAyNmh0bWw1X21lZGlhX2Z1bGxzY3JlZW49dHJ1ZVx1MDAyNmRlbGF5X2Fkc19ndmlfY2FsbF9vbl9idWxsZWl0X2xpdmluZ19yb29tX21zPTBcdTAwMjZrZXZsYXJfZ2VsX2Vycm9yX3JvdXRpbmc9dHJ1ZVx1MDAyNnBsYXllcl9kb3VibGV0YXBfdG9fc2Vlaz10cnVlXHUwMDI2d2ViX29wX2VuZHBvaW50X2Jhbmxpc3Q9KClcdTAwMjZodG1sNV9qdW1ib19tb2JpbGVfc3Vic2VnbWVudF9yZWFkYWhlYWRfdGFyZ2V0PTMuMFx1MDAyNndlYl9vcF9zaWduYWxfdHlwZV9iYW5saXN0PSgpXHUwMDI2aHRtbDVfbGljZW5zZV9zZXJ2ZXJfZXJyb3JfcmV0cnlfbGltaXQ9M1x1MDAyNmh0bWw1X2p1bWJvX3VsbF9ub25zdHJlYW1pbmdfbWZmYV9tcz00MDAwXHUwMDI2aHRtbDVfbG9nX3BsYXliYWNrX3JhdGVfY2hhbmdlX2tpbGxzd2l0Y2g9dHJ1ZVx1MDAyNmthYnVraV9wYW5nZWFfcHJlZmVyX2F1ZGlvX29ubHlfZm9yX2F0dl9hbmRfdXBsb2Fkcz10cnVlXHUwMDI2dXNlX3BsYXllcl9wYXJhbXNfZm9yX3Bhc3NpbmdfZGVza3RvcF9jb252ZXJzaW9uX3VybHM9dHJ1ZVx1MDAyNmh0bWw1X3N0b3JlX3hocl9oZWFkZXJzX3JlYWRhYmxlPXRydWVcdTAwMjZzZWxmX3BvZGRpbmdfcG9kX2Nob2ljZV9zdHJpbmdfdGVtcGxhdGU9c2VsZl9wb2RkaW5nX3BvZF9jaG9pY2VcdTAwMjZodG1sNV9mb3JjZV9kZWJ1Z19kYXRhX2Zvcl9jbGllbnRfdG1wX2xvZ3M9dHJ1ZVx1MDAyNmJ1bGxlaXRfZ2V0X21pZHJvbGxfaW5mb190aW1lb3V0X21zPTgwMDBcdTAwMjZodG1sNV9nYXBsZXNzX3ByZWxvYWRpbmc9dHJ1ZVx1MDAyNmZpeF9hZHNfdHJhY2tpbmdfZm9yX3N3Zl9jb25maWdfZGVwcmVjYXRpb25fbXdlYj10cnVlXHUwMDI2aHRtbDVfc2Vla19qaWdnbGVfY210X2RlbGF5X21zPTgwMDBcdTAwMjZodG1sNV9saXZlX2Ficl9yZXByZWRpY3RfZnJhY3Rpb249MC4wXHUwMDI2d2ViX2dlbF9kZWJvdW5jZV9tcz0xMDAwMFx1MDAyNmh0bWw1X2lvczRfc2Vla19hYm92ZV96ZXJvPXRydWVcdTAwMjZtYW5pZmVzdGxlc3NfcG9zdF9saXZlPXRydWVcdTAwMjZodG1sNV91c2VfY3VycmVudF9tZWRpYV90aW1lX2Zvcl9nbHJlbV9nbGxhdD10cnVlXHUwMDI2aHRtbDVfcmVtb3ZlX3BhdXNlPWZhbHNlXHUwMDI2d2ViX3BsYXllcl9pbm5lcnR1YmVfcGxheWxpc3RfdXBkYXRlPXRydWVcdTAwMjZodG1sNV9zdWJzZWdtZW50X3JlYWRhaGVhZF9sb2FkX3NwZWVkX2NoZWNrX2ludGVydmFsPTAuNVx1MDAyNmh0bWw1X2VuYWJsZV9wZXJfZm9ybWF0X2xvdWRuZXNzPXRydWVcdTAwMjZodG1sNV9zZWVrX3RpbWVvdXRfZGVsYXlfbXM9MjAwMDBcdTAwMjZ1c2VfcmVtb3RlX2NvbnRleHRfaW5fcG9wdWxhdGVfcmVtb3RlX2NsaWVudF9pbmZvPXRydWVcdTAwMjZodG1sNV9leHBhbmRlZF9tYXhfdnNzX3BpbmdzPXRydWVcdTAwMjZodG1sNV9sb2dfZXhwZXJpbWVudF9pZF9mcm9tX3BsYXllcl9yZXNwb25zZV90b19jdG1wPVx1MDAyNmh0bWw1X2RlYWR6b25lX211bHRpcGxpZXI9MS4wXHUwMDI2c3VwcHJlc3Nfc3BhcmtsZXNfZm9yX3doaXRlbGlzdGVkX2luc3RyZWFtX29uX2Rlc2t0b3A9dHJ1ZVx1MDAyNmh0bWw1X3BsYXllcl9taW5fYnVpbGRfY2w9LTFcdTAwMjZodG1sNV9hZHNfcHJlcm9sbF9sb2NrX3RpbWVvdXRfZGVsYXlfbXM9MFx1MDAyNmh0bWw1X3Jlc3RyaWN0X3N0cmVhbWluZ194aHJfb25fc3FsZXNzX3JlcXVlc3RzPXRydWVcdTAwMjZodG1sNV9taW5pbXVtX3JlYWRhaGVhZF9zZWNvbmRzPTAuMFx1MDAyNnBsYXllcl9lbmFibGVfcGxheWJhY2tfcGxheWxpc3RfY2hhbmdlPXRydWVcdTAwMjZob2ZmbGVfY2FjaGVfc2l6ZV9zZWNzPTBcdTAwMjZodG1sNV9hdjFfdGhyZXNoPTEwODBcdTAwMjZodG1sNV9iYWNrZ3JvdW5kX3F1YWxpdHlfY2FwPTM2MFx1MDAyNnBsYXllcl9hZHNfc2V0X2FkZm9ybWF0X29uX2NsaWVudD10cnVlXHUwMDI2dXNlX3RvdWNoX2V2ZW50c19mb3JfYnVsbGVpdF9td2ViPXRydWVcdTAwMjZtYW5pZmVzdGxlc3NfcG9zdF9saXZlX3VmcGg9dHJ1ZVx1MDAyNnR2aHRtbDVfZGlzYWJsZV9saXZlX3ByZWZldGNoPXRydWVcdTAwMjZodG1sNV9wcm9iZV9saXZlX3VzaW5nX3JhbmdlPXRydWVcdTAwMjZodG1sNV9wbGF5ZXJfYXV0b25hdl9sb2dnaW5nPXRydWVcdTAwMjZlbnN1cmVfb25seV9vbmVfcmVzb2x2ZWRfbWlkcm9sbF9yZXNwb25zZV9vbl93ZWI9dHJ1ZVx1MDAyNndlYl9wbGF5ZXJfbXVzaWNfdmlzdWFsaXplcl90cmVhdG1lbnQ9ZmFrZVx1MDAyNmF1dG9wbGF5X3RpbWVfZm9yX211c2ljX2NvbnRlbnQ9LTFcdTAwMjZodG1sNV93b3JrYXJvdW5kX2RlbGF5X3RyaWdnZXI9dHJ1ZVx1MDAyNmRlc2t0b3Bfc3BhcmtsZXNfbGlnaHRfY3RhX2J1dHRvbj10cnVlXHUwMDI2d2ViX3BsYXllcl9iaWdnZXJfYnV0dG9ucz10cnVlXHUwMDI2aHRtbDVfZmx1ZGRfc3VzcGVuZD10cnVlXHUwMDI2d2ViX3duX21hY3JvX21hcmtlcnM9dHJ1ZVx1MDAyNmFsbG93X3BvbHRlcmd1c3RfYXV0b3BsYXk9dHJ1ZVx1MDAyNnNlbGZfcG9kZGluZ19oaWdobGlnaHRfbm9uX2RlZmF1bHRfYnV0dG9uPXRydWVcdTAwMjZhdXRvcGxheV90aW1lPTgwMDBcdTAwMjZ1c2VfdHlwZXNjcmlwdF90cmFuc3BvcnQ9dHJ1ZVx1MDAyNmh0bWw1X3JhbmRvbV9wbGF5YmFja19jYXA9MFx1MDAyNmh0bWw1X3Byb2JlX3NlY29uZGFyeV9kdXJpbmdfdGltZW91dF9taXNzX2NvdW50PTJcdTAwMjZodG1sNV9ub25fbmV0d29ya19yZWJ1ZmZlcl9kdXJhdGlvbl9tcz0wXHUwMDI2d2ViX3BsYXllcl9saXZlX21vbml0b3JfZW52X2tpbGxzd2l0Y2g9dHJ1ZVx1MDAyNmVuYWJsZV9taXhlZF9kaXJlY3Rpb25fZm9ybWF0dGVkX3N0cmluZ3M9dHJ1ZVx1MDAyNm5ldHdvcmtsZXNzX3JlcXVlc3RfYWdlX2xpbWl0PTMwXHUwMDI2aHRtbDVfbG9uZ19yZWJ1ZmZlcl9qaWdnbGVfY210X2RlbGF5X21zPTBcdTAwMjZodG1sNV9kZl9kb3duZ3JhZGVfdGhyZXNoPTAuMlx1MDAyNmtldmxhcl9hbGxvd19tdWx0aXN0ZXBfdmlkZW9faW5pdD10cnVlXHUwMDI2d2ViX25ldHdvcmtfY29tYmluZWRfY2F0Y2g9dHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9hYzM9dHJ1ZVx1MDAyNnBsYXllcl9kZXN0cm95X29sZF92ZXJzaW9uPXRydWVcdTAwMjZsb2dfanNfZXhjZXB0aW9uc19mcmFjdGlvbj0xLjBcdTAwMjZodG1sNV9lbmFibGVfaW5fdmlkZW9fb3ZlcmxheV9hZF9pbl9wYWNmPXRydWVcdTAwMjZ3ZWJfcG9zdF9zZWFyY2g9dHJ1ZVx1MDAyNmh0bWw1X2hlYXJ0YmVhdF9zZXRfZW5kZWQ9dHJ1ZVx1MDAyNmlnbm9yZV9lbXB0eV94aHI9dHJ1ZVx1MDAyNmh0bWw1X3NhZmFyaV9kZXNrdG9wX2VtZV9taW5fdmVyc2lvbj0wXHUwMDI2aHRtbDVfY3J5cHRvX3BlcmlvZF9zZWNzX2Zyb21fZW1zZz10cnVlXHUwMDI2aHRtbDVfc3VzcGVuZF9sb2FkZXI9dHJ1ZVx1MDAyNndlYl9wbGF5ZXJfcmVzcG9uc2VfZmFpcnBsYXlfY29uZmlnX2tpbGxzd2l0Y2g9dHJ1ZVx1MDAyNmh0bWw1X2xpdmVfcXVhbGl0eV9jYXA9MFx1MDAyNndlYl9wbGF5ZXJfbGl2ZV9tb25pdG9yX2Vudl9raWxsc3dpdGNoMj10cnVlXHUwMDI2d2ViX21hY3JvX21hcmtlcnNfc25hcHBpbmdfdGhyZXNob2xkPTRcdTAwMjZodG1sNV9zZXRfZW5kZWRfaW5fcGZ4X2xpdmU9dHJ1ZVx1MDAyNmh0bWw1X3JlbW92ZV9ub3Rfc2VydmFibGVfY2hlY2tfa2lsbHN3aXRjaD10cnVlXHUwMDI2aHRtbDVfdGltZV9iYXNlZF9jb25zb2xpZGF0aW9uX21zPTEwXHUwMDI2aHRtbDVfbWluX3JlYWRiZWhpbmRfY2FwX3NlY3M9NjBcdTAwMjZodG1sNV9yZXN0b3JlX3BlcmZfY2FwPWZhbHNlXHUwMDI2aHRtbDVfc291cmNlX2J1ZmZlcl9hdHRhY2hfcmV0cnlfbGltaXQ9MFx1MDAyNmVuYWJsZV9zdmdfbW9kZV9vbl9lbWJlZF9tb2JpbGU9dHJ1ZVx1MDAyNmh0bWw1X2NvbnRyb2xfZmxvd19pbmNsdWRlX3RyaWdnZXJfbG9nZ2luZ19pbl90bXBfbG9ncz10cnVlXHUwMDI2bXdlYl9lbmFibGVfc2tpcHBhYmxlc19vbl9qaW9fcGhvbmU9dHJ1ZVx1MDAyNmh0bWw1X21ha2VfcGFjZl9pbl92aWRlb19vdmVybGF5X2V2aWN0YWJsZT10cnVlXHUwMDI2a2V2bGFyX3F1ZXVlX3VzZV9kZWRpY2F0ZWRfbGlzdF90eXBlPXRydWVcdTAwMjZodG1sNV9pb3M3X2ZvcmNlX3BsYXlfb25fc3RhbGw9dHJ1ZVx1MDAyNmRpc2FibGVfbmV3X3BhdXNlX3N0YXRlMz10cnVlXHUwMDI2YnVsbGVpdF91c2VfdG91Y2hfZXZlbnRzX2Zvcl9za2lwPXRydWVcdTAwMjZlbmFibGVfdmVfdHJhY2tlcl9rZXk9dHJ1ZVx1MDAyNmh0bWw1X3ZwOV9uZXdfbWltZT10cnVlXHUwMDI2bXdlYl9tdXRlZF9hdXRvcGxheV9hbmltYXRpb249c2hyaW5rXHUwMDI2aHRtbDVfbm90X3ZwOV9zdXBwb3J0ZWRfcXVhbGl0eV9jYXA9MFx1MDAyNmh0bWw1X3N1YnNlZ21lbnRfcmVhZGFoZWFkX3RhcmdldF9idWZmZXJfaGVhbHRoX3NlY3M9MC41Ijt9eXRjZmcuc2V0KHsnV0VCX1BMQVlFUl9DT05URVhUX0NPTkZJR1MnOiBjb25maWdzfSk7fSkoKTs8L3NjcmlwdD4KCiAgPHNjcmlwdCA+CiAgICAoZnVuY3Rpb24oKSB7CiAgICAgIHZhciBzZXRGaWxsZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgZmlsbGVyRGF0YSA9IHsKICAgICAgICAgIGJyb3dzZTogewogICAgICAgICAgICBmaWxsZXI6IHRydWUsCiAgICAgICAgICAgIHBhZ2U6ICdicm93c2UnCiAgICAgICAgICB9LAogICAgICAgICAgaG9tZTogewogICAgICAgICAgICBmaWxsZXI6IHRydWUsCiAgICAgICAgICAgIHBhZ2U6ICdob21lJywKICAgICAgICAgICAgZW5kcG9pbnQ6IHsKICAgICAgICAgICAgICBjb21tYW5kTWV0YWRhdGE6IHsKICAgICAgICAgICAgICAgIHdlYkNvbW1hbmRNZXRhZGF0YTogewogICAgICAgICAgICAgICAgICB1cmw6ICIvIiwKICAgICAgICAgICAgICAgICAgd2ViUGFnZVR5cGU6ICJXRUJfUEFHRV9UWVBFX0JST1dTRSIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHVybEVuZHBvaW50OiB7CiAgICAgICAgICAgICAgICB1cmw6ICIvIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgcmVzcG9uc2U6IHsKICAgICAgICAgICAgICBjb250ZW50czogewogICAgICAgICAgICAgICAgdHdvQ29sdW1uQnJvd3NlUmVzdWx0c1JlbmRlcmVyOiB7CiAgICAgICAgICAgICAgICAgIHRhYnM6IFt7CiAgICAgICAgICAgICAgICAgICAgdGFiUmVuZGVyZXI6IHsKICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgY29udGVudDogewogICAgICAgICAgICAgICAgICAgICAgICByaWNoR3JpZFJlbmRlcmVyOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbnM6IFt7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0Q29udGludWF0aW9uRGF0YToge2NvbnRpbnVhdGlvbjogJyd9CiAgICAgICAgICAgICAgICAgICAgICAgICAgfV0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfV0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBzZWFyY2g6IHsKICAgICAgICAgICAgZmlsbGVyOiB0cnVlLAogICAgICAgICAgICBwYWdlOiAnc2VhcmNoJywKICAgICAgICAgICAgZW5kcG9pbnQ6IHsKICAgICAgICAgICAgICBjb21tYW5kTWV0YWRhdGE6IHsKICAgICAgICAgICAgICAgIHdlYkNvbW1hbmRNZXRhZGF0YTogewogICAgICAgICAgICAgICAgICB1cmw6ICIvcmVzdWx0cyIsCiAgICAgICAgICAgICAgICAgIHdlYlBhZ2VUeXBlOiAiV0VCX1BBR0VfVFlQRV9TRUFSQ0giCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB1cmxFbmRwb2ludDogewogICAgICAgICAgICAgICAgdXJsOiAiL3Jlc3VsdHMiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICByZXNwb25zZTogewogICAgICAgICAgICAgIGNvbnRlbnRzOiB7CiAgICAgICAgICAgICAgICB0d29Db2x1bW5TZWFyY2hSZXN1bHRzUmVuZGVyZXI6IHsKICAgICAgICAgICAgICAgICAgcHJpbWFyeUNvbnRlbnRzOiB7CiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbkxpc3RSZW5kZXJlcjogewogICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IFtdLAogICAgICAgICAgICAgICAgICAgICAgc3ViTWVudTogewogICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hTdWJNZW51UmVuZGVyZXI6IHt9CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBzZWNvbmRhcnlDb250ZW50czogewogICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeVNlYXJjaENvbnRhaW5lclJlbmRlcmVyOiB7CiAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogW10KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB3YXRjaDogewogICAgICAgICAgICBmaWxsZXI6IHRydWUsCiAgICAgICAgICAgIHBhZ2U6ICd3YXRjaCcsCiAgICAgICAgICAgIGVuZHBvaW50OiB7CiAgICAgICAgICAgICAgY29tbWFuZE1ldGFkYXRhOiB7CiAgICAgICAgICAgICAgICB3ZWJDb21tYW5kTWV0YWRhdGE6IHsKICAgICAgICAgICAgICAgICAgdXJsOiAiL3dhdGNoIiwKICAgICAgICAgICAgICAgICAgd2ViUGFnZVR5cGU6ICJXRUJfUEFHRV9UWVBFX1dBVENIIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgdXJsRW5kcG9pbnQ6IHsKICAgICAgICAgICAgICAgIHVybDogIi93YXRjaCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHBsYXllclJlc3BvbnNlOiB7CiAgICAgICAgICAgICAgcGxheWFiaWxpdHlTdGF0dXM6IHsKICAgICAgICAgICAgICAgIHN0YXR1czogJ09LJwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgcmVzcG9uc2U6IHsKICAgICAgICAgICAgICBjb250ZW50czogewogICAgICAgICAgICAgICAgdHdvQ29sdW1uV2F0Y2hOZXh0UmVzdWx0czogewogICAgICAgICAgICAgICAgICByZXN1bHRzOiB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0czogewogICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IFt7CiAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvUHJpbWFyeUluZm9SZW5kZXJlcjoge30sCiAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvU2Vjb25kYXJ5SW5mb1JlbmRlcmVyOiB7fQogICAgICAgICAgICAgICAgICAgICAgfV0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHNlY29uZGFyeVJlc3VsdHM6IHsKICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlSZXN1bHRzOiB7fQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93Lnl0Y2ZnLnNldCgnRklMTEVSX0RBVEEnLCBmaWxsZXJEYXRhKTsKICAgICAgfTsKCiAgICAgICAgd2luZG93LmdldFBhZ2VEYXRhID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAod2luZG93Lnl0Y3NpKSB7d2luZG93Lnl0Y3NpLnRpY2soInByIiwgbnVsbCwgJycpO30KICAgICAgICAgIHZhciBlbmRwb2ludCA9IG51bGw7CiAgICAgICAgICAgIGVuZHBvaW50ID0geyJjb21tYW5kTWV0YWRhdGEiOnsid2ViQ29tbWFuZE1ldGFkYXRhIjp7InVybCI6Ii93YXRjaD92PVNVa1h2V24xbTdRIiwid2ViUGFnZVR5cGUiOiJXRUJfUEFHRV9UWVBFX1VOS05PV04iLCJyb290VmUiOjgzNzY5fX0sInVybEVuZHBvaW50Ijp7InVybCI6Ii93YXRjaD92PVNVa1h2V24xbTdRIn19OwogICAgICAgICAgdmFyIGRhdGEgPSB7CiAgICAgICAgICAgICAgcGFnZTogIndhdGNoIiwKICAgICAgICAgICAgICBwbGF5ZXI6IHl0cGxheWVyLmNvbmZpZywKICAgICAgICAgICAgICBwbGF5ZXJSZXNwb25zZTogd2luZG93Lnl0SW5pdGlhbFBsYXllclJlc3BvbnNlLAogICAgICAgICAgICAgICAgdXJsOiAiXC93YXRjaD92PVNVa1h2V24xbTdRIiwKICAgICAgICAgICAgICByZXNwb25zZTogd2luZG93Lnl0SW5pdGlhbERhdGEsCiAgICAgICAgICAgICAgZW5kcG9pbnQ6IGVuZHBvaW50CiAgICAgICAgICB9OwogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgZGF0YTogZGF0YSwKICAgICAgICAgICAgZW5kcG9pbnQ6IGVuZHBvaW50CiAgICAgICAgICB9OwogICAgICAgIH07CgogICAgICAgIGlmICh3aW5kb3cubG9hZERhdGFIb29rKSB7CiAgICAgICAgICB2YXIgcGFnZURhdGEgPSB3aW5kb3cuZ2V0UGFnZURhdGEoKTsKICAgICAgICAgIHdpbmRvdy5sb2FkRGF0YUhvb2socGFnZURhdGEuZW5kcG9pbnQsIHBhZ2VEYXRhLmRhdGEpOwogICAgICAgICAgd2luZG93LmxvYWREYXRhSG9vayA9IG51bGw7CiAgICAgICAgfQogICAgICAgIHNldEZpbGxlcigpOwoKICAgIH0pKCk7CgogICAgICB2YXIgbWV0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGEnKTsKICAgICAgbWV0YS5uYW1lID0gJ3JlZmVycmVyJzsKICAgICAgbWV0YS5jb250ZW50ID0gJ29yaWdpbic7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQobWV0YSk7CiAgICAgIHZhciBub2luZGV4TWV0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGEnKTsKICAgICAgbWV0YS5uYW1lID0gJ3JvYm90cyc7CiAgICAgIG1ldGEuY29udGVudCA9ICdub2luZGV4JzsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChtZXRhKTsKCiAgPC9zY3JpcHQ+CiAgCjxzY3JpcHQgPmlmICh3aW5kb3cueXRjc2kpIHt3aW5kb3cueXRjc2kuaW5mbygic3QiLCAxMTYsICcnKTt9PC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4=
57
+ http_version:
58
+ recorded_at: Tue, 27 Oct 2020 18:33:35 GMT
481
59
  recorded_with: VCR 3.0.3