@agilemotion/oui-react-js 2.0.3 → 2.0.4

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 (253) hide show
  1. package/dist/ApplicationManager.js +2 -1
  2. package/dist/BasicApp.js +2 -1
  3. package/dist/BasicAppHome.js +2 -1
  4. package/dist/DateUtils.js +2 -1
  5. package/dist/DynamicJS.js +2 -1
  6. package/dist/InteractionPortalApp.js +2 -1
  7. package/dist/InteractionPortalAppHome.js +2 -1
  8. package/dist/InteractionPortalApp_old.js +2 -1
  9. package/dist/MouseTracker.js +2 -1
  10. package/dist/RestService.js +2 -1
  11. package/dist/RestUtils.js +2 -1
  12. package/dist/TypedValue.js +2 -1
  13. package/dist/Utils.js +2 -1
  14. package/dist/ViewContext.js +2 -1
  15. package/dist/WithRouter.js +2 -1
  16. package/dist/assets/jss/components/authNavbarStyle.js +2 -1
  17. package/dist/assets/jss/components/buttonStyle.js +2 -1
  18. package/dist/assets/jss/components/cardAvatarStyle.js +2 -1
  19. package/dist/assets/jss/components/cardBodyStyle.js +2 -1
  20. package/dist/assets/jss/components/cardFooterStyle.js +2 -1
  21. package/dist/assets/jss/components/cardHeaderStyle.js +2 -1
  22. package/dist/assets/jss/components/cardIconStyle.js +2 -1
  23. package/dist/assets/jss/components/cardStyle.js +2 -1
  24. package/dist/assets/jss/components/cardTextStyle.js +2 -1
  25. package/dist/assets/jss/components/customDropdownStyle.js +2 -1
  26. package/dist/assets/jss/components/customInputStyle.js +2 -1
  27. package/dist/assets/jss/components/dropdownStyle.js +2 -1
  28. package/dist/assets/jss/components/footerStyle.js +2 -1
  29. package/dist/assets/jss/components/headerLinksStyle.js +2 -1
  30. package/dist/assets/jss/components/headerStyle.js +2 -1
  31. package/dist/assets/jss/components/navbarLinksStyle.js +2 -1
  32. package/dist/assets/jss/components/navbarStyle.js +2 -1
  33. package/dist/assets/jss/components/sidebarStyle.js +2 -1
  34. package/dist/assets/jss/components/typographyStyle.js +2 -1
  35. package/dist/assets/jss/rootStyle.js +2 -1
  36. package/dist/assets/jss/views/layoutStyle.js +2 -1
  37. package/dist/assets/jss/views/loginBasicStyle.js +2 -1
  38. package/dist/assets/jss/views/loginBusinessPortalStyle.js +2 -1
  39. package/dist/assets/jss/views/loginStyle.js +2 -1
  40. package/dist/components/AlertBar.js +2 -1
  41. package/dist/components/AlertItem.js +2 -1
  42. package/dist/components/AlertTemplate.js +2 -1
  43. package/dist/components/Button.js +2 -1
  44. package/dist/components/Calendar.js +2 -1
  45. package/dist/components/Chart.js +2 -1
  46. package/dist/components/ConfirmationDialog.js +2 -1
  47. package/dist/components/DataGrid.js +2 -1
  48. package/dist/components/DataGridColumn.js +2 -1
  49. package/dist/components/DataGridFilter.js +2 -1
  50. package/dist/components/DataGridHeading.js +2 -1
  51. package/dist/components/Dialog.js +2 -1
  52. package/dist/components/DocumentTemplateDesigner.js +2 -1
  53. package/dist/components/DocumentTemplateDesignerComponent.js +2 -1
  54. package/dist/components/DocumentTemplatePlaceholderDialog.js +2 -1
  55. package/dist/components/DocumentViewer.js +2 -1
  56. package/dist/components/ElementResizeHandler.js +2 -1
  57. package/dist/components/FaceApi.js +2 -1
  58. package/dist/components/FileThumb.js +2 -1
  59. package/dist/components/Graph.js +2 -1
  60. package/dist/components/GraphNode.js +2 -1
  61. package/dist/components/HtmlPanel.js +2 -1
  62. package/dist/components/Icon.js +2 -1
  63. package/dist/components/LoadingIndicator.js +2 -1
  64. package/dist/components/LottieIcon.js +2 -1
  65. package/dist/components/PDFDesignerComponent.js +2 -1
  66. package/dist/components/PDFViewer.js +2 -1
  67. package/dist/components/PopupView.js +2 -1
  68. package/dist/components/Portlet.js +2 -1
  69. package/dist/components/ProgressTracker.js +2 -1
  70. package/dist/components/RegularButton.js +2 -1
  71. package/dist/components/SignaturePanel.js +2 -1
  72. package/dist/components/SocketManager.js +2 -1
  73. package/dist/components/Spinner.js +2 -1
  74. package/dist/components/StepperTitleBar.js +2 -1
  75. package/dist/components/TabPage.js +2 -1
  76. package/dist/components/TabPanel.js +2 -1
  77. package/dist/components/TableCellContent.js +2 -1
  78. package/dist/components/TemplateDesigner.js +2 -1
  79. package/dist/components/TemplateItemEventHandler.js +2 -1
  80. package/dist/components/TemplateTable.js +2 -1
  81. package/dist/components/TitleBar.js +2 -1
  82. package/dist/components/Toolbar.js +2 -1
  83. package/dist/components/Tooltip.js +2 -1
  84. package/dist/components/Tree.js +2 -1
  85. package/dist/components/UseIsVisible.js +2 -1
  86. package/dist/components/WordDocumentViewer.js +2 -1
  87. package/dist/components/card/Card.js +2 -1
  88. package/dist/components/card/CardAvatar.js +2 -1
  89. package/dist/components/card/CardBody.js +2 -1
  90. package/dist/components/card/CardFooter.js +2 -1
  91. package/dist/components/card/CardHeader.js +2 -1
  92. package/dist/components/card/CardIcon.js +2 -1
  93. package/dist/components/card/CardText.js +2 -1
  94. package/dist/components/customInput/CustomInput.js +2 -1
  95. package/dist/components/customInput/File.js +2 -1
  96. package/dist/components/dashboard/FoldingSideTabDashboard.bck.js +2 -1
  97. package/dist/components/dashboard/FoldingSideTabDashboard.js +2 -1
  98. package/dist/components/dashboard/SideMenuModuleDashboard.js +2 -1
  99. package/dist/components/dashboard/TopMenuModuleDashboard.js +2 -1
  100. package/dist/components/dashboard/components/Header.js +2 -1
  101. package/dist/components/dashboard/components/LeftDrawer.js +2 -1
  102. package/dist/components/dashboard/components/UserIdentity.js +2 -1
  103. package/dist/components/dashboard/components/blackDashboard/fixedPlugin/FixedPlugin.js +2 -1
  104. package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.bck.js +2 -1
  105. package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +2 -1
  106. package/dist/components/dashboard/components/blackDashboard/sidebar/ModuleMenu.js +2 -1
  107. package/dist/components/dashboard/components/blackDashboard/sidebar/ModuleMenuSidebar.js +2 -1
  108. package/dist/components/dashboard/components/portal/Timeline.js +2 -1
  109. package/dist/components/dashboard/components/portal/Workspace.js +2 -1
  110. package/dist/components/facialRecognition/FaceRecognitionComponent.js +2 -1
  111. package/dist/components/facialRecognition/FacialRegistration.js +2 -1
  112. package/dist/components/facialRecognition/FacialVerification.js +2 -1
  113. package/dist/components/facialRecognition/Modal.js +2 -1
  114. package/dist/components/facialRecognition/service/faceApi.js +2 -1
  115. package/dist/components/footer/Footer.js +2 -1
  116. package/dist/components/footer/HomeFooter.js +2 -1
  117. package/dist/components/form/AddressSearch.js +2 -1
  118. package/dist/components/form/AutoComplete.js +2 -1
  119. package/dist/components/form/BaseField.js +4 -1
  120. package/dist/components/form/Checkbox.js +2 -1
  121. package/dist/components/form/CurrencyField.js +2 -1
  122. package/dist/components/form/DatePicker.js +2 -1
  123. package/dist/components/form/FieldSet.js +2 -1
  124. package/dist/components/form/Form.js +2 -1
  125. package/dist/components/form/GridField.js +2 -1
  126. package/dist/components/form/IconField.js +2 -1
  127. package/dist/components/form/ImageEditor.js +2 -1
  128. package/dist/components/form/LabelField.js +2 -1
  129. package/dist/components/form/LookupField.js +2 -1
  130. package/dist/components/form/MultiFileUploadField.js +2 -1
  131. package/dist/components/form/RadioGroup.js +2 -1
  132. package/dist/components/form/Section.js +2 -1
  133. package/dist/components/form/SelectItem.js +2 -1
  134. package/dist/components/form/SignatureTemplateDesignerField.js +2 -1
  135. package/dist/components/form/Switch.js +2 -1
  136. package/dist/components/form/TextField.js +2 -1
  137. package/dist/components/form/TimePicker.js +2 -1
  138. package/dist/components/form/TransferList.js +2 -1
  139. package/dist/components/form/UploadField.js +2 -1
  140. package/dist/components/grid/GridContainer.js +2 -1
  141. package/dist/components/grid/GridItem.js +2 -1
  142. package/dist/components/layout/CollapsiblePanel.js +2 -1
  143. package/dist/components/layout/Layout.js +2 -1
  144. package/dist/components/layout/View.js +2 -1
  145. package/dist/components/layout/ViewContainer.js +2 -1
  146. package/dist/components/layout/ViewPort.js +2 -1
  147. package/dist/components/layout/Window.js +2 -1
  148. package/dist/components/layout/WindowDialog.js +2 -1
  149. package/dist/components/layout/WindowViewPort.js +2 -1
  150. package/dist/components/media/Chat.js +2 -1
  151. package/dist/components/media/ClosablePanel.js +2 -1
  152. package/dist/components/media/LobbyWaitingList.js +2 -1
  153. package/dist/components/media/MediaSoupHelper.js +2 -1
  154. package/dist/components/media/SideBarContent.js +2 -1
  155. package/dist/components/media/SocketRequest.js +2 -1
  156. package/dist/components/media/SocketResponse.js +2 -1
  157. package/dist/components/media/Timer.js +2 -1
  158. package/dist/components/media/Toolbar.js +2 -1
  159. package/dist/components/media/ToolbarButton.js +2 -1
  160. package/dist/components/media/Toolbar_bck.js +2 -1
  161. package/dist/components/media/Tracks.js +2 -1
  162. package/dist/components/media/TrainingRoom.js +2 -1
  163. package/dist/components/media/Transports.js +2 -1
  164. package/dist/components/media/VCEventManager.js +2 -1
  165. package/dist/components/media/VCEventType.js +2 -1
  166. package/dist/components/media/VCParticipantList.js +2 -1
  167. package/dist/components/media/VCParticipantListItem.js +2 -1
  168. package/dist/components/media/VCRoom.js +2 -1
  169. package/dist/components/media/VCRoomParticipant.js +2 -1
  170. package/dist/components/media/VCRoomRecorder.js +2 -1
  171. package/dist/components/media/VCRoomWorkspace.js +2 -1
  172. package/dist/components/media/Video.js +2 -1
  173. package/dist/components/media/VideoPlayer.js +2 -1
  174. package/dist/components/media/chat/ChatPoll.js +2 -1
  175. package/dist/components/media/chat/ChatRoom.js +2 -1
  176. package/dist/components/media/chat/ChatRoomItem.js +2 -1
  177. package/dist/components/media/chat/ChatRoomList.js +2 -1
  178. package/dist/components/media/chat/ChatRoomWrapper.js +2 -1
  179. package/dist/components/media/chat/PollContainer.js +2 -1
  180. package/dist/components/media/chat/PollResult.js +2 -1
  181. package/dist/components/media/chat/Styles.js +2 -1
  182. package/dist/components/menu/CollapsibleMenu.js +2 -1
  183. package/dist/components/menu/MenuBars.js +2 -1
  184. package/dist/components/menu/MenuButton.js +2 -1
  185. package/dist/components/menu/MenuItem.js +2 -1
  186. package/dist/components/menu/MenuLink.js +2 -1
  187. package/dist/components/menu/PopupMenu.js +2 -1
  188. package/dist/components/navbars/AuthNavbar.js +2 -1
  189. package/dist/components/navbars/HomeNavbar.js +2 -1
  190. package/dist/components/navbars/PortalNavbar.js +2 -1
  191. package/dist/components/observers/useOnFullyVisible.js +2 -1
  192. package/dist/components/observers/useResizeObserver.js +2 -1
  193. package/dist/components/signatures/AgilitySignaturePanel.js +2 -1
  194. package/dist/components/signatures/AlertItem.js +2 -1
  195. package/dist/components/signatures/Card.js +2 -1
  196. package/dist/components/signatures/DynamicSignatureDocumentContainer.js +2 -1
  197. package/dist/components/signatures/HtmlSignatureDocumentContainer.js +2 -1
  198. package/dist/components/signatures/ImageSignatureInput.js +2 -1
  199. package/dist/components/signatures/MenuButton.js +2 -1
  200. package/dist/components/signatures/Prompt.js +2 -1
  201. package/dist/components/signatures/ResponsiveTable.js +2 -1
  202. package/dist/components/signatures/SearchView.js +2 -1
  203. package/dist/components/signatures/SignatorySearch.js +2 -1
  204. package/dist/components/signatures/SignatorySearchForm.js +2 -1
  205. package/dist/components/signatures/SignatureInput.js +2 -1
  206. package/dist/components/signatures/SignatureInputProps.js +2 -1
  207. package/dist/components/signatures/SignatureTemplateDesigner.js +2 -1
  208. package/dist/components/signatures/Toolbar.js +2 -1
  209. package/dist/components/signatures/ViewUtils.js +2 -1
  210. package/dist/components/typography/Danger.js +2 -1
  211. package/dist/components/typography/Info.js +2 -1
  212. package/dist/components/typography/Link.js +2 -1
  213. package/dist/event/ActionHandlers.js +2 -1
  214. package/dist/event/Event.js +2 -1
  215. package/dist/event/EventListener.js +2 -1
  216. package/dist/event/EventType.js +2 -1
  217. package/dist/event/LoadDataActionHandler.js +2 -1
  218. package/dist/event/Observable.js +2 -1
  219. package/dist/event/RouteActionHandler.js +2 -1
  220. package/dist/event/ScriptActionHandler.js +2 -1
  221. package/dist/event/ServiceCallActionHandler.js +2 -1
  222. package/dist/event/SignalGraphActionHandler.js +2 -1
  223. package/dist/interaction/CursorOverlay.js +2 -1
  224. package/dist/interaction/DragContext.js +2 -1
  225. package/dist/interaction/GrabContext.js +2 -1
  226. package/dist/js/Addresses.js +2 -1
  227. package/dist/js/Calendar.js +2 -1
  228. package/dist/js/Docs.js +3 -2
  229. package/dist/js/DynamicLib.js +2 -1
  230. package/dist/js/Media.js +2 -1
  231. package/dist/js/ProcurementMeetings.js +2 -1
  232. package/dist/js/Validators.js +2 -1
  233. package/dist/js/Windows.js +2 -1
  234. package/dist/redux/store/ConfigureStore.js +2 -1
  235. package/dist/redux/store/DashboardStore.js +2 -1
  236. package/dist/redux/store/History.js +2 -1
  237. package/dist/redux/store/SecurityStore.js +2 -1
  238. package/dist/security/TokenManager.js +2 -1
  239. package/dist/theme-default.js +2 -1
  240. package/dist/view/Dashboard.js +2 -1
  241. package/dist/view/PortalDashboard.js +2 -1
  242. package/dist/view/Settings.js +2 -1
  243. package/dist/view/Views.js +2 -1
  244. package/dist/view/security/ChangePasswordBasic.js +2 -1
  245. package/dist/view/security/ForgotPassword.js +2 -1
  246. package/dist/view/security/ForgotPasswordBasic.js +2 -1
  247. package/dist/view/security/Login.js +2 -1
  248. package/dist/view/security/LoginBasic.js +2 -1
  249. package/dist/view/security/LoginInteractionPortal.js +2 -1
  250. package/dist/view/security/ResetPassword.js +2 -1
  251. package/dist/view/security/ResetPasswordBasic.js +2 -1
  252. package/dist/view/security/Security.js +2 -1
  253. package/package.json +2 -2
@@ -726,4 +726,5 @@ const VCRoomParticipant = props => {
726
726
  }, device.label));
727
727
  })));
728
728
  };
729
- var _default = exports.default = VCRoomParticipant;
729
+ var _default = exports.default = VCRoomParticipant;
730
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1ZDRXZlbnRUeXBlIiwiX1ZDRXZlbnRNYW5hZ2VyIiwiX1ZDUm9vbVJlY29yZGVyIiwiX01lZGlhU291cEhlbHBlciIsIl9UcmFja3MiLCJfSWNvbkJ1dHRvbiIsIl9JY29uIiwiX2ljb25zTWF0ZXJpYWwiLCJfVG9vbHRpcCIsIl9tYXRlcmlhbCIsIl9Tb2NrZXRNYW5hZ2VyIiwiX0J1dHRvbiIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJWSURFT19DT0RFQ19PUFRJT05TIiwiZXhwb3J0cyIsInZpZGVvR29vZ2xlU3RhcnRCaXRyYXRlIiwiVklERU9fQ09OU1RSQUlOVFMiLCJhdWRpbyIsInZpZGVvIiwid2lkdGgiLCJtaW4iLCJpZGVhbCIsImhlaWdodCIsIlZJREVPX0VOQ09ESU5HUyIsInJpZCIsIm1heEJpdHJhdGUiLCJzY2FsYWJpbGl0eU1vZGUiLCJsb2NhdGlvbiIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJWQ1Jvb21QYXJ0aWNpcGFudCIsInByb3BzIiwiaGFuZFJhaXNlZCIsInNldEhhbmRSYWlzZWQiLCJSZWFjdCIsInVzZVN0YXRlIiwidmlkZW9NdXRlZCIsInNldFZpZGVvTXV0ZWQiLCJhdWRpb011dGVkIiwic2V0QXVkaW9NdXRlZCIsInByb2R1Y2VyVHJhbnNwb3J0Iiwic2V0UHJvZHVjZXJUcmFuc3BvcnQiLCJ2aWRlb1JlZnJlc2hlciIsInNldFZpZGVvUmVmcmVzaGVyIiwicHJvZHVjZXJzIiwiTWFwIiwiZmFpbGVkUHJvZHVjZXJzRHVlVG9OdWxsVHJhbnNwb3J0IiwiYXVkaW9EZXZpY2VzIiwic2V0QXVkaW9EZXZpY2VzIiwic2VsZWN0ZWRBdWRpb0RldmljZSIsInNldFNlbGVjdGVkQXVkaW9EZXZpY2UiLCJjb25zdW1lcnMiLCJzb3VuZExldmVsIiwic2V0U291bmRMZXZlbCIsImV2ZW50SGFuZGxlciIsInZpZGVvUmVmIiwidXNlUmVmIiwidmlkZW9TdHJlYW0iLCJhdWRpb1JlZiIsInRyYWNrcyIsIlRyYWNrcyIsInNvdW5kTGV2ZWxDb3VudGVyIiwic2hvd1ZpZGVvIiwiY29uc3VtZXJUcmFuc3BvcnQiLCJkZXZpY2UiLCJwYXJ0aWNpcGFudHMiLCJudW1iZXJPZkluVmlld1BhcnRpY2lwYW50cyIsImFuY2hvckVsIiwic2V0QW5jaG9yRWwiLCJvcGVuTW9yZUFjdGlvbnMiLCJCb29sZWFuIiwiZG93bmxvYWRVcmwiLCJzZXREb3dubG9hZFVybCIsImhhbmRsZXIiLCJpZCIsImRhdGEiLCJ1c2VySWQiLCJvbiIsImV2ZW50VHlwZSIsImJlIiwiVkNFdmVudFR5cGUiLCJBVURJT19WSVNVQUxfU0VUVElOR1NfQ0hBTkdFRCIsIm9uQVZTZXR0aW5nc0NoYW5nZSIsInBheWxvYWQiLCJSQUlTRV9IQU5EIiwib25SYWlzZUhhbmQiLCJMT1dFUl9IQU5EIiwib25Mb3dlckhhbmQiLCJORVdfUFJPRFVDRVJTIiwib25OZXdQcm9kdWNlcnMiLCJDT05TVU1FUl9DTE9TRUQiLCJjb25zdW1lcklkIiwicmVtb3ZlQ29uc3VtZXIiLCJraW5kIiwiaGFuZGxlQ2xpY2tEZXZpY2VzSWNvbiIsImV2ZW50IiwiY3VycmVudFRhcmdldCIsImNoYW5nZUF1ZGlvRGV2aWNlIiwidXNlRWZmZWN0IiwiYXBpIiwiY3VycmVudCIsInNyY09iamVjdCIsInNvdW5kTW9uaXRvciIsImluVmlldyIsImhhbmRsZUNsb3NlRGV2aWNlTWVudSIsImlzQ3VycmVudFVzZXIiLCJzdG9wUHJvZHVjaW5nIiwicHJvZHVjZSIsIlV0aWxzIiwiaXNOdWxsIiwiYXZhdGFySWQiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJnZXRDb250ZXh0Um9vdCIsInNlc3Npb25TdG9yYWdlIiwiZ2V0SXRlbSIsIm9uQXVkaW9EZXZpY2VDaGFuZ2UiLCJjcmVhdGVQcm9kdWNlclRyYW5zcG9ydCIsImNvbnNvbGUiLCJsb2ciLCJzcGxpY2UiLCJsZW5ndGgiLCJrZXkiLCJ2YWx1ZSIsImZpbmQiLCJwIiwicHJvZHVjZXJJZCIsImNvbnN1bWUiLCJtZWRpYVNvdXBIZWxwZXIiLCJpbml0UHJvZHVjZXJUcmFuc3BvcnQiLCJtZWV0aW5nSWQiLCJnZXRVc2VyRGV0YWlscyIsInVzZXJuYW1lIiwiaGFuZGxlRGV2aWNlc0NoYW5nZWQiLCJkZXZpY2VzIiwiYXVkaW9EZXZpY2VMaXN0IiwiZm9yRWFjaCIsInB1c2giLCJkZXZpY2VJZCIsImxhYmVsIiwidmNFdmVudE1hbmFnZXIiLCJyZW1vdmVTdWJzY3JpcHRpb25zIiwiYWRkU3Vic2NyaXB0aW9ucyIsIm5hdmlnYXRvciIsIm1lZGlhRGV2aWNlcyIsIm9uZGV2aWNlY2hhbmdlIiwiZW51bWVyYXRlRGV2aWNlcyIsInRoZW4iLCJjb25zdW1lRmFpbGVkUHJvZHVjZXJzIiwidHlwZSIsImVycm9yIiwiY2FuUHJvZHVjZSIsIm1lZGlhQ29uc3RyYWludHMiLCJzdHJlYW0iLCJnZXRVc2VyTWVkaWEiLCJ0cmFjayIsImdldEF1ZGlvVHJhY2tzIiwiZ2V0VmlkZW9UcmFja3MiLCJwYXJhbXMiLCJpc0hvc3QiLCJtZWRpYVJlY29yZGVyIiwiYWRkVHJhY2siLCJzZXRBdWRpb1RyYWNrIiwiZW5jb2RpbmdzIiwiY29kZWNPcHRpb25zIiwic2V0VmlkZW9UcmFjayIsInByb2R1Y2VyIiwiZ2V0U3RhdHMiLCJnZXRUcmFja3MiLCJzdG9wIiwiZGVsZXRlIiwic2V0VGltZW91dCIsImNhbGxiYWNrIiwiY2xvc2UiLCJzdG9wVmlkZW9UcmFjayIsInN0b3BBdWRpb1RyYWNrIiwic29ja2V0TWFuYWdlciIsImVtaXRFdmVudCIsIlBST0RVQ0VSX0NMT1NFRCIsInJvb21JZCIsImNhdGNoIiwibG9hZGluZyIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzY3JlZW5TaGFyaW5nIiwiYXVkaW9FbGVtZW50IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInJlbW92ZVRyYWNrIiwiZWxlbWVudEJ5SWQiLCJyZW1vdmVDaGlsZCIsInJldHJ5Q29uc3VtZSIsInJldHJpZXMiLCJnZXRDb25zdW1lU3RyZWFtIiwicnRwQ2FwYWJpbGl0aWVzIiwiX3JlZiIsImNvbnN1bWVyIiwiY3JlYXRlRWxlbWVudCIsInBsYXlzaW5saW5lIiwiYXV0b3BsYXkiLCJhcHBlbmRDaGlsZCIsInBhcnRpY2lwYW50VmlkZW9NdXRlZCIsInBhcnRpY2lwYW50QXVkaW9NdXRlZCIsIkVycm9yIiwiZ2V0UGFydGljaXBhbnROYW1lIiwibmFtZSIsImNvbmNhdCIsIkZyYWdtZW50IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJwYWRkaW5nIiwicG9zaXRpb24iLCJtYXJnaW5Cb3R0b20iLCJzaXppbmciLCJib3JkZXIiLCJiYWNrZ3JvdW5kQ29sb3IiLCJmb250U2l6ZSIsImJhY2tncm91bmRSZXBlYXQiLCJiYWNrZ3JvdW5kU2l6ZSIsImJhY2tncm91bmRQb3NpdGlvbiIsImJvcmRlclJhZGl1cyIsImJhY2tncm91bmRJbWFnZSIsImdldEluaXRpYWxzIiwiYXV0b1BsYXkiLCJyZWYiLCJtdXRlZCIsInpJbmRleCIsImRpc3BsYXkiLCJib3R0b20iLCJqdXN0aWZ5Q29udGVudCIsIm1hcmdpbkxlZnQiLCJvbkNsaWNrIiwib25Ib3N0QXVkaW9NdXRlIiwibWFyZ2luUmlnaHQiLCJjb2xvciIsIm9uSG9zdFZpZGVvTXV0ZSIsInRpdGxlIiwic3giLCJtbCIsIlBhblRvb2wiLCJNZW51Iiwib3BlbiIsIm9uQ2xvc2UiLCJQYXBlclByb3BzIiwiZWxldmF0aW9uIiwib3ZlcmZsb3ciLCJmaWx0ZXIiLCJtdCIsIm1yIiwiY29udGVudCIsInRvcCIsInJpZ2h0IiwiYmdjb2xvciIsInRyYW5zZm9ybSIsInRyYW5zZm9ybU9yaWdpbiIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCIsImFuY2hvck9yaWdpbiIsIm1hcCIsImluZGV4IiwiTWVudUl0ZW0iLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZWRpYS9WQ1Jvb21QYXJ0aWNpcGFudC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5pbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAnLi9WQ1Jvb21QYXJ0aWNpcGFudC5jc3MnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uLy4uL1V0aWxzJztcbmltcG9ydCB7VkNFdmVudFR5cGV9IGZyb20gJy4vVkNFdmVudFR5cGUnO1xuaW1wb3J0IHZjRXZlbnRNYW5hZ2VyIGZyb20gJy4vVkNFdmVudE1hbmFnZXInO1xuaW1wb3J0IG1lZGlhUmVjb3JkZXIgZnJvbSAnLi9WQ1Jvb21SZWNvcmRlcic7XG5pbXBvcnQgbWVkaWFTb3VwSGVscGVyIGZyb20gJy4vTWVkaWFTb3VwSGVscGVyJztcbmltcG9ydCBUcmFja3MgZnJvbSAnLi9UcmFja3MnO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uJztcbmltcG9ydCBJY29uIGZyb20gJy4uL0ljb24nO1xuaW1wb3J0IHtQYW5Ub29sfSBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsJztcbmltcG9ydCBUb29sdGlwIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVG9vbHRpcCc7XG5pbXBvcnQge01lbnUsIE1lbnVJdGVtfSBmcm9tICdAbXVpL21hdGVyaWFsJztcbmltcG9ydCBzb2NrZXRNYW5hZ2VyIGZyb20gJy4uL1NvY2tldE1hbmFnZXInO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0J1dHRvbic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5cbmV4cG9ydCBjb25zdCBWSURFT19DT0RFQ19PUFRJT05TID0ge1xuICAgIHZpZGVvR29vZ2xlU3RhcnRCaXRyYXRlOiAxMDAwXG59O1xuXG5leHBvcnQgY29uc3QgVklERU9fQ09OU1RSQUlOVFMgPSB7XG4gICAgYXVkaW86IGZhbHNlLFxuICAgIHZpZGVvOiB7XG4gICAgICAgIHdpZHRoOiB7XG4gICAgICAgICAgICBtaW46IDY0MCxcbiAgICAgICAgICAgIGlkZWFsOiAxOTIwXG4gICAgICAgIH0sXG4gICAgICAgIGhlaWdodDoge1xuICAgICAgICAgICAgbWluOiA0MDAsXG4gICAgICAgICAgICBpZGVhbDogMTA4MFxuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IFZJREVPX0VOQ09ESU5HUyA9IFtcbiAgICB7XG4gICAgICAgIHJpZDogJ3IwJyxcbiAgICAgICAgbWF4Qml0cmF0ZTogMjAwMDAsXG4gICAgICAgIC8vc2NhbGVSZXNvbHV0aW9uRG93bkJ5OiAxMC4wLFxuICAgICAgICBzY2FsYWJpbGl0eU1vZGU6ICdTMVQzJ1xuICAgIH0sXG4gICAge1xuICAgICAgICByaWQ6ICdyMScsXG4gICAgICAgIG1heEJpdHJhdGU6IDE1MDAwMCxcbiAgICAgICAgc2NhbGFiaWxpdHlNb2RlOiAnUzFUMydcbiAgICB9LFxuICAgIHtcbiAgICAgICAgcmlkOiAncjInLFxuICAgICAgICBtYXhCaXRyYXRlOiA0NTAwMDAsXG4gICAgICAgIHNjYWxhYmlsaXR5TW9kZTogJ1MxVDMnXG4gICAgfVxuXTtcblxuY29uc3QgbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuY29uc3QgVkNSb29tUGFydGljaXBhbnQgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBbaGFuZFJhaXNlZCwgc2V0SGFuZFJhaXNlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3ZpZGVvTXV0ZWQsIHNldFZpZGVvTXV0ZWRdID0gUmVhY3QudXNlU3RhdGUocHJvcHMudmlkZW9NdXRlZCk7XG4gICAgY29uc3QgW2F1ZGlvTXV0ZWQsIHNldEF1ZGlvTXV0ZWRdID0gUmVhY3QudXNlU3RhdGUocHJvcHMuYXVkaW9NdXRlZCk7XG4gICAgY29uc3QgW3Byb2R1Y2VyVHJhbnNwb3J0LCBzZXRQcm9kdWNlclRyYW5zcG9ydF0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5wcm9kdWNlclRyYW5zcG9ydCk7XG4gICAgY29uc3QgW3ZpZGVvUmVmcmVzaGVyLCBzZXRWaWRlb1JlZnJlc2hlcl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3Byb2R1Y2Vyc10gPSBSZWFjdC51c2VTdGF0ZShuZXcgTWFwKCkpO1xuICAgIGNvbnN0IFtmYWlsZWRQcm9kdWNlcnNEdWVUb051bGxUcmFuc3BvcnRdID0gUmVhY3QudXNlU3RhdGUoW10pO1xuICAgIGNvbnN0IFthdWRpb0RldmljZXMsIHNldEF1ZGlvRGV2aWNlc10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW3NlbGVjdGVkQXVkaW9EZXZpY2UsIHNldFNlbGVjdGVkQXVkaW9EZXZpY2VdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW2NvbnN1bWVyc10gPSBSZWFjdC51c2VTdGF0ZShuZXcgTWFwKCkpO1xuICAgIGNvbnN0IFtzb3VuZExldmVsLCBzZXRTb3VuZExldmVsXSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtldmVudEhhbmRsZXJdID0gdXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IHZpZGVvUmVmID0gdXNlUmVmKCk7XG4gICAgY29uc3QgdmlkZW9TdHJlYW0gPSB1c2VSZWYoKTtcbiAgICBjb25zdCBhdWRpb1JlZiA9IHVzZVJlZigpO1xuICAgIGNvbnN0IHRyYWNrcyA9IHVzZVJlZihuZXcgVHJhY2tzKCkpO1xuICAgIGNvbnN0IHNvdW5kTGV2ZWxDb3VudGVyID0gdXNlUmVmKDApO1xuICAgIGNvbnN0IHNob3dWaWRlbyA9IHRydWU7XG4gICAgY29uc3Qge1xuICAgICAgICBjb25zdW1lclRyYW5zcG9ydCxcbiAgICAgICAgZGV2aWNlLFxuICAgICAgICBwYXJ0aWNpcGFudHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3Qge251bWJlck9mSW5WaWV3UGFydGljaXBhbnRzfSA9IHByb3BzO1xuICAgIGNvbnN0IFthbmNob3JFbCwgc2V0QW5jaG9yRWxdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgb3Blbk1vcmVBY3Rpb25zID0gQm9vbGVhbihhbmNob3JFbCk7XG5cbiAgICBjb25zdCBbZG93bmxvYWRVcmwsIHNldERvd25sb2FkVXJsXSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gICAgY29uc3QgaGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ21lZXRpbmctcGFydGljaXBhbnQtJyArIHByb3BzLmRhdGEudXNlcklkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uOiAoZXZlbnRUeXBlLCBiZSkgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZXZlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgVkNFdmVudFR5cGUuQVVESU9fVklTVUFMX1NFVFRJTkdTX0NIQU5HRUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkFWU2V0dGluZ3NDaGFuZ2UoYmUucGF5bG9hZCA/IGJlLnBheWxvYWQgOiBiZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBWQ0V2ZW50VHlwZS5SQUlTRV9IQU5EOlxuICAgICAgICAgICAgICAgICAgICAgICAgb25SYWlzZUhhbmQoYmUucGF5bG9hZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBWQ0V2ZW50VHlwZS5MT1dFUl9IQU5EOlxuICAgICAgICAgICAgICAgICAgICAgICAgb25Mb3dlckhhbmQoYmUucGF5bG9hZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBWQ0V2ZW50VHlwZS5ORVdfUFJPRFVDRVJTOlxuICAgICAgICAgICAgICAgICAgICAgICAgb25OZXdQcm9kdWNlcnMoYmUucGF5bG9hZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBWQ0V2ZW50VHlwZS5DT05TVU1FUl9DTE9TRUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uc3VtZXJzLmhhcyhiZS5wYXlsb2FkLmNvbnN1bWVySWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ29uc3VtZXIoYmUucGF5bG9hZC5jb25zdW1lcklkLCBiZS5wYXlsb2FkLmtpbmQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDbGlja0RldmljZXNJY29uID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIHNldEFuY2hvckVsKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIH07XG5cbiAgICBjb25zdCBjaGFuZ2VBdWRpb0RldmljZSA9IChkZXZpY2UpID0+IHtcbiAgICAgICAgc2V0U2VsZWN0ZWRBdWRpb0RldmljZShkZXZpY2UpO1xuICAgIH07XG5cbiAgICBjb25zdCBvblJhaXNlSGFuZCA9IChwYXlsb2FkKSA9PiB7XG4gICAgICAgIGlmIChwYXlsb2FkICYmIHBheWxvYWQudXNlcklkID09PSBwcm9wcy5kYXRhLnVzZXJJZCkge1xuICAgICAgICAgICAgc2V0SGFuZFJhaXNlZCh0cnVlKTtcbiAgICAgICAgICAgIHByb3BzLmRhdGEuaGFuZFJhaXNlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgb25Mb3dlckhhbmQgPSAocGF5bG9hZCkgPT4ge1xuICAgICAgICBpZiAocGF5bG9hZCAmJiBwYXlsb2FkLnVzZXJJZCA9PT0gcHJvcHMuZGF0YS51c2VySWQpIHtcbiAgICAgICAgICAgIHNldEhhbmRSYWlzZWQoZmFsc2UpO1xuICAgICAgICAgICAgcHJvcHMuZGF0YS5oYW5kUmFpc2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZXZlbnRIYW5kbGVyLmFwaSA9IGhhbmRsZXIoKTtcbiAgICB9KTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICh2aWRlb1JlZi5jdXJyZW50ICYmIHZpZGVvU3RyZWFtLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHZpZGVvUmVmLmN1cnJlbnQuc3JjT2JqZWN0ID0gdmlkZW9TdHJlYW0uY3VycmVudDtcbiAgICAgICAgfVxuICAgIH0sIFt2aWRlb1JlZi5jdXJyZW50XSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAocHJvcHMuc291bmRNb25pdG9yICYmICFwcm9wcy5pblZpZXcpIHtcbiAgICAgICAgICAgIGlmIChzb3VuZExldmVsID4gMykge1xuICAgICAgICAgICAgICAgIHNvdW5kTGV2ZWxDb3VudGVyLmN1cnJlbnQgPSAxMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc291bmRMZXZlbENvdW50ZXIuY3VycmVudCA+IDApIHtcbiAgICAgICAgICAgICAgICBzb3VuZExldmVsQ291bnRlci5jdXJyZW50LS07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHByb3BzLnNvdW5kTW9uaXRvcihwcm9wcy5kYXRhLnVzZXJJZCwgc291bmRMZXZlbENvdW50ZXIuY3VycmVudCA9PT0gMCB8fCBhdWRpb011dGVkKTtcbiAgICAgICAgfVxuICAgIH0sIFtzb3VuZExldmVsXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoYXVkaW9NdXRlZCkge1xuICAgICAgICAgICAgc2V0U291bmRMZXZlbCgwKTtcbiAgICAgICAgICAgIGlmIChwcm9wcy5zb3VuZE1vbml0b3IgJiYgIXByb3BzLmluVmlldykge1xuICAgICAgICAgICAgICAgIHByb3BzLnNvdW5kTW9uaXRvcihwcm9wcy5kYXRhLnVzZXJJZCwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbYXVkaW9NdXRlZF0pO1xuXG4gICAgY29uc3QgaGFuZGxlQ2xvc2VEZXZpY2VNZW51ID0gKCkgPT4ge1xuICAgICAgICBzZXRBbmNob3JFbChudWxsKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb25BVlNldHRpbmdzQ2hhbmdlID0gKHBheWxvYWQpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLmRhdGEudXNlcklkID09PSBwYXlsb2FkLnVzZXJJZCkge1xuICAgICAgICAgICAgaWYgKHByb3BzLmlzQ3VycmVudFVzZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAocGF5bG9hZC5hdWRpb011dGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0b3BQcm9kdWNpbmcoJ2F1ZGlvJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRldmljZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZSgnYXVkaW8nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChwYXlsb2FkLnZpZGVvTXV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcFByb2R1Y2luZygndmlkZW8nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGV2aWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWNlKCd2aWRlbycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXRBdWRpb011dGVkKHBheWxvYWQuYXVkaW9NdXRlZCk7XG4gICAgICAgICAgICBzZXRWaWRlb011dGVkKHBheWxvYWQudmlkZW9NdXRlZCk7XG5cbiAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5pc0N1cnJlbnRVc2VyKSB7XG5cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAocHJvcHMuZGF0YSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmRhdGEuYXZhdGFySWQpXG4gICAgICAgICAgICAmJiBwcm9wcy5kYXRhLmF2YXRhcklkICE9PSAndW5kZWZpbmVkJyAmJiBwcm9wcy5kYXRhLmF2YXRhcklkICE9PSAnbnVsbCcpIHtcbiAgICAgICAgICAgIHNldERvd25sb2FkVXJsKGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyAnL2RvY3MvYXBpL3YxL21hbmFnZXIvZG93bmxvYWQvJyArIHByb3BzLmRhdGEuYXZhdGFySWQgK1xuICAgICAgICAgICAgICAgICc/YWNjZXNzX3Rva2VuPScgKyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhY2Nlc3NUb2tlbicpICsgJyZpZFRva2VuPScgKyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdpZFRva2VuJykpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLmRhdGFdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldEF1ZGlvTXV0ZWQocHJvcHMuYXVkaW9NdXRlZCk7XG4gICAgfSwgW3Byb3BzLmF1ZGlvTXV0ZWRdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldFZpZGVvTXV0ZWQocHJvcHMudmlkZW9NdXRlZCk7XG4gICAgfSwgW3Byb3BzLnZpZGVvTXV0ZWRdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChwcm9kdWNlclRyYW5zcG9ydCkge1xuICAgICAgICAgICAgaWYgKHByb3BzLnZpZGVvTXV0ZWQpIHtcbiAgICAgICAgICAgICAgICBzdG9wUHJvZHVjaW5nKCd2aWRlbycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwcm9kdWNlKCd2aWRlbycpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocHJvcHMuYXVkaW9NdXRlZCkge1xuICAgICAgICAgICAgICAgIHN0b3BQcm9kdWNpbmcoJ2F1ZGlvJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHByb2R1Y2UoJ2F1ZGlvJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbcHJvZHVjZXJUcmFuc3BvcnRdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldFByb2R1Y2VyVHJhbnNwb3J0KHByb3BzLnByb2R1Y2VyVHJhbnNwb3J0KTtcbiAgICB9LCBbcHJvcHMucHJvZHVjZXJUcmFuc3BvcnRdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChwcm9wcy5pc0N1cnJlbnRVc2VyKSB7XG4gICAgICAgICAgICBwcm9wcy5vbkF1ZGlvRGV2aWNlQ2hhbmdlKHNlbGVjdGVkQXVkaW9EZXZpY2UpO1xuICAgICAgICAgICAgc3RvcFByb2R1Y2luZygnYXVkaW8nLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkQXVkaW9EZXZpY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9kdWNlclRyYW5zcG9ydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlUHJvZHVjZXJUcmFuc3BvcnQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghYXVkaW9NdXRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZSgnYXVkaW8nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgW3NlbGVjdGVkQXVkaW9EZXZpY2VdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChjb25zdW1lclRyYW5zcG9ydCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1RSQU5TSSBBUlJJVkVEIFdJVEggUFJPRFVDRVJTIDogJywgcHJvcHMuZGF0YS5wcm9kdWNlcnMpO1xuICAgICAgICAgICAgaWYgKHByb3BzLmRhdGEucHJvZHVjZXJzKSB7XG4gICAgICAgICAgICAgICAgb25OZXdQcm9kdWNlcnMocHJvcHMuZGF0YS5wcm9kdWNlcnMsIHRydWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvbk5ld1Byb2R1Y2VycyhmYWlsZWRQcm9kdWNlcnNEdWVUb051bGxUcmFuc3BvcnQsIHRydWUpO1xuICAgICAgICAgICAgZmFpbGVkUHJvZHVjZXJzRHVlVG9OdWxsVHJhbnNwb3J0LnNwbGljZSgwLCBmYWlsZWRQcm9kdWNlcnNEdWVUb051bGxUcmFuc3BvcnQubGVuZ3RoKTtcblxuICAgICAgICAgICAgaWYgKHByb2R1Y2Vycykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSRS1JTlNUQVRJTkcgQ09OU1VNRVJTJyk7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIHByb2R1Y2Vycykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnUFJPQ0VTU0lORyBQUk9EVUNFUiBPRiBUWVBFIDogJyArIGtleSArICcgOiAnICsgdmFsdWUuaWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIShwcm9wcy5kYXRhLnByb2R1Y2VycyAmJiB0aGlzLnByb3BzLmRhdGEucHJvZHVjZXJzLmZpbmQoKHApID0+IHAucHJvZHVjZXJJZCA9PT0gdmFsdWUuaWQpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtZSh2YWx1ZS5pZCwga2V5LCB0cnVlLCB2YWx1ZS51c2VySWQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1BST0RVQ0VSIEFMUkVBRFkgUFJPQ0VTU0VEJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbY29uc3VtZXJUcmFuc3BvcnRdKTtcblxuICAgIGNvbnN0IGNyZWF0ZVByb2R1Y2VyVHJhbnNwb3J0ID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBzZXRQcm9kdWNlclRyYW5zcG9ydChhd2FpdCBtZWRpYVNvdXBIZWxwZXIuaW5pdFByb2R1Y2VyVHJhbnNwb3J0KHByb3BzLmRldmljZSwgcHJvcHMubWVldGluZ0lkLFxuICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkudXNlcm5hbWUpKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRGV2aWNlc0NoYW5nZWQgPSAoZGV2aWNlcykgPT4ge1xuICAgICAgICBsZXQgYXVkaW9EZXZpY2VMaXN0ID0gW107XG4gICAgICAgIGRldmljZXMuZm9yRWFjaCgoZGV2aWNlKSA9PiB7XG4gICAgICAgICAgICBpZiAoJ2F1ZGlvaW5wdXQnID09PSBkZXZpY2Uua2luZCkge1xuICAgICAgICAgICAgICAgIGF1ZGlvRGV2aWNlTGlzdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGRldmljZS5kZXZpY2VJZCxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGRldmljZS5sYWJlbFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBzZXRBdWRpb0RldmljZXMoYXVkaW9EZXZpY2VMaXN0KTtcblxuICAgICAgICBpZiAoYXVkaW9EZXZpY2VMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkQXVkaW9EZXZpY2UoYXVkaW9EZXZpY2VMaXN0WzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkQXVkaW9EZXZpY2UobnVsbCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmNFdmVudE1hbmFnZXIucmVtb3ZlU3Vic2NyaXB0aW9ucyhldmVudEhhbmRsZXIpO1xuICAgICAgICB2Y0V2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKGV2ZW50SGFuZGxlciwgVkNFdmVudFR5cGUuQVVESU9fVklTVUFMX1NFVFRJTkdTX0NIQU5HRUQsXG4gICAgICAgICAgICBWQ0V2ZW50VHlwZS5SQUlTRV9IQU5ELCBWQ0V2ZW50VHlwZS5MT1dFUl9IQU5ELCBWQ0V2ZW50VHlwZS5ORVdfUFJPRFVDRVJTLCBWQ0V2ZW50VHlwZS5DT05TVU1FUl9DTE9TRUQpO1xuXG4gICAgICAgIGlmIChwcm9wcy5pc0N1cnJlbnRVc2VyKSB7XG4gICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLm9uZGV2aWNlY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChkZXZpY2VzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRGV2aWNlc0NoYW5nZWQoZGV2aWNlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKVxuICAgICAgICAgICAgICAgIC50aGVuKChkZXZpY2VzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVEZXZpY2VzQ2hhbmdlZChkZXZpY2VzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcHMuaXNDdXJyZW50VXNlcikge1xuICAgICAgICAgICAgY29uc3VtZUZhaWxlZFByb2R1Y2VycygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCc9PT09PT09PT09PT09PT09PT09PT09REVTVFJPWUlORyBQQVJUSUNJUEFOVD09PT09PT09PT09PT09PT09PT09PT09PT0gOiAnICsgcHJvcHMuZGF0YS51c2VySWQpO1xuXG4gICAgICAgICAgICBpZiAocHJvcHMuaXNDdXJyZW50VXNlcikge1xuICAgICAgICAgICAgICAgIHN0b3BQcm9kdWNpbmcoJ2F1ZGlvJyk7XG4gICAgICAgICAgICAgICAgc3RvcFByb2R1Y2luZygndmlkZW8nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIGNvbnN1bWVycykge1xuICAgICAgICAgICAgICAgIHJlbW92ZUNvbnN1bWVyKGtleSwgJ3ZpZGVvJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZjRXZlbnRNYW5hZ2VyLnJlbW92ZVN1YnNjcmlwdGlvbnMoZXZlbnRIYW5kbGVyKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBwcm9kdWNlID0gYXN5bmMgKHR5cGUpID0+IHtcbiAgICAgICAgaWYgKCFkZXZpY2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIGF2YWlsYWJsZSBkZXZpY2UnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGV2aWNlLmNhblByb2R1Y2UoJ3ZpZGVvJykgJiYgdHlwZSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignQ2Fubm90IHByb2R1Y2UgdmlkZW8nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc2VsZWN0ZWRBdWRpb0RldmljZSAmJiB0eXBlID09PSAnYXVkaW8nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdObyBhdWRpbyBkZXZpY2Ugc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9kdWNlcnMuaGFzKHR5cGUpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnUHJvZHVjZXIgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgdHlwZSAnICsgdHlwZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbWVkaWFDb25zdHJhaW50cztcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdhdWRpbyc6XG4gICAgICAgICAgICAgICAgbWVkaWFDb25zdHJhaW50cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgZGV2aWNlSWQ6IHNlbGVjdGVkQXVkaW9EZXZpY2UuaWQsXG4gICAgICAgICAgICAgICAgICAgIGF1ZGlvOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB2aWRlbzogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2aWRlbyc6XG4gICAgICAgICAgICAgICAgbWVkaWFDb25zdHJhaW50cyA9IFZJREVPX0NPTlNUUkFJTlRTO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEobWVkaWFDb25zdHJhaW50cyk7XG4gICAgICAgIGNvbnN0IHRyYWNrID0gdHlwZSA9PT0gJ2F1ZGlvJyA/IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdIDogc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgIHRyYWNrXG4gICAgICAgIH07XG5cbiAgICAgICAgYXVkaW9SZWYuY3VycmVudCA9IHN0cmVhbTtcbiAgICAgICAgaWYgKHByb3BzLmlzSG9zdCAmJiB0eXBlID09PSAnYXVkaW8nKSB7XG4gICAgICAgICAgICBtZWRpYVJlY29yZGVyLmFkZFRyYWNrKHByb3BzLmRhdGEudXNlcklkLCB0cmFjayk7XG4gICAgICAgICAgICB0cmFja3MuY3VycmVudC5zZXRBdWRpb1RyYWNrKHRyYWNrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlID09PSAndmlkZW8nKSB7XG4gICAgICAgICAgICBwYXJhbXMuZW5jb2RpbmdzID0gVklERU9fRU5DT0RJTkdTO1xuICAgICAgICAgICAgcGFyYW1zLmNvZGVjT3B0aW9ucyA9IFZJREVPX0NPREVDX09QVElPTlM7XG4gICAgICAgICAgICB0cmFja3MuY3VycmVudC5zZXRWaWRlb1RyYWNrKHRyYWNrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwcm9kdWNlcjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHByb2R1Y2VyID0gYXdhaXQgcHJvZHVjZXJUcmFuc3BvcnQucHJvZHVjZShwYXJhbXMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9kdWNlcikge1xuICAgICAgICAgICAgcHJvZHVjZXJUcmFuc3BvcnQuZ2V0U3RhdHMoKVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBjb25zb2xlLmxvZyhkYXRhKSk7XG4gICAgICAgICAgICBwcm9kdWNlcnMuc2V0KHR5cGUsIHByb2R1Y2VyKTtcblxuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICd2aWRlbycpIHtcbiAgICAgICAgICAgICAgICB2aWRlb1JlZi5jdXJyZW50LnNyY09iamVjdCA9IHN0cmVhbTtcbiAgICAgICAgICAgICAgICB2aWRlb1N0cmVhbS5jdXJyZW50ID0gc3RyZWFtO1xuICAgICAgICAgICAgICAgIHNldFZpZGVvUmVmcmVzaGVyKCF2aWRlb1JlZnJlc2hlcik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coc3RyZWFtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcHJvZHVjZXIub24oJ3RyYW5zcG9ydGNsb3NlJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHN0cmVhbS5zcmNPYmplY3QuZ2V0VHJhY2tzKClcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goZnVuY3Rpb24gKHRyYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFjay5zdG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcHJvZHVjZXJzLmRlbGV0ZSh0eXBlKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBwcm9kdWNlci5vbignY2xvc2UnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3RyZWFtLnNyY09iamVjdC5nZXRUcmFja3MoKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaChmdW5jdGlvbiAodHJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrLnN0b3AoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBwcm9kdWNlcnMuZGVsZXRlKHR5cGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgY29uc3VtZUZhaWxlZFByb2R1Y2VycyA9ICgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoY29uc3VtZXJUcmFuc3BvcnQpIHtcbiAgICAgICAgICAgICAgICBvbk5ld1Byb2R1Y2VycyhmYWlsZWRQcm9kdWNlcnNEdWVUb051bGxUcmFuc3BvcnQsIHRydWUpO1xuICAgICAgICAgICAgICAgIGZhaWxlZFByb2R1Y2Vyc0R1ZVRvTnVsbFRyYW5zcG9ydC5zcGxpY2UoMCwgZmFpbGVkUHJvZHVjZXJzRHVlVG9OdWxsVHJhbnNwb3J0Lmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgY29uc3VtZUZhaWxlZFByb2R1Y2VycygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCA1MDAwKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9wUHJvZHVjaW5nID0gKHR5cGUsIGNhbGxiYWNrKSA9PiB7XG4gICAgICAgIGlmICghcHJvZHVjZXJzLmhhcyh0eXBlKSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1RoZXJlIGlzIG5vIHByb2R1Y2VyIGZvciB0aGlzIHR5cGUgJyArIHR5cGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHByb2R1Y2VySWQgPSBwcm9kdWNlcnMuZ2V0KHR5cGUpLmlkO1xuICAgICAgICBjb25zb2xlLmxvZygnQ2xvc2UgcHJvZHVjZXInLCBwcm9kdWNlcklkKTtcblxuICAgICAgICBwcm9kdWNlcnMuZ2V0KHR5cGUpXG4gICAgICAgICAgICAuY2xvc2UoKTtcbiAgICAgICAgcHJvZHVjZXJzLmRlbGV0ZSh0eXBlKTtcbiAgICAgICAgaWYgKHR5cGUgPT09ICd2aWRlbycpIHtcbiAgICAgICAgICAgIHRyYWNrcy5jdXJyZW50LnN0b3BWaWRlb1RyYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZSA9PT0gJ2F1ZGlvJykge1xuICAgICAgICAgICAgdHJhY2tzLmN1cnJlbnQuc3RvcEF1ZGlvVHJhY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKCdDTE9TSU5HIFBST0RVQ0VSIE9GIElEIDogJyArIHByb2R1Y2VySWQpO1xuICAgICAgICBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChWQ0V2ZW50VHlwZS5QUk9EVUNFUl9DTE9TRUQsIHtcbiAgICAgICAgICAgIHVzZXJJZDogcHJvcHMuZGF0YS51c2VySWQsXG4gICAgICAgICAgICBwcm9kdWNlcklkLFxuICAgICAgICAgICAgcm9vbUlkOiBwcm9wcy5tZWV0aW5nSWRcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZygnUFJPRFVDRVJfQ0xPU0VEIEVSUk9SIDogJywgZSkpO1xuICAgIH07XG5cbiAgICBjb25zdCBvbk5ld1Byb2R1Y2VycyA9IChwcm9kdWNlcnMsIGxvYWRpbmcgPSBmYWxzZSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhcIj09PT09PSBQUk9EVUNFUlMgUkVDRUlWRUQgOiBbIFwiICsgSlNPTi5zdHJpbmdpZnkocHJvZHVjZXJzKSArIFwiIF0gPT09PT09PVwiKTtcbiAgICAgICAgZm9yIChjb25zdCBwcm9kdWNlciBvZiBwcm9kdWNlcnMpIHtcbiAgICAgICAgICAgIGlmIChjb25zdW1lclRyYW5zcG9ydCkge1xuICAgICAgICAgICAgICAgIGlmIChwcm9kdWNlci51c2VySWQgPT09IHByb3BzLmRhdGEudXNlcklkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9kdWNlci5raW5kID09PSAndmlkZW8nICYmICFwcm9kdWNlci5zY3JlZW5TaGFyaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQ0FMTElORyBDT05TVU1FIEZST00gT04gTkVXIFBST0RVQ0VSUyBGT1IgOiAnICsgcHJvcHMuZGF0YS51c2VySWQgKyAnIC0gJyArIHByb2R1Y2VyLnByb2R1Y2VySWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtZShwcm9kdWNlci5wcm9kdWNlcklkLCBwcm9kdWNlci5raW5kLCBsb2FkaW5nLCBwcm9kdWNlci51c2VySWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLmlzQ3VycmVudFVzZXIgfHwgbG9hZGluZykge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgc21hbGwgcGFydGljaXBhbnQgYm94IGF0IHRoZSBib3R0b20gYmVsb25naW5nIHRvIHRoZSBjdXJyZW50IHVzZXIgbXVzdCBjb25zdW1lIGFsbCBhdWRpb1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGJlY2F1c2Ugd2UgZG8gbm90IHdhbnQgdG8gZGlzdHVyYiB0aGUgYXVkaW8gZHVlIHRvIGFueSByZW5kZXJpbmcgc3VjaCBhcyBCcmluZyB0byB2aWV3XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9kdWNlci5raW5kID09PSAnYXVkaW8nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdW1lKHByb2R1Y2VyLnByb2R1Y2VySWQsIHByb2R1Y2VyLmtpbmQsIGxvYWRpbmcsIHByb2R1Y2VyLnVzZXJJZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZhaWxlZFByb2R1Y2Vyc0R1ZVRvTnVsbFRyYW5zcG9ydC5wdXNoKHByb2R1Y2VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcIj09PT09PSBQUk9EVUNFUlMgVEhBVCBDT1VMRCBOT1QgQkUgQ09OU1VNRVMgOiBbIFwiICsgSlNPTi5zdHJpbmdpZnkoZmFpbGVkUHJvZHVjZXJzRHVlVG9OdWxsVHJhbnNwb3J0KSArIFwiIF0gPT09PT09PVwiKTtcbiAgICB9O1xuXG4gICAgY29uc3QgcmVtb3ZlQ29uc3VtZXIgPSAoY29uc3VtZXJJZCwga2luZCwgdXNlcklkKSA9PiB7XG4gICAgICAgIGlmIChraW5kID09PSAndmlkZW8nKSB7XG4gICAgICAgICAgICBpZiAodmlkZW9TdHJlYW0uY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGlmICh2aWRlb1N0cmVhbS5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZpZGVvU3RyZWFtLmN1cnJlbnQuZ2V0VHJhY2tzKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uICh0cmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrLnN0b3AoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChraW5kID09PSAnYXVkaW8nKSB7XG4gICAgICAgICAgICBsZXQgYXVkaW9FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY29uc3VtZXJJZCk7XG4gICAgICAgICAgICBpZiAoYXVkaW9FbGVtZW50ICYmIGF1ZGlvRWxlbWVudC5zcmNPYmplY3QpIHtcbiAgICAgICAgICAgICAgICBhdWRpb0VsZW1lbnQuc3JjT2JqZWN0LmdldFRyYWNrcygpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uICh0cmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2suc3RvcCgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmICh1c2VySWQgJiYgbWVkaWFSZWNvcmRlcikge1xuICAgICAgICAgICAgICAgICAgICBtZWRpYVJlY29yZGVyLnJlbW92ZVRyYWNrKHVzZXJJZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBlbGVtZW50QnlJZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByb3BzLmRhdGEudXNlcklkICsgJy1hdWRpby1lbC1jb250YWluZXInKTtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudEJ5SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudEJ5SWQucmVtb3ZlQ2hpbGQoYXVkaW9FbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdW1lcnMuZGVsZXRlKGNvbnN1bWVySWQpO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZXRyeUNvbnN1bWUoa2luZCwgdXNlcklkLCBlLCByZXRyaWVzLCBwcm9kdWNlcklkLCBsb2FkaW5nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdGQUlMRUQgVE8gQ09OU1VNRSAnICsga2luZCArICcgRlJPTSAnICsgdXNlcklkKTtcbiAgICAgICAgY29uc29sZS5sb2coZSk7XG5cbiAgICAgICAgaWYgKHJldHJpZXMgPCAxMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1JFLVRSWUlORyBbJyArIHJldHJpZXMgKyAnXScpO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgY29uc3VtZShwcm9kdWNlcklkLCBraW5kLCBsb2FkaW5nLCB1c2VySWQsIHJldHJpZXMpO1xuICAgICAgICAgICAgfSwgNTAwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQ09NUExFVEVMWSBGQUlMRUQgVE8gQ09OU1VNRSAnICsga2luZCArICcgRlJPTSAnICsgdXNlcklkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnN1bWUgPSBhc3luYyAocHJvZHVjZXJJZCwga2luZCwgbG9hZGluZywgdXNlcklkLCByZXRyaWVzID0gMCkgPT4ge1xuICAgICAgICBtZWRpYVNvdXBIZWxwZXIuZ2V0Q29uc3VtZVN0cmVhbShwcm9kdWNlcklkLCBkZXZpY2UucnRwQ2FwYWJpbGl0aWVzLCBjb25zdW1lclRyYW5zcG9ydCwgcHJvcHMubWVldGluZ0lkLFxuICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkudXNlcm5hbWUsIGtpbmQpXG4gICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICAgY29uc3VtZXIsXG4gICAgICAgICAgICAgICAgICAgICBzdHJlYW0sXG4gICAgICAgICAgICAgICAgICAgICBraW5kXG4gICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnN1bWVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdW1lcnMuc2V0KGNvbnN1bWVyLmlkLCBjb25zdW1lcik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCc9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Q09OU1VNRT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gOiAnICsga2luZCArICcgRk9SIDogJyArIHVzZXJJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2luZCA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2aWRlb1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvUmVmLmN1cnJlbnQuc3JjT2JqZWN0ID0gc3RyZWFtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvU3RyZWFtLmN1cnJlbnQgPSBzdHJlYW07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRWaWRlb011dGVkKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRWaWRlb1JlZnJlc2hlcighdmlkZW9SZWZyZXNoZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrcy5jdXJyZW50LnNldFZpZGVvVHJhY2soc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvcHMuaXNDdXJyZW50VXNlciB8fCBsb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhdWRpb0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhdWRpbycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb0VsZW1lbnQuc3JjT2JqZWN0ID0gc3RyZWFtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb0VsZW1lbnQuaWQgPSBjb25zdW1lci5pZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9FbGVtZW50LnBsYXlzaW5saW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvRWxlbWVudC5hdXRvcGxheSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZWV0aW5nLWF1ZGlvLWVsLWNvbnRhaW5lcicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kQ2hpbGQoYXVkaW9FbGVtZW50KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvcHMuaXNIb3N0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVJlY29yZGVyLmFkZFRyYWNrKHVzZXJJZCwgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdW1lci5vbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhY2tlbmRlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhraW5kICsgXCIgQ09OU1VNRVIgVFJBQ0sgRU5ERUQgRk9SIFwiICsgdXNlcklkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ29uc3VtZXIoY29uc3VtZXIuaWQsIGtpbmQsIHVzZXJJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJ0aWNpcGFudFZpZGVvTXV0ZWQgPSBwYXJ0aWNpcGFudHMuZmluZCgocCkgPT4gcC51c2VySWQgPT09IHVzZXJJZCkudmlkZW9NdXRlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcnRpY2lwYW50QXVkaW9NdXRlZCA9IHBhcnRpY2lwYW50cy5maW5kKChwKSA9PiBwLnVzZXJJZCA9PT0gdXNlcklkKS5hdWRpb011dGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGtpbmQgPT09ICd2aWRlbycgJiYgIXBhcnRpY2lwYW50VmlkZW9NdXRlZCkgfHwgKGtpbmQgPT09ICdhdWRpbycgJiYgIXBhcnRpY2lwYW50QXVkaW9NdXRlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHJ5Q29uc3VtZShraW5kLCB1c2VySWQsIG5ldyBFcnJvcigndHJhY2tlbmRlZCB3aGlsZSAnICsga2luZCArICcgaXMgTk9UIG11dGVkJyksIHJldHJpZXMsIHByb2R1Y2VySWQsIGxvYWRpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtZXIub24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zcG9ydGNsb3NlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGtpbmQgKyBcIiBDT05TVU1FUiBDTE9TRUQgRk9SIFwiICsgdXNlcklkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ29uc3VtZXIoY29uc3VtZXIuaWQsIGtpbmQsIHVzZXJJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgIHJldHJ5Q29uc3VtZShraW5kLCB1c2VySWQsIGUsIHJldHJpZXMsIHByb2R1Y2VySWQsIGxvYWRpbmcpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0UGFydGljaXBhbnROYW1lID0gKCkgPT4ge1xuICAgICAgICBsZXQgbmFtZSA9IHByb3BzLmRhdGEubmFtZTtcblxuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHByb3BzLmRhdGEudXNlcklkKSkge1xuICAgICAgICAgICAgbmFtZSA9IGAke25hbWV9IChHdWVzdClgO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Akeydjb2wtKi0qICcgKyAocHJvcHMuaXNDdXJyZW50VXNlciA/ICdtZWV0aW5nLXBhcnRpY2lwYW50LWNvbnRhaW5lci1jdXJyZW50LXVzZXInIDogJ21lZXRpbmctcGFydGljaXBhbnQtY29udGFpbmVyJyl9YH1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHByb3BzLnBhZGRpbmcgPyBwcm9wcy5wYWRkaW5nIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcHJvcHMuaGVpZ2h0ID8gcHJvcHMuaGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnXG4gICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpZGVvTXV0ZWQgfHwgIXZpZGVvUmVmLmN1cnJlbnQgfHwgIXZpZGVvUmVmLmN1cnJlbnQuc3JjT2JqZWN0KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NlbnRlcmVkLWZsZXgtYm94J31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiBwcm9wcy5zaXppbmcgPT09ICdzbScgPyAnOHB4JyA6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17cHJvcHMuc2l6aW5nID09PSAnc20nID8gJ2F2YXRhci13cmFwcGVyLXNtJyA6ICdhdmF0YXItd3JhcHBlcid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAoKHByb3BzLnNpemluZyA9PT0gJ3NtJyA/IDcyIDogMTEyKSArIHNvdW5kTGV2ZWwgLyAxMCkgKyAncHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogKChwcm9wcy5zaXppbmcgPT09ICdzbScgPyA3MiA6IDExMikgKyBzb3VuZExldmVsIC8gMTApICsgJ3B4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICFhdWRpb011dGVkICYmIHNvdW5kTGV2ZWwgPiAzID8gKHByb3BzLnNpemluZyA9PT0gJ3NtJyA/IDIgOiA0KSArICdweCBzb2xpZCAjMDA0NzZhJyA6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZTllOWU5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17cHJvcHMuc2l6aW5nID09PSAnbWQnID8gJ2F2YXRhciBhdmF0YXItbWQnIDogcHJvcHMuc2l6aW5nID09PSAnc20nID8gJ2F2YXRhciBhdmF0YXItc20nIDogJ2F2YXRhcid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogcHJvcHMuc2l6aW5nID09PSAnc20nID8gJzIwcHgnIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZFVybCA/IDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRSZXBlYXQ6ICduby1yZXBlYXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRTaXplOiAnY292ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNTAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBgdXJsKCR7ZG93bmxvYWRVcmx9KWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPiA6IFV0aWxzLmdldEluaXRpYWxzKHByb3BzLmRhdGEubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtwcm9wcy5kYXRhLnVzZXJJZCArICctdmlkZW8nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezY0MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzIwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b1BsYXkgcmVmPXt2aWRlb1JlZn0gbXV0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6SW5kZXg6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAodmlkZW9NdXRlZCB8fCAhdmlkZW9SZWYuY3VycmVudCB8fCAhdmlkZW9SZWYuY3VycmVudC5zcmNPYmplY3QpID8gJ25vbmUnIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKldlIG5lZWQgdGhpcyBlbGVtZW50IHRvIGNhcHR1cmUgcmVjb3JkaW5nIHNvdW5kKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuaXNIb3N0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhdWRpb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e3Byb3BzLmRhdGEudXNlcklkICsgJy1hdWRpbyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvUGxheSByZWY9e2F1ZGlvUmVmfSBtdXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnbm9uZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtwcm9wcy5zaXppbmcgPT09ICdzbScgPyAnbmFtZS1sYWJlbC1zbScgOiAnbmFtZS1sYWJlbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IHByb3BzLmlzQ3VycmVudFVzZXIgPyAnMTJweCcgOiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHByb3BzLmlzQ3VycmVudFVzZXIgPyAnNHB4IDE2cHgnIDogcHJvcHMuc2l6aW5nICE9PSAnc20nID8gJzRweCcgOiAnNHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3t3aWR0aDogJzUwJScsIGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JywgbWFyZ2luTGVmdDogJzRweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHshcHJvcHMuaXNDdXJyZW50VXNlciAmJiBnZXRQYXJ0aWNpcGFudE5hbWUoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5pc0N1cnJlbnRVc2VyICYmICdZb3UnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb3BzLmlzQ3VycmVudFVzZXIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3ttYXJnaW5MZWZ0OiAnNHB4JywgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJywgd2lkdGg6ICc1MCUnfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5pc0hvc3QgJiYgIWF1ZGlvTXV0ZWQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5vbkhvc3RBdWRpb011dGUocHJvcHMuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYig0MCwgNDAsIDQzKSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnTUlDJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YXVkaW9NdXRlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydNSUNfT0ZGJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnTUlDJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5pc0hvc3QgJiYgIXZpZGVvTXV0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25Ib3N0VmlkZW9NdXRlKHByb3BzLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6ICc0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd3aGl0ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnQ0FNRVJBJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuaXNDdXJyZW50VXNlciAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cgbm8tbWFyZ2luIG5vLXBhZGRpbmcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e3dpZHRoOiAnMTAwJSd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbCBuby1tYXJnaW4gbm8tcGFkZGluZyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNTAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT1cIk15IGRldmljZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrRGV2aWNlc0ljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e21sOiAxfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9e29wZW5Nb3JlQWN0aW9ucyA/ICdkZXZpY2UtbWVudScgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtvcGVuTW9yZUFjdGlvbnMgPyAndHJ1ZScgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzhweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnU0VUVElOR1MnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhcHJvcHMuaXNDdXJyZW50VXNlciAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3ttYXJnaW5MZWZ0OiAnNHB4J319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFuZFJhaXNlZCAmJiA8UGFuVG9vbCBmb250U2l6ZT17J3NtYWxsJ30gc3R5bGU9e3tjb2xvcjogJyNlMmIwMzAnfX0vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuaXNDdXJyZW50VXNlciAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPXsnbWVldGluZy1hdWRpby1lbC1jb250YWluZXInfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxNZW51XG4gICAgICAgICAgICAgICAgYW5jaG9yRWw9e2FuY2hvckVsfVxuICAgICAgICAgICAgICAgIGlkPVwiZGV2aWNlcy1tZW51XCJcbiAgICAgICAgICAgICAgICBvcGVuPXtvcGVuTW9yZUFjdGlvbnN9XG4gICAgICAgICAgICAgICAgb25DbG9zZT17aGFuZGxlQ2xvc2VEZXZpY2VNZW51fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsb3NlRGV2aWNlTWVudX1cbiAgICAgICAgICAgICAgICBQYXBlclByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGVsZXZhdGlvbjogMCxcbiAgICAgICAgICAgICAgICAgICAgc3g6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6ICdkcm9wLXNoYWRvdygwcHggMnB4IDhweCByZ2JhKDAsMCwwLDAuMzIpKScsXG4gICAgICAgICAgICAgICAgICAgICAgICBtdDogMS41LFxuICAgICAgICAgICAgICAgICAgICAgICAgJyYgLk11aUxpc3Qtcm9vdCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgI2UxZTFlMScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICcmIC5NdWlBdmF0YXItcm9vdCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbDogLTAuNSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtcjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAnJjpiZWZvcmUnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ1wiXCInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxNCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZ2NvbG9yOiAncHJpbWFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luPXt7XG4gICAgICAgICAgICAgICAgICAgIGhvcml6b250YWw6IDIwLFxuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbDogMTM2XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBhbmNob3JPcmlnaW49e3tcbiAgICAgICAgICAgICAgICAgICAgaG9yaXpvbnRhbDogJ3JpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWw6ICd0b3AnXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGF1ZGlvRGV2aWNlcy5tYXAoKGRldmljZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8TWVudUl0ZW0gb25DbGljaz17KCkgPT4gY2hhbmdlQXVkaW9EZXZpY2UoZGV2aWNlKX0ga2V5PXtpbmRleH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tjb2xvcjogc2VsZWN0ZWRBdWRpb0RldmljZSAmJiBzZWxlY3RlZEF1ZGlvRGV2aWNlLmlkID09PSBkZXZpY2UuaWQgPyAnIzE5ODc1NCcgOiBudWxsfX0+XG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgZGV2aWNlLmxhYmVsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWVudUl0ZW0+O1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgPC8+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFZDUm9vbVBhcnRpY2lwYW50O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGVBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLGVBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLGdCQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUyxLQUFBLEdBQUFQLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVSxjQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxRQUFBLEdBQUFULHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBWSxTQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxjQUFBLEdBQUFYLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBYyxPQUFBLEdBQUFaLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBZSxtQkFBQSxHQUFBYixzQkFBQSxDQUFBRixPQUFBO0FBQTBELFNBQUFFLHVCQUFBYyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFE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
@@ -187,4 +187,5 @@ class VCRoomRecorder {
187
187
  }
188
188
  }
189
189
  const instance = new VCRoomRecorder();
190
- var _default = exports.default = instance;
190
+ var _default = exports.default = instance;
191
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfU29ja2V0TWFuYWdlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX1ZDRXZlbnRUeXBlIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9kZWZpbmVQcm9wZXJ0eSIsInIiLCJ0IiwiX3RvUHJvcGVydHlLZXkiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIlZDUm9vbVJlY29yZGVyIiwiY29uc3RydWN0b3IiLCJtZWV0aW5nSWQiLCJtZWV0aW5nVGl0bGUiLCJpZCIsInRyYWNrIiwiY29uc29sZSIsImxvZyIsImF1ZGlvVHJhY2tzIiwic2V0IiwicmVjb3JkZXIiLCJzdGF0ZSIsIm1lZGlhU3RyZWFtIiwiTWVkaWFTdHJlYW0iLCJtZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZSIsIk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlIiwiYXVkaW9Db250ZXh0IiwiY29ubmVjdCIsIm1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUiLCJoYXMiLCJkZWxldGUiLCJkYXRhIiwic2l6ZSIsInJlY29yZGluZ1NlcXVlbmNlIiwiYmxvYiIsIkJsb2IiLCJ0eXBlIiwidXNlcklkIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZ2V0VXNlckRldGFpbHMiLCJ1c2VybmFtZSIsIm5hbWUiLCJzZXF1ZW5jZU51bWJlciIsInNlc3Npb25JZCIsImN1cnJlbnRSZWNvcmRpbmdJZCIsInJlYWRlciIsIkZpbGVSZWFkZXIiLCJyZWFkQXNEYXRhVVJMIiwiX3RoaXMiLCJvbmxvYWQiLCJldnQiLCJyZXN1bHQiLCJ0YXJnZXQiLCJyZWNvcmRpbmdUeXBlIiwicmVjb3JkaW5nU2l6ZSIsInJlY29yZGVkRGF0YSIsInJlcGxhY2UiLCJzb2NrZXRNYW5hZ2VyIiwiZW1pdEV2ZW50IiwiVkNFdmVudFR5cGUiLCJTQVZFX1JFQ09SRElORyIsInRoZW4iLCJpc1JlY29yZGluZyIsIlNUT1BfUkVDT1JESU5HIiwiY2F0Y2giLCJlcnJvciIsImNyZWF0ZU1lZGlhUmVjb3JkZXIiLCJUT0dHTEVfUkVDT1JEX01FRVRJTkciLCJyb29tSWQiLCJzdGFydCIsInN0cmVhbSIsImdldFZpZGVvVHJhY2tzIiwibGVuZ3RoIiwic3RvcCIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwidmlkZW9Db25zdHJhaW50cyIsImN1cnNvciIsImF1ZGlvIiwibWVkaWFTb3VyY2UiLCJwcmVmZXJDdXJyZW50VGFiIiwic2VsZkJyb3dzZXJTdXJmYWNlIiwic3lzdGVtQXVkaW8iLCJzdXJmYWNlU3dpdGNoaW5nIiwibW9uaXRvclR5cGVTdXJmYWNlcyIsIm5hdmlnYXRvciIsIm1lZGlhRGV2aWNlcyIsImdldERpc3BsYXlNZWRpYSIsIm9wdGlvbnMiLCJtaW1lVHlwZSIsIkF1ZGlvQ29udGV4dCIsIk1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUiLCJ0cmFja3MiLCJnZXRBdWRpb1RyYWNrcyIsInZhbHVlcyIsInB1c2giLCJpbml0aWFsTWVkaWFTdHJlYW0iLCJNZWRpYVJlY29yZGVyIiwib25kYXRhYXZhaWxhYmxlIiwiaGFuZGxlUmVjb3JkaW5nRGF0YUF2YWlsYWJsZSIsIm9uc3RvcCIsIkVycm9yIiwibWVzc2FnZSIsIk1hcCIsImluc3RhbmNlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21lZGlhL1ZDUm9vbVJlY29yZGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzb2NrZXRNYW5hZ2VyIGZyb20gJy4uL1NvY2tldE1hbmFnZXInO1xuaW1wb3J0IHsgVkNFdmVudFR5cGUgfSBmcm9tICcuL1ZDRXZlbnRUeXBlJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuXG5jbGFzcyBWQ1Jvb21SZWNvcmRlciB7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5tZWV0aW5nSWQgPSBudWxsO1xuICAgICAgICB0aGlzLm1lZXRpbmdUaXRsZSA9ICcnO1xuICAgICAgICB0aGlzLnJlY29yZGluZ1NlcXVlbmNlID0gMDtcbiAgICAgICAgdGhpcy5jdXJyZW50UmVjb3JkaW5nSWQgPSBudWxsO1xuICAgICAgICB0aGlzLnJlY29yZGluZ1R5cGUgPSBudWxsO1xuICAgICAgICB0aGlzLnJlY29yZGluZ1NpemUgPSBudWxsO1xuICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVjb3JkZXIgPSBudWxsO1xuICAgICAgICB0aGlzLmF1ZGlvVHJhY2tzID0gbmV3IE1hcCgpO1xuICAgIH1cblxuICAgIGluaXQgPSBhc3luYyAobWVldGluZ0lkLCBtZWV0aW5nVGl0bGUpID0+IHtcbiAgICAgICAgdGhpcy5tZWV0aW5nSWQgPSBtZWV0aW5nSWQ7XG4gICAgICAgIHRoaXMubWVldGluZ1RpdGxlID0gbWVldGluZ1RpdGxlO1xuICAgIH07XG5cbiAgICBhZGRUcmFjayA9IChpZCwgdHJhY2spID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ0FERElORyBUUkFDSyBGT1IgOiAnICsgaWQpO1xuICAgICAgICB0aGlzLmF1ZGlvVHJhY2tzLnNldChpZCwgdHJhY2spO1xuXG4gICAgICAgIGlmICh0aGlzLnJlY29yZGVyICYmIHRoaXMucmVjb3JkZXIuc3RhdGUgPT09ICdyZWNvcmRpbmcnKSB7XG4gICAgICAgICAgICBsZXQgbWVkaWFTdHJlYW0gPSBuZXcgTWVkaWFTdHJlYW0oW3RyYWNrXSk7XG4gICAgICAgICAgICBjb25zdCBtZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZSA9IG5ldyBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZShcbiAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvQ29udGV4dCxcbiAgICAgICAgICAgICAgICB7IG1lZGlhU3RyZWFtOiBtZWRpYVN0cmVhbSB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBtZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jb25uZWN0KHRoaXMubWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmVtb3ZlVHJhY2sgPSAoaWQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuYXVkaW9UcmFja3MuaGFzKGlkKSkge1xuICAgICAgICAgICAgdGhpcy5hdWRpb1RyYWNrcy5kZWxldGUoaWQpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGhhbmRsZVJlY29yZGluZ0RhdGFBdmFpbGFibGUgPSAoZSkgPT4ge1xuICAgICAgICBpZiAoZS5kYXRhLnNpemUgPiAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQURERUQgQ0hVTksgOiAnICsgdGhpcy5yZWNvcmRpbmdTZXF1ZW5jZSk7XG4gICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2UuZGF0YV0sIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAndmlkZW8vd2VibScsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICB1c2VySWQ6IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpLnVzZXJuYW1lLFxuICAgICAgICAgICAgICAgIG1lZXRpbmdJZDogdGhpcy5tZWV0aW5nSWQsXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5tZWV0aW5nVGl0bGUsXG4gICAgICAgICAgICAgICAgdHlwZTogYmxvYi50eXBlLFxuICAgICAgICAgICAgICAgIHNpemU6IGJsb2Iuc2l6ZSxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZU51bWJlcjogdGhpcy5yZWNvcmRpbmdTZXF1ZW5jZSxcbiAgICAgICAgICAgICAgICBzZXNzaW9uSWQ6IHRoaXMuY3VycmVudFJlY29yZGluZ0lkXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XG4gICAgICAgICAgICBsZXQgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGV2dC50YXJnZXQucmVzdWx0O1xuICAgICAgICAgICAgICAgIF90aGlzLnJlY29yZGluZ1R5cGUgPSBibG9iLnR5cGU7XG4gICAgICAgICAgICAgICAgX3RoaXMucmVjb3JkaW5nU2l6ZSArPSBibG9iLnNpemU7XG5cbiAgICAgICAgICAgICAgICBkYXRhLnJlY29yZGVkRGF0YSA9IHJlc3VsdC5yZXBsYWNlKCdkYXRhOnZpZGVvL3dlYm07YmFzZTY0LCcsICcnKTtcblxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCc9PT09PT09PSBTQVZJTkcgUkVDT1JESU5HIENIVU5LID09PT09PT09PScpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgICAgICAgICAgICAgIHNvY2tldE1hbmFnZXIuZW1pdEV2ZW50KFZDRXZlbnRUeXBlLlNBVkVfUkVDT1JESU5HLCBkYXRhKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJz09PT09IFNBVkUgUkVDT1JESU5HIFNVQ0NFU1MgPT09PT09Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV90aGlzLmlzUmVjb3JkaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJz09PT09PT0gU1RPUFBJTkcgUkVDT1JESU5HID09PT09PT0nLCBfdGhpcy5tZWV0aW5nVGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZXRpbmdJZDogX3RoaXMubWVldGluZ0lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VySWQ6IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpLnVzZXJuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBfdGhpcy5tZWV0aW5nVGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IF90aGlzLnJlY29yZGluZ1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IF90aGlzLnJlY29yZGluZ1NpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlTnVtYmVyOiBfdGhpcy5yZWNvcmRpbmdTZXF1ZW5jZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbklkOiBfdGhpcy5jdXJyZW50UmVjb3JkaW5nSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuU1RPUF9SRUNPUkRJTkcsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCc9PT09PSBTQVZFIFJFQ09SRElORyBFUlJPUiA9PT09PT0nKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBfdGhpcy5yZWNvcmRpbmdTZXF1ZW5jZSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ25vIGRhdGEgdG8gcHVzaCcpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJlY29yZE1lZXRpbmcgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVjb3JkZXIgPSBudWxsO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnJlY29yZGVyID0gYXdhaXQgdGhpcy5jcmVhdGVNZWRpYVJlY29yZGVyKCk7XG4gICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKHRoaXMucmVjb3JkZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuVE9HR0xFX1JFQ09SRF9NRUVUSU5HLCB7XG4gICAgICAgICAgICAgICAgcm9vbUlkOiBfdGhpcy5tZWV0aW5nSWQsXG4gICAgICAgICAgICAgICAgaXNSZWNvcmRpbmc6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1JFQ09SRElORyBTVEFSVEVEIDogJyArIGRhdGEuaWQpO1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5jdXJyZW50UmVjb3JkaW5nSWQgPSBkYXRhLmlkO1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5yZWNvcmRpbmdTZXF1ZW5jZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnJlY29yZGluZ1NpemUgPSAwO1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5yZWNvcmRpbmdUeXBlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnJlY29yZGVyLnN0YXJ0KDYwMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuaXNSZWNvcmRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnUkVDT1JEIFNUQVJUIEVSUk9SJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBzdG9wUmVjb3JkaW5nTWVldGluZyA9ICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuaXNSZWNvcmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHNvY2tldE1hbmFnZXIuZW1pdEV2ZW50KFZDRXZlbnRUeXBlLlRPR0dMRV9SRUNPUkRfTUVFVElORywge1xuICAgICAgICAgICAgICAgIHJvb21JZDogdGhpcy5tZWV0aW5nSWQsXG4gICAgICAgICAgICAgICAgaXNSZWNvcmRpbmc6IGZhbHNlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucmVjb3JkZXIgJiYgdGhpcy5yZWNvcmRlci5zdHJlYW0pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZWNvcmRlci5zdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVjb3JkZXIuc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uc3RvcCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmKHRoaXMucmVjb3JkZXIuc3RhdGUgPT09ICdyZWNvcmRpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVjb3JkZXIuc3RvcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjcmVhdGVNZWRpYVJlY29yZGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmlkZW9Db25zdHJhaW50cyA9IHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgYXVkaW86IGZhbHNlLFxuICAgICAgICAgICAgICAgIG1lZGlhU291cmNlOiBcInNjcmVlblwiLFxuICAgICAgICAgICAgICAgIHByZWZlckN1cnJlbnRUYWI6IHRydWUsXG4gICAgICAgICAgICAgICAgc2VsZkJyb3dzZXJTdXJmYWNlOiAnaW5jbHVkZScsXG4gICAgICAgICAgICAgICAgc3lzdGVtQXVkaW86ICdleGNsdWRlJyxcbiAgICAgICAgICAgICAgICBzdXJmYWNlU3dpdGNoaW5nOiAnZXhjbHVkZScsXG4gICAgICAgICAgICAgICAgbW9uaXRvclR5cGVTdXJmYWNlczogJ2V4Y2x1ZGUnXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgX3RoaXMgPSB0aGlzO1xuICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlc1xuICAgICAgICAgICAgICAgIC5nZXREaXNwbGF5TWVkaWEodmlkZW9Db25zdHJhaW50cylcbiAgICAgICAgICAgICAgICAudGhlbigoc3RyZWFtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW1lVHlwZTogJ3ZpZGVvL3dlYm07IGNvZGVjcz12cDknXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IGF1ZGlvQ29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUgPSBuZXcgTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZShhdWRpb0NvbnRleHQpO1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCB0cmFja3MgPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLnN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF1cbiAgICAgICAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hdWRpb1RyYWNrcy5zaXplID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB0aGlzLmF1ZGlvVHJhY2tzLnZhbHVlcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tzLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZSA9IG5ldyBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9Db250ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IG1lZGlhU3RyZWFtOiBuZXcgTWVkaWFTdHJlYW0oW3ZhbHVlXSkgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jb25uZWN0KG1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlID0gbmV3IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvQ29udGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IG1lZGlhU3RyZWFtOiBuZXcgTWVkaWFTdHJlYW0odHJhY2tzKSB9XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jb25uZWN0KG1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0lOSVQgV0lUSCBUUkFDS1MgOiAnLCB0cmFja3MpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaW5pdGlhbE1lZGlhU3RyZWFtID0gbmV3IE1lZGlhU3RyZWFtKHRyYWNrcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkZXIgPSBuZXcgTWVkaWFSZWNvcmRlcihpbml0aWFsTWVkaWFTdHJlYW0sIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICByZWNvcmRlci5vbmRhdGFhdmFpbGFibGUgPSBfdGhpcy5oYW5kbGVSZWNvcmRpbmdEYXRhQXZhaWxhYmxlO1xuICAgICAgICAgICAgICAgICAgICByZWNvcmRlci5vbnN0b3AgPSAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuaXNSZWNvcmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvQ29udGV4dCA9IGF1ZGlvQ29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlID0gbWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZTtcblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlY29yZGVyKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihlLm1lc3NhZ2UpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cblxuY29uc3QgaW5zdGFuY2UgPSBuZXcgVkNSb29tUmVjb3JkZXIoKTtcbmV4cG9ydCBkZWZhdWx0IGluc3RhbmNlO1xuXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFlBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLG1CQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFBMEQsU0FBQUQsdUJBQUFJLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxnQkFBQUgsQ0FBQSxFQUFBSSxDQUFBLEVBQUFDLENBQUEsWUFBQUQsQ0FBQSxHQUFBRSxjQUFBLENBQUFGLENBQUEsTUFBQUosQ0FBQSxHQUFBTyxNQUFBLENBQUFDLGNBQUEsQ0FBQVIsQ0FBQSxFQUFBSSxDQUFBLElBQUFLLEtBQUEsRUFBQUosQ0FBQSxFQUFBSyxVQUFBLE1BQUFDLFlBQUEsTUFBQUMsUUFBQSxVQUFBWixDQUFBLENBQUFJLENBQUEsSUFBQUMsQ0FBQSxFQUFBTCxDQUFBO0FBQUEsU0FBQU0sZUFBQUQsQ0FBQSxRQUFBUSxDQUFBLEdBQUFDLFlBQUEsQ0FBQVQs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
@@ -836,4 +836,5 @@ const VCRoomWorkspace = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
836
836
  acceptUserHandler: props.acceptUserHandler
837
837
  }))) : null;
838
838
  });
839
- var _default = exports.default = VCRoomWorkspace;
839
+ var _default = exports.default = VCRoomWorkspace;
840
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfR3JpZCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfVkNSb29tUGFydGljaXBhbnQiLCJfQm94IiwiX1ZDRXZlbnRNYW5hZ2VyIiwiX01lZGlhU291cEhlbHBlciIsIl9UcmFuc3BvcnRzIiwiX1ZDRXZlbnRUeXBlIiwiX0ljb24iLCJfU29ja2V0TWFuYWdlciIsIl9Mb2JieVdhaXRpbmdMaXN0IiwiX1ZDUm9vbSIsIl9TaWRlQmFyQ29udGVudCIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfV29yZERvY3VtZW50Vmlld2VyIiwiX1V0aWxzIiwiX0RvY3VtZW50Vmlld2VyIiwiX0V2ZW50IiwiX09ic2VydmFibGUiLCJfRXZlbnRUeXBlIiwiX3V1aWQiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJNQVhfQ09MUyIsIk1BWF9ST1dTIiwibWVldGluZ1ZpZXdDb25maWcyIiwiVkNSb29tV29ya3NwYWNlIiwiUmVhY3QiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJjdXJyZW50VXNlclBhcnRpY2lwYW50Iiwic2V0Q3VycmVudFVzZXJQYXJ0aWNpcGFudCIsInVzZVN0YXRlIiwiaW5WaWV3UGFydGljaXBhbnRzIiwic2V0SW5WaWV3UGFydGljaXBhbnRzIiwiY29uc3VtZXJUcmFuc3BvcnQiLCJzZXRDb25zdW1lclRyYW5zcG9ydCIsImRldmljZSIsInNldERldmljZSIsInNoYXJlU2NyZWVuUHJvZHVjZXIiLCJzZXRTaGFyZVNjcmVlblByb2R1Y2VyIiwicHJvZHVjZXJUcmFuc3BvcnQiLCJzZXRQcm9kdWNlclRyYW5zcG9ydCIsInNjcmVlblNoYXJlZCIsInNldFNjcmVlblNoYXJlZCIsInNvbWVvbmVTaGFyaW5nIiwic2V0U29tZW9uZVNoYXJpbmciLCJzaG93U2hhcmVkU2NyZWVuIiwic2V0U2hvd1NoYXJlZFNjcmVlbiIsIm1lc3NhZ2UiLCJzZXRNZXNzYWdlIiwic2hhcmVTY3JlZW5Db25zdW1lciIsInNldFNoYXJlU2NyZWVuQ29uc3VtZXIiLCJncmlkIiwic2V0R3JpZCIsImV2ZW50SGFuZGxlciIsIm1pbnV0ZXNTaG93biIsInNldE1pbnV0ZXNTaG93biIsInNob3dNaW51dGVzIiwic2V0U2hvd01pbnV0ZXMiLCJtZWV0aW5nVmlld0hhbmRsZXIiLCJzZXRNZWV0aW5nVmlld0hhbmRsZXIiLCJtaW51dGVzRG9jdW1lbnQiLCJzZXRNaW51dGVzRG9jdW1lbnQiLCJtZWV0aW5nVmlld0NvbmZpZyIsInNldE1lZXRpbmdWaWV3Q29uZmlnIiwiaGFzTG9hZGVkTWludXRlcyIsInNldEhhc0xvYWRlZE1pbnV0ZXMiLCJ1c2VFZmZlY3QiLCJ3b3JkRWRpdG9yVmFsdWVIYW5kbGVyIiwidXNlUmVmIiwidHJhbnNwb3J0cyIsIlRyYW5zcG9ydHMiLCJzaGFyZVNjcmVlblZpZGVvUmVmIiwic2hhcmVTY3JlZW5TdHJlYW0iLCJ3YWl0aW5nTGlzdCIsInJvb21TdGF0dXMiLCJtZWV0aW5nSWQiLCJtaW51dGVzRG9jdW1lbnRJZCIsImV2ZW50S2V5IiwibWVldGluZ0NoYXQiLCJzaWRlQmFyVGFiIiwibWVldGluZ1RpdGxlIiwid2hpdGVCb2FyZFNob3duIiwidmlkZW9NdXRlZCIsImF1ZGlvTXV0ZWQiLCJpc0hvc3QiLCJpc0NoYWlyUGVyc29uIiwicnRwQ2FwYWJpbGl0aWVzIiwib25sb2FkU2NyZWVuU2hhcmVEYXRhIiwiZGlzcGxheVN0YXRlIiwic3RhcnRTY3JlZW5TaGFyaW5nIiwicGFydGljaXBhbnRzIiwic3RhcnRTaG93aW5nTWludXRlcyIsIm9uU3RhcnRTaG93aW5nTWludXRlcyIsIm9uU3RvcFNob3dpbmdNaW51dGVzIiwibWludXRlc1Nob3duUHJvcCIsInNhdmVNaW51dGVzIiwiYXBpIiwiY29uc29sZSIsImVycm9yIiwiZmlsZSIsImdldERvY3VtZW50VmFsdWUiLCJuZXdEb2N1bWVudElkIiwidXVpZHY0IiwibWV0YWRhdGEiLCJkb2N1bWVudFJlcG9zaXRvcnlDYWNoZUlkIiwiY29ycmVsYXRpb25JZCIsInZpZXdJZCIsIm5hbWUiLCJ0eXBlIiwiYWNjZXNzVG9rZW4iLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJpZFRva2VuIiwibG9jYXRpb24iLCJ3aW5kb3ciLCJwcm90b2NvbCIsImhvc3RuYW1lIiwiZGF0YSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiSlNPTiIsInN0cmluZ2lmeSIsImZldGNoQ29uZmlnIiwibWV0aG9kIiwiaGVhZGVycyIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldEFjdGl2ZVRlbmFudCIsImJvZHkiLCJ1cGxvYWRVcmwiLCJnZXRDb250ZXh0Um9vdCIsInVwbG9hZFJlc3BvbnNlIiwiZmV0Y2giLCJlbmNvZGVVUkkiLCJvayIsIkVycm9yIiwidXBkYXRlUGF5bG9hZCIsImlkIiwidXBkYXRlRmV0Y2hDb25maWciLCJ1cGRhdGVVcmwiLCJ1cGRhdGVSZXNwb25zZSIsImxvZyIsIm1lc3NhZ2VUeXBlIiwiZXZlbnQiLCJFdmVudCIsImV2ZW50TWFuYWdlciIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIk1FU1NBR0VfQVJSSVZFRCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJzdGFydFNoYXJlU2NyZWVuIiwicHJvZHVjZVNjcmVlblNoYXJlIiwic3RvcFNoYXJlU2NyZWVuIiwiY3VycmVudCIsInRyYWNrIiwiZ2V0VHJhY2tzIiwic3RvcCIsInJlbW92ZVNoYXJlU2NyZWVuRWxlbWVudCIsIm9uU3RvcFNoYXJpbmciLCJjYW5Qcm9kdWNlIiwidmlkZW9Db25zdHJhaW50cyIsImN1cnNvciIsImF1ZGlvIiwidmlkZW8iLCJtYW5kYXRvcnkiLCJ3aWR0aCIsIm1pbiIsImlkZWFsIiwibWF4IiwiaGVpZ2h0IiwiZnJhbWVSYXRlIiwiZ29vZ0NwdU92ZXJ1c2VEZXRlY3Rpb24iLCJnb29nQ3B1T3ZlcnVzZUVuY29kZVVzYWdlIiwiZ29vZ0NwdU92ZXJ1c2VUaHJlc2hvbGQiLCJwcmVmZXJDdXJyZW50VGFiIiwic2VsZkJyb3dzZXJTdXJmYWNlIiwic3lzdGVtQXVkaW8iLCJzdXJmYWNlU3dpdGNoaW5nIiwibW9uaXRvclR5cGVTdXJmYWNlcyIsInNvY2tldE1hbmFnZXIiLCJlbWl0RXZlbnQiLCJWQ0V2ZW50VHlwZSIsIkNBTkNFTF9TQ1JFRU5fU0hBUkUiLCJyb29tSWQiLCJ0aGVuIiwicmVzdWx0IiwibmF2aWdhdG9yIiwibWVkaWFEZXZpY2VzIiwiZ2V0RGlzcGxheU1lZGlhIiwic3RyZWFtIiwiZ2V0VmlkZW9UcmFja3MiLCJvbmVuZGVkIiwicGFyYW1zIiwiYXBwRGF0YSIsInNjcmVlblNoYXJpbmciLCJwcm9kdWNlciIsInByb2R1Y2UiLCJzcmNPYmplY3QiLCJvbiIsImZvckVhY2giLCJvblN0YXJ0U2hhcmluZyIsImNhdGNoIiwic3RvcFByb2R1Y2luZ1NjcmVlblNoYXJlIiwicHJvZHVjZXJJZCIsIlBST0RVQ0VSX0NMT1NFRCIsInVzZXJJZCIsImdldFVzZXJEZXRhaWxzIiwidXNlcm5hbWUiLCJjbG9zZSIsIm9uTmV3UHJvZHVjZXJzIiwicHJvZHVjZXJzIiwic2NyZWVuU2hhcmVQcm9kdWNlciIsImZpbmQiLCJwIiwiY29uc3VtZSIsImVsIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsIm1lZGlhU291cEhlbHBlciIsImdldENvbnN1bWVTdHJlYW0iLCJfcmVmIiwiY29uc3VtZXIiLCJraW5kIiwic2hhcmluZ0hhbmRsZXIiLCJoYW5kbGVyIiwiZXZlbnRUeXBlIiwiYmUiLCJQQVJUSUNJUEFOVF9JTl9WSUVXIiwib25CcmluZ1RvVmlldyIsIk5FV19QUk9EVUNFUlMiLCJwYXlsb2FkIiwiQ09OU1VNRVJfQ0xPU0VEIiwiY29uc3VtZXJJZCIsImxlbmd0aCIsIm9mZlZpZXdQYXJ0aWNpcGFudCIsInZjRXZlbnRNYW5hZ2VyIiwiUEFSVElDSVBBTlRfT0ZGX1ZJRVciLCJzcGxpY2UiLCJpblZpZXciLCJwYXJ0aWNpcGFudCIsInB1c2giLCJjb25jYXQiLCJyZW1vdmVGcm9tVmlldyIsImZpbHRlciIsInNldHVwU2VsZkRldmljZXMiLCJnZXRQYXJ0aWNpcGFudERldmljZSIsImluaXRDb25zdW1lclRyYW5zcG9ydCIsImluaXRQcm9kdWNlclRyYW5zcG9ydCIsInNldHVwR3JpZCIsIm5ld0NvbmZpZyIsImxvYWREYXRhIiwicmVmcmVzaCIsImFkZFN1YnNjcmlwdGlvbnMiLCJyZW1vdmVTdWJzY3JpcHRpb25zIiwiY2xvc2VDb25zdW1lclRyYW5zcG9ydCIsImNsb3NlUHJvZHVjZXJUcmFuc3BvcnQiLCJvbkdyaWRTZXR1cCIsImN1cnJlbnRVc2VyRnVsbE5hbWUiLCJpc0N1cnJlbnRVc2VyIiwicGVlciIsImF2YXRhcklkIiwiY291bnRlciIsImluVmlld0dyaWQiLCJudW1Sb3dzIiwicm93cyIsImN1cnJlbnRSb3dJbmRleCIsInJlbmRlclN0cmlwIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwib3ZlcmZsb3dYIiwibWF4V2lkdGgiLCJib3JkZXJSYWRpdXMiLCJvdmVyZmxvd1kiLCJhbGlnbkl0ZW1zIiwiY2xhc3NOYW1lIiwibWFwIiwiaW5kZXgiLCJrZXkiLCJtaW5XaWR0aCIsInBhZGRpbmciLCJvblJlbW92ZUZyb21WaWV3IiwibnVtYmVyT2ZJblZpZXdQYXJ0aWNpcGFudHMiLCJzaXppbmciLCJvbkhvc3RBdWRpb011dGUiLCJvbkhvc3RWaWRlb011dGUiLCJyZW5kZXJSb3ciLCJyb3ciLCJqdXN0aWZ5Q29udGVudCIsImRpcmVjdGlvbiIsImNvbnRhaW5lciIsIml0ZW0iLCJzcGFjaW5nIiwiRnJhZ21lbnQiLCJmbGV4QmFzaXMiLCJyZW5kZXJDdXJyZW50UGFydGljaXBhbnQiLCJvbkF1ZGlvRGV2aWNlQ2hhbmdlIiwiZ2V0TWVldGluZ0RvY3VtZW50IiwidmFsdWUiLCJyZW5kZXJQYXJ0aWNpcGFudEdyaWQiLCJmbGV4R3JvdyIsImRpc3BsYXkiLCJtYXhIZWlnaHQiLCJhbGxVc2VyUGFydGljaXBhbnRzTGVmdCIsImZvbnRTaXplIiwidGV4dEFsaWduIiwiV0FJVElOR19GT1JfT1RIRVJTX1RPX0pPSU5fTUVTU0FHRSIsInRhYiIsImF1dG9QbGF5IiwibXV0ZWQiLCJ6SW5kZXgiLCJiYWNrZ3JvdW5kQ29sb3IiLCJvdmVyZmxvdyIsImNvbmZpZyIsImhhbmRsZSIsIm1hcmdpblJpZ2h0IiwidmVydGljYWxBbGlnbiIsImJvdHRvbSIsInJpZ2h0IiwicGFkZGluZ0xlZnQiLCJtYXJnaW5MZWZ0IiwicG9zaXRpb24iLCJ0b3AiLCJhdXRvSGVpZ2h0IiwicmVqZWN0VXNlckhhbmRsZXIiLCJhY2NlcHRVc2VySGFuZGxlciIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZWRpYS9WQ1Jvb21Xb3Jrc3BhY2UuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAqL1xuaW1wb3J0IFJlYWN0LCB7RnJhZ21lbnQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICcuL1ZDUm9vbVdvcmtzcGFjZS5jc3MnO1xuaW1wb3J0IEdyaWQgZnJvbSAnQG11aS9tYXRlcmlhbC9HcmlkJztcbmltcG9ydCBWQ1Jvb21QYXJ0aWNpcGFudCBmcm9tICcuL1ZDUm9vbVBhcnRpY2lwYW50JztcbmltcG9ydCBCb3ggZnJvbSAnQG11aS9tYXRlcmlhbC9Cb3gnO1xuaW1wb3J0IHZjRXZlbnRNYW5hZ2VyIGZyb20gJy4vVkNFdmVudE1hbmFnZXInO1xuaW1wb3J0IG1lZGlhU291cEhlbHBlciBmcm9tICcuL01lZGlhU291cEhlbHBlcic7XG5pbXBvcnQgVHJhbnNwb3J0cyBmcm9tICcuL1RyYW5zcG9ydHMnO1xuaW1wb3J0IHtWQ0V2ZW50VHlwZX0gZnJvbSAnLi9WQ0V2ZW50VHlwZSc7XG5pbXBvcnQgSWNvbiBmcm9tICcuLi9JY29uJztcbmltcG9ydCBzb2NrZXRNYW5hZ2VyIGZyb20gJy4uL1NvY2tldE1hbmFnZXInO1xuaW1wb3J0IExvYmJ5V2FpdGluZ0xpc3QgZnJvbSAnLi9Mb2JieVdhaXRpbmdMaXN0JztcbmltcG9ydCB7V0FJVElOR19GT1JfT1RIRVJTX1RPX0pPSU5fTUVTU0FHRX0gZnJvbSAnLi9WQ1Jvb20nO1xuaW1wb3J0IFNpZGVCYXJDb250ZW50IGZyb20gXCIuL1NpZGVCYXJDb250ZW50XCI7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCBXb3JkRG9jdW1lbnRWaWV3ZXIgZnJvbSAnLi4vV29yZERvY3VtZW50Vmlld2VyJztcbmltcG9ydCBVdGlscyBmcm9tIFwiLi4vLi4vVXRpbHNcIjtcbmltcG9ydCBEb2N1bWVudFZpZXdlciBmcm9tIFwiLi4vRG9jdW1lbnRWaWV3ZXJcIjtcbmltcG9ydCBFdmVudCBmcm9tIFwiLi4vLi4vZXZlbnQvRXZlbnRcIjtcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSBcIi4uLy4uL2V2ZW50L09ic2VydmFibGVcIjtcbmltcG9ydCBFdmVudFR5cGUgZnJvbSBcIi4uLy4uL2V2ZW50L0V2ZW50VHlwZVwiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSBcInV1aWRcIjtcblxuY29uc3QgTUFYX0NPTFMgPSAzO1xuY29uc3QgTUFYX1JPV1MgPSAyO1xuXG5jb25zdCBtZWV0aW5nVmlld0NvbmZpZzIgPSB7XG4gICAgXCJ0eXBlXCI6IFwiZG9jdW1lbnRWaWV3ZXJcIixcbiAgICBcImlkXCI6IFwibWVldGluZ01pbnV0ZVwiLFxuICAgIFwiZmlsZVR5cGVcIjogXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudFwiLFxuICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgIFwic3R5bGVcIjoge1xuICAgICAgICAgICAgXCJ3aWR0aFwiOiBcIjEwMCVcIixcbiAgICAgICAgICAgIFwibWluSGVpZ2h0XCI6IFwiMTAwJVwiLFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogXCIxMDAlXCIsXG4gICAgICAgICAgICBcInBhZGRpbmdcIjogXCIyNHB4XCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJ0cmFja0NoYW5nZXNcIjogZmFsc2UsXG4gICAgXCJyZWFkT25seVwiOiBmYWxzZSxcbiAgICBcImNvbW1lbnRzT25seVwiOiBmYWxzZSxcbiAgICBcImV2ZW50SGFuZGxpbmdDb25maWdcIjoge1xuICAgICAgICBcInN1YnNjcmlwdGlvbnNcIjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwicHVibGlzaGVyXCI6IFwidmNSb29tXCIsXG4gICAgICAgICAgICAgICAgXCJldmVudFR5cGVcIjogXCJEQVRBX0FSUklWRURcIixcbiAgICAgICAgICAgICAgICBcImFjdGlvbnNcIjogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImFjdGlvblR5cGVcIjogXCJsb2FkRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9LFxuICAgIFwiZGF0YVNlcnZpY2VcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJyZXN0XCIsXG4gICAgICAgIFwidXJsXCI6IFwiL2RvY3MvYXBpL3YxL21hbmFnZXIvZmluZFwiLFxuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInBhcmFtZXRlcnNcIjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcImRvY3VtZW50SWRcIixcbiAgICAgICAgICAgICAgICBcImh0dHBQYXJhbWV0ZXJUeXBlXCI6IFwiUEFUSF9WQVJJQUJMRVwiLFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjogXCJjMjhhNGE1Ni02ZmMwLTQ4ODctYmNhMC0yOWY0M2RhMGIzYjJcIlxuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfVxufVxuXG4vLyBUT0RPIDogQ2xlYW4tdXAgYWxsIHRyYWNrcyBhbmQgcHJvZHVjZXJzIGFuZCBjb25zdW1lcnMgd2hlbiB0aGUgY29tcG9uZW50IGNsb3Nlc1xuY29uc3QgVkNSb29tV29ya3NwYWNlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICAgIGNvbnN0IFtjdXJyZW50VXNlclBhcnRpY2lwYW50LCBzZXRDdXJyZW50VXNlclBhcnRpY2lwYW50XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtpblZpZXdQYXJ0aWNpcGFudHMsIHNldEluVmlld1BhcnRpY2lwYW50c10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2NvbnN1bWVyVHJhbnNwb3J0LCBzZXRDb25zdW1lclRyYW5zcG9ydF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICAvL2NvbnN0IFt2aWRlb1JlZnJlc2hlciwgc2V0VmlkZW9SZWZyZXNoZXJdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtkZXZpY2UsIHNldERldmljZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbc2hhcmVTY3JlZW5Qcm9kdWNlciwgc2V0U2hhcmVTY3JlZW5Qcm9kdWNlcl0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbcHJvZHVjZXJUcmFuc3BvcnQsIHNldFByb2R1Y2VyVHJhbnNwb3J0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtzY3JlZW5TaGFyZWQsIHNldFNjcmVlblNoYXJlZF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbc29tZW9uZVNoYXJpbmcsIHNldFNvbWVvbmVTaGFyaW5nXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtzaG93U2hhcmVkU2NyZWVuLCBzZXRTaG93U2hhcmVkU2NyZWVuXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbbWVzc2FnZSwgc2V0TWVzc2FnZV0gPSBSZWFjdC51c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgW3NoYXJlU2NyZWVuQ29uc3VtZXIsIHNldFNoYXJlU2NyZWVuQ29uc3VtZXJdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW2dyaWQsIHNldEdyaWRdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW2V2ZW50SGFuZGxlcl0gPSB1c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW21pbnV0ZXNTaG93biwgc2V0TWludXRlc1Nob3duXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc2hvd01pbnV0ZXMsIHNldFNob3dNaW51dGVzXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbbWVldGluZ1ZpZXdIYW5kbGVyLCBzZXRNZWV0aW5nVmlld0hhbmRsZXJdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW21pbnV0ZXNEb2N1bWVudCwgc2V0TWludXRlc0RvY3VtZW50XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFttZWV0aW5nVmlld0NvbmZpZywgc2V0TWVldGluZ1ZpZXdDb25maWddID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW2hhc0xvYWRlZE1pbnV0ZXMsIHNldEhhc0xvYWRlZE1pbnV0ZXNdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgLy8gQ3JlYXRlIGhhbmRsZXIgb25jZSBvbiBtb3VudFxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghbWVldGluZ1ZpZXdIYW5kbGVyKSB7XG4gICAgICAgICAgICBzZXRNZWV0aW5nVmlld0hhbmRsZXIoe30pO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgd29yZEVkaXRvclZhbHVlSGFuZGxlciA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgdHJhbnNwb3J0cyA9IHVzZVJlZihuZXcgVHJhbnNwb3J0cygpKTtcbiAgICBjb25zdCBzaGFyZVNjcmVlblZpZGVvUmVmID0gdXNlUmVmKCk7XG4gICAgY29uc3Qgc2hhcmVTY3JlZW5TdHJlYW0gPSB1c2VSZWYoKTtcbiAgICBjb25zdCB7XG4gICAgICAgIHdhaXRpbmdMaXN0LFxuICAgICAgICByb29tU3RhdHVzLFxuICAgICAgICBtZWV0aW5nSWQsXG4gICAgICAgIG1pbnV0ZXNEb2N1bWVudElkLFxuICAgICAgICBldmVudEtleSxcbiAgICAgICAgbWVldGluZ0NoYXQsXG4gICAgICAgIHNpZGVCYXJUYWIsXG4gICAgICAgIG1lZXRpbmdUaXRsZSxcbiAgICAgICAgd2hpdGVCb2FyZFNob3duLFxuICAgICAgICB2aWRlb011dGVkLFxuICAgICAgICBhdWRpb011dGVkLFxuICAgICAgICBpc0hvc3QsXG4gICAgICAgIGlzQ2hhaXJQZXJzb24sXG4gICAgICAgIHJ0cENhcGFiaWxpdGllcyxcbiAgICAgICAgb25sb2FkU2NyZWVuU2hhcmVEYXRhLFxuICAgICAgICBkaXNwbGF5U3RhdGUsXG4gICAgICAgIHN0YXJ0U2NyZWVuU2hhcmluZyxcbiAgICAgICAgcGFydGljaXBhbnRzLFxuICAgICAgICBzdGFydFNob3dpbmdNaW51dGVzLFxuICAgICAgICBvblN0YXJ0U2hvd2luZ01pbnV0ZXMsXG4gICAgICAgIG9uU3RvcFNob3dpbmdNaW51dGVzLFxuICAgICAgICBtaW51dGVzU2hvd246IG1pbnV0ZXNTaG93blByb3BcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBzYXZlTWludXRlcyA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghbWVldGluZ1ZpZXdIYW5kbGVyIHx8ICFtZWV0aW5nVmlld0hhbmRsZXIuYXBpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIk1lZXRpbmcgdmlldyBoYW5kbGVyIG5vdCBhdmFpbGFibGVcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmaWxlID0gYXdhaXQgbWVldGluZ1ZpZXdIYW5kbGVyLmFwaS5nZXREb2N1bWVudFZhbHVlKCk7XG4gICAgICAgICAgICBpZiAoIWZpbGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiTm8gZG9jdW1lbnQgdG8gc2F2ZVwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld0RvY3VtZW50SWQgPSB1dWlkdjQoKTtcblxuICAgICAgICAgICAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZDogbmV3RG9jdW1lbnRJZCxcbiAgICAgICAgICAgICAgICBjb3JyZWxhdGlvbklkOiBwcm9wcy52aWV3SWQgKyBcIi5taW51dGVzRG9jdW1lbnRcIixcbiAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuXG4gICAgICAgICAgICBsZXQgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICAgICAgZGF0YS5hcHBlbmQoXCJtZXRhZGF0YVwiLCBKU09OLnN0cmluZ2lmeShtZXRhZGF0YSkpO1xuICAgICAgICAgICAgZGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUpO1xuXG4gICAgICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IGRhdGFcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxldCB1cGxvYWRVcmwgPSBsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgXCIvZG9jcy9hcGkvdjEvbWFuYWdlci91cGxvYWQvc2F2ZVwiO1xuXG4gICAgICAgICAgICBjb25zdCB1cGxvYWRSZXNwb25zZSA9IGF3YWl0IGZldGNoKGVuY29kZVVSSSh1cGxvYWRVcmwpLCBmZXRjaENvbmZpZyk7XG4gICAgICAgICAgICBpZiAoIXVwbG9hZFJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVcGxvYWQgZmFpbGVkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVBheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAgaWQ6IGV2ZW50S2V5LFxuICAgICAgICAgICAgICAgIG1pbnV0ZXNEb2N1bWVudElkOiBuZXdEb2N1bWVudElkXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdXBkYXRlRmV0Y2hDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHVwZGF0ZVBheWxvYWQpXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdXBkYXRlVXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArIFwiL3RlbmRlci9hcGkvdjEvZXZhbHVhdGlvbi9tZWV0aW5nL21pbnV0ZURvY3VtZW50XCI7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVSZXNwb25zZSA9IGF3YWl0IGZldGNoKGVuY29kZVVSSSh1cGRhdGVVcmwpLCB1cGRhdGVGZXRjaENvbmZpZyk7XG5cbiAgICAgICAgICAgIGlmICghdXBkYXRlUmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byB1cGRhdGUgbWVldGluZyBtaW51dGVzIGRvY3VtZW50Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTWludXRlcyBzYXZlZCBzdWNjZXNzZnVsbHlcIik7XG5cbiAgICAgICAgICAgIGxldCBtZXNzYWdlID0ge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VUeXBlOiAnU1VDQ0VTUycsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ01lZXRpbmcgbWludXRlcyBzYXZlZCBzdWNjZXNzZnVsbHknXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KG1lZXRpbmdWaWV3SGFuZGxlciwgcHJvcHMudmlld0lkLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLk1FU1NBR0VfQVJSSVZFRCwgZXZlbnQpO1xuXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBzYXZpbmcgbWludXRlczpcIiwgZSk7XG4gICAgICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlVHlwZTogJ0VSUk9SJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnRmFpbGVkIHRvIHNhdmUgbWVldGluZyBtaW51dGVzJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChtZWV0aW5nVmlld0hhbmRsZXIsIHByb3BzLnZpZXdJZCwgbWVzc2FnZSk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5NRVNTQUdFX0FSUklWRUQsIGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBSZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gKHtcbiAgICAgICAgc2F2ZU1pbnV0ZXNcbiAgICB9KSk7XG5cbiAgICBjb25zdCBzdGFydFNoYXJlU2NyZWVuID0gKCkgPT4ge1xuICAgICAgICBwcm9kdWNlU2NyZWVuU2hhcmUoKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc3RvcFNoYXJlU2NyZWVuID0gKCkgPT4ge1xuICAgICAgICBpZiAoc2hhcmVTY3JlZW5TdHJlYW0uY3VycmVudCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCB0cmFjayBvZiBzaGFyZVNjcmVlblN0cmVhbS5jdXJyZW50LmdldFRyYWNrcygpKSB7XG4gICAgICAgICAgICAgICAgdHJhY2suc3RvcCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzaGFyZVNjcmVlblN0cmVhbS5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgIHJlbW92ZVNoYXJlU2NyZWVuRWxlbWVudCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJvcHMub25TdG9wU2hhcmluZygpO1xuICAgIH07XG5cbiAgICBjb25zdCBwcm9kdWNlU2NyZWVuU2hhcmUgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmICghZGV2aWNlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdObyBhdmFpbGFibGUgZGV2aWNlJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXByb2R1Y2VyVHJhbnNwb3J0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdObyBwcm9kdWNlciB0cmFuc3BvcnQnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGV2aWNlLmNhblByb2R1Y2UoJ3ZpZGVvJykpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Nhbm5vdCBwcm9kdWNlIHNjcmVlbiBzaGFyZScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNoYXJlU2NyZWVuUHJvZHVjZXIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTaGFyZSBzY3JlZW4gcHJvZHVjZXIgYWxyZWFkeSBleGlzdCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmlkZW9Db25zdHJhaW50cyA9IHtcbiAgICAgICAgICAgIGN1cnNvcjogdHJ1ZSxcbiAgICAgICAgICAgIGF1ZGlvOiBmYWxzZSxcbiAgICAgICAgICAgIHZpZGVvOiB7XG4gICAgICAgICAgICAgICAgbWFuZGF0b3J5OiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW46IDE2MCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkZWFsOiAzMjAsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXg6IDY0MFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbjogMTIwLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWRlYWw6IDI0MCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heDogNDgwXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGZyYW1lUmF0ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluOiAxNSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heDogMTVcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZ29vZ0NwdU92ZXJ1c2VEZXRlY3Rpb246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGdvb2dDcHVPdmVydXNlRW5jb2RlVXNhZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGdvb2dDcHVPdmVydXNlVGhyZXNob2xkOiA3MFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcmVmZXJDdXJyZW50VGFiOiBmYWxzZSxcbiAgICAgICAgICAgIHNlbGZCcm93c2VyU3VyZmFjZTogJ2luY2x1ZGUnLFxuICAgICAgICAgICAgc3lzdGVtQXVkaW86ICdleGNsdWRlJyxcbiAgICAgICAgICAgIHN1cmZhY2VTd2l0Y2hpbmc6ICdleGNsdWRlJyxcbiAgICAgICAgICAgIG1vbml0b3JUeXBlU3VyZmFjZXM6ICdpbmNsdWRlJ1xuXG4gICAgICAgIH07XG5cbiAgICAgICAgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuQ0FOQ0VMX1NDUkVFTl9TSEFSRSwge1xuICAgICAgICAgICAgcm9vbUlkOiBtZWV0aW5nSWRcbiAgICAgICAgfSkudGhlbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldERpc3BsYXlNZWRpYSh2aWRlb0NvbnN0cmFpbnRzKVxuICAgICAgICAgICAgICAgIC50aGVuKGFzeW5jIChzdHJlYW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhY2sgPSBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTtcbiAgICAgICAgICAgICAgICAgICAgdHJhY2sub25lbmRlZCA9IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2suc3RvcCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcFNoYXJlU2NyZWVuKCk7XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2ssXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBEYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuU2hhcmluZzogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9kdWNlciA9IGF3YWl0IHByb2R1Y2VyVHJhbnNwb3J0LnByb2R1Y2UocGFyYW1zKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0U2hhcmVTY3JlZW5Qcm9kdWNlcihwcm9kdWNlcik7XG5cbiAgICAgICAgICAgICAgICAgICAgc2hhcmVTY3JlZW5TdHJlYW0uY3VycmVudCA9IHN0cmVhbTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNob3dTaGFyZWRTY3JlZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlU2NyZWVuVmlkZW9SZWYuY3VycmVudC5zcmNPYmplY3QgPSBzdHJlYW07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwcm9kdWNlci5vbigndHJhbnNwb3J0Y2xvc2UnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0uc3JjT2JqZWN0LmdldFRyYWNrcygpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goZnVuY3Rpb24gKHRyYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrLnN0b3AoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hhcmVTY3JlZW5Qcm9kdWNlcihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXIub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLnNyY09iamVjdC5nZXRUcmFja3MoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uICh0cmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjay5zdG9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNoYXJlU2NyZWVuUHJvZHVjZXIobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHByb3BzLm9uU3RhcnRTaGFyaW5nKCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMub25TdG9wU2hhcmluZygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS5jYXRjaCgoZSkgPT4gY29uc29sZS5sb2coJ0VSUk9SIENBTkNFTExJTkcgU0NSRUVOIFNIQVJFIDogJywgZSkpO1xuICAgIH07XG5cbiAgICBjb25zdCBzdG9wUHJvZHVjaW5nU2NyZWVuU2hhcmUgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmICghc2hhcmVTY3JlZW5Qcm9kdWNlcikge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1RoZXJlIGlzIG5vIHNoYXJlIHNjcmVlbiBwcm9kdWNlcicpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHByb2R1Y2VySWQgPSBzaGFyZVNjcmVlblByb2R1Y2VyLmlkO1xuICAgICAgICBjb25zb2xlLmxvZygnQ2xvc2UgcHJvZHVjZXInLCBwcm9kdWNlcklkKTtcbiAgICAgICAgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuUFJPRFVDRVJfQ0xPU0VELCB7XG4gICAgICAgICAgICB1c2VySWQ6IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpLnVzZXJuYW1lLFxuICAgICAgICAgICAgcHJvZHVjZXJJZCxcbiAgICAgICAgICAgIHJvb21JZDogbWVldGluZ0lkXG4gICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKCdQUk9EVUNFUl9DTE9TRUQgRVJST1IgOiAnLCBlKSk7XG5cbiAgICAgICAgc2hhcmVTY3JlZW5Qcm9kdWNlci5jbG9zZSgpO1xuICAgICAgICBzdG9wU2hhcmVTY3JlZW4oKTtcbiAgICAgICAgc2V0U2hhcmVTY3JlZW5Qcm9kdWNlcihudWxsKTtcbiAgICAgICAgLy9zZXRTb21lb25lU2hhcmluZyhmYWxzZSk7XG4gICAgICAgIHNldFNjcmVlblNoYXJlZChmYWxzZSk7XG5cbiAgICAgICAgaWYgKHNoYXJlU2NyZWVuU3RyZWFtLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdHJhY2sgb2Ygc2hhcmVTY3JlZW5TdHJlYW0uY3VycmVudC5nZXRUcmFja3MoKSkge1xuICAgICAgICAgICAgICAgIHRyYWNrLnN0b3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBvbk5ld1Byb2R1Y2VycyA9IChwcm9kdWNlcnMpID0+IHtcbiAgICAgICAgbGV0IHNjcmVlblNoYXJlUHJvZHVjZXIgPSBwcm9kdWNlcnMuZmluZCgocCkgPT4gcC5zY3JlZW5TaGFyaW5nKTtcbiAgICAgICAgaWYgKHNjcmVlblNoYXJlUHJvZHVjZXIpIHtcbiAgICAgICAgICAgIGNvbnN1bWUoc2NyZWVuU2hhcmVQcm9kdWNlcik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVtb3ZlU2hhcmVTY3JlZW5FbGVtZW50ID0gKCkgPT4ge1xuICAgICAgICBsZXQgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hhcmUtc2NyZWVuLXZpZGVvJyk7XG4gICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgY29uc3VtZSA9IGFzeW5jIChwcm9kdWNlcikgPT4ge1xuICAgICAgICBtZWRpYVNvdXBIZWxwZXIuZ2V0Q29uc3VtZVN0cmVhbShwcm9kdWNlci5wcm9kdWNlcklkLCBkZXZpY2UucnRwQ2FwYWJpbGl0aWVzLCBjb25zdW1lclRyYW5zcG9ydCxcbiAgICAgICAgICAgIG1lZXRpbmdJZCwgYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkudXNlcm5hbWUsICd2aWRlbycpXG4gICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICAgY29uc3VtZXIsXG4gICAgICAgICAgICAgICAgICAgICBzdHJlYW0sXG4gICAgICAgICAgICAgICAgICAgICBraW5kXG4gICAgICAgICAgICAgICAgIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnN1bWVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTaGFyZVNjcmVlbkNvbnN1bWVyKGNvbnN1bWVyKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1TSEFSSU5HIENPTlNVTUU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5zaGFyaW5nSGFuZGxlcih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNjcmVlblNoYXJlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNvbWVvbmVTaGFyaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy9zZXRTaG93U2hhcmVkU2NyZWVuKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVzc2FnZShwcm9kdWNlci51c2VybmFtZSArICcgaXMgc2hhcmluZycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVTY3JlZW5WaWRlb1JlZi5jdXJyZW50LnNyY09iamVjdCA9IHN0cmVhbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlU2NyZWVuU3RyZWFtLmN1cnJlbnQgPSBzdHJlYW07XG4gICAgICAgICAgICAgICAgICAgICAgICAvL3NldFZpZGVvUmVmcmVzaGVyKCF2aWRlb1JlZnJlc2hlcik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWVyLm9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0cmFja2VuZGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVNoYXJlU2NyZWVuRWxlbWVudCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWVyLm9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0cmFuc3BvcnRjbG9zZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVTaGFyZVNjcmVlbkVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ21lZXRpbmctcGFydGljaXBhbnQtZ3JpZCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb246IChldmVudFR5cGUsIGJlKSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChldmVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBWQ0V2ZW50VHlwZS5QQVJUSUNJUEFOVF9JTl9WSUVXOlxuICAgICAgICAgICAgICAgICAgICAgICAgb25CcmluZ1RvVmlldyhiZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBWQ0V2ZW50VHlwZS5ORVdfUFJPRFVDRVJTOlxuICAgICAgICAgICAgICAgICAgICAgICAgb25OZXdQcm9kdWNlcnMoYmUucGF5bG9hZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBWQ0V2ZW50VHlwZS5DT05TVU1FUl9DTE9TRUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hhcmVTY3JlZW5Db25zdW1lciAmJiBzaGFyZVNjcmVlbkNvbnN1bWVyLmlkID09PSBiZS5wYXlsb2FkLmNvbnN1bWVySWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVTaGFyZVNjcmVlbkVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZXNzYWdlKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnNoYXJpbmdIYW5kbGVyKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTb21lb25lU2hhcmluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2NyZWVuU2hhcmVkKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTaG93U2hhcmVkU2NyZWVuKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb25CcmluZ1RvVmlldyA9IChwYXlsb2FkKSA9PiB7XG4gICAgICAgIGlmICghaW5WaWV3UGFydGljaXBhbnRzLmZpbmQoKChwKSA9PiBwLnVzZXJJZCA9PT0gcGF5bG9hZC51c2VySWQpKSkge1xuICAgICAgICAgICAgaWYgKGluVmlld1BhcnRpY2lwYW50cy5sZW5ndGggPT09IE1BWF9DT0xTICogTUFYX1JPV1MpIHtcbiAgICAgICAgICAgICAgICBsZXQgb2ZmVmlld1BhcnRpY2lwYW50ID0gaW5WaWV3UGFydGljaXBhbnRzW2luVmlld1BhcnRpY2lwYW50cy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICB2Y0V2ZW50TWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuUEFSVElDSVBBTlRfT0ZGX1ZJRVcsIG9mZlZpZXdQYXJ0aWNpcGFudCk7XG5cbiAgICAgICAgICAgICAgICBpblZpZXdQYXJ0aWNpcGFudHMuc3BsaWNlKGluVmlld1BhcnRpY2lwYW50cy5sZW5ndGggLSAxLCAxKTtcbiAgICAgICAgICAgICAgICBvZmZWaWV3UGFydGljaXBhbnQuaW5WaWV3ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBwYXJ0aWNpcGFudCA9IHByb3BzLnBhcnRpY2lwYW50cy5maW5kKCgocCkgPT4gcC51c2VySWQgPT09IHBheWxvYWQudXNlcklkKSk7XG4gICAgICAgICAgICBpblZpZXdQYXJ0aWNpcGFudHMucHVzaChwYXJ0aWNpcGFudCk7XG5cbiAgICAgICAgICAgIC8vIFJlZnJlc2ggdGhlIGxpc3RcbiAgICAgICAgICAgIHNldEluVmlld1BhcnRpY2lwYW50cyhbXS5jb25jYXQoaW5WaWV3UGFydGljaXBhbnRzKSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVtb3ZlRnJvbVZpZXcgPSAocGFydGljaXBhbnQpID0+IHtcbiAgICAgICAgcGFydGljaXBhbnQuaW5WaWV3ID0gZmFsc2U7XG4gICAgICAgIHNldEluVmlld1BhcnRpY2lwYW50cyhpblZpZXdQYXJ0aWNpcGFudHMuZmlsdGVyKChwKSA9PiBwLnVzZXJJZCAhPT0gcGFydGljaXBhbnQudXNlcklkKSk7XG4gICAgICAgIHZjRXZlbnRNYW5hZ2VyLmZpcmVFdmVudChWQ0V2ZW50VHlwZS5QQVJUSUNJUEFOVF9PRkZfVklFVywgcGFydGljaXBhbnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBzZXR1cFNlbGZEZXZpY2VzID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBsZXQgZGV2aWNlID0gYXdhaXQgbWVkaWFTb3VwSGVscGVyLmdldFBhcnRpY2lwYW50RGV2aWNlKHJ0cENhcGFiaWxpdGllcyk7XG4gICAgICAgIHNldERldmljZShkZXZpY2UpO1xuXG4gICAgICAgIGxldCBjb25zdW1lclRyYW5zcG9ydCA9IGF3YWl0IG1lZGlhU291cEhlbHBlci5pbml0Q29uc3VtZXJUcmFuc3BvcnQoZGV2aWNlLCBtZWV0aW5nSWQsIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpLnVzZXJuYW1lKTtcbiAgICAgICAgbGV0IHByb2R1Y2VyVHJhbnNwb3J0ID0gYXdhaXQgbWVkaWFTb3VwSGVscGVyLmluaXRQcm9kdWNlclRyYW5zcG9ydChkZXZpY2UsIG1lZXRpbmdJZCwgYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkudXNlcm5hbWUpO1xuXG4gICAgICAgIHNldENvbnN1bWVyVHJhbnNwb3J0KGNvbnN1bWVyVHJhbnNwb3J0KTtcbiAgICAgICAgc2V0UHJvZHVjZXJUcmFuc3BvcnQocHJvZHVjZXJUcmFuc3BvcnQpO1xuXG4gICAgICAgIHRyYW5zcG9ydHMuY3VycmVudC5zZXRDb25zdW1lclRyYW5zcG9ydChjb25zdW1lclRyYW5zcG9ydCk7XG4gICAgICAgIHRyYW5zcG9ydHMuY3VycmVudC5zZXRQcm9kdWNlclRyYW5zcG9ydChwcm9kdWNlclRyYW5zcG9ydCk7XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGV2ZW50SGFuZGxlci5hcGkgPSBoYW5kbGVyKCk7XG4gICAgfSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuXG4gICAgfSwgW3Byb3BzLmF1ZGlvTXV0ZWRdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldHVwR3JpZCgpO1xuICAgIH0sIFtpblZpZXdQYXJ0aWNpcGFudHNdKTtcblxuICAgIC8qdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmKGdyaWQgPT09IG51bGwpIHtcbiAgICAgICAgc2V0dXBHcmlkKCk7XG4gICAgICB9XG4gICAgfSwgW2dyaWRdKTsqL1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFzY3JlZW5TaGFyZWQpIHtcbiAgICAgICAgICAgIHN0b3BQcm9kdWNpbmdTY3JlZW5TaGFyZSgpO1xuICAgICAgICB9XG4gICAgfSwgW3NjcmVlblNoYXJlZF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHN0YXJ0U2NyZWVuU2hhcmluZykge1xuICAgICAgICAgICAgcHJvZHVjZVNjcmVlblNoYXJlKCk7XG4gICAgICAgIH1cbiAgICB9LCBbc3RhcnRTY3JlZW5TaGFyaW5nXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoc3RhcnRTaG93aW5nTWludXRlcykge1xuICAgICAgICAgICAgc2V0U2hvd01pbnV0ZXModHJ1ZSk7XG4gICAgICAgICAgICBzZXRNaW51dGVzU2hvd24odHJ1ZSk7XG4gICAgICAgICAgICBvblN0YXJ0U2hvd2luZ01pbnV0ZXMoKTtcbiAgICAgICAgfVxuICAgIH0sIFtzdGFydFNob3dpbmdNaW51dGVzXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBTeW5jIHdpdGggcGFyZW50J3MgbWludXRlc1Nob3duIHN0YXRlXG4gICAgICAgIGlmIChtaW51dGVzU2hvd25Qcm9wID09PSBmYWxzZSAmJiBtaW51dGVzU2hvd24gPT09IHRydWUpIHtcbiAgICAgICAgICAgIHNldFNob3dNaW51dGVzKGZhbHNlKTtcbiAgICAgICAgICAgIHNldE1pbnV0ZXNTaG93bihmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9LCBbbWludXRlc1Nob3duUHJvcF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG1pbnV0ZXNEb2N1bWVudElkKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG9jdW1lbnRWaWV3ZXJcIixcbiAgICAgICAgICAgICAgICBcImlkXCI6IFwibWVldGluZ01pbnV0ZVwiLFxuICAgICAgICAgICAgICAgIFwiZmlsZVR5cGVcIjogXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudFwiLFxuICAgICAgICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic3R5bGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ3aWR0aFwiOiBcImNhbGMoMTAwJSAtIDQzNnB4KVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5IZWlnaHRcIjogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImhlaWdodFwiOiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicGFkZGluZ1wiOiBcIjI0cHhcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcImxhYmVsXCI6IFwiTWVldGluZyBNaW51dGVzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidHJhY2tDaGFuZ2VzXCI6IHRydWUsXG4gICAgICAgICAgICAgICAgXCJyZWFkT25seVwiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBcImNvbW1lbnRzT25seVwiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBcImV2ZW50SGFuZGxpbmdDb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInN1YnNjcmlwdGlvbnNcIjogW11cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZGF0YVNlcnZpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJyZXN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiL2RvY3MvYXBpL3YxL21hbmFnZXIvZmluZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICAgICAgICAgICAgICBcInBhcmFtZXRlcnNcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcImRvY3VtZW50SWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImh0dHBQYXJhbWV0ZXJUeXBlXCI6IFwiUEFUSF9WQVJJQUJMRVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjogbWludXRlc0RvY3VtZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzZXRNZWV0aW5nVmlld0NvbmZpZyhuZXdDb25maWcpO1xuICAgICAgICB9XG4gICAgfSwgW21pbnV0ZXNEb2N1bWVudElkXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobWVldGluZ1ZpZXdIYW5kbGVyICYmIG1lZXRpbmdWaWV3SGFuZGxlci5hcGkpIHtcbiAgICAgICAgICAgIG1lZXRpbmdWaWV3SGFuZGxlci5hcGkubG9hZERhdGEoKTtcbiAgICAgICAgfVxuICAgIH0sIFttZWV0aW5nVmlld0hhbmRsZXJdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChtZWV0aW5nVmlld0NvbmZpZzIgJiYgbWludXRlc0RvY3VtZW50SWQgJiYgbWVldGluZ1ZpZXdIYW5kbGVyICYmIG1lZXRpbmdWaWV3SGFuZGxlci5hcGkgJiYgc2hvd01pbnV0ZXMpIHtcbiAgICAgICAgICAgIG1lZXRpbmdWaWV3SGFuZGxlci5hcGkucmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgfSwgW21pbnV0ZXNEb2N1bWVudElkLCBtZWV0aW5nVmlld0NvbmZpZzIsIG1lZXRpbmdWaWV3SGFuZGxlciwgc2hvd01pbnV0ZXNdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChvbmxvYWRTY3JlZW5TaGFyZURhdGEgJiYgZGV2aWNlICYmIGNvbnN1bWVyVHJhbnNwb3J0KSB7XG4gICAgICAgICAgICBjb25zdW1lKG9ubG9hZFNjcmVlblNoYXJlRGF0YSk7XG4gICAgICAgIH1cbiAgICB9LCBbb25sb2FkU2NyZWVuU2hhcmVEYXRhLCBkZXZpY2UsIGNvbnN1bWVyVHJhbnNwb3J0XSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBzZXRTY3JlZW5TaGFyZWQocHJvcHMuc2NyZWVuU2hhcmVkKTtcbiAgICAgICAgaWYgKHByb3BzLnNjcmVlblNoYXJlZCkge1xuICAgICAgICAgICAgc3RhcnRTaGFyZVNjcmVlbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RvcFNoYXJlU2NyZWVuKCk7XG4gICAgICAgIH1cbiAgICB9LCBbcHJvcHMuc2NyZWVuU2hhcmVkXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2Y0V2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKGV2ZW50SGFuZGxlciwgVkNFdmVudFR5cGUuTkVXX1BST0RVQ0VSUywgVkNFdmVudFR5cGUuQ09OU1VNRVJfQ0xPU0VELCBWQ0V2ZW50VHlwZS5QQVJUSUNJUEFOVF9JTl9WSUVXKTtcbiAgICAgICAgc2V0dXBTZWxmRGV2aWNlcygpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgdmNFdmVudE1hbmFnZXIucmVtb3ZlU3Vic2NyaXB0aW9ucyhldmVudEhhbmRsZXIpO1xuICAgICAgICAgICAgdHJhbnNwb3J0cy5jdXJyZW50LmNsb3NlQ29uc3VtZXJUcmFuc3BvcnQoKTtcbiAgICAgICAgICAgIHRyYW5zcG9ydHMuY3VycmVudC5jbG9zZVByb2R1Y2VyVHJhbnNwb3J0KCk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGdyaWQpIHtcbiAgICAgICAgICAgIHByb3BzLm9uR3JpZFNldHVwKCk7XG4gICAgICAgIH1cbiAgICB9LCBbZ3JpZF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLnBhcnRpY2lwYW50cyAmJiBwcm9wcy5jdXJyZW50VXNlckZ1bGxOYW1lKSB7XG4gICAgICAgICAgICBzZXRDdXJyZW50VXNlclBhcnRpY2lwYW50KHtcbiAgICAgICAgICAgICAgICBpc0N1cnJlbnRVc2VyOiB0cnVlLFxuICAgICAgICAgICAgICAgIHVzZXJJZDogYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkudXNlcm5hbWUsXG4gICAgICAgICAgICAgICAgcGVlcjogbnVsbCxcbiAgICAgICAgICAgICAgICBuYW1lOiBwcm9wcy5jdXJyZW50VXNlckZ1bGxOYW1lLFxuICAgICAgICAgICAgICAgIGF2YXRhcklkOiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd1c2VyQXZhdGFySWQnKSxcbiAgICAgICAgICAgICAgICB2aWRlb011dGVkLFxuICAgICAgICAgICAgICAgIGF1ZGlvTXV0ZWRcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBsZXQgY291bnRlciA9IDA7XG4gICAgICAgICAgICBpblZpZXdQYXJ0aWNpcGFudHMuc3BsaWNlKDAsIGluVmlld1BhcnRpY2lwYW50cy5sZW5ndGgpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNpcGFudCBvZiBwcm9wcy5wYXJ0aWNpcGFudHMpIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNpcGFudC5pblZpZXcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGluVmlld1BhcnRpY2lwYW50cy5wdXNoKHBhcnRpY2lwYW50KTtcbiAgICAgICAgICAgICAgICBpZiAoKytjb3VudGVyID49IE1BWF9ST1dTICogTUFYX0NPTFMpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXR1cEdyaWQoaW5WaWV3UGFydGljaXBhbnRzKTtcbiAgICAgICAgfVxuICAgIH0sIFtwcm9wcy5wYXJ0aWNpcGFudHMsIHByb3BzLmN1cnJlbnRVc2VyRnVsbE5hbWUsIHByb3BzLmRpc3BsYXlTdGF0ZV0pO1xuXG4gICAgY29uc3Qgc2V0dXBHcmlkID0gKCkgPT4ge1xuICAgICAgICBsZXQgaW5WaWV3R3JpZCA9IFtdO1xuICAgICAgICBsZXQgbnVtUm93cyA9IGluVmlld1BhcnRpY2lwYW50cy5sZW5ndGggPCBNQVhfUk9XUyA/IGluVmlld1BhcnRpY2lwYW50cy5sZW5ndGggOiBNQVhfUk9XUztcbiAgICAgICAgbGV0IHJvd3MgPSBpblZpZXdQYXJ0aWNpcGFudHMubGVuZ3RoID09PSAyID8gMSA6IG51bVJvd3M7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dzOyBpKyspIHtcbiAgICAgICAgICAgIGluVmlld0dyaWQucHVzaChbXSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY3VycmVudFJvd0luZGV4ID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpblZpZXdQYXJ0aWNpcGFudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGluVmlld0dyaWRbY3VycmVudFJvd0luZGV4XS5wdXNoKGluVmlld1BhcnRpY2lwYW50c1tpXSk7XG4gICAgICAgICAgICBpZiAoY3VycmVudFJvd0luZGV4KysgPT09IHJvd3MgLSAxKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFJvd0luZGV4ID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldEdyaWQoaW5WaWV3R3JpZCk7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHJlbmRlclN0cmlwKCkge1xuICAgICAgICByZXR1cm4gaW5WaWV3UGFydGljaXBhbnRzICYmIGluVmlld1BhcnRpY2lwYW50cy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dYOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzE0OHB4JyxcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcidcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJvdyBmbGV4LXJvdyBmbGV4LW5vd3JhcCBuby1tYXJnaW4gbm8tcGFkZGluZ1wiPlxuICAgICAgICAgICAgICAgIHtpblZpZXdQYXJ0aWNpcGFudHMubWFwKChwYXJ0aWNpcGFudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXsnY29sLSotKid9IGtleT17aW5kZXggKyAnLScgKyBwYXJ0aWNpcGFudC51c2VySWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluV2lkdGg6ICcyMDBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzE0OHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxWQ1Jvb21QYXJ0aWNpcGFudCBkYXRhPXtwYXJ0aWNpcGFudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2U9e2RldmljZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWV0aW5nSWQ9e21lZXRpbmdJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5U3RhdGU9e2Rpc3BsYXlTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb011dGVkPXtwYXJ0aWNpcGFudC5hdWRpb011dGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvTXV0ZWQ9e3BhcnRpY2lwYW50LnZpZGVvTXV0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25SZW1vdmVGcm9tVmlldz17KHBhcnRpY2lwYW50KSA9PiByZW1vdmVGcm9tVmlldyhwYXJ0aWNpcGFudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtZXJUcmFuc3BvcnQ9e2NvbnN1bWVyVHJhbnNwb3J0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0cENhcGFiaWxpdGllcz17cnRwQ2FwYWJpbGl0aWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mSW5WaWV3UGFydGljaXBhbnRzPXtpblZpZXdQYXJ0aWNpcGFudHMubGVuZ3RofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpY2lwYW50cz17cGFydGljaXBhbnRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemluZz17J3NtJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkhvc3RBdWRpb011dGU9eygpID0+IHByb3BzLm9uSG9zdEF1ZGlvTXV0ZShwYXJ0aWNpcGFudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Ib3N0VmlkZW9NdXRlPXsoKSA9PiBwcm9wcy5vbkhvc3RWaWRlb011dGUocGFydGljaXBhbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSG9zdD17aXNIb3N0fS8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PjtcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvZGl2PjtcbiAgICB9XG5cbiAgICBjb25zdCByZW5kZXJSb3cgPSAocm93LCBpbmRleCkgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEdyaWRcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJ1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgY29udGFpbmVyIGl0ZW0gc3BhY2luZz17Mn0+XG4gICAgICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgICAgICAgICB7cm93Lm1hcCgocGFydGljaXBhbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPEdyaWQgaXRlbSBrZXk9e2luZGV4ICsgJy0nICsgcGFydGljaXBhbnQudXNlcklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J21lZXRpbmdQYXJ0aWNpcGFudENvbnRhaW5lcid9IHN0eWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4QmFzaXM6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFdpZHRoOiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWQ1Jvb21QYXJ0aWNpcGFudCBkYXRhPXtwYXJ0aWNpcGFudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlPXtkZXZpY2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZXRpbmdJZD17bWVldGluZ0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXppbmc9e2Rpc3BsYXlTdGF0ZSA9PT0gJ01JTklNSVpFRCcgPyAnc20nIDogJ21kJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9NdXRlZD17cGFydGljaXBhbnQuYXVkaW9NdXRlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9NdXRlZD17cGFydGljaXBhbnQudmlkZW9NdXRlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25SZW1vdmVGcm9tVmlldz17KHBhcnRpY2lwYW50KSA9PiByZW1vdmVGcm9tVmlldyhwYXJ0aWNpcGFudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0PXtjb25zdW1lclRyYW5zcG9ydH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZJblZpZXdQYXJ0aWNpcGFudHM9e2luVmlld1BhcnRpY2lwYW50cy5sZW5ndGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpY2lwYW50cz17cGFydGljaXBhbnRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydHBDYXBhYmlsaXRpZXM9e3J0cENhcGFiaWxpdGllc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Ib3N0QXVkaW9NdXRlPXsoKSA9PiBwcm9wcy5vbkhvc3RBdWRpb011dGUocGFydGljaXBhbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkhvc3RWaWRlb011dGU9eygpID0+IHByb3BzLm9uSG9zdFZpZGVvTXV0ZShwYXJ0aWNpcGFudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSG9zdD17aXNIb3N0fS8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+O1xuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICApO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZW5kZXJDdXJyZW50UGFydGljaXBhbnQoKSB7XG4gICAgICAgIHJldHVybiA8PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRVc2VyUGFydGljaXBhbnQgJiZcbiAgICAgICAgICAgICAgICA8VkNSb29tUGFydGljaXBhbnQgZGF0YT17Y3VycmVudFVzZXJQYXJ0aWNpcGFudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlPXtkZXZpY2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZXRpbmdJZD17bWVldGluZ0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWV0aW5nVGl0bGU9e21lZXRpbmdUaXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRwQ2FwYWJpbGl0aWVzPXtydHBDYXBhYmlsaXRpZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ3VycmVudFVzZXI9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQXVkaW9EZXZpY2VDaGFuZ2U9e3Byb3BzLm9uQXVkaW9EZXZpY2VDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0PXtjb25zdW1lclRyYW5zcG9ydH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXJUcmFuc3BvcnQ9e3Byb2R1Y2VyVHJhbnNwb3J0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb011dGVkPXthdWRpb011dGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb011dGVkPXt2aWRlb011dGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkluVmlld1BhcnRpY2lwYW50cz17aW5WaWV3UGFydGljaXBhbnRzLmxlbmd0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGljaXBhbnRzPXtwYXJ0aWNpcGFudHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uSG9zdEF1ZGlvTXV0ZT17KCkgPT4gcHJvcHMub25Ib3N0QXVkaW9NdXRlKGN1cnJlbnRVc2VyUGFydGljaXBhbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkhvc3RWaWRlb011dGU9eygpID0+IHByb3BzLm9uSG9zdFZpZGVvTXV0ZShjdXJyZW50VXNlclBhcnRpY2lwYW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNIb3N0PXtpc0hvc3R9Lz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC8+O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldE1lZXRpbmdEb2N1bWVudCgpIHtcbiAgICAgICAgcmV0dXJuIG1lZXRpbmdWaWV3SGFuZGxlci52YWx1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW5kZXJQYXJ0aWNpcGFudEdyaWQoKSB7XG4gICAgICAgIHJldHVybiAoIXNjcmVlblNoYXJlZCAmJiAhd2hpdGVCb2FyZFNob3duICYmICFtaW51dGVzU2hvd24gfHwgKHNjcmVlblNoYXJlZCAmJiAhc2hvd1NoYXJlZFNjcmVlbikgJiYgIXNvbWVvbmVTaGFyaW5nICYmICFtaW51dGVzU2hvd24pICYmXG4gICAgICAgICAgICA8Qm94IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgZmxleEdyb3c6IDEsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnID8gJ2NhbGMoMTAwJSAtIDIzMnB4KScgOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnXG4gICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17MX0gc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dYOiAnaGlkZGVuJ1xuICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICB7Z3JpZC5tYXAoKHJvdywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcyODBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlclJvdyhyb3csIGluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjtcbiAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPC9Cb3g+O1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIGRldmljZSA/XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3Jvdy0qLSogZ3JpZCd9XG4gICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGRpc3BsYXlTdGF0ZSA9PT0gJ01BWElNSVpFRCcgPyAnMTAwJScgOiBkaXNwbGF5U3RhdGUgPT09ICdNSU5JTUlaRUQnID8gJ2NhbGMoMTAwJSAtIDEwMHB4KScgOiAnY2FsYygxMDAlIC0gMjAwcHgpJyxcbiAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnID8gbnVsbCA6ICd0YWJsZScsXG4gICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgKHJvb21TdGF0dXMgPT09ICdMT0JCWScgfHwgcHJvcHMuYWxsVXNlclBhcnRpY2lwYW50c0xlZnQpICYmXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogZGlzcGxheVN0YXRlID09PSAnTUFYSU1JWkVEJyA/ICdjYWxjKDEwMCUgLSAyMzJweCknIDogJ2NhbGMoMTAwJSAtIDEyMHB4KScsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzI4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJ1xuICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXQUlUSU5HX0ZPUl9PVEhFUlNfVE9fSk9JTl9NRVNTQUdFXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQgJiYgcm9vbVN0YXR1cyAhPT0gJ0xPQkJZJyAmJlxuICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGF0ZSA9PT0gJ01BWElNSVpFRCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJQYXJ0aWNpcGFudEdyaWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVN0YXRlID09PSAnTUlOSU1JWkVEJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICdjYWxjKDEwMCUgLSAyMDBweCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAndGFibGUtY2VsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyUGFydGljaXBhbnRHcmlkKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGF0ZSA9PT0gJ1BJTk5FRCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNpZGVCYXJDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWV0aW5nQ2hhdD17bWVldGluZ0NoYXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0hvc3Q9e2lzSG9zdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hhaXJQZXJzb249e2lzQ2hhaXJQZXJzb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWI9eydQZW9wbGUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVldGluZ0lkPXttZWV0aW5nSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWNpcGFudHM9e3Byb3BzLnBhcnRpY2lwYW50c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uSG9zdEF1ZGlvTXV0ZT17cHJvcHMub25Ib3N0QXVkaW9NdXRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Ib3N0VmlkZW9NdXRlPXtwcm9wcy5vbkhvc3RWaWRlb011dGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb250ZW50LWJveCd9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICghKChzY3JlZW5TaGFyZWQgJiYgc2hvd1NoYXJlZFNjcmVlbikgfHwgc29tZW9uZVNoYXJpbmcpKSA/ICdub25lJyA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogJzEwMCUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9eydzY3JlZW4tc2hhcmUtdmlkZW8nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9QbGF5IHJlZj17c2hhcmVTY3JlZW5WaWRlb1JlZn0gbXV0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiAnMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb250ZW50LWJveCd9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICghKG1pbnV0ZXNTaG93biAmJiBzaG93TWludXRlcykpID8gJ25vbmUnIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAnYXV0bydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogJzEwMCUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERvY3VtZW50Vmlld2VyIGNvbmZpZz17bWVldGluZ1ZpZXdDb25maWcyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17bWVldGluZ1ZpZXdIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7ZGlzcGxheVN0YXRlID09PSAnTUFYSU1JWkVEJyA/ICdyb3ctKi0qJyA6ICcnfWB9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnID8gJzEwMCUnIDogJzIwMHB4JyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnID8gJzE1MnB4JyA6IGRpc3BsYXlTdGF0ZSA9PT0gJ01JTklNSVpFRCcgPyAnMTAwJScgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzAnLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAoKHNjcmVlblNoYXJlZCAmJiBzaG93U2hhcmVkU2NyZWVuKSB8fCBzb21lb25lU2hhcmluZyB8fCAobWludXRlc1Nob3duICYmIHNob3dNaW51dGVzKSkgPyAnbm9uZScgOiBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnID8gJ2ZsZXgnIDogZGlzcGxheVN0YXRlID09PSAnTUlOSU1JWkVEJyA/ICd0YWJsZS1jZWxsJyA6ICcnLFxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogJzhweCcsXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAnOHB4J1xuICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17JyBzdHJpcC1wYXJ0aWNpcGFudHMnfSBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGRpc3BsYXlTdGF0ZSA9PT0gJ01BWElNSVpFRCcgPyAnY2FsYygxMDAlIC0gMjMycHgpJyA6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzE0OHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6ICcxNnB4J1xuICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHdoaXRlQm9hcmRTaG93biB8fCByb29tU3RhdHVzID09PSAnTE9CQlknKSAmJiBncmlkKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyU3RyaXAoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7KGRpc3BsYXlTdGF0ZSA9PT0gJ01BWElNSVpFRCcgPyAnY29sICcgOiAnJyl9YH0gc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMjAwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTQ4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6ICcxNnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlckN1cnJlbnRQYXJ0aWNpcGFudCgpfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICgod2FpdGluZ0xpc3QgJiYgd2FpdGluZ0xpc3QubGVuZ3RoID4gMCkpICYmXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnbm8tc2lkZS1tYXJnaW4gbm8tc2lkZS1wYWRkaW5nIGdyaWQtc2lkZS1iYXInfSBzdHlsZT17XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAnMTZweCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0aW5nTGlzdCAmJiB3YWl0aW5nTGlzdC5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExvYmJ5V2FpdGluZ0xpc3Qgd2FpdGluZ0xpc3Q9e3dhaXRpbmdMaXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9IZWlnaHQ9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0VXNlckhhbmRsZXI9e3Byb3BzLnJlamVjdFVzZXJIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdFVzZXJIYW5kbGVyPXtwcm9wcy5hY2NlcHRVc2VySGFuZGxlcn0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDpcbiAgICAgICAgICAgIG51bGxcbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFZDUm9vbVdvcmtzcGFjZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxrQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksSUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssZUFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sZ0JBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFlBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLEtBQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFVLGNBQUEsR0FBQVIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFXLGlCQUFBLEdBQUFULHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBWSxPQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxlQUFBLEdBQUFYLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBYyxtQkFBQSxHQUFBWixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWUsbUJBQUEsR0FBQWIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFnQixNQUFBLEdBQUFkLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBaUIsZUFBQSxHQUFBZixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFB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
@@ -106,4 +106,5 @@ const Video = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forwa
106
106
  }
107
107
  })));
108
108
  }));
109
- var _default = exports.default = Video;
109
+ var _default = exports.default = Video;
110
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0ljb24iLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJWSURFT19DT05TVFJBSU5UUyIsImV4cG9ydHMiLCJhdWRpbyIsInZpZGVvIiwid2lkdGgiLCJtaW4iLCJpZGVhbCIsImhlaWdodCIsIlZpZGVvIiwiUmVhY3QiLCJtZW1vIiwiZm9yd2FyZFJlZiIsInByb3BzIiwicmVmIiwidXNlclZpZGVvIiwidXNlUmVmIiwic3RyZWFtIiwic2V0U3RyZWFtIiwidXNlU3RhdGUiLCJvbiIsInNldE9uIiwidXNlRWZmZWN0IiwiY2xvc2VTdHJlYW0iLCJoYW5kbGUiLCJhcGkiLCJzdGFydCIsImN1cnJlbnQiLCJzcmNPYmplY3QiLCJ0cmFjayIsImdldFRyYWNrcyIsInN0b3AiLCJ2aWRlb1N0cmVhbSIsIm5hdmlnYXRvciIsIm1lZGlhRGV2aWNlcyIsImdldFVzZXJNZWRpYSIsImlkIiwiY29uZmlnIiwiZ2V0Q2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJVdGlscyIsIm1lcmdlU3R5bGVzIiwiYm9yZGVyQm90dG9tIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyUmFkaXVzIiwibWFyZ2luTGVmdCIsImhpZGRlbiIsIm11dGVkIiwicGxheXNJbmxpbmUiLCJhdXRvUGxheSIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21lZGlhL1ZpZGVvLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QsIHt1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSBcIi4uLy4uL1V0aWxzXCI7XG5pbXBvcnQgXCIuL1ZpZGVvLmNzc1wiXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vSWNvblwiO1xuXG5leHBvcnQgY29uc3QgVklERU9fQ09OU1RSQUlOVFMgPSB7XG4gICAgYXVkaW86IGZhbHNlLFxuICAgIHZpZGVvOiB7XG4gICAgICAgIHdpZHRoOiB7XG4gICAgICAgICAgICBtaW46IDY0MCxcbiAgICAgICAgICAgIGlkZWFsOiAxOTIwXG4gICAgICAgIH0sXG4gICAgICAgIGhlaWdodDoge1xuICAgICAgICAgICAgbWluOiA0MDAsXG4gICAgICAgICAgICBpZGVhbDogMTA4MFxuICAgICAgICB9XG4gICAgfVxufTtcblxuY29uc3QgVmlkZW8gPSBSZWFjdC5tZW1vKFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBjb25zdCB1c2VyVmlkZW8gPSB1c2VSZWYoKTtcbiAgICBjb25zdCBbc3RyZWFtLCBzZXRTdHJlYW1dID0gdXNlU3RhdGUoKTtcbiAgICBjb25zdCBbb24sIHNldE9uXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjbG9zZVN0cmVhbSgpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICB9KTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChvbikge1xuICAgICAgICAgICAgc3RhcnQoKTtcbiAgICAgICAgfSBlbHNlIGlmICh1c2VyVmlkZW8uY3VycmVudCAmJiB1c2VyVmlkZW8uY3VycmVudC5zcmNPYmplY3QpIHtcbiAgICAgICAgICAgIGNsb3NlU3RyZWFtKCk7XG4gICAgICAgIH1cbiAgICB9LCBbb25dKTtcblxuICAgIGNvbnN0IGNsb3NlU3RyZWFtID0gKCkgPT4ge1xuICAgICAgICBpZiAoc3RyZWFtKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHRyYWNrIG9mIHN0cmVhbS5nZXRUcmFja3MoKSkge1xuICAgICAgICAgICAgICAgIHRyYWNrLnN0b3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzdGFydCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCB2aWRlb1N0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKFZJREVPX0NPTlNUUkFJTlRTKTtcbiAgICAgICAgICAgIHVzZXJWaWRlby5jdXJyZW50LnNyY09iamVjdCA9IHZpZGVvU3RyZWFtO1xuICAgICAgICAgICAgc2V0U3RyZWFtKHZpZGVvU3RyZWFtKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgc2V0T24oZmFsc2UpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGFwaSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCBvbihvbikge1xuICAgICAgICAgICAgICAgIHNldE9uKG9uKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXsnY2VudGVyZWQtZmxleC1ib3ggdXNlci12aWRlbyd9XG4gICAgICAgICAgICBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMmUyZTInXG4gICAgICAgICAgICB9LCBwcm9wcy5jb25maWcpfVxuICAgICAgICA+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgIW9uICYmXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjZW50ZXJlZC1mbGV4LWJveCd9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCdcbiAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9e1wiQ0FNRVJBX09GRlwifS8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnYXZhdGFyJ30gc3R5bGU9e3ttYXJnaW5MZWZ0OiAnNHB4J319PlxuICAgICAgICAgICAgICAgICAgICAgICAgWW91ciBjYW1lcmEgaXMgb2ZmXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8dmlkZW9cbiAgICAgICAgICAgICAgICAgICAgaGlkZGVuPXshb259XG4gICAgICAgICAgICAgICAgICAgIG11dGVkIHBsYXlzSW5saW5lIGF1dG9QbGF5IHJlZj17dXNlclZpZGVvfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4J1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn0pKTtcblxuZXhwb3J0IGRlZmF1bHQgVmlkZW87XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQTJCLFNBQUFFLHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUwsd0JBQUFLLENBQUEsRUFBQUcsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFULHVCQUFBLFlBQUFBLENBQUFLLENBQUEsRUFBQUcsQ0FBQSxTQUFBQSxDQUFBLElBQUFILENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLFNBQUFELENBQUEsTUFBQU8sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBUixPQUFBLEVBQUFGLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVMsQ0FBQSxNQUFBRixDQUFBLEdBQUFKLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFFLENBQUEsQ0FBQUksR0FBQSxDQUFBWCxDQUFBLFVBQUFPLENBQUEsQ0FB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RUFBRUEsQ0FBQSxFQUFHO1FBQ0wsT0FBT3ZCLEtBQUssQ0FBQ3dCLE1BQU0sQ0FBQ0QsRUFBRTtNQUMxQixDQUFDO01BQ0QsSUFBSWhCLEVBQUVBLENBQUNBLEVBQUUsRUFBRTtRQUNQQyxLQUFLLENBQUNELEVBQUUsQ0FBQztNQUNiLENBQUM7TUFDRGtCLFdBQVcsRUFBRUEsQ0FBQSxLQUFNO1FBQ2YsT0FBTyxFQUFFO01BQ2I7SUFDSixDQUFDO0VBQ0wsQ0FBQztFQUVELG9CQUNJOUQsTUFBQSxDQUFBUSxPQUFBLENBQUF1RCxhQUFBO0lBQ0lDLFNBQVMsRUFBRSw4QkFBK0I7SUFDMUNDLEtBQUssRUFBRUMsY0FBSyxDQUFDQyxXQUFXLENBQUM7TUFDckJ0QyxLQUFLLEVBQUUsTUFBTTtNQUNidUMsWUFBWSxFQUFFO0lBQ2xCLENBQUMsRUFBRS9CLEtBQUssQ0FBQ3dCLE1BQU07RUFBRSxHQUdiLENBQUNqQixFQUFFLGlCQUNINUMsTUFBQSxDQUFBUSxPQUFBLENBQUF1RCxhQUFBO0lBQUtDLFNBQVMsRUFBRSxtQkFBb0I7SUFBQ0MsS0FBSyxFQUFFO01BQ3hDcEMsS0FBSyxFQUFFLE1BQU07TUFDYkcsTUFBTSxFQUFFLE1BQU07TUFDZHFDLGVBQWUsRUFBRSxhQUFhO01BQzlCQyxZQUFZLEVBQUU7SUFDbEI7RUFBRSxnQkFDRXRFLE1BQUEsQ0FBQVEsT0FBQSxDQUFBdUQsYUFBQSxDQUFDMUQsS0FBQSxDQUFBRyxPQUFJO0lBQUNvRCxFQUFFLEVBQUU7RUFBYSxDQUFDLENBQUMsZUFDekI1RCxNQUFBLENBQUFRLE9BQUEsQ0FBQXVELGFBQUE7SUFBS0MsU0FBUyxFQUFFLFFBQVM7SUFBQ0MsS0FBSyxFQUFFO01BQUNNLFVBQVUsRUFBRTtJQUFLO0VBQUUsR0FBQyxvQkFFakQsQ0FDSixDQUFDLGVBRVZ2RSxNQUFBLENBQUFRLE9BQUEsQ0FBQXVELGFBQUEsMkJBQ0kvRCxNQUFBLENBQUFRLE9BQUEsQ0FBQXVELGFBQUE7SUFDSVMsTUFBTSxFQUFFLENBQUM1QixFQUFHO0lBQ1o2QixLQUFLO0lBQUNDLFdBQVc7SUFBQ0MsUUFBUTtJQUFDckMsR0FBRyxFQUFFQyxTQUFVO0lBQzFDMEIsS0FBSyxFQUFFO01BQ0hwQyxLQUFLLEVBQUUsTUFBTTtNQUNiRyxNQUFNLEVBQUUsTUFBTTtNQUNkcUMsZUFBZSxFQUFFLGFBQWE7TUFDOUJDLFlBQVksRUFBRTtJQUNsQjtFQUFFLENBQ0wsQ0FDQSxDQUNKLENBQUM7QUFFZCxDQUFDLENBQUMsQ0FBQztBQUFDLElBQUFNLFFBQUEsR0FBQWxELE9BQUEsQ0FBQWxCLE9BQUEsR0FFV3lCLEtBQUsiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -99,4 +99,5 @@ const VideoPlayer = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default
99
99
  }
100
100
  }, "NO TRAINING VIDEO AVAILABLE")));
101
101
  }));
102
- var _default = exports.default = VideoPlayer;
102
+ var _default = exports.default = VideoPlayer;
103
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0UGxheWVyIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9PYnNlcnZhYmxlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwibG9jYXRpb24iLCJ3aW5kb3ciLCJwcm90b2NvbCIsImhvc3RuYW1lIiwiVmlkZW9QbGF5ZXIiLCJSZWFjdCIsIm1lbW8iLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJwbGF5aW5nIiwic2V0UGxheWluZyIsInVzZVN0YXRlIiwiZG9jdW1lbnRJZCIsInNldERvY3VtZW50SWQiLCJkb3dubG9hZFVybCIsInNldERvd25sb2FkVXJsIiwiZGlzYWJsZWQiLCJzZXREaXNhYmxlZCIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwidXNlRWZmZWN0IiwiaGFuZGxlIiwiYXBpIiwicGFyc2VkQ29uZmlnIiwiVXRpbHMiLCJwYXJzZUNvbmZpZyIsImNvbmZpZyIsInZpZXdJZCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCJldmVudEhhbmRsaW5nQ29uZmlnIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsInJlZnJlc2giLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJnZXRDb250ZXh0Um9vdCIsInNlc3Npb25TdG9yYWdlIiwiZ2V0SXRlbSIsImlkIiwiZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiIsImlzTnVsbCIsImdldENoaWxkcmVuIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50Iiwic3R5bGUiLCJtZXJnZVN0eWxlcyIsImNsYXNzTmFtZSIsImJvcmRlclJhZGl1cyIsInVybCIsImNvbnRyb2xzIiwid2lkdGgiLCJoZWlnaHQiLCJvblBsYXkiLCJvblBhdXNlIiwiYmFja2dyb3VuZENvbG9yIiwiY29sb3IiLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21lZGlhL1ZpZGVvUGxheWVyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uLy4uL1V0aWxzJztcbmltcG9ydCAnLi9WaWRlb1BsYXllci5jc3MnO1xuaW1wb3J0IFJlYWN0UGxheWVyIGZyb20gJ3JlYWN0LXBsYXllcic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gXCIuLi8uLi9ldmVudC9PYnNlcnZhYmxlXCI7XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbmNvbnN0IFZpZGVvUGxheWVyID0gUmVhY3QubWVtbyhSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG5cbiAgICBjb25zdCBbcGxheWluZywgc2V0UGxheWluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2RvY3VtZW50SWQsIHNldERvY3VtZW50SWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtkb3dubG9hZFVybCwgc2V0RG93bmxvYWRVcmxdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW2Rpc2FibGVkLCBzZXREaXNhYmxlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgfSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG5cbiAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN1YnNjcmlwdGlvbnMocGFyc2VkQ29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWcsIHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN5c3RlbVN1YnNjcmlwdGlvbnMocHJvcHMudmlld0lkLCBwYXJzZWRDb25maWcpO1xuICAgICAgICBwcm9wcy5oYW5kbGUuYXBpLnJlZnJlc2goKTtcbiAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBwcm9wcy5oYW5kbGUuYXBpLnJlZnJlc2goKTtcbiAgICB9LCBbZG9jdW1lbnRJZF0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICB9LCBbcGxheWluZ10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGRvY3VtZW50SWQpIHtcbiAgICAgICAgICAgIHNldERvd25sb2FkVXJsKGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyAnL2RvY3MvYXBpL3YxL21hbmFnZXIvZG93bmxvYWQvJyArIGRvY3VtZW50SWQgK1xuICAgICAgICAgICAgICAgICc/YWNjZXNzX3Rva2VuPScgKyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhY2Nlc3NUb2tlbicpICsgJyZpZFRva2VuPScgKyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdpZFRva2VuJykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0RG93bmxvYWRVcmwobnVsbCk7XG4gICAgICAgIH1cbiAgICB9LCBbZG9jdW1lbnRJZF0pO1xuXG4gICAgY29uc3QgYXBpID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHBsYXlpbmcocGxheWluZykge1xuICAgICAgICAgICAgICAgIHNldFBsYXlpbmcocGxheWluZyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGRvY3VtZW50SWQoZG9jdW1lbnRJZCkge1xuICAgICAgICAgICAgICAgIHNldERvY3VtZW50SWQoZG9jdW1lbnRJZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IGRvY3VtZW50SWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50SWQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGRpc2FibGVkKGRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCB2aXNpYmxlKHZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKHZpc2libGUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZnJlc2goKSB7XG4gICAgICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICBzZXREaXNhYmxlZChVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy5kaXNhYmxlZCwgcGFyc2VkQ29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgc2V0VmlzaWJsZShVdGlscy5pc051bGwocGFyc2VkQ29uZmlnLnZpc2libGUpIHx8IFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocGFyc2VkQ29uZmlnLnZpc2libGUsIHBhcnNlZENvbmZpZy5pZCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldENoaWxkcmVuOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZpc2libGUgJiZcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7fSwgcHJvcHMuY29uZmlnKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkVXJsICYmXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBsYXllci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlYWN0UGxheWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7Ym9yZGVyUmFkaXVzOiAnNHB4J319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybD17ZG93bmxvYWRVcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlYWN0LXBsYXllclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlpbmc9e3BsYXlpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblBsYXk9eygpID0+IHNldFBsYXlpbmcodHJ1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uUGF1c2U9eygpID0+IHNldFBsYXlpbmcoZmFsc2UpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAoIWRvY3VtZW50SWQgfHwgIWRvd25sb2FkVXJsKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnYmxhY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTk8gVFJBSU5JTkcgVklERU8gQVZBSUxBQkxFXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8Lz5cbiAgICApO1xufSkpO1xuXG5leHBvcnQgZGVmYXVsdCBWaWRlb1BsYXllcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxtQkFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQWtELFNBQUFFLHVCQUFBSSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQVAsd0JBQUFPLENBQUEsRUFBQUcsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFYLHVCQUFBLFlBQUFBLENBQUFPLENBQUEsRUFBQUcsQ0FBQSxTQUFBQSxDQUFBLElBQUFILENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLFNBQUFELENBQUEsTUFBQU8sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBUixPQUFBLEVBQUFGLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVMsQ0FBQSxNQUFBRixDQUFBLEdBQUFKLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFFLENBQUEsQ0FBQUksR0FBQSxDQUFBWCxDQUFBLFVBQUFPLENBQUEsQ0FBQUssR0FBQSxDQUFBWixDQUFBLEdBQUFPLENBQUEsQ0FBQU0sR0FB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SyxDQUFDYyx5QkFBeUIsQ0FBQ2YsWUFBWSxDQUFDTCxPQUFPLEVBQUVLLFlBQVksQ0FBQ2MsRUFBRSxDQUFDLENBQUM7TUFDNUgsQ0FBQztNQUNERyxXQUFXLEVBQUVBLENBQUEsS0FBTTtRQUNmLE9BQU8sRUFBRTtNQUNiO0lBQ0osQ0FBQztFQUNMLENBQUM7RUFFRCxvQkFDSXBFLE1BQUEsQ0FBQVUsT0FBQSxDQUFBMkQsYUFBQSxDQUFBckUsTUFBQSxDQUFBVSxPQUFBLENBQUE0RCxRQUFBLFFBRVF4QixPQUFPLGlCQUNQOUMsTUFBQSxDQUFBVSxPQUFBLENBQUEyRCxhQUFBO0lBQ0lFLEtBQUssRUFBRW5CLGNBQUssQ0FBQ29CLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRXJDLEtBQUssQ0FBQ21CLE1BQU07RUFBRSxHQUd2Q1osV0FBVyxpQkFDWDFDLE1BQUEsQ0FBQVUsT0FBQSxDQUFBMkQsYUFBQTtJQUFLSSxTQUFTLEVBQUM7RUFBZ0IsZ0JBQzNCekUsTUFBQSxDQUFBVSxPQUFBLENBQUEyRCxhQUFBLENBQUNoRSxZQUFBLENBQUFLLE9BQVc7SUFDUjZELEtBQUssRUFBRTtNQUFDRyxZQUFZLEVBQUU7SUFBSyxDQUFFO0lBQzdCQyxHQUFHLEVBQUVqQyxXQUFZO0lBQ2pCK0IsU0FBUyxFQUFDLGNBQWM7SUFDeEJwQyxPQUFPLEVBQUVBLE9BQVE7SUFDakJ1QyxRQUFRO0lBQ1JDLEtBQUssRUFBQyxNQUFNO0lBQ1pDLE1BQU0sRUFBQyxNQUFNO0lBQ2JDLE1BQU0sRUFBRUEsQ0FBQSxLQUFNekMsVUFBVSxDQUFDLElBQUksQ0FBRTtJQUMvQjBDLE9BQU8sRUFBRUEsQ0FBQSxLQUFNMUMsVUFBVSxDQUFDLEtBQUs7RUFBRSxDQUNwQyxDQUNBLENBQUMsRUFHTixDQUFDLENBQUNFLFVBQVUsSUFBSSxDQUFDRSxXQUFXLGtCQUM1QjFDLE1BQUEsQ0FBQVUsT0FBQSxDQUFBMkQsYUFBQTtJQUFLRSxLQUFLLEVBQUU7TUFDUk0sS0FBSyxFQUFFLE1BQU07TUFDYkMsTUFBTSxFQUFFLE1BQU07TUFDZEcsZUFBZSxFQUFFLE9BQU87TUFDeEJDLEtBQUssRUFBRSxPQUFPO01BQ2RDLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLGNBQWMsRUFBRSxRQUFRO01BQ3hCQyxVQUFVLEVBQUUsUUFBUTtNQUNwQlgsWUFBWSxFQUFFO0lBQ2xCO0VBQUUsR0FBQyw2QkFFRSxDQUVSLENBRVgsQ0FBQztBQUVYLENBQUMsQ0FBQyxDQUFDO0FBQUMsSUFBQVksUUFBQSxHQUFBQyxPQUFBLENBQUE3RSxPQUFBLEdBRVdxQixXQUFXIiwiaWdub3JlTGlzdCI6W119