@ultraviolet/plus 0.15.0 → 0.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (615) hide show
  1. package/dist/components/CodeEditor/CodeEditor.d.ts +14 -0
  2. package/dist/components/CodeEditor/CodeEditor.js +36 -0
  3. package/dist/components/CodeEditor/index.d.ts +1 -0
  4. package/dist/components/ContentCard/Skeleton.d.ts +5 -0
  5. package/dist/components/ContentCard/Skeleton.js +41 -0
  6. package/dist/components/ContentCard/index.d.ts +33 -0
  7. package/dist/components/ContentCard/index.js +152 -0
  8. package/dist/components/ContentCardGroup/Card.d.ts +11 -0
  9. package/dist/components/ContentCardGroup/Card.js +91 -0
  10. package/dist/components/ContentCardGroup/SkeletonCard.d.ts +1 -0
  11. package/dist/components/ContentCardGroup/SkeletonCard.js +32 -0
  12. package/dist/components/ContentCardGroup/index.d.ts +16 -0
  13. package/dist/components/ContentCardGroup/index.js +31 -0
  14. package/dist/components/Conversation/index.d.ts +35 -0
  15. package/dist/components/Conversation/index.js +126 -0
  16. package/dist/components/CustomerSatisfaction/assets/1-5.svg.js +4 -0
  17. package/dist/components/CustomerSatisfaction/assets/1-5NB.svg.js +4 -0
  18. package/dist/components/CustomerSatisfaction/assets/2-5.svg.js +4 -0
  19. package/dist/components/CustomerSatisfaction/assets/2-5NB.svg.js +4 -0
  20. package/dist/components/CustomerSatisfaction/assets/3-5.svg.js +4 -0
  21. package/dist/components/CustomerSatisfaction/assets/3-5NB.svg.js +4 -0
  22. package/dist/components/CustomerSatisfaction/assets/4-5.svg.js +4 -0
  23. package/dist/components/CustomerSatisfaction/assets/4-5NB.svg.js +4 -0
  24. package/dist/components/CustomerSatisfaction/assets/5-5.svg.js +4 -0
  25. package/dist/components/CustomerSatisfaction/assets/5-5NB.svg.js +4 -0
  26. package/dist/components/CustomerSatisfaction/index.d.ts +30 -0
  27. package/dist/components/CustomerSatisfaction/index.js +121 -0
  28. package/dist/components/EstimateCost/Components/CustomUnitInput.d.ts +9 -0
  29. package/dist/components/EstimateCost/Components/CustomUnitInput.js +33 -0
  30. package/dist/components/EstimateCost/Components/Item.d.ts +115 -0
  31. package/dist/components/EstimateCost/Components/Item.js +301 -0
  32. package/dist/components/EstimateCost/Components/LineThrough.d.ts +9 -0
  33. package/dist/components/EstimateCost/Components/LineThrough.js +16 -0
  34. package/dist/components/EstimateCost/Components/NumberInput.d.ts +9 -0
  35. package/dist/components/EstimateCost/Components/NumberInput.js +29 -0
  36. package/dist/components/EstimateCost/Components/Region.d.ts +22 -0
  37. package/dist/components/EstimateCost/Components/Region.js +39 -0
  38. package/dist/components/EstimateCost/Components/Regular.d.ts +9 -0
  39. package/dist/components/EstimateCost/Components/Regular.js +33 -0
  40. package/dist/components/EstimateCost/Components/Strong.d.ts +16 -0
  41. package/dist/components/EstimateCost/Components/Strong.js +26 -0
  42. package/dist/components/EstimateCost/Components/Unit.d.ts +8 -0
  43. package/dist/components/EstimateCost/Components/Unit.js +48 -0
  44. package/dist/components/EstimateCost/Components/UnitInput.d.ts +33 -0
  45. package/dist/components/EstimateCost/Components/UnitInput.js +88 -0
  46. package/dist/components/EstimateCost/Components/Zone.d.ts +20 -0
  47. package/dist/components/EstimateCost/Components/Zone.js +38 -0
  48. package/dist/components/EstimateCost/EstimateCost.d.ts +154 -0
  49. package/dist/components/EstimateCost/EstimateCost.js +86 -0
  50. package/dist/components/EstimateCost/EstimateCostContent.d.ts +2 -0
  51. package/dist/components/EstimateCost/EstimateCostContent.js +243 -0
  52. package/dist/components/EstimateCost/EstimateCostProvider.d.ts +25 -0
  53. package/dist/{src/components → components}/EstimateCost/EstimateCostProvider.js +11 -13
  54. package/dist/components/EstimateCost/OverlayComponent.d.ts +26 -0
  55. package/dist/components/EstimateCost/OverlayComponent.js +120 -0
  56. package/dist/components/EstimateCost/OverlayContext.d.ts +12 -0
  57. package/dist/components/EstimateCost/OverlayContext.js +14 -0
  58. package/dist/components/EstimateCost/componentStyle.d.ts +107 -0
  59. package/dist/components/EstimateCost/componentStyle.js +228 -0
  60. package/dist/components/EstimateCost/constants.d.ts +6 -0
  61. package/dist/{src/components → components}/EstimateCost/constants.js +8 -9
  62. package/dist/components/EstimateCost/helper.d.ts +9 -0
  63. package/dist/{src/components → components}/EstimateCost/helper.js +4 -8
  64. package/dist/components/EstimateCost/index.d.ts +3 -0
  65. package/dist/components/EstimateCost/locales/en.d.ts +22 -0
  66. package/dist/components/EstimateCost/locales/en.js +24 -0
  67. package/dist/components/EstimateCost/types.d.ts +132 -0
  68. package/dist/components/FAQ/index.d.ts +11 -0
  69. package/dist/components/FAQ/index.js +34 -0
  70. package/dist/components/Navigation/Navigation.d.ts +61 -0
  71. package/dist/components/Navigation/Navigation.js +20 -0
  72. package/dist/components/Navigation/NavigationContent.d.ts +10 -0
  73. package/dist/components/Navigation/NavigationContent.js +214 -0
  74. package/dist/components/Navigation/NavigationProvider.d.ts +87 -0
  75. package/dist/{src/components → components}/Navigation/NavigationProvider.js +34 -34
  76. package/dist/components/Navigation/components/Group.d.ts +7 -0
  77. package/dist/components/Navigation/components/Group.js +55 -0
  78. package/dist/components/Navigation/components/Item.d.ts +81 -0
  79. package/dist/components/Navigation/components/Item.js +425 -0
  80. package/dist/components/Navigation/components/PinnedItems.d.ts +8 -0
  81. package/dist/components/Navigation/components/PinnedItems.js +103 -0
  82. package/dist/components/Navigation/components/Separator.d.ts +1 -0
  83. package/dist/components/Navigation/components/Separator.js +15 -0
  84. package/dist/components/Navigation/constants.d.ts +14 -0
  85. package/dist/components/Navigation/constants.js +37 -0
  86. package/dist/components/Navigation/index.d.ts +2 -0
  87. package/dist/components/Navigation/locales/en.d.ts +10 -0
  88. package/dist/components/Navigation/locales/en.js +12 -0
  89. package/dist/components/SteppedListCard/Step.d.ts +17 -0
  90. package/dist/components/SteppedListCard/Step.js +35 -0
  91. package/dist/components/SteppedListCard/SteppedListContainer.d.ts +49 -0
  92. package/dist/components/SteppedListCard/SteppedListContainer.js +78 -0
  93. package/dist/components/SteppedListCard/SteppedListContent.d.ts +9 -0
  94. package/dist/components/SteppedListCard/SteppedListContent.js +65 -0
  95. package/dist/components/SteppedListCard/helper.d.ts +27 -0
  96. package/dist/components/SteppedListCard/helper.js +37 -0
  97. package/dist/components/SteppedListCard/index.d.ts +1 -0
  98. package/dist/components/index.d.ts +9 -0
  99. package/dist/index.d.ts +1 -636
  100. package/dist/index.js +25 -0
  101. package/package.json +15 -9
  102. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/Icons.js +0 -55
  103. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/ai.svg.js +0 -20
  104. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/application-integration.svg.js +0 -26
  105. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/baremetal.svg.js +0 -28
  106. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/billing.svg.js +0 -26
  107. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/compute.svg.js +0 -26
  108. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/console.svg.js +0 -26
  109. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/containers.svg.js +0 -24
  110. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/database.svg.js +0 -22
  111. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/datacenter.svg.js +0 -26
  112. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/dedicated-server.svg.js +0 -24
  113. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/dev-tools.svg.js +0 -32
  114. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/documentation.svg.js +0 -26
  115. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/iot.svg.js +0 -30
  116. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/labs.svg.js +0 -28
  117. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/managed-services.svg.js +0 -22
  118. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/network.svg.js +0 -31
  119. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/observability.svg.js +0 -22
  120. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/pin.svg.js +0 -29
  121. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/security.svg.js +0 -26
  122. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/serverless.svg.js +0 -22
  123. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/storage.svg.js +0 -22
  124. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/tools-services.svg.js +0 -24
  125. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/use-case.svg.js +0 -26
  126. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/vpc.svg.js +0 -60
  127. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/assets/web-hosting.svg.js +0 -24
  128. package/dist/@ultraviolet/icons/dist/components/CategoryIcon/index.js +0 -36
  129. package/dist/@ultraviolet/icons/dist/components/Icon/Icons.js +0 -356
  130. package/dist/@ultraviolet/icons/dist/components/Icon/SmallIcons.js +0 -356
  131. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/anchor.svg.js +0 -15
  132. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/arrow-down.svg.js +0 -17
  133. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/arrow-left-bottom.svg.js +0 -17
  134. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/arrow-left-double.svg.js +0 -17
  135. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/arrow-left.svg.js +0 -17
  136. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/arrow-right-bottom.svg.js +0 -17
  137. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/arrow-right-double.svg.js +0 -17
  138. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/arrow-right.svg.js +0 -17
  139. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/arrow-up.svg.js +0 -17
  140. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/asterisk.svg.js +0 -15
  141. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/attach.svg.js +0 -17
  142. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/burger.svg.js +0 -17
  143. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/cancel.svg.js +0 -17
  144. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/check.svg.js +0 -17
  145. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/close-circle-outline.svg.js +0 -16
  146. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/close.svg.js +0 -15
  147. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/copy-content.svg.js +0 -21
  148. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/detach.svg.js +0 -21
  149. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/dots-horizontal.svg.js +0 -15
  150. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/dots-vertical.svg.js +0 -15
  151. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/download.svg.js +0 -17
  152. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/drag-variant.svg.js +0 -15
  153. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/drag.svg.js +0 -15
  154. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/east.svg.js +0 -17
  155. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/equal.svg.js +0 -15
  156. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/escape.svg.js +0 -17
  157. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/expand-more.svg.js +0 -15
  158. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/expand.svg.js +0 -17
  159. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/github.svg.js +0 -17
  160. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/instagram.svg.js +0 -17
  161. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/linkedin.svg.js +0 -17
  162. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/logout.svg.js +0 -17
  163. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/minus.svg.js +0 -17
  164. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/north.svg.js +0 -17
  165. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/open-in-new.svg.js +0 -21
  166. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/organization.svg.js +0 -15
  167. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/plus.svg.js +0 -15
  168. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/progress-check.svg.js +0 -17
  169. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/ray-end-arrow.svg.js +0 -19
  170. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/ray-start-arrow.svg.js +0 -19
  171. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/ray-start-end.svg.js +0 -17
  172. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/ray-top-arrow.svg.js +0 -19
  173. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/reboot.svg.js +0 -17
  174. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/restore.svg.js +0 -15
  175. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/revoke.svg.js +0 -21
  176. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/rss.svg.js +0 -17
  177. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/search.svg.js +0 -17
  178. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/send.svg.js +0 -15
  179. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/slack.svg.js +0 -17
  180. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/sort.svg.js +0 -17
  181. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/south.svg.js +0 -17
  182. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/switch-orga.svg.js +0 -15
  183. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/twitter.svg.js +0 -15
  184. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/upload.svg.js +0 -17
  185. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/view.svg.js +0 -15
  186. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/west.svg.js +0 -17
  187. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default/youtube.svg.js +0 -17
  188. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/address.svg.js +0 -17
  189. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/alert-circle.svg.js +0 -17
  190. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/auto-fix.svg.js +0 -15
  191. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/book-open-outline.svg.js +0 -17
  192. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/bullhorn.svg.js +0 -17
  193. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/calculator.svg.js +0 -17
  194. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/calendar-range.svg.js +0 -17
  195. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/chat.svg.js +0 -17
  196. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/check-circle.svg.js +0 -17
  197. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/clock-outline.svg.js +0 -17
  198. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/console.svg.js +0 -17
  199. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/credential.svg.js +0 -17
  200. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/credit-card.svg.js +0 -17
  201. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/database.svg.js +0 -17
  202. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/delete.svg.js +0 -17
  203. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/doc.svg.js +0 -17
  204. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/earth.svg.js +0 -17
  205. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/email-remove.svg.js +0 -21
  206. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/email.svg.js +0 -17
  207. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/eye-off.svg.js +0 -17
  208. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/eye.svg.js +0 -17
  209. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/filter.svg.js +0 -17
  210. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/folder.svg.js +0 -17
  211. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/help-circle.svg.js +0 -17
  212. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/id.svg.js +0 -17
  213. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/information.svg.js +0 -17
  214. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/lock.svg.js +0 -17
  215. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/members.svg.js +0 -17
  216. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/moon.svg.js +0 -17
  217. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/mosaic.svg.js +0 -17
  218. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/pen.svg.js +0 -20
  219. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/pencil.svg.js +0 -17
  220. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/phone.svg.js +0 -17
  221. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/pin.svg.js +0 -20
  222. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/play.svg.js +0 -17
  223. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/privacy.svg.js +0 -17
  224. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/profile.svg.js +0 -17
  225. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/rocket.svg.js +0 -17
  226. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/settings.svg.js +0 -17
  227. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/sun.svg.js +0 -17
  228. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/support.svg.js +0 -17
  229. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/unlock.svg.js +0 -17
  230. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/unpin.svg.js +0 -20
  231. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-outline/weather-night.svg.js +0 -19
  232. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/address.svg.js +0 -17
  233. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/alert-circle.svg.js +0 -17
  234. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/auto-fix.svg.js +0 -15
  235. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/book-open-outline.svg.js +0 -15
  236. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/bullhorn.svg.js +0 -15
  237. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/calculator.svg.js +0 -17
  238. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/calendar-range.svg.js +0 -19
  239. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/chat.svg.js +0 -17
  240. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/check-circle.svg.js +0 -17
  241. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/clock-outline.svg.js +0 -17
  242. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/console.svg.js +0 -17
  243. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/credential.svg.js +0 -17
  244. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/credit-card.svg.js +0 -19
  245. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/database.svg.js +0 -19
  246. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/delete.svg.js +0 -17
  247. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/doc.svg.js +0 -17
  248. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/earth.svg.js +0 -17
  249. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/email-remove.svg.js +0 -21
  250. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/email.svg.js +0 -17
  251. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/eye-off.svg.js +0 -19
  252. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/eye.svg.js +0 -19
  253. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/filter.svg.js +0 -17
  254. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/folder.svg.js +0 -15
  255. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/help-circle.svg.js +0 -17
  256. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/id.svg.js +0 -17
  257. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/information.svg.js +0 -17
  258. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/lock.svg.js +0 -17
  259. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/members.svg.js +0 -15
  260. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/moon.svg.js +0 -17
  261. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/mosaic.svg.js +0 -17
  262. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/pen.svg.js +0 -19
  263. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/pencil.svg.js +0 -17
  264. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/phone.svg.js +0 -17
  265. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/pin.svg.js +0 -19
  266. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/play.svg.js +0 -17
  267. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/privacy.svg.js +0 -17
  268. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/profile.svg.js +0 -15
  269. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/rocket.svg.js +0 -21
  270. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/settings.svg.js +0 -17
  271. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/sun.svg.js +0 -15
  272. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/support.svg.js +0 -17
  273. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/unlock.svg.js +0 -15
  274. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/unpin.svg.js +0 -19
  275. package/dist/@ultraviolet/icons/dist/components/Icon/assets/default-solid/weather-night.svg.js +0 -19
  276. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/anchor.svg.js +0 -15
  277. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/arrow-down.svg.js +0 -17
  278. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/arrow-left-bottom.svg.js +0 -17
  279. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/arrow-left-double.svg.js +0 -17
  280. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/arrow-left.svg.js +0 -17
  281. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/arrow-right-bottom.svg.js +0 -17
  282. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/arrow-right-double.svg.js +0 -17
  283. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/arrow-right.svg.js +0 -17
  284. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/arrow-up.svg.js +0 -17
  285. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/asterisk.svg.js +0 -15
  286. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/attach.svg.js +0 -21
  287. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/burger.svg.js +0 -17
  288. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/cancel.svg.js +0 -17
  289. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/check.svg.js +0 -17
  290. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/close-circle-outline.svg.js +0 -16
  291. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/close.svg.js +0 -15
  292. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/copy-content.svg.js +0 -21
  293. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/detach.svg.js +0 -21
  294. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/dots-horizontal.svg.js +0 -15
  295. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/dots-vertical.svg.js +0 -15
  296. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/download.svg.js +0 -17
  297. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/drag-variant.svg.js +0 -15
  298. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/drag.svg.js +0 -15
  299. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/east.svg.js +0 -17
  300. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/equal.svg.js +0 -15
  301. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/escape.svg.js +0 -17
  302. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/expand-more.svg.js +0 -15
  303. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/expand.svg.js +0 -17
  304. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/github.svg.js +0 -17
  305. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/instagram.svg.js +0 -17
  306. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/linkedin.svg.js +0 -17
  307. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/logout.svg.js +0 -17
  308. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/minus.svg.js +0 -15
  309. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/north.svg.js +0 -17
  310. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/open-in-new.svg.js +0 -17
  311. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/organization.svg.js +0 -15
  312. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/plus.svg.js +0 -15
  313. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/progress-check.svg.js +0 -17
  314. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/ray-end-arrow.svg.js +0 -19
  315. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/ray-start-arrow.svg.js +0 -19
  316. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/ray-start-end.svg.js +0 -17
  317. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/ray-top-arrow.svg.js +0 -19
  318. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/reboot.svg.js +0 -17
  319. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/restore.svg.js +0 -15
  320. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/revoke.svg.js +0 -17
  321. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/rss.svg.js +0 -17
  322. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/search.svg.js +0 -17
  323. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/send.svg.js +0 -15
  324. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/slack.svg.js +0 -17
  325. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/sort.svg.js +0 -17
  326. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/south.svg.js +0 -17
  327. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/switch-orga.svg.js +0 -15
  328. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/twitter.svg.js +0 -15
  329. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/upload.svg.js +0 -17
  330. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/view.svg.js +0 -15
  331. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/west.svg.js +0 -17
  332. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small/youtube.svg.js +0 -17
  333. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/address.svg.js +0 -17
  334. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/alert-circle.svg.js +0 -17
  335. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/auto-fix.svg.js +0 -22
  336. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/book-open-outline.svg.js +0 -17
  337. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/bullhorn.svg.js +0 -17
  338. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/calculator.svg.js +0 -17
  339. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/calendar-range.svg.js +0 -17
  340. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/chat.svg.js +0 -17
  341. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/check-circle.svg.js +0 -17
  342. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/clock-outline.svg.js +0 -17
  343. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/console.svg.js +0 -17
  344. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/credential.svg.js +0 -17
  345. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/credit-card.svg.js +0 -17
  346. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/database.svg.js +0 -17
  347. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/delete.svg.js +0 -17
  348. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/doc.svg.js +0 -17
  349. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/earth.svg.js +0 -17
  350. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/email-remove.svg.js +0 -21
  351. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/email.svg.js +0 -17
  352. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/eye-off.svg.js +0 -17
  353. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/eye.svg.js +0 -17
  354. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/filter.svg.js +0 -24
  355. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/folder.svg.js +0 -17
  356. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/help-circle.svg.js +0 -17
  357. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/id.svg.js +0 -17
  358. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/information.svg.js +0 -17
  359. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/lock.svg.js +0 -17
  360. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/members.svg.js +0 -17
  361. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/moon.svg.js +0 -17
  362. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/mosaic.svg.js +0 -17
  363. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/pen.svg.js +0 -20
  364. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/pencil.svg.js +0 -17
  365. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/phone.svg.js +0 -17
  366. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/pin.svg.js +0 -20
  367. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/play.svg.js +0 -17
  368. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/privacy.svg.js +0 -17
  369. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/profile.svg.js +0 -17
  370. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/rocket.svg.js +0 -24
  371. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/settings.svg.js +0 -17
  372. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/sun.svg.js +0 -17
  373. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/support.svg.js +0 -17
  374. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/unlock.svg.js +0 -17
  375. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/unpin.svg.js +0 -20
  376. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-outline/weather-night.svg.js +0 -19
  377. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/address.svg.js +0 -17
  378. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/alert-circle.svg.js +0 -17
  379. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/auto-fix.svg.js +0 -15
  380. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/book-open-outline.svg.js +0 -15
  381. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/bullhorn.svg.js +0 -15
  382. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/calculator.svg.js +0 -17
  383. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/calendar-range.svg.js +0 -19
  384. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/chat.svg.js +0 -15
  385. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/check-circle.svg.js +0 -17
  386. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/clock-outline.svg.js +0 -17
  387. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/console.svg.js +0 -17
  388. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/credential.svg.js +0 -17
  389. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/credit-card.svg.js +0 -19
  390. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/database.svg.js +0 -19
  391. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/delete.svg.js +0 -17
  392. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/doc.svg.js +0 -17
  393. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/earth.svg.js +0 -17
  394. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/email-remove.svg.js +0 -15
  395. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/email.svg.js +0 -17
  396. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/eye-off.svg.js +0 -19
  397. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/eye.svg.js +0 -19
  398. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/filter.svg.js +0 -15
  399. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/folder.svg.js +0 -15
  400. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/help-circle.svg.js +0 -17
  401. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/id.svg.js +0 -17
  402. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/information.svg.js +0 -17
  403. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/lock.svg.js +0 -17
  404. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/members.svg.js +0 -15
  405. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/moon.svg.js +0 -15
  406. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/mosaic.svg.js +0 -15
  407. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/pen.svg.js +0 -20
  408. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/pencil.svg.js +0 -17
  409. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/phone.svg.js +0 -17
  410. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/pin.svg.js +0 -19
  411. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/play.svg.js +0 -17
  412. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/privacy.svg.js +0 -17
  413. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/profile.svg.js +0 -15
  414. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/rocket.svg.js +0 -19
  415. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/settings.svg.js +0 -17
  416. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/sun.svg.js +0 -15
  417. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/support.svg.js +0 -17
  418. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/unlock.svg.js +0 -15
  419. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/unpin.svg.js +0 -19
  420. package/dist/@ultraviolet/icons/dist/components/Icon/assets/small-solid/weather-night.svg.js +0 -19
  421. package/dist/@ultraviolet/icons/dist/components/Icon/index.js +0 -120
  422. package/dist/@ultraviolet/icons/dist/components/ProductIcon/Icons.js +0 -291
  423. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/abuse.svg.js +0 -26
  424. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/account-experience.svg.js +0 -48
  425. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/additional-disk.svg.js +0 -55
  426. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/advanced-settings.svg.js +0 -34
  427. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/ansible.svg.js +0 -29
  428. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/api-gateway.svg.js +0 -32
  429. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/api-key.svg.js +0 -55
  430. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/api.svg.js +0 -45
  431. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/apple-silicon.svg.js +0 -32
  432. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/application-library.svg.js +0 -32
  433. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/application.svg.js +0 -44
  434. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/backends.svg.js +0 -30
  435. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/bandwidth.svg.js +0 -37
  436. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/basic-support.svg.js +0 -33
  437. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/billing.svg.js +0 -43
  438. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/block-storage.svg.js +0 -32
  439. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/cb.svg.js +0 -39
  440. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/cdn.svg.js +0 -37
  441. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/changelog.svg.js +0 -34
  442. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/cli.svg.js +0 -32
  443. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/cloud-hosting.svg.js +0 -46
  444. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/cockpit.svg.js +0 -53
  445. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/cold-storage.svg.js +0 -46
  446. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/console.svg.js +0 -32
  447. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/containers.svg.js +0 -36
  448. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/cost-manager.svg.js +0 -73
  449. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/data-warehouse.svg.js +0 -49
  450. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/ddos.svg.js +0 -52
  451. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/ddx-core-servers.svg.js +0 -46
  452. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/ddx-pro-servers.svg.js +0 -46
  453. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/ddx-start-servers.svg.js +0 -46
  454. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/dedibackup.svg.js +0 -43
  455. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/dedibox.svg.js +0 -48
  456. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/dedicated-control-plane.svg.js +0 -82
  457. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/dedicated-server.svg.js +0 -30
  458. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/devices.svg.js +0 -30
  459. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/direct-connect.svg.js +0 -30
  460. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/distributed-data-lab.svg.js +0 -80
  461. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/dns.svg.js +0 -34
  462. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/document-db.svg.js +0 -36
  463. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/documentation.svg.js +0 -45
  464. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/domains.svg.js +0 -51
  465. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/edge-services.svg.js +0 -75
  466. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/elastic-metal-aluminium.svg.js +0 -61
  467. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/elastic-metal-beryllium.svg.js +0 -61
  468. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/elastic-metal-iridium.svg.js +0 -61
  469. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/elastic-metal-lithium.svg.js +0 -61
  470. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/elastic-metal-titanium.svg.js +0 -61
  471. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/elastic-metal.svg.js +0 -40
  472. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/environmental-footprint-calculator.svg.js +0 -49
  473. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/file.svg.js +0 -43
  474. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/flexible-ip.svg.js +0 -30
  475. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/folder.svg.js +0 -41
  476. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/front-ends.svg.js +0 -30
  477. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/functions.svg.js +0 -32
  478. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/gold-support.svg.js +0 -37
  479. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/hub-networks.svg.js +0 -34
  480. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/hub-routes.svg.js +0 -26
  481. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/iam.svg.js +0 -38
  482. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/icon-elastic-metal.svg.js +0 -54
  483. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/icon-sdk-js.svg.js +0 -48
  484. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/icon-sdk.svg.js +0 -46
  485. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/images.svg.js +0 -31
  486. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/inference.svg.js +0 -51
  487. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/instance-cost-optimized.svg.js +0 -37
  488. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/instance-enterprise.svg.js +0 -28
  489. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/instance-gpu.svg.js +0 -30
  490. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/instance-learn.svg.js +0 -37
  491. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/instance-pop.svg.js +0 -39
  492. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/instance-wop.svg.js +0 -44
  493. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/instance.svg.js +0 -30
  494. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/iot-edge.svg.js +0 -36
  495. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/iot.svg.js +0 -28
  496. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/ip-failover.svg.js +0 -34
  497. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/ipfs-naming.svg.js +0 -55
  498. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/ipfs.svg.js +0 -30
  499. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/jero.svg.js +0 -51
  500. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/k8s-kosmos.svg.js +0 -54
  501. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/kubernetes.svg.js +0 -30
  502. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/lb.svg.js +0 -39
  503. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/life-cycle-rules.svg.js +0 -33
  504. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/mac-mini-m2.svg.js +0 -32
  505. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/mac-mini.svg.js +0 -43
  506. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/managed-search-database.svg.js +0 -59
  507. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/monitoring.svg.js +0 -46
  508. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/multi-user.svg.js +0 -32
  509. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/nabu.svg.js +0 -51
  510. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/nats.svg.js +0 -40
  511. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/object-storage.svg.js +0 -30
  512. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/os.svg.js +0 -61
  513. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/packer.svg.js +0 -25
  514. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/placement-group.svg.js +0 -72
  515. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/platinum-support.svg.js +0 -33
  516. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/policy.svg.js +0 -46
  517. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/pool.svg.js +0 -30
  518. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/postgresql-mysql.svg.js +0 -36
  519. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/private-network.svg.js +0 -37
  520. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/public-gateway.svg.js +0 -30
  521. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/qaas.svg.js +0 -54
  522. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/queueing.svg.js +0 -31
  523. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/rabbit-mq.svg.js +0 -38
  524. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/rdb.svg.js +0 -30
  525. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/redis.svg.js +0 -31
  526. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/registry.svg.js +0 -36
  527. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/rocket.svg.js +0 -40
  528. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/router.svg.js +0 -50
  529. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/rpn-san.svg.js +0 -46
  530. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/rpn-v1.svg.js +0 -43
  531. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/rpn-v2.svg.js +0 -43
  532. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/rpn.svg.js +0 -43
  533. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/saving-plan.svg.js +0 -59
  534. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/sdk-go.svg.js +0 -55
  535. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/sdk-python.svg.js +0 -55
  536. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/secret-manager.svg.js +0 -36
  537. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/security-group.svg.js +0 -34
  538. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/sepa.svg.js +0 -31
  539. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/server.svg.js +0 -34
  540. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/serverless-db.svg.js +0 -49
  541. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/serverless-jobs.svg.js +0 -92
  542. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/service-level.svg.js +0 -46
  543. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/silver-support.svg.js +0 -38
  544. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/sms.svg.js +0 -32
  545. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/smtp.svg.js +0 -38
  546. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/snapshots.svg.js +0 -39
  547. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/sns.svg.js +0 -79
  548. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/sqs.svg.js +0 -51
  549. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/ssl-certificates.svg.js +0 -33
  550. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/store-servers.svg.js +0 -46
  551. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/support.svg.js +0 -40
  552. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/terraform.svg.js +0 -33
  553. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/transactional-email.svg.js +0 -31
  554. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/tutorial.svg.js +0 -38
  555. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/user.svg.js +0 -32
  556. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/verify-card.svg.js +0 -34
  557. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/video.svg.js +0 -34
  558. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/volume.svg.js +0 -30
  559. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/vpc.svg.js +0 -30
  560. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/vps-pro-servers.svg.js +0 -53
  561. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/vps-servers.svg.js +0 -51
  562. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/vps-start-servers.svg.js +0 -53
  563. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/web-platform.svg.js +0 -44
  564. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/webhosting.svg.js +0 -47
  565. package/dist/@ultraviolet/icons/dist/components/ProductIcon/assets/zone.svg.js +0 -31
  566. package/dist/@ultraviolet/icons/dist/components/ProductIcon/index.js +0 -53
  567. package/dist/@ultraviolet/icons/dist/utils/capitalize.js +0 -3
  568. package/dist/src/components/CodeEditor/CodeEditor.js +0 -46
  569. package/dist/src/components/ContentCard/Skeleton.js +0 -46
  570. package/dist/src/components/ContentCard/index.js +0 -178
  571. package/dist/src/components/ContentCardGroup/Card.js +0 -105
  572. package/dist/src/components/ContentCardGroup/SkeletonCard.js +0 -37
  573. package/dist/src/components/ContentCardGroup/index.js +0 -33
  574. package/dist/src/components/Conversation/index.js +0 -115
  575. package/dist/src/components/CustomerSatisfaction/assets/1-5.svg.js +0 -5
  576. package/dist/src/components/CustomerSatisfaction/assets/1-5NB.svg.js +0 -5
  577. package/dist/src/components/CustomerSatisfaction/assets/2-5.svg.js +0 -5
  578. package/dist/src/components/CustomerSatisfaction/assets/2-5NB.svg.js +0 -5
  579. package/dist/src/components/CustomerSatisfaction/assets/3-5.svg.js +0 -5
  580. package/dist/src/components/CustomerSatisfaction/assets/3-5NB.svg.js +0 -5
  581. package/dist/src/components/CustomerSatisfaction/assets/4-5.svg.js +0 -5
  582. package/dist/src/components/CustomerSatisfaction/assets/4-5NB.svg.js +0 -5
  583. package/dist/src/components/CustomerSatisfaction/assets/5-5.svg.js +0 -5
  584. package/dist/src/components/CustomerSatisfaction/assets/5-5NB.svg.js +0 -5
  585. package/dist/src/components/CustomerSatisfaction/index.js +0 -130
  586. package/dist/src/components/EstimateCost/Components/CustomUnitInput.js +0 -43
  587. package/dist/src/components/EstimateCost/Components/Item.js +0 -311
  588. package/dist/src/components/EstimateCost/Components/LineThrough.js +0 -12
  589. package/dist/src/components/EstimateCost/Components/NumberInput.js +0 -40
  590. package/dist/src/components/EstimateCost/Components/Region.js +0 -52
  591. package/dist/src/components/EstimateCost/Components/Regular.js +0 -34
  592. package/dist/src/components/EstimateCost/Components/Strong.js +0 -25
  593. package/dist/src/components/EstimateCost/Components/Unit.js +0 -58
  594. package/dist/src/components/EstimateCost/Components/UnitInput.js +0 -110
  595. package/dist/src/components/EstimateCost/Components/Zone.js +0 -50
  596. package/dist/src/components/EstimateCost/EstimateCost.js +0 -120
  597. package/dist/src/components/EstimateCost/EstimateCostContent.js +0 -292
  598. package/dist/src/components/EstimateCost/OverlayComponent.js +0 -129
  599. package/dist/src/components/EstimateCost/OverlayContext.js +0 -16
  600. package/dist/src/components/EstimateCost/componentStyle.js +0 -149
  601. package/dist/src/components/EstimateCost/locales/en.js +0 -23
  602. package/dist/src/components/FAQ/index.js +0 -49
  603. package/dist/src/components/Navigation/Navigation.js +0 -31
  604. package/dist/src/components/Navigation/NavigationContent.js +0 -222
  605. package/dist/src/components/Navigation/components/Group.js +0 -55
  606. package/dist/src/components/Navigation/components/Item.js +0 -553
  607. package/dist/src/components/Navigation/components/PinnedItems.js +0 -129
  608. package/dist/src/components/Navigation/components/Separator.js +0 -12
  609. package/dist/src/components/Navigation/constants.js +0 -36
  610. package/dist/src/components/Navigation/locales/en.js +0 -11
  611. package/dist/src/components/SteppedListCard/Step.js +0 -53
  612. package/dist/src/components/SteppedListCard/SteppedListContainer.js +0 -96
  613. package/dist/src/components/SteppedListCard/SteppedListContent.js +0 -61
  614. package/dist/src/components/SteppedListCard/helper.js +0 -31
  615. package/dist/src/index.js +0 -11
@@ -0,0 +1,425 @@
1
+ import { jsxs, Fragment, jsx } from "@emotion/react/jsx-runtime";
2
+ import _styled from "@emotion/styled/base";
3
+ import { Icon, CategoryIcon } from "@ultraviolet/icons";
4
+ import { Button, Badge, MenuV2, Stack, Text, fadeIn, Tooltip, Expandable } from "@ultraviolet/ui";
5
+ import { useEffect, useState, useCallback, useMemo, Children, isValidElement, cloneElement } from "react";
6
+ import { useNavigation } from "../NavigationProvider.js";
7
+ import { shrinkHeight, ANIMATION_DURATION } from "../constants.js";
8
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() {
9
+ return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
10
+ }
11
+ const RelativeDiv = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
12
+ target: "e134hokc13"
13
+ } : {
14
+ target: "e134hokc13",
15
+ label: "RelativeDiv"
16
+ })(process.env.NODE_ENV === "production" ? {
17
+ name: "bjn8wh",
18
+ styles: "position:relative"
19
+ } : {
20
+ name: "bjn8wh",
21
+ styles: "position:relative",
22
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdDOEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */",
23
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
24
+ });
25
+ const StyledIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "production" ? {
26
+ shouldForwardProp: (prop) => !["active"].includes(prop),
27
+ target: "e134hokc12"
28
+ } : {
29
+ shouldForwardProp: (prop) => !["active"].includes(prop),
30
+ target: "e134hokc12",
31
+ label: "StyledIcon"
32
+ })("position:absolute;top:0;bottom:0;margin:auto 0;padding:", ({
33
+ theme
34
+ }) => theme.space["0.25"], ";border-radius:", ({
35
+ theme
36
+ }) => theme.radii.default, ";&:hover{background:", ({
37
+ theme
38
+ }) => theme.colors.neutral.backgroundWeakHover, ";", ({
39
+ active,
40
+ theme
41
+ }) => active ? `background: ${theme.colors.primary.backgroundHover};` : null, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNDd0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */"));
42
+ const NeutralButtonLink = process.env.NODE_ENV === "production" ? {
43
+ name: "rhgg7c",
44
+ styles: "color:inherit;text-decoration:none;background-color:inherit;border:none;text-align:left"
45
+ } : {
46
+ name: "1kb8ns1-NeutralButtonLink",
47
+ styles: "color:inherit;text-decoration:none;background-color:inherit;border:none;text-align:left;label:NeutralButtonLink;",
48
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFENkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */",
49
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
50
+ };
51
+ const LocalExpandButton = /* @__PURE__ */ _styled(Button, process.env.NODE_ENV === "production" ? {
52
+ target: "e134hokc11"
53
+ } : {
54
+ target: "e134hokc11",
55
+ label: "LocalExpandButton"
56
+ })(process.env.NODE_ENV === "production" ? {
57
+ name: "9hkyle",
58
+ styles: "opacity:0;right:0;position:absolute;left:-24px;top:0;bottom:0;margin:auto;&:hover,&:focus,&:active{opacity:1;}"
59
+ } : {
60
+ name: "9hkyle",
61
+ styles: "opacity:0;right:0;position:absolute;left:-24px;top:0;bottom:0;margin:auto;&:hover,&:focus,&:active{opacity:1;}",
62
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThEd0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */",
63
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
64
+ });
65
+ const PinnedButton = LocalExpandButton.withComponent("div", process.env.NODE_ENV === "production" ? {
66
+ target: "e134hokc14"
67
+ } : {
68
+ target: "e134hokc14",
69
+ label: "PinnedButton"
70
+ });
71
+ const GrabIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "production" ? {
72
+ target: "e134hokc10"
73
+ } : {
74
+ target: "e134hokc10",
75
+ label: "GrabIcon"
76
+ })("opacity:0;margin:0 ", ({
77
+ theme
78
+ }) => theme.space["0.25"], ";cursor:grab;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdGNkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */"));
79
+ const StyledBadge = /* @__PURE__ */ _styled(Badge, process.env.NODE_ENV === "production" ? {
80
+ target: "e134hokc9"
81
+ } : {
82
+ target: "e134hokc9",
83
+ label: "StyledBadge"
84
+ })(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNGaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */");
85
+ const StyledMenuItem = /* @__PURE__ */ _styled(MenuV2.Item, process.env.NODE_ENV === "production" ? {
86
+ shouldForwardProp: (prop) => !["isPinnable"].includes(prop),
87
+ target: "e134hokc8"
88
+ } : {
89
+ shouldForwardProp: (prop) => !["isPinnable"].includes(prop),
90
+ target: "e134hokc8",
91
+ label: "StyledMenuItem"
92
+ })("text-align:left;&:hover,&:focus,&:active{", PinnedButton, "{opacity:1;}", StyledBadge, "{opacity:", ({
93
+ isPinnable
94
+ }) => isPinnable ? 0 : 1, ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRGRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgeyBDYXRlZ29yeUljb24sIEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQge1xuICBCYWRnZSxcbiAgQnV0dG9uLFxuICBFeHBhbmRhYmxlLFxuICBNZW51VjIsXG4gIFN0YWNrLFxuICBUZXh0LFxuICBUb29sdGlwLFxuICBmYWRlSW4sXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgSlNYLFxuICBNb3VzZUV2ZW50LFxuICBSZWFjdE5vZGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgQ2hpbGRyZW4sXG4gIGNsb25lRWxlbWVudCxcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT4gKGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGwpfVxuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBOZXV0cmFsQnV0dG9uTGluayA9IGNzc2BcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuYFxuXG4vLyBQaW4gYnV0dG9uIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbmNvbnN0IExvY2FsRXhwYW5kQnV0dG9uID0gc3R5bGVkKEJ1dHRvbilgXG4gIG9wYWNpdHk6IDA7XG4gIHJpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0yNHB4O1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gXG5cbmNvbnN0IFBpbm5lZEJ1dHRvbiA9IExvY2FsRXhwYW5kQnV0dG9uLndpdGhDb21wb25lbnQoJ2RpdicpXG5cbmNvbnN0IEdyYWJJY29uID0gc3R5bGVkKEljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgb3BhY2l0eTogJHsoeyBpc1Bpbm5hYmxlIH0pID0+IChpc1Bpbm5hYmxlID8gMCA6IDEpfTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkTWVudSA9IHN0eWxlZChNZW51VjIpYFxuICB3aWR0aDogMTgwcHg7XG5gXG5cbmNvbnN0IFBhZGRpbmdTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IEFuaW1hdGVkSWNvbiA9IHN0eWxlZChJY29uKWBgXG5cbmNvbnN0IFdyYXBUZXh0ID0gc3R5bGVkKFRleHQsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydhbmltYXRpb24nLCAnc3ViTGFiZWwnLCAndGV4dFByb21pbmVuY2UnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgYW5pbWF0aW9uPzogJ2NvbGxhcHNlJyB8ICdleHBhbmQnIHwgYm9vbGVhblxuICBzdWJMYWJlbD86IGJvb2xlYW5cbn0+YFxuICBvdmVyZmxvdy13cmFwOiAkeyh7IGFuaW1hdGlvbiB9KSA9PiAoYW5pbWF0aW9uID8gJ25vcm1hbCcgOiAnYW55d2hlcmUnKX07XG4gIHdoaXRlLXNwYWNlOiAkeyh7IGFuaW1hdGlvbiB9KSA9PiAoYW5pbWF0aW9uID8gJ25vd3JhcCcgOiAnbm9ybWFsJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5gXG5cbmNvbnN0IFN0eWxlZFN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKFN0YWNrKWBcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ10ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPSd0cnVlJ10ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj0ndHJ1ZSddW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgICB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9J3RydWUnXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgJHtQaW5uZWRCdXR0b259LCAke0dyYWJJY29ufSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmhvdmVyW2RhdGEtaGFzLWNoaWxkcmVuPSdmYWxzZSddW2RhdGEtaXMtYWN0aXZlPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9J3RydWUnXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9J3RydWUnXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kfTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtEaXNhYmxlZH07XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nY29sbGFwc2UnXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdleHBhbmQnXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IENvbXBvbmVudFByb3BzPHR5cGVvZiBDYXRlZ29yeUljb24+WyduYW1lJ11cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBDYXRlZ29yeUljb24+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25DbGljaz86ICh0b2dnbGU/OiB0cnVlIHwgZmFsc2UpID0+IHZvaWRcbiAgb25QaW5VbnBpbkNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBoYXMgYSBwYXJlbnRcbiAgICovXG4gIGhhc1BhcmVudHM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9ICh7XG4gIGNoaWxkcmVuLFxuICBjYXRlZ29yeUljb24sXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gIGxhYmVsLFxuICBzdWJMYWJlbCxcbiAgYmFkZ2VUZXh0LFxuICBiYWRnZVNlbnRpbWVudCxcbiAgaHJlZixcbiAgb25DbGljayxcbiAgb25QaW5VbnBpbkNsaWNrLFxuICB0b2dnbGUsXG4gIGFjdGl2ZSxcbiAgbm9QaW5CdXR0b24sXG4gIHR5cGUgPSAnZGVmYXVsdCcsXG4gIGhhc1BhcmVudHMsXG4gIGFzLFxuICBkaXNhYmxlZCxcbiAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgaW5kZXgsXG4gIGlkLFxufTogSXRlbVByb3BzKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcblxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICB9ID0gY29udGV4dFxuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uQ2xpY2sgfSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSxcbiAgKVxuXG4gIGNvbnN0IFtpbnRlcm5hbFRvZ2dsZSwgc2V0VG9nZ2xlXSA9IHVzZVN0YXRlKHRvZ2dsZSAhPT0gZmFsc2UpXG5cbiAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgc2V0VG9nZ2xlKHZhbHVlKVxuICAgICAgb25DbGljaz8uKGludGVybmFsVG9nZ2xlKVxuICAgIH0sXG4gICAgW2ludGVybmFsVG9nZ2xlLCBvbkNsaWNrXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbiA9PT0gJ2NvbGxhcHNlJykge1xuICAgICAgc2V0VG9nZ2xlKGZhbHNlKVxuICAgIH1cblxuICAgIGlmIChhbmltYXRpb24gPT09ICdleHBhbmQnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0VG9nZ2xlKHRvZ2dsZSA/PyB0cnVlKVxuICAgICAgfSwgMSlcbiAgICB9XG4gIH0sIFthbmltYXRpb24sIHRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKVxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgIWludGVybmFsVG9nZ2xlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxUb2dnbGVdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG4gIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICA6IGNoaWxkLFxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyVG9nZ2xlKCFpbnRlcm5hbFRvZ2dsZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9uQ2xpY2s/LigpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICB0YXJnZXQ9e2hyZWYgPyAnX2JsYW5rJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgIGRhdGEtaGFzLW5vLWV4cGFuZD17bm9FeHBhbmR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgb25EcmFnU3RhcnQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBvbkRyYWdFbmQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uUGluVW5waW5DbGljaz8uKGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */"));
95
+ const StyledMenu = /* @__PURE__ */ _styled(MenuV2, process.env.NODE_ENV === "production" ? {
96
+ target: "e134hokc7"
97
+ } : {
98
+ target: "e134hokc7",
99
+ label: "StyledMenu"
100
+ })(process.env.NODE_ENV === "production" ? {
101
+ name: "educr3",
102
+ styles: "width:180px"
103
+ } : {
104
+ name: "educr3",
105
+ styles: "width:180px",
106
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRHaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */",
107
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
108
+ });
109
+ const PaddingStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
110
+ target: "e134hokc6"
111
+ } : {
112
+ target: "e134hokc6",
113
+ label: "PaddingStack"
114
+ })(process.env.NODE_ENV === "production" ? {
115
+ name: "13feash",
116
+ styles: "padding-left:28px"
117
+ } : {
118
+ name: "13feash",
119
+ styles: "padding-left:28px",
120
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdIa0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */",
121
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
122
+ });
123
+ const AnimatedIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "production" ? {
124
+ target: "e134hokc5"
125
+ } : {
126
+ target: "e134hokc5",
127
+ label: "AnimatedIcon"
128
+ })(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9IaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */");
129
+ const WrapText = /* @__PURE__ */ _styled(Text, process.env.NODE_ENV === "production" ? {
130
+ shouldForwardProp: (prop) => !["animation", "subLabel", "textProminence"].includes(prop),
131
+ target: "e134hokc4"
132
+ } : {
133
+ shouldForwardProp: (prop) => !["animation", "subLabel", "textProminence"].includes(prop),
134
+ target: "e134hokc4",
135
+ label: "WrapText"
136
+ })("overflow-wrap:", ({
137
+ animation
138
+ }) => animation ? "normal" : "anywhere", ";white-space:", ({
139
+ animation
140
+ }) => animation ? "nowrap" : "normal", ";overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:pre-wrap;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRIRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgeyBDYXRlZ29yeUljb24sIEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQge1xuICBCYWRnZSxcbiAgQnV0dG9uLFxuICBFeHBhbmRhYmxlLFxuICBNZW51VjIsXG4gIFN0YWNrLFxuICBUZXh0LFxuICBUb29sdGlwLFxuICBmYWRlSW4sXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgSlNYLFxuICBNb3VzZUV2ZW50LFxuICBSZWFjdE5vZGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgQ2hpbGRyZW4sXG4gIGNsb25lRWxlbWVudCxcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT4gKGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGwpfVxuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBOZXV0cmFsQnV0dG9uTGluayA9IGNzc2BcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuYFxuXG4vLyBQaW4gYnV0dG9uIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbmNvbnN0IExvY2FsRXhwYW5kQnV0dG9uID0gc3R5bGVkKEJ1dHRvbilgXG4gIG9wYWNpdHk6IDA7XG4gIHJpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0yNHB4O1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gXG5cbmNvbnN0IFBpbm5lZEJ1dHRvbiA9IExvY2FsRXhwYW5kQnV0dG9uLndpdGhDb21wb25lbnQoJ2RpdicpXG5cbmNvbnN0IEdyYWJJY29uID0gc3R5bGVkKEljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgb3BhY2l0eTogJHsoeyBpc1Bpbm5hYmxlIH0pID0+IChpc1Bpbm5hYmxlID8gMCA6IDEpfTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkTWVudSA9IHN0eWxlZChNZW51VjIpYFxuICB3aWR0aDogMTgwcHg7XG5gXG5cbmNvbnN0IFBhZGRpbmdTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IEFuaW1hdGVkSWNvbiA9IHN0eWxlZChJY29uKWBgXG5cbmNvbnN0IFdyYXBUZXh0ID0gc3R5bGVkKFRleHQsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydhbmltYXRpb24nLCAnc3ViTGFiZWwnLCAndGV4dFByb21pbmVuY2UnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgYW5pbWF0aW9uPzogJ2NvbGxhcHNlJyB8ICdleHBhbmQnIHwgYm9vbGVhblxuICBzdWJMYWJlbD86IGJvb2xlYW5cbn0+YFxuICBvdmVyZmxvdy13cmFwOiAkeyh7IGFuaW1hdGlvbiB9KSA9PiAoYW5pbWF0aW9uID8gJ25vcm1hbCcgOiAnYW55d2hlcmUnKX07XG4gIHdoaXRlLXNwYWNlOiAkeyh7IGFuaW1hdGlvbiB9KSA9PiAoYW5pbWF0aW9uID8gJ25vd3JhcCcgOiAnbm9ybWFsJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5gXG5cbmNvbnN0IFN0eWxlZFN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKFN0YWNrKWBcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ10ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPSd0cnVlJ10ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj0ndHJ1ZSddW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgICB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9J3RydWUnXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgJHtQaW5uZWRCdXR0b259LCAke0dyYWJJY29ufSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmhvdmVyW2RhdGEtaGFzLWNoaWxkcmVuPSdmYWxzZSddW2RhdGEtaXMtYWN0aXZlPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9J3RydWUnXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9J3RydWUnXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kfTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtEaXNhYmxlZH07XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nY29sbGFwc2UnXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdleHBhbmQnXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IENvbXBvbmVudFByb3BzPHR5cGVvZiBDYXRlZ29yeUljb24+WyduYW1lJ11cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBDYXRlZ29yeUljb24+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25DbGljaz86ICh0b2dnbGU/OiB0cnVlIHwgZmFsc2UpID0+IHZvaWRcbiAgb25QaW5VbnBpbkNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBoYXMgYSBwYXJlbnRcbiAgICovXG4gIGhhc1BhcmVudHM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IGZvciBwaW5uZWQgaXRlbSB0byBiZSByZW9yZ2FuaXplZCB3aXRoIGRyYWcgYW5kIGRyb3BcbiAgICovXG4gIGluZGV4PzogbnVtYmVyXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBpdGVtIGhhcyBocmVmIGl0IGJlY29tZXMgYSBsaW5rIGlmIG5vdCBpdCBpcyBhIGJ1dHRvbi5cbiAgICogV2hlbiB1c2luZyBhbiBleHRlcm5hbCByb3V0aW5nIHRvb2wgeW91IG1pZ2h0IG5lZWQgdG8gcmVtb3ZlIGJvdGggb2YgdGhlbSBhbmQgdXNlXG4gICAqIGEgbm9uIGZvY3VzYWJsZSBlbGVtZW50LiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNob29zZSB0aGUgdGFnIG9mIHRoZVxuICAgKiBpdGVtLlxuICAgKi9cbiAgYXM/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHNcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9ICh7XG4gIGNoaWxkcmVuLFxuICBjYXRlZ29yeUljb24sXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gIGxhYmVsLFxuICBzdWJMYWJlbCxcbiAgYmFkZ2VUZXh0LFxuICBiYWRnZVNlbnRpbWVudCxcbiAgaHJlZixcbiAgb25DbGljayxcbiAgb25QaW5VbnBpbkNsaWNrLFxuICB0b2dnbGUsXG4gIGFjdGl2ZSxcbiAgbm9QaW5CdXR0b24sXG4gIHR5cGUgPSAnZGVmYXVsdCcsXG4gIGhhc1BhcmVudHMsXG4gIGFzLFxuICBkaXNhYmxlZCxcbiAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgaW5kZXgsXG4gIGlkLFxufTogSXRlbVByb3BzKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcblxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICB9ID0gY29udGV4dFxuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uQ2xpY2sgfSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSxcbiAgKVxuXG4gIGNvbnN0IFtpbnRlcm5hbFRvZ2dsZSwgc2V0VG9nZ2xlXSA9IHVzZVN0YXRlKHRvZ2dsZSAhPT0gZmFsc2UpXG5cbiAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgc2V0VG9nZ2xlKHZhbHVlKVxuICAgICAgb25DbGljaz8uKGludGVybmFsVG9nZ2xlKVxuICAgIH0sXG4gICAgW2ludGVybmFsVG9nZ2xlLCBvbkNsaWNrXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbiA9PT0gJ2NvbGxhcHNlJykge1xuICAgICAgc2V0VG9nZ2xlKGZhbHNlKVxuICAgIH1cblxuICAgIGlmIChhbmltYXRpb24gPT09ICdleHBhbmQnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0VG9nZ2xlKHRvZ2dsZSA/PyB0cnVlKVxuICAgICAgfSwgMSlcbiAgICB9XG4gIH0sIFthbmltYXRpb24sIHRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKVxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgIWludGVybmFsVG9nZ2xlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxUb2dnbGVdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG4gIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICA6IGNoaWxkLFxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyVG9nZ2xlKCFpbnRlcm5hbFRvZ2dsZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9uQ2xpY2s/LigpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICB0YXJnZXQ9e2hyZWYgPyAnX2JsYW5rJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgIGRhdGEtaGFzLW5vLWV4cGFuZD17bm9FeHBhbmR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgb25EcmFnU3RhcnQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBvbkRyYWdFbmQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uUGluVW5waW5DbGljaz8uKGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */"));
141
+ const StyledStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
142
+ target: "e134hokc3"
143
+ } : {
144
+ target: "e134hokc3",
145
+ label: "StyledStack"
146
+ })(process.env.NODE_ENV === "production" ? {
147
+ name: "13feash",
148
+ styles: "padding-left:28px"
149
+ } : {
150
+ name: "13feash",
151
+ styles: "padding-left:28px",
152
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNJaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */",
153
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
154
+ });
155
+ const StyledContainer = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
156
+ target: "e134hokc2"
157
+ } : {
158
+ target: "e134hokc2",
159
+ label: "StyledContainer"
160
+ })(NeutralButtonLink, ";border-radius:", ({
161
+ theme
162
+ }) => theme.radii.default, ";&[data-has-no-expand='false']{cursor:pointer;}margin-top:", ({
163
+ theme
164
+ }) => theme.space["0.25"], ";padding:", ({
165
+ theme
166
+ }) => `calc(${theme.space["0.25"]} + ${theme.space["0.5"]}) ${theme.space["1"]}`, ";&[data-has-sub-label='true']{padding:", ({
167
+ theme
168
+ }) => `${theme.space["0.5"]} ${theme.space["1"]}`, ";}width:100%;&:hover[data-has-no-expand='false']:not([disabled]):not(\n [data-is-active='true']\n ),&:focus[data-has-no-expand='false']:not([disabled]):not(\n [data-is-active='true']\n ){background-color:", ({
169
+ theme
170
+ }) => theme.colors.neutral.backgroundWeak, ";}&[data-has-active-children='true'][data-has-no-expand='false']:not(\n [disabled][data-is-active='true']\n ){background-color:", ({
171
+ theme
172
+ }) => theme.colors.neutral.backgroundWeakHover, ";", WrapText, "{color:", ({
173
+ theme
174
+ }) => theme.colors.neutral.textWeakHover, ";}", PinnedButton, "{opacity:1;}&[data-is-pinnable='true']{", StyledBadge, "{opacity:0;}}}&[data-has-no-expand='false']:not([disabled]){&:hover,&:focus,&:active{", PinnedButton, ",", GrabIcon, "{opacity:1;}", StyledBadge, "{opacity:0;}}}&:hover[data-has-children='false'][data-is-active='false']:not([disabled]){", WrapText, "{color:", ({
175
+ theme
176
+ }) => theme.colors.neutral.textWeakHover, ";}}&:active[data-has-no-expand='false']:not([disabled]):not(\n [data-is-active='true']\n ){background-color:", ({
177
+ theme
178
+ }) => theme.colors.neutral.backgroundHover, ";}&[data-is-active='true'],&:hover[data-has-active='true']{background-color:", ({
179
+ theme
180
+ }) => theme.colors.primary.background, ";&:hover{background-color:", ({
181
+ theme
182
+ }) => theme.colors.primary.backgroundHover, ";}}&[disabled]{cursor:not-allowed;background-color:unset;", WrapText, "{color:", ({
183
+ theme
184
+ }) => theme.colors.neutral.textWeakDisabled, ";}}&[data-animation='collapse']{animation:", shrinkHeight, " ", ANIMATION_DURATION, "ms ease-in-out;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", fadeIn, " ", ANIMATION_DURATION, "ms ease-in-out reverse;}}&[data-animation='expand']{animation:", shrinkHeight, " ", ANIMATION_DURATION, "ms ease-in-out reverse;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", fadeIn, " ", ANIMATION_DURATION, "ms ease-in-out;}", StyledStack, "{display:none;}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBJcUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */"));
185
+ const MenuStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
186
+ target: "e134hokc1"
187
+ } : {
188
+ target: "e134hokc1",
189
+ label: "MenuStack"
190
+ })("padding:", ({
191
+ theme
192
+ }) => `0 ${theme.space["2"]}`, ";margin-top:", ({
193
+ theme
194
+ }) => theme.space["0.25"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNQK0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */"));
195
+ const ContainerCategoryIcon = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
196
+ target: "e134hokc0"
197
+ } : {
198
+ target: "e134hokc0",
199
+ label: "ContainerCategoryIcon"
200
+ })(process.env.NODE_ENV === "production" ? {
201
+ name: "d47oax",
202
+ styles: "min-width:20px"
203
+ } : {
204
+ name: "d47oax",
205
+ styles: "min-width:20px",
206
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJQMkMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uUGluVW5waW5DbGljaz86IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uUGluVW5waW5DbGljayxcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblBpblVucGluQ2xpY2s/LihldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7IWFuaW1hdGlvbiAmJiAhbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsVG9nZ2xlID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxUb2dnbGV9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e1xuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uID8gQU5JTUFUSU9OX0RVUkFUSU9OIC8gMiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGljaz8uKCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2NhdGVnb3J5SWNvbiA/PyAnY29uc29sZSd9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgb25DbGljaz8uKClcbiAgICAgICAgfX1cbiAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25QaW5VbnBpbkNsaWNrPy4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */",
207
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
208
+ });
209
+ const Item = ({
210
+ children,
211
+ categoryIcon,
212
+ categoryIconVariant,
213
+ label,
214
+ subLabel,
215
+ badgeText,
216
+ badgeSentiment,
217
+ href,
218
+ onClick,
219
+ onPinUnpinClick,
220
+ toggle,
221
+ active,
222
+ noPinButton,
223
+ type = "default",
224
+ hasParents,
225
+ as,
226
+ disabled,
227
+ noExpand = false,
228
+ index,
229
+ id
230
+ }) => {
231
+ const context = useNavigation();
232
+ if (!context) {
233
+ throw new Error("Navigation.Item can only be used inside a NavigationProvider.");
234
+ }
235
+ const {
236
+ expanded,
237
+ locales,
238
+ pinnedFeature,
239
+ pinItem,
240
+ unpinItem,
241
+ pinnedItems,
242
+ pinLimit,
243
+ animation,
244
+ registerItem
245
+ } = context;
246
+ useEffect(
247
+ () => {
248
+ if (type !== "pinnedGroup") {
249
+ registerItem({
250
+ [id]: {
251
+ label,
252
+ active,
253
+ onClick
254
+ }
255
+ });
256
+ }
257
+ },
258
+ // eslint-disable-next-line react-hooks/exhaustive-deps
259
+ [active, id, label, registerItem]
260
+ );
261
+ const [internalToggle, setToggle] = useState(toggle !== false);
262
+ const triggerToggle = useCallback((value) => {
263
+ setToggle(value);
264
+ onClick?.(internalToggle);
265
+ }, [internalToggle, onClick]);
266
+ useEffect(() => {
267
+ if (animation === "collapse") {
268
+ setToggle(false);
269
+ }
270
+ if (animation === "expand") {
271
+ setTimeout(() => {
272
+ setToggle(toggle ?? true);
273
+ }, 1);
274
+ }
275
+ }, [animation, toggle]);
276
+ const PaddedStack = noExpand || type === "pinnedGroup" ? Stack : PaddingStack;
277
+ const hasHrefAndNoChildren = href && !children;
278
+ const hasPinnedFeatureAndNoChildren = pinnedFeature && !children && !noPinButton;
279
+ const isItemPinned = pinnedItems.includes(id);
280
+ const shouldShowPinnedButton = useMemo(() => {
281
+ if (href || disabled)
282
+ return false;
283
+ if (hasPinnedFeatureAndNoChildren && type !== "default") {
284
+ return true;
285
+ }
286
+ if (hasPinnedFeatureAndNoChildren) {
287
+ return true;
288
+ }
289
+ return false;
290
+ }, [disabled, hasPinnedFeatureAndNoChildren, href, type]);
291
+ const hasActiveChildren = useMemo(() => {
292
+ if (!children)
293
+ return false;
294
+ return Children.map(children, (child) => isValidElement(child) ? child.props?.active : false).includes(true);
295
+ }, [children]);
296
+ const containerTag = useMemo(() => {
297
+ if (as) {
298
+ return as;
299
+ }
300
+ if (hasHrefAndNoChildren) {
301
+ return "a";
302
+ }
303
+ if (noExpand) {
304
+ return "div";
305
+ }
306
+ return "button";
307
+ }, [as, hasHrefAndNoChildren, noExpand]);
308
+ const Container = StyledContainer.withComponent(containerTag, process.env.NODE_ENV === "production" ? {
309
+ target: "e134hokc15"
310
+ } : {
311
+ target: "e134hokc15",
312
+ label: "Container"
313
+ });
314
+ const ariaExpanded = useMemo(() => {
315
+ if (hasHrefAndNoChildren && internalToggle) {
316
+ return true;
317
+ }
318
+ if (hasHrefAndNoChildren && !internalToggle) {
319
+ return false;
320
+ }
321
+ return void 0;
322
+ }, [hasHrefAndNoChildren, internalToggle]);
323
+ const isPinDisabled = pinnedItems.length >= pinLimit;
324
+ const pinTooltipLocale = useMemo(() => {
325
+ if (isPinDisabled) {
326
+ return locales["navigation.pin.limit"];
327
+ }
328
+ if (isItemPinned) {
329
+ return locales["navigation.unpin.tooltip"];
330
+ }
331
+ return locales["navigation.pin.tooltip"];
332
+ }, [isItemPinned, isPinDisabled, locales]);
333
+ const onDragStartTrigger = (event) => {
334
+ event.dataTransfer.setData("text/plain", JSON.stringify({
335
+ label,
336
+ index
337
+ }));
338
+ event.currentTarget.style.opacity = "0.5";
339
+ };
340
+ const onDragStopTrigger = (event) => {
341
+ event.currentTarget.style.opacity = "1";
342
+ };
343
+ if (expanded || !expanded && animation === "expand") {
344
+ const renderChildren = Children.map(children, (child) => isValidElement(child) ? cloneElement(child, {
345
+ hasParents: true
346
+ }) : child);
347
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
348
+ /* @__PURE__ */ jsxs(Container, { gap: 1, direction: "row", alignItems: "center", justifyContent: "space-between", "data-has-sub-label": !!subLabel, onClick: () => {
349
+ if (children) {
350
+ return triggerToggle(!internalToggle);
351
+ }
352
+ return onClick?.();
353
+ }, "aria-expanded": ariaExpanded, href, target: href ? "_blank" : void 0, "data-is-pinnable": shouldShowPinnedButton, "data-is-active": active, "data-animation": animation, "data-has-children": !!children, "data-has-active-children": hasActiveChildren, "data-has-no-expand": noExpand, disabled, draggable: type === "pinned" && expanded, onDragStart: (event) => expanded ? onDragStartTrigger(event) : void 0, onDragEnd: (event) => expanded ? onDragStopTrigger(event) : void 0, id, children: [
354
+ /* @__PURE__ */ jsxs(Stack, { direction: "row", gap: 1, alignItems: "center", justifyContent: "center", children: [
355
+ categoryIcon ? /* @__PURE__ */ jsx(ContainerCategoryIcon, { alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx(CategoryIcon, { name: categoryIcon, variant: active ? "primary" : categoryIconVariant, disabled }) }) : null,
356
+ type === "pinned" && expanded ? /* @__PURE__ */ jsx(GrabIcon, { name: "drag-vertical", sentiment: "neutral", prominence: "weak", size: "small", disabled }) : null,
357
+ /* @__PURE__ */ jsxs(Stack, { children: [
358
+ /* @__PURE__ */ jsx(WrapText, { as: "span", variant: "bodySmallStrong", sentiment: active ? "primary" : "neutral", prominence: (categoryIcon || !hasParents) && !active ? "strong" : "default", animation, disabled, children: label }),
359
+ subLabel ? /* @__PURE__ */ jsx(WrapText, { as: "span", variant: "caption", sentiment: "neutral", prominence: "weak", animation, disabled, subLabel: true, children: subLabel }) : null
360
+ ] })
361
+ ] }),
362
+ /* @__PURE__ */ jsxs(Stack, { direction: "row", alignItems: "center", gap: href ? 1 : void 0, children: [
363
+ badgeText || hasPinnedFeatureAndNoChildren ? /* @__PURE__ */ jsxs(Fragment, { children: [
364
+ badgeText ? /* @__PURE__ */ jsx(StyledBadge, { sentiment: badgeSentiment, size: "small", prominence: "strong", disabled, children: badgeText }) : null,
365
+ shouldShowPinnedButton ? /* @__PURE__ */ jsx(Tooltip, { text: isItemPinned ? locales["navigation.unpin.tooltip"] : pinTooltipLocale, placement: "right", children: /* @__PURE__ */ jsx(RelativeDiv, { children: /* @__PURE__ */ jsx(PinnedButton, { role: "button", size: "xsmall", variant: "ghost", sentiment: active ? "primary" : "neutral", onClick: (event) => {
366
+ event.preventDefault();
367
+ event.stopPropagation();
368
+ if (isItemPinned) {
369
+ unpinItem(id);
370
+ } else {
371
+ pinItem(id);
372
+ }
373
+ onPinUnpinClick?.(event);
374
+ }, disabled: isItemPinned ? false : isPinDisabled, children: /* @__PURE__ */ jsx(StyledIcon, { size: "large", name: isItemPinned ? "unpin" : "pin", variant: isItemPinned ? "filled" : "outlined", disabled: isItemPinned ? false : isPinDisabled, sentiment: active ? "primary" : "neutral", active }) }) }) }) : null
375
+ ] }) : null,
376
+ hasHrefAndNoChildren ? /* @__PURE__ */ jsx(AnimatedIcon, { name: "open-in-new", sentiment: "neutral", prominence: "default", disabled }) : null,
377
+ children ? /* @__PURE__ */ jsx(Stack, { gap: 1, direction: "row", alignItems: "center", children: !animation && !noExpand ? /* @__PURE__ */ jsx(AnimatedIcon, { name: internalToggle ? "arrow-down" : "arrow-right", sentiment: "neutral", prominence: "weak" }) : null }) : null
378
+ ] })
379
+ ] }),
380
+ children ? /* @__PURE__ */ jsx(Fragment, { children: !noExpand ? /* @__PURE__ */ jsx(Expandable, { opened: internalToggle, animationDuration: animation ? ANIMATION_DURATION / 2 : void 0, children: /* @__PURE__ */ jsx(PaddedStack, { children: renderChildren }) }) : /* @__PURE__ */ jsx(PaddedStack, { children: renderChildren }) }) : null
381
+ ] });
382
+ }
383
+ if (categoryIcon || Children.count(children) > 0 && !hasParents) {
384
+ return /* @__PURE__ */ jsx(MenuStack, { gap: 1, alignItems: "start", justifyContent: "start", children: Children.count(children) > 0 ? /* @__PURE__ */ jsx(
385
+ StyledMenu,
386
+ {
387
+ triggerMethod: "hover",
388
+ dynamicDomRendering: false,
389
+ disclosure: /* @__PURE__ */ jsx(Button, { sentiment: "neutral", variant: hasActiveChildren ? "filled" : "ghost", size: "small", icon: !categoryIcon ? "dots-horizontal" : void 0, children: categoryIcon ? /* @__PURE__ */ jsx(Stack, { direction: "row", gap: 1, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx(CategoryIcon, { name: categoryIcon, variant: active ? "primary" : categoryIconVariant }) }) : null }),
390
+ placement: "right",
391
+ children: Children.map(children, (child) => isValidElement(child) ? cloneElement(child, {
392
+ hasParents: true
393
+ }) : child)
394
+ }
395
+ ) : /* @__PURE__ */ jsx(Tooltip, { text: label, placement: "right", tabIndex: -1, children: /* @__PURE__ */ jsx(Button, { sentiment: "neutral", variant: active ? "filled" : "ghost", size: "small", onClick: () => onClick?.(), children: /* @__PURE__ */ jsx(Stack, { direction: "row", gap: 1, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx(CategoryIcon, { name: categoryIcon ?? "console", variant: active ? "primary" : categoryIconVariant }) }) }) }) });
396
+ }
397
+ if (hasParents) {
398
+ return /* @__PURE__ */ jsx(StyledMenuItem, { href, onClick: () => {
399
+ onClick?.();
400
+ }, borderless: true, active, disabled, sentiment: active ? "primary" : "neutral", isPinnable: shouldShowPinnedButton, children: /* @__PURE__ */ jsxs(Stack, { gap: 1, direction: "row", alignItems: "center", justifyContent: "space-between", flex: 1, width: "100%", children: [
401
+ /* @__PURE__ */ jsx(WrapText, { as: "span", variant: "bodySmall", children: label }),
402
+ /* @__PURE__ */ jsxs(Stack, { direction: "row", children: [
403
+ badgeText ? /* @__PURE__ */ jsx(StyledBadge, { sentiment: badgeSentiment, size: "small", prominence: "strong", disabled, children: badgeText }) : null,
404
+ hasHrefAndNoChildren ? /* @__PURE__ */ jsx(AnimatedIcon, { name: "open-in-new", sentiment: "neutral", prominence: "weak", disabled }) : null,
405
+ shouldShowPinnedButton ? /* @__PURE__ */ jsx(Tooltip, { text: isItemPinned ? locales["navigation.unpin.tooltip"] : pinTooltipLocale, placement: "right", children: /* @__PURE__ */ jsx(RelativeDiv, { children: /* @__PURE__ */ jsx(PinnedButton, { role: "button", size: "xsmall", variant: "ghost", sentiment: active ? "primary" : "neutral", onClick: (event) => {
406
+ event.preventDefault();
407
+ event.stopPropagation();
408
+ if (isItemPinned) {
409
+ unpinItem(id);
410
+ } else {
411
+ pinItem(id);
412
+ }
413
+ onPinUnpinClick?.(event);
414
+ }, disabled: isItemPinned ? false : isPinDisabled, children: /* @__PURE__ */ jsx(StyledIcon, { size: "large", name: isItemPinned ? "unpin" : "pin", variant: isItemPinned ? "filled" : "outlined", disabled: isItemPinned ? false : isPinDisabled, sentiment: active ? "primary" : "neutral", active }) }) }) }) : null
415
+ ] })
416
+ ] }) });
417
+ }
418
+ if (!hasParents && href) {
419
+ return /* @__PURE__ */ jsx(Tooltip, { text: label, placement: "right", children: /* @__PURE__ */ jsx(MenuStack, { gap: 1, alignItems: "start", justifyContent: "start", children: /* @__PURE__ */ jsx(Container, { gap: 1, alignItems: "center", justifyContent: "center", href, target: "_blank", children: /* @__PURE__ */ jsx(AnimatedIcon, { name: "open-in-new", sentiment: "neutral", prominence: "weak" }) }) }) });
420
+ }
421
+ return null;
422
+ };
423
+ export {
424
+ Item
425
+ };