@nurihaus/web-design-system 1.2.0 → 1.2.1

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 (2) hide show
  1. package/dist/index.js +1 -6
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1758,11 +1758,6 @@ var Avatar = /*#__PURE__*/(0,external_root_React_commonjs2_react_commonjs_react_
1758
1758
  return setIsImageDownload(true);
1759
1759
  },
1760
1760
  style: avatar_assign({}, style)
1761
- }), !isImageDownload && (0,jsx_runtime_namespaceObject.jsx)("div", {
1762
- className: "avatar avatar-skeleton ".concat(size),
1763
- children: (0,jsx_runtime_namespaceObject.jsx)("div", {
1764
- className: 'avatar skeleton-animation'
1765
- })
1766
1761
  }), badgeOption && (0,jsx_runtime_namespaceObject.jsx)(BaseBadge, {
1767
1762
  asChild: true,
1768
1763
  style: {
@@ -3093,4 +3088,4 @@ var __webpack_exports__TextFieldWithError = __webpack_exports__.w3;
3093
3088
  var __webpack_exports__colors = __webpack_exports__.Tj;
3094
3089
  export { __webpack_exports__Avatar as Avatar, __webpack_exports__CTAButton as CTAButton, __webpack_exports__Checkbox as Checkbox, __webpack_exports__DataTable as DataTable, __webpack_exports__IconTextBadge as IconTextBadge, __webpack_exports__IconTextOptionBadge as IconTextOptionBadge, __webpack_exports__OptionBadge as OptionBadge, __webpack_exports__Radio as Radio, __webpack_exports__Text as Text, __webpack_exports__TextField as TextField, __webpack_exports__TextFieldWithError as TextFieldWithError, __webpack_exports__colors as colors };
3095
3090
 
3096
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sMEdBQTBHLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE9BQU8sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE9BQU8sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1B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QSxFQUFFLEdBQUcsR0FBRztFQUN4QixPQUFRcE4sbUNBQUksQ0FBQ1ksSUFBSSxFQUFFO0lBQUVGLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQ2xDLElBQUksQ0FBQzRCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQ00sTUFBTSxDQUFDTixJQUFJLENBQUMsR0FBR0EsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDTSxNQUFNLENBQUNrTSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUNsTSxNQUFNLENBQUNtTSxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQ25NLE1BQU0sQ0FBQ29NLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQ3BNLE1BQU0sQ0FBQ3FNLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQ3JNLE1BQU0sQ0FBQ2lGLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQ2pGLE1BQU0sQ0FBQzRFLEtBQUssR0FBRyxRQUFRLENBQUM1RSxNQUFNLENBQUM0RSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7SUFBRWpGLEtBQUssRUFBRTVFLFdBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTRFLEtBQUssQ0FBQztJQUFFbEQsUUFBUSxFQUFFNEU7RUFBSyxDQUFDLENBQUM7QUFDdlgsQ0FBQztBQUNELGdEQUFlNEssSUFBSTs7QUNwQjRDO0FBQ087QUFDRztBQUNLO0FBQ2E7QUFDdEI7QUFDSztBQUNvQjtBQUNsQztBQUNXO0FBQ0wiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXItc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvYmFkZ2Utc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94LXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2VsZW1lbnRzL3RleHQvdGV4dC1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmctc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8tc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGFibGUvdGFibGUtc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9mb250LmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvbm9uY2UiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL2V4dGVybmFsIG1vZHVsZSB7XCJyb290XCI6XCJqc3gtcnVudGltZVwiLFwiY29tbW9uanMyXCI6XCJyZWFjdC9qc3gtcnVudGltZVwiLFwiY29tbW9uanNcIjpcInJlYWN0L2pzeC1ydW50aW1lXCIsXCJhbWRcIjpcInJlYWN0L2pzeC1ydW50aW1lXCIsXCJtb2R1bGVcIjpcInJlYWN0L2pzeC1ydW50aW1lXCJ9Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS9leHRlcm5hbCBtb2R1bGUge1wicm9vdFwiOlwiUmVhY3RcIixcImNvbW1vbmpzMlwiOlwicmVhY3RcIixcImNvbW1vbmpzXCI6XCJyZWFjdFwiLFwiYW1kXCI6XCJyZWFjdFwiLFwibW9kdWxlXCI6XCJyZWFjdFwifSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2NvcmUvY29tcG9zZXIvaW5kZXgudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvYmFzZS1iYWRnZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLXN0eWxlLmNzcz83NjAxIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYXZhdGFyL2F2YXRhci50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLXN0eWxlLmNzcz9lOWY3Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9jb2xvci5jc3M/NjZjYSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9zdHlsZXMvdG9rZW4vZm9udC5jc3M/NzZiYiIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2J1dHRvbi9iYXNlLWJ1dHRvbi50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmctc3R5bGUuY3NzP2IzOTkiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmcudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYnV0dG9uL2N0YS1idXR0b24udHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9jb2xvcnMudHMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9iYWRnZS9vcHRpb24tYmFkZ2UudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvaWNvbi10ZXh0LWJhZGdlLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLXN0eWxlLmNzcz80YTg3Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvaWNvbi10ZXh0LW9wdGlvbi1iYWRnZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90YWJsZS90YWJsZS1zdHlsZS5jc3M/YjcyZSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RhYmxlL2Jhc2UtdGFibGUudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGFibGUvZGF0YS10YWJsZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQtc3R5bGUuY3NzPzdjYzciLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL2Jhc2UtdGV4dC1maWVsZC50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLXdpdGgtZXJyb3IudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2hlbHBlcnMvaG9va3MvdXNlRXh0ZXJuYWxTdGF0ZS50cyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3JhZGlvL2Jhc2UtcmFkaW8udHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8tc3R5bGUuY3NzP2Y1ZDkiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9yYWRpby9yYWRpby50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94LXN0eWxlLmNzcz80NmVlIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvY2hlY2stYm94L2Jhc2UtY2hlY2stYm94LnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2NoZWNrLWJveC9jaGVjay1ib3gudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvZWxlbWVudHMvdGV4dC90ZXh0LXN0eWxlLmNzcz9kODdiIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvZWxlbWVudHMvdGV4dC90ZXh0LnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5hdmF0YXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuXG4gICYgZGl2IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmIGltZyB7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cbn1cblxuLmF2YXRhciAuYXZhdGFyLnhsIHtcbiAgd2lkdGg6IDEyNHB4O1xuICBoZWlnaHQ6IDEyNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xufVxuXG4uYXZhdGFyLmwge1xuICB3aWR0aDogNzRweDtcbiAgaGVpZ2h0OiA3NHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xufVxuXG4uYXZhdGFyLm0ge1xuICB3aWR0aDogNThweDtcbiAgaGVpZ2h0OiA1OHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xufVxuXG4uYXZhdGFyLnMge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xufVxuXG5Ac3VwcG9ydHMgc2VsZWN0b3IoJikge1xuICAuYXZhdGFyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgJiBkaXYge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJiBpbWcge1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgJjp3aGVyZSgueGwpIHtcbiAgICAgIHdpZHRoOiAxMjRweDtcbiAgICAgIGhlaWdodDogMTI0cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xuICAgIH1cblxuICAgICY6d2hlcmUoLmwpIHtcbiAgICAgIHdpZHRoOiA3NHB4O1xuICAgICAgaGVpZ2h0OiA3NHB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U0ZTRlNztcbiAgICB9XG5cbiAgICAmOndoZXJlKC5tKSB7XG4gICAgICB3aWR0aDogNThweDtcbiAgICAgIGhlaWdodDogNThweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTc7XG4gICAgfVxuXG4gICAgJjp3aGVyZSgucykge1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xuICAgIH1cbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXItc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsbUJBQW1COztFQUVuQjtJQUNFLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixnQkFBZ0I7RUFDbEI7O0VBRUE7SUFDRSxpQkFBaUI7RUFDbkI7QUFDRjs7QUFFQTtFQUNFLFlBQVk7RUFDWixhQUFhO0VBQ2IseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1oseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0U7SUFDRSxrQkFBa0I7SUFDbEIsa0JBQWtCOztJQUVsQjtNQUNFLGtCQUFrQjtNQUNsQixhQUFhO01BQ2IsbUJBQW1CO01BQ25CLHVCQUF1QjtNQUN2QixnQkFBZ0I7SUFDbEI7O0lBRUE7TUFDRSxpQkFBaUI7SUFDbkI7O0lBRUE7TUFDRSxZQUFZO01BQ1osYUFBYTtNQUNiLHlCQUF5QjtJQUMzQjs7SUFFQTtNQUNFLFdBQVc7TUFDWCxZQUFZO01BQ1oseUJBQXlCO0lBQzNCOztJQUVBO01BQ0UsV0FBVztNQUNYLFlBQVk7TUFDWix5QkFBeUI7SUFDM0I7O0lBRUE7TUFDRSxXQUFXO01BQ1gsWUFBWTtNQUNaLHlCQUF5QjtJQUMzQjtFQUNGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmF2YXRhciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB3aWR0aDogZml0LWNvbnRlbnQ7XFxuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xcblxcbiAgJiBkaXYge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcblxcbiAgJiBpbWcge1xcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcXG4gIH1cXG59XFxuXFxuLmF2YXRhciAuYXZhdGFyLnhsIHtcXG4gIHdpZHRoOiAxMjRweDtcXG4gIGhlaWdodDogMTI0cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xcbn1cXG5cXG4uYXZhdGFyLmwge1xcbiAgd2lkdGg6IDc0cHg7XFxuICBoZWlnaHQ6IDc0cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xcbn1cXG5cXG4uYXZhdGFyLm0ge1xcbiAgd2lkdGg6IDU4cHg7XFxuICBoZWlnaHQ6IDU4cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xcbn1cXG5cXG4uYXZhdGFyLnMge1xcbiAgd2lkdGg6IDQwcHg7XFxuICBoZWlnaHQ6IDQwcHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xcbn1cXG5cXG5Ac3VwcG9ydHMgc2VsZWN0b3IoJikge1xcbiAgLmF2YXRhciB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xcblxcbiAgICAmIGRpdiB7XFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICB9XFxuXFxuICAgICYgaW1nIHtcXG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcXG4gICAgfVxcblxcbiAgICAmOndoZXJlKC54bCkge1xcbiAgICAgIHdpZHRoOiAxMjRweDtcXG4gICAgICBoZWlnaHQ6IDEyNHB4O1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTc7XFxuICAgIH1cXG5cXG4gICAgJjp3aGVyZSgubCkge1xcbiAgICAgIHdpZHRoOiA3NHB4O1xcbiAgICAgIGhlaWdodDogNzRweDtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xcbiAgICB9XFxuXFxuICAgICY6d2hlcmUoLm0pIHtcXG4gICAgICB3aWR0aDogNThweDtcXG4gICAgICBoZWlnaHQ6IDU4cHg7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U0ZTRlNztcXG4gICAgfVxcblxcbiAgICAmOndoZXJlKC5zKSB7XFxuICAgICAgd2lkdGg6IDQwcHg7XFxuICAgICAgaGVpZ2h0OiA0MHB4O1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTc7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS1iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuXG4gIGJvcmRlci1yYWRpdXM6IDQwcHg7XG5cbiAgJjp3aGVyZSgubCkge1xuICAgIGhlaWdodDogNDhweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cblxuICAmOndoZXJlKC5tKSB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuXG4gICY6d2hlcmUoLnIpIHtcbiAgICBoZWlnaHQ6IDM2cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG5cbiAgJjp3aGVyZSgucykge1xuICAgIGhlaWdodDogMzJweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgfVxuXG4gICY6d2hlcmUoLnNtKSB7XG4gICAgaGVpZ2h0OiAyOHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIH1cblxuICAmW2NsYXNzKj1cImJhY2tncm91bmQtXCJdIHtcbiAgICAmLmJhY2tncm91bmQtYmxhY2sge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XG4gICAgfVxuICAgICYuYmFja2dyb3VuZC13aGl0ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgICB9XG4gICAgJi5iYWNrZ3JvdW5kLWdyYXlGYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xuICAgIH1cbiAgICAmLmJhY2tncm91bmQtcHVycGxlMzkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgICB9XG4gIH1cblxuICAmW2NsYXNzKj1cInRleHQtXCJdIHtcbiAgICAmLnRleHQtYmxhY2sge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xuICAgIH1cbiAgICAmLnRleHQtd2hpdGUge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICAgIH1cbiAgICAmLnRleHQtZ3JheUZhIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xuICAgIH1cbiAgICAmLnRleHQtcHVycGxlMzkge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgfVxuICB9XG5cbiAgJltjbGFzcyo9XCJib3JkZXItXCJdIHtcbiAgICAmLmJvcmRlci1ibGFjayB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgICB9XG4gICAgJi5ib3JkZXItd2hpdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgfVxuICAgICYuYm9yZGVyLWdyYXlGYSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xuICAgIH1cbiAgICAmLmJvcmRlci1ncmF5RTQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcbiAgICB9XG4gICAgJi5ib3JkZXItcHVycGxlMzkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgICB9XG4gICAgJi5ib3JkZXItZ3JheUQ0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XG4gICAgfVxuICB9XG5cbiAgJi5pY29uLXRleHQtb3B0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgcGFkZGluZzogMCAyMHB4O1xuICB9XG5cbiAgJi5pY29uLXRleHQtb3B0aW9uID4gc3BhbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvYmFkZ2UvYmFkZ2Utc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLFFBQVE7O0VBRVIsbUJBQW1COztFQUVuQjtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyx3Q0FBd0M7RUFDMUM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDOztFQUVBO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLHdDQUF3QztFQUMxQzs7RUFFQTtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyxvQ0FBb0M7RUFDdEM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsb0NBQW9DO0VBQ3RDOztFQUVBO0lBQ0U7TUFDRSw0Q0FBNEM7SUFDOUM7SUFDQTtNQUNFLDRDQUE0QztJQUM5QztJQUNBO01BQ0UsOENBQThDO0lBQ2hEO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7RUFDRjs7RUFFQTtJQUNFO01BQ0UsaUNBQWlDO0lBQ25DO0lBQ0E7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0VBQ0Y7O0VBRUE7SUFDRTtNQUNFLDRDQUE0QztJQUM5QztJQUNBO01BQ0UsNENBQTRDO0lBQzlDO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtJQUNBO01BQ0UsOENBQThDO0lBQ2hEO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7RUFDRjs7RUFFQTtJQUNFLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsOEJBQThCOztJQUU5QixlQUFlO0VBQ2pCOztFQUVBO0lBQ0UsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixRQUFRO0VBQ1Y7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS1iYWRnZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgZ2FwOiA0cHg7XFxuXFxuICBib3JkZXItcmFkaXVzOiA0MHB4O1xcblxcbiAgJjp3aGVyZSgubCkge1xcbiAgICBoZWlnaHQ6IDQ4cHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLm0pIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuXFxuICAmOndoZXJlKC5yKSB7XFxuICAgIGhlaWdodDogMzZweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgucykge1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSguc20pIHtcXG4gICAgaGVpZ2h0OiAyOHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcImJhY2tncm91bmQtXFxcIl0ge1xcbiAgICAmLmJhY2tncm91bmQtYmxhY2sge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xcbiAgICB9XFxuICAgICYuYmFja2dyb3VuZC13aGl0ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi5iYWNrZ3JvdW5kLWdyYXlGYSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcXG4gICAgfVxcbiAgICAmLmJhY2tncm91bmQtcHVycGxlMzkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ0ZXh0LVxcXCJdIHtcXG4gICAgJi50ZXh0LWJsYWNrIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XFxuICAgIH1cXG4gICAgJi50ZXh0LXdoaXRlIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi50ZXh0LWdyYXlGYSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XFxuICAgIH1cXG4gICAgJi50ZXh0LXB1cnBsZTM5IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcImJvcmRlci1cXFwiXSB7XFxuICAgICYuYm9yZGVyLWJsYWNrIHtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci13aGl0ZSB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi5ib3JkZXItZ3JheUZhIHtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xcbiAgICB9XFxuICAgICYuYm9yZGVyLWdyYXlFNCB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci1wdXJwbGUzOSB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci1ncmF5RDQge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gICYuaWNvbi10ZXh0LW9wdGlvbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG5cXG4gICAgcGFkZGluZzogMCAyMHB4O1xcbiAgfVxcblxcbiAgJi5pY29uLXRleHQtb3B0aW9uID4gc3BhbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogNHB4O1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5iYXNlLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jdGEtYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICY6d2hlcmUoLnByaW1hcnkpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgfVxuICAmOndoZXJlKC5zZWNvbmRhcnkpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZjQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLmdob3N0KSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgfVxuICAmOndoZXJlKC53aGl0ZSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLndhcm5pbmcpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWRmKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gIH1cbiAgJjp3aGVyZSguZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgfVxuXG4gICY6d2hlcmUoLnhsKSB7XG4gICAgaGVpZ2h0OiA2MHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLmwpIHtcbiAgICBoZWlnaHQ6IDU0cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLnIpIHtcbiAgICBoZWlnaHQ6IDQ4cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLm0pIHtcbiAgICBoZWlnaHQ6IDUwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLnMpIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cbiAgJjp3aGVyZSgueHMpIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICAmOndoZXJlKC5wcmltYXJ5KSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtNGMpO1xuICAgIH1cbiAgICAmOndoZXJlKC5zZWNvbmRhcnkpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1lOSk7XG4gICAgfVxuICAgICY6d2hlcmUoLmdob3N0KSB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgfVxuICAgICY6d2hlcmUoLndoaXRlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZjQpO1xuICAgIH1cbiAgICAmOndoZXJlKC53YXJuaW5nKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWM4KTtcbiAgICB9XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxrQkFBa0I7O0VBRWxCO0lBQ0UsOENBQThDO0lBQzlDLGlDQUFpQztFQUNuQztFQUNBO0lBQ0UsOENBQThDO0lBQzlDLG1DQUFtQztFQUNyQztFQUNBO0lBQ0UsNENBQTRDO0lBQzVDLDhDQUE4QztJQUM5QyxtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDRDQUE0QztJQUM1QyxtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDRDQUE0QztJQUM1QyxpQ0FBaUM7RUFDbkM7RUFDQTtJQUNFLDhDQUE4QztJQUM5QyxpQ0FBaUM7RUFDbkM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLGdDQUFnQztJQUNoQyxvQ0FBb0M7SUFDcEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsd0NBQXdDO0VBQzFDOztFQUVBO0lBQ0U7TUFDRSw4Q0FBOEM7SUFDaEQ7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtJQUNBO01BQ0UsMENBQTBDO0lBQzVDO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7SUFDQTtNQUNFLDRDQUE0QztJQUM5QztFQUNGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtYnV0dG9uIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBnYXA6IDEwcHg7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICBib3JkZXI6IG5vbmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5jdGEtYnV0dG9uIHtcXG4gIGJvcmRlci1yYWRpdXM6IDZweDtcXG5cXG4gICY6d2hlcmUoLnByaW1hcnkpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgfVxcbiAgJjp3aGVyZSguc2Vjb25kYXJ5KSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1mNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSguZ2hvc3QpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSgud2hpdGUpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSgud2FybmluZykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWRmKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgfVxcbiAgJjp3aGVyZSguZGlzYWJsZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgueGwpIHtcXG4gICAgaGVpZ2h0OiA2MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLmwpIHtcXG4gICAgaGVpZ2h0OiA1NHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC5yKSB7XFxuICAgIGhlaWdodDogNDhweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcbiAgJjp3aGVyZSgubSkge1xcbiAgICBoZWlnaHQ6IDUwcHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLnMpIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLnhzKSB7XFxuICAgIGhlaWdodDogMzBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuXFxuICAmOmhvdmVyIHtcXG4gICAgJjp3aGVyZSgucHJpbWFyeSkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS00Yyk7XFxuICAgIH1cXG4gICAgJjp3aGVyZSguc2Vjb25kYXJ5KSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLWU5KTtcXG4gICAgfVxcbiAgICAmOndoZXJlKC5naG9zdCkge1xcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgICAmOndoZXJlKC53aGl0ZSkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mNCk7XFxuICAgIH1cXG4gICAgJjp3aGVyZSgud2FybmluZykge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1yZWQtYzgpO1xcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtY2hlY2stYm94IHtcbiAgJi5sYWJlbCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgfVxufVxuXG4uY2hlY2stYm94IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xufVxuXG4uY2hlY2stYm94LWlucHV0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuXG4gICY6d2hlcmUoLnVuY2hlY2tlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIH1cblxuICAmOndoZXJlKC5jaGVja2VkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgfVxuXG4gICY6d2hlcmUoLmRpc2FibGVkKSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94LXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsOEJBQThCO0lBQzlCLHNDQUFzQztJQUN0QyxpQ0FBaUM7RUFDbkM7QUFDRjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsU0FBUztBQUNYOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0RBQWdEOztFQUVoRDtJQUNFLHNCQUFzQjtFQUN4Qjs7RUFFQTtJQUNFLDhDQUE4QztFQUNoRDs7RUFFQTtJQUNFLFlBQVk7SUFDWiw4Q0FBOEM7RUFDaEQ7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS1jaGVjay1ib3gge1xcbiAgJi5sYWJlbCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gIH1cXG59XFxuXFxuLmNoZWNrLWJveCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGdhcDogMTBweDtcXG59XFxuXFxuLmNoZWNrLWJveC1pbnB1dCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgd2lkdGg6IDI0cHg7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuXFxuICAmOndoZXJlKC51bmNoZWNrZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLmNoZWNrZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLmRpc2FibGVkKSB7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS10ZXh0IHtcbiAgJjp3aGVyZSgueHNtKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcbiAgfVxuICAmOndoZXJlKC5zbSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICB9XG4gICY6d2hlcmUoLmJhc2UpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG4gIH1cbiAgJjp3aGVyZSgubGcpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWxnKTtcbiAgfVxuICAmOndoZXJlKC54bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteGwpO1xuICB9XG4gICY6d2hlcmUoLnQtMnhsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMnhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtMnhsKTtcbiAgfVxuICAmOndoZXJlKC50LTN4bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTN4bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTN4bCk7XG4gIH1cbiAgJjp3aGVyZSgudC00eGwpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS00eGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC00eGwpO1xuICB9XG4gICY6d2hlcmUoLnQtNXhsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNXhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtNXhsKTtcbiAgfVxuICAmOndoZXJlKC50LTZ4bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTZ4bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTZ4bCk7XG4gIH1cblxuICAmOndoZXJlKC5yZWd1bGFyKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuICB9XG4gICY6d2hlcmUoLm1lZGl1bSkge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICB9XG4gICY6d2hlcmUoLnNlbWlib2xkKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuICAmOndoZXJlKC5ib2xkKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLmV4dHJhYm9sZCkge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1leHRyYWJvbGQpO1xuICB9XG5cbiAgJltjbGFzcyo9XCJ0ZXh0QWxpZ24tXCJdIHtcbiAgICAmLnRleHRBbGlnbi1sZWZ0IHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICAgICYudGV4dEFsaWduLWNlbnRlciB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgJltjbGFzcyo9XCJ0ZXh0RGVjb3JhdGlvbi1cIl0ge1xuICAgICYudGV4dERlY29yYXRpb24tdW5kZXJsaW5lIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLW5vbmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLWxpbmVUaHJvdWdoIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLW92ZXJsaW5lIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogb3ZlcmxpbmU7XG4gICAgfVxuICAgICYudGV4dERlY29yYXRpb24tYmxpbmsge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBibGluaztcbiAgICB9XG4gIH1cblxuICAmW2NsYXNzKj1cIndvcmRCcmVhay1cIl0ge1xuICAgICYud29yZEJyZWFrLW5vcm1hbCB7XG4gICAgICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWJyZWFrQWxsIHtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICB9XG4gICAgJi53b3JkQnJlYWstYnJlYWtXb3JkIHtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWtlZXBBbGwge1xuICAgICAgd29yZC1icmVhazoga2VlcC1hbGw7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWtlZXBXb3JkIHtcbiAgICAgIHdvcmQtYnJlYWs6IGtlZXAtd29yZDtcbiAgICB9XG4gICAgJi53b3JkQnJlYWstYnJlYWtTcGFjZXMge1xuICAgICAgd29yZC1icmVhazogYnJlYWstc3BhY2VzO1xuICAgIH1cbiAgICAmLndvcmRCcmVhay1hbGwge1xuICAgICAgd29yZC1icmVhazogYWxsO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwid2hpdGVTcGFjZS1cIl0ge1xuICAgICYud2hpdGVTcGFjZS1ub3JtYWwge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG4gICAgJi53aGl0ZVNwYWNlLW5vd3JhcCB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAmLndoaXRlU3BhY2UtcHJlIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgfVxuICAgICYud2hpdGVTcGFjZS1wcmVMaW5lIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICB9XG4gICAgJi53aGl0ZVNwYWNlLXByZVdyYXAge1xuICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwiY29sb3ItXCJdIHtcbiAgICAmLmNvbG9yLWJsYWNrIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgICB9XG4gICAgJi5jb2xvci13aGl0ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheUZhIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXlGNCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0KTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5RTQge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheUQ0IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXlBMSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWExKTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5NzEge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS03MSk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheTUyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktNTIpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXkzZiB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmKTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5Mjcge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS0yNyk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheTE4IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktMTgpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZTM5IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZTRjIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtNGMpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZURkIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZGQpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZUU5IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZTkpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZUY0IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZjQpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZTQxIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtNDEpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZTk1IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtOTUpO1xuICAgIH1cbiAgICAmLmNvbG9yLWFjY2VudFJlZERmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWRmKTtcbiAgICB9XG4gICAgJi5jb2xvci1hY2NlbnRSZWRDOCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LXJlZC1jOCk7XG4gICAgfVxuICAgICYuY29sb3ItYWNjZW50TWFnZW50YUIwIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtbWFnZW50YS1iMCk7XG4gICAgfVxuICAgICYuY29sb3ItYWNjZW50R3JlZW4yOCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LWdyZWVuLTI4KTtcbiAgICB9XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9lbGVtZW50cy90ZXh0L3RleHQtc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSw4QkFBOEI7SUFDOUIsa0NBQWtDO0VBQ3BDO0VBQ0E7SUFDRSxnQ0FBZ0M7SUFDaEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSw4QkFBOEI7SUFDOUIsa0NBQWtDO0VBQ3BDO0VBQ0E7SUFDRSw4QkFBOEI7SUFDOUIsa0NBQWtDO0VBQ3BDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDOztFQUVBO0lBQ0UsdUNBQXVDO0VBQ3pDO0VBQ0E7SUFDRSxzQ0FBc0M7RUFDeEM7RUFDQTtJQUNFLHdDQUF3QztFQUMxQztFQUNBO0lBQ0Usb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSx5Q0FBeUM7RUFDM0M7O0VBRUE7SUFDRTtNQUNFLGdCQUFnQjtJQUNsQjtJQUNBO01BQ0Usa0JBQWtCO0lBQ3BCO0VBQ0Y7O0VBRUE7SUFDRTtNQUNFLDBCQUEwQjtJQUM1QjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7TUFDRSw2QkFBNkI7SUFDL0I7SUFDQTtNQUNFLHlCQUF5QjtJQUMzQjtJQUNBO01BQ0Usc0JBQXNCO0lBQ3hCO0VBQ0Y7O0VBRUE7SUFDRTtNQUNFLGtCQUFrQjtJQUNwQjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7TUFDRSxzQkFBc0I7SUFDeEI7SUFDQTtNQUNFLG9CQUFvQjtJQUN0QjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7TUFDRSx3QkFBd0I7SUFDMUI7SUFDQTtNQUNFLGVBQWU7SUFDakI7RUFDRjs7RUFFQTtJQUNFO01BQ0UsbUJBQW1CO0lBQ3JCO0lBQ0E7TUFDRSxtQkFBbUI7SUFDckI7SUFDQTtNQUNFLGdCQUFnQjtJQUNsQjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7TUFDRSxxQkFBcUI7SUFDdkI7RUFDRjs7RUFFQTtJQUNFO01BQ0UsaUNBQWlDO0lBQ25DO0lBQ0E7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLGlDQUFpQztJQUNuQztJQUNBO01BQ0UscUNBQXFDO0lBQ3ZDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7RUFDRjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5iYXNlLXRleHQge1xcbiAgJjp3aGVyZSgueHNtKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhzbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xcbiAgfVxcbiAgJjp3aGVyZSguc20pIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgfVxcbiAgJjp3aGVyZSguYmFzZSkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xcbiAgfVxcbiAgJjp3aGVyZSgubGcpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbGcpO1xcbiAgfVxcbiAgJjp3aGVyZSgueGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteGwpO1xcbiAgfVxcbiAgJjp3aGVyZSgudC0yeGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMnhsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTJ4bCk7XFxuICB9XFxuICAmOndoZXJlKC50LTN4bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0zeGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtM3hsKTtcXG4gIH1cXG4gICY6d2hlcmUoLnQtNHhsKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTR4bCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC00eGwpO1xcbiAgfVxcbiAgJjp3aGVyZSgudC01eGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNXhsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTV4bCk7XFxuICB9XFxuICAmOndoZXJlKC50LTZ4bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS02eGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtNnhsKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnJlZ3VsYXIpIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xcbiAgfVxcbiAgJjp3aGVyZSgubWVkaXVtKSB7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xcbiAgfVxcbiAgJjp3aGVyZSguc2VtaWJvbGQpIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLmJvbGQpIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcbiAgJjp3aGVyZSguZXh0cmFib2xkKSB7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1leHRyYWJvbGQpO1xcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcInRleHRBbGlnbi1cXFwiXSB7XFxuICAgICYudGV4dEFsaWduLWxlZnQge1xcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgIH1cXG4gICAgJi50ZXh0QWxpZ24tY2VudGVyIHtcXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ0ZXh0RGVjb3JhdGlvbi1cXFwiXSB7XFxuICAgICYudGV4dERlY29yYXRpb24tdW5kZXJsaW5lIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG4gICAgfVxcbiAgICAmLnRleHREZWNvcmF0aW9uLW5vbmUge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgfVxcbiAgICAmLnRleHREZWNvcmF0aW9uLWxpbmVUaHJvdWdoIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcXG4gICAgfVxcbiAgICAmLnRleHREZWNvcmF0aW9uLW92ZXJsaW5lIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG92ZXJsaW5lO1xcbiAgICB9XFxuICAgICYudGV4dERlY29yYXRpb24tYmxpbmsge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogYmxpbms7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ3b3JkQnJlYWstXFxcIl0ge1xcbiAgICAmLndvcmRCcmVhay1ub3JtYWwge1xcbiAgICAgIHdvcmQtYnJlYWs6IG5vcm1hbDtcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1icmVha0FsbCB7XFxuICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWJyZWFrV29yZCB7XFxuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1rZWVwQWxsIHtcXG4gICAgICB3b3JkLWJyZWFrOiBrZWVwLWFsbDtcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1rZWVwV29yZCB7XFxuICAgICAgd29yZC1icmVhazoga2VlcC13b3JkO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWJyZWFrU3BhY2VzIHtcXG4gICAgICB3b3JkLWJyZWFrOiBicmVhay1zcGFjZXM7XFxuICAgIH1cXG4gICAgJi53b3JkQnJlYWstYWxsIHtcXG4gICAgICB3b3JkLWJyZWFrOiBhbGw7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ3aGl0ZVNwYWNlLVxcXCJdIHtcXG4gICAgJi53aGl0ZVNwYWNlLW5vcm1hbCB7XFxuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcXG4gICAgfVxcbiAgICAmLndoaXRlU3BhY2Utbm93cmFwIHtcXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICB9XFxuICAgICYud2hpdGVTcGFjZS1wcmUge1xcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmU7XFxuICAgIH1cXG4gICAgJi53aGl0ZVNwYWNlLXByZUxpbmUge1xcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcXG4gICAgfVxcbiAgICAmLndoaXRlU3BhY2UtcHJlV3JhcCB7XFxuICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xcbiAgICB9XFxuICB9XFxuXFxuICAmW2NsYXNzKj1cXFwiY29sb3ItXFxcIl0ge1xcbiAgICAmLmNvbG9yLWJsYWNrIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XFxuICAgIH1cXG4gICAgJi5jb2xvci13aGl0ZSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheUZhIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXlGNCB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mNCk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5RTQge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheUQ0IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXlBMSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1hMSk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5NzEge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktNzEpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheTUyIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTUyKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXkzZiB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS0zZik7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5Mjcge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktMjcpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheTE4IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTE4KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZTM5IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZTRjIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTRjKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZURkIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLWRkKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZUU5IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLWU5KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZUY0IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLWY0KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZTQxIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTQxKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZTk1IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTk1KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWFjY2VudFJlZERmIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LXJlZC1kZik7XFxuICAgIH1cXG4gICAgJi5jb2xvci1hY2NlbnRSZWRDOCB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1yZWQtYzgpO1xcbiAgICB9XFxuICAgICYuY29sb3ItYWNjZW50TWFnZW50YUIwIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LW1hZ2VudGEtYjApO1xcbiAgICB9XFxuICAgICYuY29sb3ItYWNjZW50R3JlZW4yOCB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1ncmVlbi0yOCk7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuY29tcG9uZW50LWxvYWRpbmctY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1yaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmcge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXI6IDNweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IGxkcy1yaW5nIDEuMnMgY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC41LCAxKSBpbmZpbml0ZTtcblxuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXG4gICYuZGFyayB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50XG4gICAgICB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDEpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC40NXM7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjNzO1xufVxuXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDMpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNXM7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoNCkge1xuICBhbmltYXRpb24tZGVsYXk6IDBzO1xufVxuXG5Aa2V5ZnJhbWVzIGxkcy1yaW5nIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmctc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsYUFBYTtFQUNiLFdBQVc7RUFDWCxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0Usc0JBQXNCO0VBQ3RCLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLDhEQUE4RDs7RUFFOUQsNEVBQTRFOztFQUU1RTtJQUNFO2lCQUNhO0VBQ2Y7QUFDRjs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0VBQ0E7SUFDRSx5QkFBeUI7RUFDM0I7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuY29tcG9uZW50LWxvYWRpbmctY29udGFpbmVyIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXJpbmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDIwcHg7XFxuICBoZWlnaHQ6IDIwcHg7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZyB7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGJvcmRlcjogM3B4IHNvbGlkO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYW5pbWF0aW9uOiBsZHMtcmluZyAxLjJzIGN1YmljLWJlemllcigwLjUsIDAsIDAuNSwgMSkgaW5maW5pdGU7XFxuXFxuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xcblxcbiAgJi5kYXJrIHtcXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50XFxuICAgICAgdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMSkge1xcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC40NXM7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMikge1xcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4zcztcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCgzKSB7XFxuICBhbmltYXRpb24tZGVsYXk6IC0wLjE1cztcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCg0KSB7XFxuICBhbmltYXRpb24tZGVsYXk6IDBzO1xcbn1cXG5cXG5Aa2V5ZnJhbWVzIGxkcy1yaW5nIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAucmFkaW8ge1xuICAmOndoZXJlKC5yYWRpby1ncm91cCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG4gIH1cbiAgJjp3aGVyZSgucmFkaW8tYnV0dG9uKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcbiAgfVxuICAmOndoZXJlKC5yYWRpby1pbmRpY2F0b3IpIHtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLnJhZGlvLWxhYmVsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixTQUFTO0VBQ1g7RUFDQTtJQUNFLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLFdBQVc7SUFDWCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLDhDQUE4QztFQUNoRDtFQUNBO0lBQ0UsVUFBVTtJQUNWLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsOENBQThDO0VBQ2hEO0VBQ0E7SUFDRSw4QkFBOEI7SUFDOUIsc0NBQXNDO0lBQ3RDLGlDQUFpQztFQUNuQztBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5yYWRpbyB7XFxuICAmOndoZXJlKC5yYWRpby1ncm91cCkge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBnYXA6IDE2cHg7XFxuICB9XFxuICAmOndoZXJlKC5yYWRpby1idXR0b24pIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIHdpZHRoOiAxOHB4O1xcbiAgICBoZWlnaHQ6IDE4cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gIH1cXG4gICY6d2hlcmUoLnJhZGlvLWluZGljYXRvcikge1xcbiAgICB3aWR0aDogOHB4O1xcbiAgICBoZWlnaHQ6IDhweDtcXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSgucmFkaW8tbGFiZWwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5iYXNlLXRhYmxlIHtcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmLnRhYmxlLXJvb3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIH1cblxuICAudGFibGUtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmOndoZXJlKC5jZW50ZXIpIHtcbiAgICAgIC50YWJsZS1jZWxsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgICAmOndoZXJlKC5zdGFydCkge1xuICAgICAgLnRhYmxlLWNlbGwge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgICAmOndoZXJlKC5lbmQpIHtcbiAgICAgIC50YWJsZS1jZWxsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYmxlLWJvZHkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnRhYmxlLXJvdyB7XG4gICAgJi5ob3ZlcmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgfVxuICB9XG5cbiAgLnRhYmxlLWNlbGwge1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICB9XG59XG5cbi5kYXRhLXRhYmxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6d2hlcmUoLnRhYmxlLWhlYWRlcikge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgei1pbmRleDogMjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNztcbiAgICBoZWlnaHQ6IDg1cHg7XG5cbiAgICAudGFibGUtcm93IHtcbiAgICAgIHBhZGRpbmc6IDEycHggMDtcbiAgICB9XG4gIH1cblxuICAmOndoZXJlKC50YWJsZS1yb3cpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTc7XG4gIH1cblxuICAmOndoZXJlKC50YWJsZS1jZWxsKSB7XG4gIH1cblxuICAuZml4ZWQtcm93cyB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIC5jb21tb24tcm93IHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIC5maXhlZC1yb3dzLFxuICAgICAgJiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvdGFibGUvdGFibGUtc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7O0VBRUE7SUFDRSxXQUFXO0lBQ1gseUJBQXlCO0VBQzNCOztFQUVBO0lBQ0UsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixXQUFXOztJQUVYO01BQ0U7UUFDRSxrQkFBa0I7TUFDcEI7SUFDRjtJQUNBO01BQ0U7UUFDRSxnQkFBZ0I7TUFDbEI7SUFDRjtJQUNBO01BQ0U7UUFDRSxpQkFBaUI7TUFDbkI7SUFDRjtFQUNGOztFQUVBO0lBQ0UsV0FBVztFQUNiOztFQUVBO0lBQ0U7TUFDRSx5QkFBeUI7SUFDM0I7RUFDRjs7RUFFQTtJQUNFLGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsWUFBWTtFQUNkO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBa0I7O0VBRWxCO0lBQ0UsZ0JBQWdCO0lBQ2hCLE1BQU07SUFDTixzQkFBc0I7SUFDdEIsVUFBVTtJQUNWLGdDQUFnQztJQUNoQyxZQUFZOztJQUVaO01BQ0UsZUFBZTtJQUNqQjtFQUNGOztFQUVBO0lBQ0Usa0JBQWtCO0lBQ2xCLGdDQUFnQztFQUNsQzs7RUFFQTtFQUNBOztFQUVBO0lBQ0UsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCxzQkFBc0I7SUFDdEIsVUFBVTtFQUNaOztFQUVBO0lBQ0U7TUFDRTs7UUFFRSx5QkFBeUI7TUFDM0I7SUFDRjtFQUNGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtdGFibGUge1xcbiAgLmhpZGUge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcblxcbiAgJi50YWJsZS1yb290IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XFxuICB9XFxuXFxuICAudGFibGUtaGVhZGVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgd2lkdGg6IDEwMCU7XFxuXFxuICAgICY6d2hlcmUoLmNlbnRlcikge1xcbiAgICAgIC50YWJsZS1jZWxsIHtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgICB9XFxuICAgIH1cXG4gICAgJjp3aGVyZSguc3RhcnQpIHtcXG4gICAgICAudGFibGUtY2VsbCB7XFxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICAmOndoZXJlKC5lbmQpIHtcXG4gICAgICAudGFibGUtY2VsbCB7XFxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIC50YWJsZS1ib2R5IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuXFxuICAudGFibGUtcm93IHtcXG4gICAgJi5ob3ZlcmVkIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xcbiAgICB9XFxuICB9XFxuXFxuICAudGFibGUtY2VsbCB7XFxuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBoZWlnaHQ6IDYwcHg7XFxuICB9XFxufVxcblxcbi5kYXRhLXRhYmxlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICY6d2hlcmUoLnRhYmxlLWhlYWRlcikge1xcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xcbiAgICB0b3A6IDA7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgIHotaW5kZXg6IDI7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU3O1xcbiAgICBoZWlnaHQ6IDg1cHg7XFxuXFxuICAgIC50YWJsZS1yb3cge1xcbiAgICAgIHBhZGRpbmc6IDEycHggMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgJjp3aGVyZSgudGFibGUtcm93KSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTc7XFxuICB9XFxuXFxuICAmOndoZXJlKC50YWJsZS1jZWxsKSB7XFxuICB9XFxuXFxuICAuZml4ZWQtcm93cyB7XFxuICAgIHBvc2l0aW9uOiBzdGlja3k7XFxuICAgIGxlZnQ6IDA7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgIHotaW5kZXg6IDE7XFxuICB9XFxuXFxuICAuY29tbW9uLXJvdyB7XFxuICAgICY6aG92ZXIge1xcbiAgICAgIC5maXhlZC1yb3dzLFxcbiAgICAgICYge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS10ZXh0LWZpZWxkIHtcbiAgJjp3aGVyZSgudGV4dC1maWVsZC1yb290KSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLnRleHQtZmllbGQge1xuICAmLmxhYmVsIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG5cbiAgJi5pbnB1dC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMjJweDtcbiAgICBwYWRkaW5nOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIH1cblxuICAmLmlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcblxuICAgIDo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1hMSk7XG4gICAgfVxuICB9XG5cbiAgJi5oZWxwZXItdGV4dCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG5cbiAgICAmLmVycm9yIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWRmKTtcbiAgICB9XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQtc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSxXQUFXO0VBQ2I7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsZ0NBQWdDO0lBQ2hDLG9DQUFvQztJQUNwQyxvQ0FBb0M7RUFDdEM7O0VBRUE7SUFDRSxhQUFhO0lBQ2IsOEJBQThCO0lBQzlCLG1CQUFtQjtJQUNuQixZQUFZO0lBQ1osYUFBYTtJQUNiLDhDQUE4QztJQUM5QyxrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLGtCQUFrQjtFQUNwQjs7RUFFQTtJQUNFLFdBQVc7SUFDWCxZQUFZO0lBQ1osYUFBYTtJQUNiLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsc0NBQXNDOztJQUV0QztNQUNFLG1DQUFtQztJQUNyQztFQUNGOztFQUVBO0lBQ0UsOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyxzQ0FBc0M7O0lBRXRDO01BQ0UsaUNBQWlDO0lBQ25DO0VBQ0Y7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS10ZXh0LWZpZWxkIHtcXG4gICY6d2hlcmUoLnRleHQtZmllbGQtcm9vdCkge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG59XFxuXFxuLnRleHQtZmllbGQge1xcbiAgJi5sYWJlbCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWJhc2UpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG5cXG4gICYuaW5wdXQtd3JhcHBlciB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgaGVpZ2h0OiAyMnB4O1xcbiAgICBwYWRkaW5nOiAxNHB4O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgIG1hcmdpbi10b3A6IDhweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbiAgfVxcblxcbiAgJi5pbnB1dCB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuXFxuICAgIDo6cGxhY2Vob2xkZXIge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktYTEpO1xcbiAgICB9XFxuICB9XFxuXFxuICAmLmhlbHBlci10ZXh0IHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcXG5cXG4gICAgJi5lcnJvciB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1yZWQtZGYpO1xcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLm51cmktdGhlbWUge1xuICAtLWNvbG9yLXByaW1hcnktYmxhY2s6ICMwMDAwMDA7XG4gIC0tY29sb3ItcHJpbWFyeS13aGl0ZTogI2ZmZmZmZjtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZmE6ICNmYWZhZmE7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0OiAjZjRmNGY1O1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS1lNDogI2U0ZTRlNztcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZDQ6ICNkNGQ0ZDg7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWExOiAjYTFhMWFhO1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS03MTogIzcxNzE3YTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktNTI6ICM1MjUyNWI7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmOiAjM2YzZjQ2O1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS0yNzogIzI3MjcyYTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktMTg6ICMxODE4MWI7XG5cbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtMzk6ICMzOTFkNWQ7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTRjOiAjNGMyNzdjO1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1kZDogI2RkZDFmMDtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZTk6ICNlOWUwZjU7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWY0OiAjZjRlZmZhO1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS00MTogIzRjMWQ4ODtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtOTU6ICM5NTdlYjQ7XG5cbiAgLS1jb2xvci1hY2NlbnQtcmVkLWRmOiAjZGY1MzVjO1xuICAtLWNvbG9yLWFjY2VudC1yZWQtYzg6ICNjODQyNGI7XG4gIC0tY29sb3ItYWNjZW50LW1hZ2VudGEtYjA6ICNiMDJlNGM7XG4gIC0tY29sb3ItYWNjZW50LWdyZWVuLTI4OiAjMjg5YTNhO1xuICAtLWNvbG9yLWFjY2VudC1ibHVlLTAxOiAjMDFlY2UxO1xuICAtLWNvbG9yLWFjY2VudC1waW5rLWVjOiAjZWM1Y2VmO1xuICAtLWNvbG9yLWFjY2VudC1ncmVlbi00MTogIyNlYzVjZWY7XG5cbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZTQ6ICNlNGU0ZTc7XG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWY3OiAjZjdmN2Y4O1xuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1mZjogI2ZmZmZmZjtcblxuICAtLWNvbG9yLWV0Yy1ob3Zlci1lZTogI2VlZWVlZTtcbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLDhCQUE4QjtFQUM5Qiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDOztFQUVoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7O0VBRWhDLDhCQUE4QjtFQUM5Qiw4QkFBOEI7RUFDOUIsa0NBQWtDO0VBQ2xDLGdDQUFnQztFQUNoQywrQkFBK0I7RUFDL0IsK0JBQStCO0VBQy9CLGlDQUFpQzs7RUFFakMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7O0VBRWhDLDZCQUE2QjtBQUMvQlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIubnVyaS10aGVtZSB7XFxuICAtLWNvbG9yLXByaW1hcnktYmxhY2s6ICMwMDAwMDA7XFxuICAtLWNvbG9yLXByaW1hcnktd2hpdGU6ICNmZmZmZmY7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1mYTogI2ZhZmFmYTtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0OiAjZjRmNGY1O1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZTQ6ICNlNGU0ZTc7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1kNDogI2Q0ZDRkODtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWExOiAjYTFhMWFhO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktNzE6ICM3MTcxN2E7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS01MjogIzUyNTI1YjtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmOiAjM2YzZjQ2O1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktMjc6ICMyNzI3MmE7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS0xODogIzE4MTgxYjtcXG5cXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTM5OiAjMzkxZDVkO1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtNGM6ICM0YzI3N2M7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1kZDogI2RkZDFmMDtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWU5OiAjZTllMGY1O1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZjQ6ICNmNGVmZmE7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS00MTogIzRjMWQ4ODtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTk1OiAjOTU3ZWI0O1xcblxcbiAgLS1jb2xvci1hY2NlbnQtcmVkLWRmOiAjZGY1MzVjO1xcbiAgLS1jb2xvci1hY2NlbnQtcmVkLWM4OiAjYzg0MjRiO1xcbiAgLS1jb2xvci1hY2NlbnQtbWFnZW50YS1iMDogI2IwMmU0YztcXG4gIC0tY29sb3ItYWNjZW50LWdyZWVuLTI4OiAjMjg5YTNhO1xcbiAgLS1jb2xvci1hY2NlbnQtYmx1ZS0wMTogIzAxZWNlMTtcXG4gIC0tY29sb3ItYWNjZW50LXBpbmstZWM6ICNlYzVjZWY7XFxuICAtLWNvbG9yLWFjY2VudC1ncmVlbi00MTogIyNlYzVjZWY7XFxuXFxuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1lNDogI2U0ZTRlNztcXG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWY3OiAjZjdmN2Y4O1xcbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZmY6ICNmZmZmZmY7XFxuXFxuICAtLWNvbG9yLWV0Yy1ob3Zlci1lZTogI2VlZWVlZTtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBpbXBvcnQgdXJsKGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9vcmlvbmNhY3R1cy9wcmV0ZW5kYXJkQHYxLjMuOC9kaXN0L3dlYi9zdGF0aWMvcHJldGVuZGFyZC5jc3MpO1wiXSk7XG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDUwMCw3MDAmZGlzcGxheT1zd2FwKTtcIl0pO1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vaWNvbj9mYW1pbHk9TWF0ZXJpYWwrSWNvbnMpO1wiXSk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5udXJpLXRoZW1lIHtcbiAgLS1mb250LXNpemUteHNtOiAxMnB4O1xuICAtLWZvbnQtc2l6ZS1zbTogMTRweDtcbiAgLS1mb250LXNpemUtYmFzZTogMTZweDtcbiAgLS1mb250LXNpemUtbGc6IDE4cHg7XG4gIC0tZm9udC1zaXplLXhsOiAyMHB4O1xuICAtLWZvbnQtc2l6ZS0yeGw6IDI0cHg7XG4gIC0tZm9udC1zaXplLTN4bDogMzBweDtcbiAgLS1mb250LXNpemUtNHhsOiAzNnB4O1xuICAtLWZvbnQtc2l6ZS01eGw6IDQ4cHg7XG4gIC0tZm9udC1zaXplLTZ4bDogNjBweDtcblxuICAtLWxpbmUtaGVpZ2h0LXhzbTogMThweDtcbiAgLS1saW5lLWhlaWdodC1zbTogMThweDtcbiAgLS1saW5lLWhlaWdodC1iYXNlOiAyMnB4O1xuICAtLWxpbmUtaGVpZ2h0LWxnOiAyNHB4O1xuICAtLWxpbmUtaGVpZ2h0LXhsOiAyOHB4O1xuICAtLWxpbmUtaGVpZ2h0LTJ4bDogMzJweDtcbiAgLS1saW5lLWhlaWdodC0zeGw6IDM2cHg7XG4gIC0tbGluZS1oZWlnaHQtNHhsOiA0M3B4O1xuICAtLWxpbmUtaGVpZ2h0LTV4bDogNjZweDtcbiAgLS1saW5lLWhlaWdodC02eGw6IDgycHg7XG5cbiAgLS1mb250LXdlaWdodC1yZWd1bGFyOiA0MDA7XG4gIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG4gIC0tZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcbiAgLS1mb250LXdlaWdodC1ib2xkOiA3MDA7XG4gIC0tZm9udC13ZWlnaHQtZXh0cmFib2xkOiA4MDA7XG5cbiAgZm9udC1mYW1pbHk6IFwiVHdlbW9qaSBDb3VudHJ5IEZsYWdzXCIsIFwiUHJldGVuZGFyZFwiLCBQcmV0ZW5kYXJkLCAtYXBwbGUtc3lzdGVtLFxuICAgIEJsaW5rTWFjU3lzdGVtRm9udCwgc3lzdGVtLXVpLCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJTZWdvZSBVSVwiLFxuICAgIFwiQXBwbGUgU0QgR290aGljIE5lb1wiLCBcIk5vdG8gU2FucyBLUlwiLCBcIk1hbGd1biBHb3RoaWNcIiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLFxuICAgIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCIsIHNhbnMtc2VyaWY7XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFJQTtFQUNFLHFCQUFxQjtFQUNyQixvQkFBb0I7RUFDcEIsc0JBQXNCO0VBQ3RCLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFDcEIscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLHFCQUFxQjs7RUFFckIsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCOztFQUV2QiwwQkFBMEI7RUFDMUIseUJBQXlCO0VBQ3pCLDJCQUEyQjtFQUMzQix1QkFBdUI7RUFDdkIsNEJBQTRCOztFQUU1Qjs7O3VFQUdxRTtBQUN2RVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAaW1wb3J0IHVybChcXFwiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL29yaW9uY2FjdHVzL3ByZXRlbmRhcmRAdjEuMy44L2Rpc3Qvd2ViL3N0YXRpYy9wcmV0ZW5kYXJkLmNzc1xcXCIpO1xcbkBpbXBvcnQgdXJsKFxcXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjMwMCw0MDAsNTAwLDcwMCZkaXNwbGF5PXN3YXBcXFwiKTtcXG5AaW1wb3J0IHVybChcXFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9pY29uP2ZhbWlseT1NYXRlcmlhbCtJY29uc1xcXCIpO1xcblxcbi5udXJpLXRoZW1lIHtcXG4gIC0tZm9udC1zaXplLXhzbTogMTJweDtcXG4gIC0tZm9udC1zaXplLXNtOiAxNHB4O1xcbiAgLS1mb250LXNpemUtYmFzZTogMTZweDtcXG4gIC0tZm9udC1zaXplLWxnOiAxOHB4O1xcbiAgLS1mb250LXNpemUteGw6IDIwcHg7XFxuICAtLWZvbnQtc2l6ZS0yeGw6IDI0cHg7XFxuICAtLWZvbnQtc2l6ZS0zeGw6IDMwcHg7XFxuICAtLWZvbnQtc2l6ZS00eGw6IDM2cHg7XFxuICAtLWZvbnQtc2l6ZS01eGw6IDQ4cHg7XFxuICAtLWZvbnQtc2l6ZS02eGw6IDYwcHg7XFxuXFxuICAtLWxpbmUtaGVpZ2h0LXhzbTogMThweDtcXG4gIC0tbGluZS1oZWlnaHQtc206IDE4cHg7XFxuICAtLWxpbmUtaGVpZ2h0LWJhc2U6IDIycHg7XFxuICAtLWxpbmUtaGVpZ2h0LWxnOiAyNHB4O1xcbiAgLS1saW5lLWhlaWdodC14bDogMjhweDtcXG4gIC0tbGluZS1oZWlnaHQtMnhsOiAzMnB4O1xcbiAgLS1saW5lLWhlaWdodC0zeGw6IDM2cHg7XFxuICAtLWxpbmUtaGVpZ2h0LTR4bDogNDNweDtcXG4gIC0tbGluZS1oZWlnaHQtNXhsOiA2NnB4O1xcbiAgLS1saW5lLWhlaWdodC02eGw6IDgycHg7XFxuXFxuICAtLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcXG4gIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XFxuICAtLWZvbnQtd2VpZ2h0LXNlbWlib2xkOiA2MDA7XFxuICAtLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcXG4gIC0tZm9udC13ZWlnaHQtZXh0cmFib2xkOiA4MDA7XFxuXFxuICBmb250LWZhbWlseTogXFxcIlR3ZW1vamkgQ291bnRyeSBGbGFnc1xcXCIsIFxcXCJQcmV0ZW5kYXJkXFxcIiwgUHJldGVuZGFyZCwgLWFwcGxlLXN5c3RlbSxcXG4gICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBzeXN0ZW0tdWksIFJvYm90bywgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgXFxcIlNlZ29lIFVJXFxcIixcXG4gICAgXFxcIkFwcGxlIFNEIEdvdGhpYyBOZW9cXFwiLCBcXFwiTm90byBTYW5zIEtSXFxcIiwgXFxcIk1hbGd1biBHb3RoaWNcXFwiLCBcXFwiQXBwbGUgQ29sb3IgRW1vamlcXFwiLFxcbiAgICBcXFwiU2Vnb2UgVUkgRW1vamlcXFwiLCBcXFwiU2Vnb2UgVUkgU3ltYm9sXFxcIiwgXFxcIk5vdG8gQ29sb3IgRW1vamlcXFwiLCBzYW5zLXNlcmlmO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKSB7XG4gIHZhciBsaXN0ID0gW107XG5cbiAgLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgY29udGVudCA9IFwiXCI7XG4gICAgICB2YXIgbmVlZExheWVyID0gdHlwZW9mIGl0ZW1bNV0gIT09IFwidW5kZWZpbmVkXCI7XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpO1xuICAgICAgfVxuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBjb250ZW50ICs9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSk7XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW1bNF0pIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH0pLmpvaW4oXCJcIik7XG4gIH07XG5cbiAgLy8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3RcbiAgbGlzdC5pID0gZnVuY3Rpb24gaShtb2R1bGVzLCBtZWRpYSwgZGVkdXBlLCBzdXBwb3J0cywgbGF5ZXIpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG1vZHVsZXMgPSBbW251bGwsIG1vZHVsZXMsIHVuZGVmaW5lZF1dO1xuICAgIH1cbiAgICB2YXIgYWxyZWFkeUltcG9ydGVkTW9kdWxlcyA9IHt9O1xuICAgIGlmIChkZWR1cGUpIHtcbiAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgdGhpcy5sZW5ndGg7IGsrKykge1xuICAgICAgICB2YXIgaWQgPSB0aGlzW2tdWzBdO1xuICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHZhciBfayA9IDA7IF9rIDwgbW9kdWxlcy5sZW5ndGg7IF9rKyspIHtcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2tdKTtcbiAgICAgIGlmIChkZWR1cGUgJiYgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbGF5ZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtWzVdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBsYXllclwiLmNvbmNhdChpdGVtWzVdLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQoaXRlbVs1XSkgOiBcIlwiLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobWVkaWEpIHtcbiAgICAgICAgaWYgKCFpdGVtWzJdKSB7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHN1cHBvcnRzKSB7XG4gICAgICAgIGlmICghaXRlbVs0XSkge1xuICAgICAgICAgIGl0ZW1bNF0gPSBcIlwiLmNvbmNhdChzdXBwb3J0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzRdID0gc3VwcG9ydHM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBsaXN0O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlbSkge1xuICB2YXIgY29udGVudCA9IGl0ZW1bMV07XG4gIHZhciBjc3NNYXBwaW5nID0gaXRlbVszXTtcbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY3NzTWFwcGluZykpKSk7XG4gICAgdmFyIGRhdGEgPSBcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChiYXNlNjQpO1xuICAgIHZhciBzb3VyY2VNYXBwaW5nID0gXCIvKiMgXCIuY29uY2F0KGRhdGEsIFwiICovXCIpO1xuICAgIHJldHVybiBbY29udGVudF0uY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbihcIlxcblwiKTtcbiAgfVxuICByZXR1cm4gW2NvbnRlbnRdLmpvaW4oXCJcXG5cIik7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgc3R5bGVzSW5ET00gPSBbXTtcbmZ1bmN0aW9uIGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpIHtcbiAgdmFyIHJlc3VsdCA9IC0xO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRE9NLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRE9NW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKSB7XG4gIHZhciBpZENvdW50TWFwID0ge307XG4gIHZhciBpZGVudGlmaWVycyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXhCeUlkZW50aWZpZXIgPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM10sXG4gICAgICBzdXBwb3J0czogaXRlbVs0XSxcbiAgICAgIGxheWVyOiBpdGVtWzVdXG4gICAgfTtcbiAgICBpZiAoaW5kZXhCeUlkZW50aWZpZXIgIT09IC0xKSB7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0ucmVmZXJlbmNlcysrO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnVwZGF0ZXIob2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHVwZGF0ZXIgPSBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMuYnlJbmRleCA9IGk7XG4gICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoaSwgMCwge1xuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICB1cGRhdGVyOiB1cGRhdGVyLFxuICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWRlbnRpZmllcnMucHVzaChpZGVudGlmaWVyKTtcbiAgfVxuICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5mdW5jdGlvbiBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKSB7XG4gIHZhciBhcGkgPSBvcHRpb25zLmRvbUFQSShvcHRpb25zKTtcbiAgYXBpLnVwZGF0ZShvYmopO1xuICB2YXIgdXBkYXRlciA9IGZ1bmN0aW9uIHVwZGF0ZXIobmV3T2JqKSB7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgaWYgKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiYgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiYgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCAmJiBuZXdPYmouc3VwcG9ydHMgPT09IG9iai5zdXBwb3J0cyAmJiBuZXdPYmoubGF5ZXIgPT09IG9iai5sYXllcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhcGkudXBkYXRlKG9iaiA9IG5ld09iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB1cGRhdGVyO1xufVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobGlzdCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgbGlzdCA9IGxpc3QgfHwgW107XG4gIHZhciBsYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgIG5ld0xpc3QgPSBuZXdMaXN0IHx8IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG4gICAgdmFyIG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9pZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW19pXTtcbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG4gICAgICBpZiAoc3R5bGVzSW5ET01bX2luZGV4XS5yZWZlcmVuY2VzID09PSAwKSB7XG4gICAgICAgIHN0eWxlc0luRE9NW19pbmRleF0udXBkYXRlcigpO1xuICAgICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoX2luZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIG1lbW8gPSB7fTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBnZXRUYXJnZXQodGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdmFyIHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpO1xuXG4gICAgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcbiAgICBpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFjY2VzcyB0byBpZnJhbWUgaXMgYmxvY2tlZFxuICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuICAgICAgICBzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuICB9XG4gIHJldHVybiBtZW1vW3RhcmdldF07XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0QnlTZWxlY3RvcihpbnNlcnQsIHN0eWxlKSB7XG4gIHZhciB0YXJnZXQgPSBnZXRUYXJnZXQoaW5zZXJ0KTtcbiAgaWYgKCF0YXJnZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICB9XG4gIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydEJ5U2VsZWN0b3I7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XG4gIG9wdGlvbnMuc2V0QXR0cmlidXRlcyhlbGVtZW50LCBvcHRpb25zLmF0dHJpYnV0ZXMpO1xuICBvcHRpb25zLmluc2VydChlbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xuICByZXR1cm4gZWxlbWVudDtcbn1cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0U3R5bGVFbGVtZW50OyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcyhzdHlsZUVsZW1lbnQpIHtcbiAgdmFyIG5vbmNlID0gdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSBcInVuZGVmaW5lZFwiID8gX193ZWJwYWNrX25vbmNlX18gOiBudWxsO1xuICBpZiAobm9uY2UpIHtcbiAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwibm9uY2VcIiwgbm9uY2UpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlczsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaikge1xuICB2YXIgY3NzID0gXCJcIjtcbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KG9iai5zdXBwb3J0cywgXCIpIHtcIik7XG4gIH1cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIkBtZWRpYSBcIi5jb25jYXQob2JqLm1lZGlhLCBcIiB7XCIpO1xuICB9XG4gIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2Ygb2JqLmxheWVyICE9PSBcInVuZGVmaW5lZFwiO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwiQGxheWVyXCIuY29uY2F0KG9iai5sYXllci5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KG9iai5sYXllcikgOiBcIlwiLCBcIiB7XCIpO1xuICB9XG4gIGNzcyArPSBvYmouY3NzO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICB2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNzcyArPSBcIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSksIFwiICovXCIpO1xuICB9XG5cbiAgLy8gRm9yIG9sZCBJRVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG4gIG9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZUVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG59XG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KSB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoc3R5bGVFbGVtZW50LnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBkb21BUEkob3B0aW9ucykge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKCkge30sXG4gICAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHt9XG4gICAgfTtcbiAgfVxuICB2YXIgc3R5bGVFbGVtZW50ID0gb3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucyk7XG4gIHJldHVybiB7XG4gICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUob2JqKSB7XG4gICAgICBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaik7XG4gICAgfSxcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZUVsZW1lbnQpO1xuICAgIH1cbiAgfTtcbn1cbm1vZHVsZS5leHBvcnRzID0gZG9tQVBJOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50KSB7XG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc3R5bGVUYWdUcmFuc2Zvcm07IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIl9fd2VicGFja19yZXF1aXJlX18ubmMgPSB1bmRlZmluZWQ7IiwidmFyIHggPSAoeSkgPT4ge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSAoeCkgPT4gKCgpID0+ICh4KSlcbmNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiRnJhZ21lbnRcIl06ICgpID0+IChfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X2pzeF9ydW50aW1lXzE3OTE0MmI4X18uRnJhZ21lbnQpLCBbXCJqc3hcIl06ICgpID0+IChfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X2pzeF9ydW50aW1lXzE3OTE0MmI4X18uanN4KSwgW1wianN4c1wiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfanN4X3J1bnRpbWVfMTc5MTQyYjhfXy5qc3hzKSB9KTsiLCJ2YXIgeCA9ICh5KSA9PiB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9ICh4KSA9PiAoKCkgPT4gKHgpKVxuY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJDaGlsZHJlblwiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXy5DaGlsZHJlbiksIFtcImNsb25lRWxlbWVudFwiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXy5jbG9uZUVsZW1lbnQpLCBbXCJjcmVhdGVDb250ZXh0XCJdOiAoKSA9PiAoX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9fLmNyZWF0ZUNvbnRleHQpLCBbXCJmb3J3YXJkUmVmXCJdOiAoKSA9PiAoX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9fLmZvcndhcmRSZWYpLCBbXCJpc1ZhbGlkRWxlbWVudFwiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXy5pc1ZhbGlkRWxlbWVudCksIFtcInVzZUNvbnRleHRcIl06ICgpID0+IChfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X18udXNlQ29udGV4dCksIFtcInVzZUVmZmVjdFwiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXy51c2VFZmZlY3QpLCBbXCJ1c2VTdGF0ZVwiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXy51c2VTdGF0ZSkgfSk7IiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IENoaWxkcmVuLCBjbG9uZUVsZW1lbnQsIGZvcndhcmRSZWYsIGlzVmFsaWRFbGVtZW50LCB9IGZyb20gXCJyZWFjdFwiO1xudmFyIENvbXBvc2VyID0gZm9yd2FyZFJlZihmdW5jdGlvbiAoX2EsIHJlZikge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBjb21wb3NlclByb3BzID0gX19yZXN0KF9hLCBbXCJjaGlsZHJlblwiXSk7XG4gICAgdmFyIGNoaWxkQXJyYXkgPSBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKTtcbiAgICBpZiAoY2hpbGRBcnJheS5sZW5ndGggPiAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbXBvc2VyIGNhbiBvbmx5IGhhdmUgb25lIGNoaWxkXCIpO1xuICAgIH1cbiAgICB2YXIgaXNWYWxpZENoaWxkID0gaXNWYWxpZEVsZW1lbnQoY2hpbGRBcnJheVswXSk7XG4gICAgaWYgKCFpc1ZhbGlkQ2hpbGQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY2hpbGQgc2hvdWxkIGJlIFJlYWN0IG5vZGUhXCIpO1xuICAgIH1cbiAgICB2YXIgY2hpbGQgPSBjaGlsZEFycmF5WzBdO1xuICAgIHZhciBjaGlsZFJlZiA9IGdldEVsZW1lbnRSZWYoY2hpbGQpO1xuICAgIHZhciBtZXJnZWRQcm9wcyA9IG1lcmdlUHJvcHMoY29tcG9zZXJQcm9wcywgY2hpbGQucHJvcHMpO1xuICAgIHJldHVybiBjbG9uZUVsZW1lbnQoY2hpbGQsIF9fYXNzaWduKF9fYXNzaWduKHt9LCBtZXJnZWRQcm9wcyksIHsgcmVmOiByZWYgPyBjb21wb3NlUmVmcyhyZWYsIGNoaWxkUmVmKSA6IGNoaWxkUmVmIH0pKTtcbn0pO1xuQ29tcG9zZXIuZGlzcGxheU5hbWUgPSBcIkNvbXBvc2VyXCI7XG5mdW5jdGlvbiBtZXJnZVByb3BzKGNvbXBvc2VyUHJvcHMsIGNoaWxkUHJvcHMpIHtcbiAgICB2YXIgb3ZlcnJpZGVQcm9wcyA9IF9fYXNzaWduKHt9LCBjaGlsZFByb3BzKTtcbiAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uIChwcm9wTmFtZSkge1xuICAgICAgICB2YXIgY29tcG9zZXJQcm9wVmFsdWUgPSBjb21wb3NlclByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgdmFyIGNoaWxkUHJvcFZhbHVlID0gY2hpbGRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIHZhciBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgICAgICBpZiAoaXNIYW5kbGVyKSB7XG4gICAgICAgICAgICBpZiAoY29tcG9zZXJQcm9wVmFsdWUgJiYgY2hpbGRQcm9wVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjaGlsZFByb3BWYWx1ZS5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICBjb21wb3NlclByb3BWYWx1ZS5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjb21wb3NlclByb3BWYWx1ZSkge1xuICAgICAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gY29tcG9zZXJQcm9wVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJvcE5hbWUgPT09IFwic3R5bGVcIikge1xuICAgICAgICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgY29tcG9zZXJQcm9wVmFsdWUpLCBjaGlsZFByb3BWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiY2xhc3NOYW1lXCIpIHtcbiAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gW2NvbXBvc2VyUHJvcFZhbHVlLCBjaGlsZFByb3BWYWx1ZV1cbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIgXCIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBjb21wb3NlclByb3BzKSB7XG4gICAgICAgIF9sb29wXzEocHJvcE5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbXBvc2VyUHJvcHMpLCBvdmVycmlkZVByb3BzKTtcbn1cbmZ1bmN0aW9uIGdldEVsZW1lbnRSZWYoZWxlbWVudCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgdmFyIGNoaWxkR2V0dGVyID0gKF9hID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LnByb3BzLCBcInJlZlwiKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldDtcbiAgICB2YXIgbWF5V2FybkluQ2hpbGQgPSBjaGlsZEdldHRlciAmJlxuICAgICAgICBcImlzUmVhY3RXYXJuaW5nXCIgaW4gY2hpbGRHZXR0ZXIgJiZcbiAgICAgICAgY2hpbGRHZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gICAgaWYgKG1heVdhcm5JbkNoaWxkKSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnJlZjtcbiAgICB9XG4gICAgdmFyIGdldHRlciA9IChfYiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudCwgXCJyZWZcIikpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5nZXQ7XG4gICAgdmFyIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gICAgaWYgKG1heVdhcm4pIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmO1xuICAgIH1cbiAgICByZXR1cm4gKGVsZW1lbnQucHJvcHMucmVmIHx8IGVsZW1lbnQucmVmKTtcbn1cbnZhciBjb21wb3NlUmVmcyA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmVmcyA9IFtdO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHJlZnNbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIHJlZnMuZm9yRWFjaChmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICByZWYobm9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IENvbXBvc2VyO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgQ29tcG9zZXIgZnJvbSBcIi4uL2NvcmUvY29tcG9zZXJcIjtcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmV4cG9ydCB2YXIgQmFzZUJhZGdlID0gZm9yd2FyZFJlZihmdW5jdGlvbiAocHJvcHMsIHJlZikge1xuICAgIHZhciBfYSA9IHByb3BzLmFzQ2hpbGQsIGFzQ2hpbGQgPSBfYSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYSwgYm9yZGVyQ29sb3IgPSBwcm9wcy5ib3JkZXJDb2xvciwgX2IgPSBwcm9wcy50ZXh0Q29sb3IsIHRleHRDb2xvciA9IF9iID09PSB2b2lkIDAgPyBcImJsYWNrXCIgOiBfYiwgcmFkaXVzID0gcHJvcHMucmFkaXVzLCBiYWNrZ3JvdW5kQ29sb3IgPSBwcm9wcy5iYWNrZ3JvdW5kQ29sb3IsIF9jID0gcHJvcHMuc2l6ZSwgc2l6ZSA9IF9jID09PSB2b2lkIDAgPyBcImxcIiA6IF9jLCBzdHlsZSA9IHByb3BzLnN0eWxlLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIHJlc3RQcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiYXNDaGlsZFwiLCBcImJvcmRlckNvbG9yXCIsIFwidGV4dENvbG9yXCIsIFwicmFkaXVzXCIsIFwiYmFja2dyb3VuZENvbG9yXCIsIFwic2l6ZVwiLCBcInN0eWxlXCIsIFwiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIl0pO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJkaXZcIjtcbiAgICB2YXIgY29tcG9zZWRDbGFzc05hbWUgPSBcIm51cmktdGhlbWUgXCIuY29uY2F0KGFzQ2hpbGQgPyBcIlwiIDogXCJiYXNlLWJhZGdlXCIsIFwiIFwiKS5jb25jYXQoc2l6ZSwgXCIgYm9yZGVyLVwiKS5jb25jYXQoYm9yZGVyQ29sb3IsIFwiIHRleHQtXCIpLmNvbmNhdCh0ZXh0Q29sb3IsIFwiIGJhY2tncm91bmQtXCIpLmNvbmNhdChiYWNrZ3JvdW5kQ29sb3IsIFwiIFwiKS5jb25jYXQoY2xhc3NOYW1lKTtcbiAgICByZXR1cm4gKF9qc3goQ29tcCwgX19hc3NpZ24oeyBzdHlsZTogX19hc3NpZ24oeyBib3JkZXJSYWRpdXM6IFwiXCIuY29uY2F0KHJhZGl1cywgXCJweFwiKSB9LCBzdHlsZSksIGNsYXNzTmFtZTogY29tcG9zZWRDbGFzc05hbWUgfSwgcmVzdFByb3BzLCB7IHJlZjogcmVmLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpKTtcbn0pO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2F2YXRhci1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9hdmF0YXItc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBkZWZhdWx0QXZhdGFyIGZyb20gJy4uLy4uL2Fzc2V0cy9pY29ucy9kZWZhdWx0QXZhdGFyLnN2Zyc7XG5pbXBvcnQgeyBCYXNlQmFkZ2UgfSBmcm9tICcuLi9iYWRnZS9iYXNlLWJhZGdlJztcbmltcG9ydCAnLi9hdmF0YXItc3R5bGUuY3NzJztcbnZhciBBdmF0YXIgPSBmb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gICAgdmFyIHNpemUgPSBwcm9wcy5zaXplLCBzcmMgPSBwcm9wcy5zcmMsIGFsdCA9IHByb3BzLmFsdCwgYmFkZ2VPcHRpb24gPSBwcm9wcy5iYWRnZU9wdGlvbiwgc3R5bGUgPSBwcm9wcy5zdHlsZTtcbiAgICB2YXIgX2EgPSB1c2VTdGF0ZShmYWxzZSksIGlzSW1hZ2VEb3dubG9hZCA9IF9hWzBdLCBzZXRJc0ltYWdlRG93bmxvYWQgPSBfYVsxXTtcbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImF2YXRhclwiLCBjaGlsZHJlbjogW19qc3goXCJpbWdcIiwgeyBzcmM6IHNyYyAhPT0gbnVsbCAmJiBzcmMgIT09IHZvaWQgMCA/IHNyYyA6IGRlZmF1bHRBdmF0YXIsIGFsdDogYWx0ICE9PSBudWxsICYmIGFsdCAhPT0gdm9pZCAwID8gYWx0IDogJ2F2YXRhcicsIGNsYXNzTmFtZTogXCJhdmF0YXIgXCIuY29uY2F0KHNpemUsIFwiIFwiKS5jb25jYXQoIWlzSW1hZ2VEb3dubG9hZCA/ICdoaWRkZW4nIDogJycpLCBvbkxvYWQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNldElzSW1hZ2VEb3dubG9hZCh0cnVlKTsgfSwgc3R5bGU6IF9fYXNzaWduKHt9LCBzdHlsZSkgfSksICFpc0ltYWdlRG93bmxvYWQgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiYXZhdGFyIGF2YXRhci1za2VsZXRvbiBcIi5jb25jYXQoc2l6ZSksIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiAnYXZhdGFyIHNrZWxldG9uLWFuaW1hdGlvbicgfSkgfSkpLCBiYWRnZU9wdGlvbiAmJiAoX2pzeChCYXNlQmFkZ2UsIHsgYXNDaGlsZDogdHJ1ZSwgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogJzAnLFxuICAgICAgICAgICAgICAgIH0sIHJlZjogcmVmLCBjaGlsZHJlbjogYmFkZ2VPcHRpb24gfSkpXSB9KSk7XG59KTtcbkF2YXRhci5kaXNwbGF5TmFtZSA9ICdBdmF0YXInO1xuZXhwb3J0IGRlZmF1bHQgQXZhdGFyO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2J1dHRvbi1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9idXR0b24tc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NvbG9yLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NvbG9yLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9mb250LmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2ZvbnQuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgQ29tcG9zZXIgZnJvbSBcIi4uL2NvcmUvY29tcG9zZXJcIjtcbmltcG9ydCBcIi4vYnV0dG9uLXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG52YXIgQmFzZUJ1dHRvbiA9IGZvcndhcmRSZWYoZnVuY3Rpb24gKF9hLCByZWYpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbiwgX2IgPSBfYS5hc0NoaWxkLCBhc0NoaWxkID0gX2IgPT09IHZvaWQgMCA/IGZhbHNlIDogX2IsIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSwgZGlzYWJsZWQgPSBfYS5kaXNhYmxlZCwgcHJvcHMgPSBfX3Jlc3QoX2EsIFtcImNoaWxkcmVuXCIsIFwiYXNDaGlsZFwiLCBcImNsYXNzTmFtZVwiLCBcImRpc2FibGVkXCJdKTtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwiYnV0dG9uXCI7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIF9fYXNzaWduKHsgcmVmOiByZWYsIGNsYXNzTmFtZTogYXNDaGlsZCA/IGNsYXNzTmFtZSA6IFwiYmFzZS1idXR0b24gXCIuY29uY2F0KGNsYXNzTmFtZSAhPT0gbnVsbCAmJiBjbGFzc05hbWUgIT09IHZvaWQgMCA/IGNsYXNzTmFtZSA6IFwiXCIpLCBkaXNhYmxlZDogZGlzYWJsZWQsIFwiYXJpYS1kaXNhYmxlZFwiOiBkaXNhYmxlZCB9LCBwcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpKTtcbn0pO1xuZXhwb3J0IGRlZmF1bHQgQmFzZUJ1dHRvbjtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9sb2FkaW5nLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2xvYWRpbmctc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBcIi4vbG9hZGluZy1zdHlsZS5jc3NcIjtcbnZhciBMb2FkaW5nID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIF9hID0gcHJvcHMudmFyaWFudCwgdmFyaWFudCA9IF9hID09PSB2b2lkIDAgPyBcImxpZ2h0XCIgOiBfYTtcbiAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiY29tcG9uZW50LWxvYWRpbmctY29udGFpbmVyXCIsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJsb2FkaW5nLWluZGljYXRvci1yaW5nXCIsIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJsb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZyBcIi5jb25jYXQodmFyaWFudCkgfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmcgXCIuY29uY2F0KHZhcmlhbnQpIH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nIFwiLmNvbmNhdCh2YXJpYW50KSB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJsb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZyBcIi5jb25jYXQodmFyaWFudCkgfSldIH0pIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBMb2FkaW5nO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgQmFzZUJ1dHRvbiBmcm9tIFwiLi9iYXNlLWJ1dHRvblwiO1xuaW1wb3J0IExvYWRpbmcgZnJvbSBcIi4uL2xvYWRpbmcvbG9hZGluZ1wiO1xudmFyIENUQUJ1dHRvbiA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dCwgX2EgPSBwcm9wcy52YXJpYW50LCB2YXJpYW50ID0gX2EgPT09IHZvaWQgMCA/IFwicHJpbWFyeVwiIDogX2EsIF9iID0gcHJvcHMuc2l6ZSwgc2l6ZSA9IF9iID09PSB2b2lkIDAgPyBcIm1cIiA6IF9iLCBfYyA9IHByb3BzLmRpc2FibGVkLCBkaXNhYmxlZCA9IF9jID09PSB2b2lkIDAgPyBmYWxzZSA6IF9jLCBfZCA9IHByb3BzLmxvYWRpbmcsIGxvYWRpbmcgPSBfZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfZCwgbGVmdEljb24gPSBwcm9wcy5sZWZ0SWNvbiwgcmlnaHRJY29uID0gcHJvcHMucmlnaHRJY29uLCByZXN0UHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcInRleHRcIiwgXCJ2YXJpYW50XCIsIFwic2l6ZVwiLCBcImRpc2FibGVkXCIsIFwibG9hZGluZ1wiLCBcImxlZnRJY29uXCIsIFwicmlnaHRJY29uXCJdKTtcbiAgICByZXR1cm4gKF9qc3goQmFzZUJ1dHRvbiwgX19hc3NpZ24oeyBkaXNhYmxlZDogZGlzYWJsZWQgfSwgcmVzdFByb3BzLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIGN0YS1idXR0b24gXCIuY29uY2F0KGRpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogdmFyaWFudCwgXCIgXCIpLmNvbmNhdChzaXplKSwgY2hpbGRyZW46IGxvYWRpbmcgPyAoX2pzeChMb2FkaW5nLCB7IHZhcmlhbnQ6IHZhcmlhbnQgPT09IFwicHJpbWFyeVwiIHx8IHZhcmlhbnQgPT09IFwic2Vjb25kYXJ5XCIgPyBcImxpZ2h0XCIgOiBcImRhcmtcIiB9KSkgOiAoX2pzeHMoXCJkaXZcIiwgeyBzdHlsZToge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiLFxuICAgICAgICAgICAgICAgIGdhcDogXCIxMHB4XCIsXG4gICAgICAgICAgICB9LCBjaGlsZHJlbjogW2xlZnRJY29uLCB0ZXh0LCByaWdodEljb25dIH0pKSB9KSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IENUQUJ1dHRvbjtcbiIsImV4cG9ydCB2YXIgY29sb3JzID0ge1xuICAgIGJsYWNrOiAnIzAwMDAwMCcsXG4gICAgd2hpdGU6ICcjZmZmZmZmJyxcbiAgICBncmF5RmE6ICcjZmFmYWZhJyxcbiAgICBncmF5RjQ6ICcjZjRmNGY1JyxcbiAgICBncmF5RTQ6ICcjZTRlNGU3JyxcbiAgICBncmF5RDQ6ICcjZDRkNGQ4JyxcbiAgICBncmF5QTE6ICcjYTFhMWFhJyxcbiAgICBncmF5NzE6ICcjNzE3MTdhJyxcbiAgICBncmF5NTI6ICcjNTI1MjViJyxcbiAgICBncmF5M2Y6ICcjM2YzZjQ2JyxcbiAgICBncmF5Mjc6ICcjMjcyNzJhJyxcbiAgICBncmF5MTg6ICcjMTgxODFiJyxcbiAgICBwdXJwbGUzOTogJyMzOTFkNWQnLFxuICAgIHB1cnBsZTRjOiAnIzRjMjc3YycsXG4gICAgcHVycGxlRGQ6ICcjZGRkMWYwJyxcbiAgICBwdXJwbGVFOTogJyNlOWUwZjUnLFxuICAgIHB1cnBsZUY0OiAnI2Y0ZWZmYScsXG4gICAgcHVycGxlNDE6ICcjNGMxZDg4JyxcbiAgICBwdXJwbGU5NTogJyM5NTdlYjQnLFxuICAgIGFjY2VudFJlZERmOiAnI2RmNTM1YycsXG4gICAgYWNjZW50UmVkQzg6ICcjYzg0MjRiJyxcbiAgICBhY2NlbnRNYWdlbnRhQjA6ICcjYjAyZTRjJyxcbiAgICBhY2NlbnRHcmVlbjI4OiAnIzI4OWEzYScsXG4gICAgYWNjZW50Qmx1ZTAxOiAnIzAxZWNlMScsXG4gICAgYWNjZW50UGlua0VjOiAnI2VjNWNlZicsXG4gICAgYWNjZW50R3JlZW40MTogJyNlYzVjZWYnLFxufTtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEJhc2VCYWRnZSB9IGZyb20gXCIuL2Jhc2UtYmFkZ2VcIjtcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gXCIuLi8uLi9zdHlsZXMvdG9rZW4vY29sb3JzXCI7XG52YXIgT3B0aW9uQmFkZ2UgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgb3B0aW9uID0gcHJvcHMub3B0aW9uLCB0b29sdGlwVGV4dCA9IHByb3BzLnRvb2x0aXBUZXh0LCB0b29sdGlwU3R5bGUgPSBwcm9wcy50b29sdGlwU3R5bGUsIF9hID0gcHJvcHMudG9vbHRpcFBvc2l0aW9uLCB0b29sdGlwUG9zaXRpb24gPSBfYSA9PT0gdm9pZCAwID8gXCJib3R0b21cIiA6IF9hLCByZXN0UHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcIm9wdGlvblwiLCBcInRvb2x0aXBUZXh0XCIsIFwidG9vbHRpcFN0eWxlXCIsIFwidG9vbHRpcFBvc2l0aW9uXCJdKTtcbiAgICB2YXIgX2IgPSB1c2VTdGF0ZShmYWxzZSksIGlzVG9vbHRpcE9wZW4gPSBfYlswXSwgc2V0SXNUb29sdGlwT3BlbiA9IF9iWzFdO1xuICAgIHJldHVybiAoX2pzeHMoQmFzZUJhZGdlLCBfX2Fzc2lnbih7fSwgcmVzdFByb3BzLCB7IGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgICB9LCBvbk1vdXNlRW50ZXI6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNldElzVG9vbHRpcE9wZW4odHJ1ZSk7IH0sIG9uTW91c2VMZWF2ZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gc2V0SXNUb29sdGlwT3BlbihmYWxzZSk7IH0sIGNoaWxkcmVuOiBvcHRpb24gfSksIHRvb2x0aXBUZXh0ICYmIChfanN4cyhcImRpdlwiLCB7IHN0eWxlOiBfX2Fzc2lnbih7IHBvc2l0aW9uOiBcImFic29sdXRlXCIsIGRpc3BsYXk6IGlzVG9vbHRpcE9wZW4gPyBcImJsb2NrXCIgOiBcIm5vbmVcIiB9LCB0b29sdGlwU3R5bGUpLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBzdHlsZTogX19hc3NpZ24oX19hc3NpZ24oeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0sICh0b29sdGlwUG9zaXRpb24gPT09IFwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJUb3A6IFwiNnB4IHNvbGlkIHRyYW5zcGFyZW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogXCI2cHggc29saWQgdHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmlnaHQ6IFwiNnB4IHNvbGlkIFwiLmNvbmNhdChjb2xvcnMucHVycGxlMzkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IFwiNTAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IFwiLTZweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgtNTAlKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyTGVmdDogXCI2cHggc29saWQgdHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmlnaHQ6IFwiNnB4IHNvbGlkIHRyYW5zcGFyZW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogXCI2cHggc29saWQgXCIuY29uY2F0KGNvbG9ycy5wdXJwbGUzOSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKC01MCUpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLCB7IHpJbmRleDogMyB9KSB9KSwgX2pzeChcImRpdlwiLCB7IHN0eWxlOiBfX2Fzc2lnbihfX2Fzc2lnbih7IGJhY2tncm91bmRDb2xvcjogY29sb3JzLnB1cnBsZTM5LCBjb2xvcjogXCJ3aGl0ZVwiLCBwYWRkaW5nOiBcIjEycHhcIiwgYm9yZGVyUmFkaXVzOiBcIjZweFwiLCBmb250U2l6ZTogXCIxMnB4XCIsIGZvbnRXZWlnaHQ6IFwiNDAwXCIgfSwgKHRvb2x0aXBQb3NpdGlvbiA9PT0gXCJyaWdodFwiID8ge30gOiB7IG1hcmdpblRvcDogXCI2cHhcIiB9KSksIHsgd2hpdGVTcGFjZTogXCJub3dyYXBcIiB9KSwgY2hpbGRyZW46IHRvb2x0aXBUZXh0IH0pXSB9KSldIH0pKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgT3B0aW9uQmFkZ2U7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEJhc2VCYWRnZSB9IGZyb20gJy4vYmFzZS1iYWRnZSc7XG52YXIgSWNvblRleHRCYWRnZSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBpY29uID0gcHJvcHMuaWNvbiwgdGV4dCA9IHByb3BzLnRleHQ7XG4gICAgcmV0dXJuIChfanN4cyhCYXNlQmFkZ2UsIF9fYXNzaWduKHt9LCBwcm9wcywgeyBjaGlsZHJlbjogW2ljb24sIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IHRleHQgfSldIH0pKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgSWNvblRleHRCYWRnZTtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9iYWRnZS1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9iYWRnZS1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBcIi4vYmFkZ2Utc3R5bGUuY3NzXCI7XG5pbXBvcnQgeyBCYXNlQmFkZ2UgfSBmcm9tIFwiLi9iYXNlLWJhZGdlXCI7XG52YXIgSWNvblRleHRPcHRpb25CYWRnZSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBpY29uID0gcHJvcHMuaWNvbiwgdGV4dCA9IHByb3BzLnRleHQsIG9wdGlvbiA9IHByb3BzLm9wdGlvbiwgcmVzdFByb3BzID0gX19yZXN0KHByb3BzLCBbXCJpY29uXCIsIFwidGV4dFwiLCBcIm9wdGlvblwiXSk7XG4gICAgcmV0dXJuIChfanN4cyhCYXNlQmFkZ2UsIF9fYXNzaWduKHt9LCByZXN0UHJvcHMsIHsgY2xhc3NOYW1lOiBcImljb24tdGV4dC1vcHRpb25cIiwgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjaGlsZHJlbjogW2ljb24sIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IHRleHQgfSldIH0pLCBvcHRpb25dIH0pKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgSWNvblRleHRPcHRpb25CYWRnZTtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90YWJsZS1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90YWJsZS1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBcIi4vdGFibGUtc3R5bGUuY3NzXCI7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSBcInJlYWN0XCI7XG52YXIgVGFibGVSb290ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgcmV0dXJuIF9qc3goXCJ0YWJsZVwiLCB7IGNsYXNzTmFtZTogXCJiYXNlLXRhYmxlIHRhYmxlLXJvb3RcIiwgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pO1xufTtcbnZhciBUYWJsZUhlYWRlciA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBfYSA9IHByb3BzLmp1c3RpZnksIGp1c3RpZnkgPSBfYSA9PT0gdm9pZCAwID8gXCJjZW50ZXJcIiA6IF9hLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImp1c3RpZnlcIiwgXCJjbGFzc05hbWVcIl0pO1xuICAgIHJldHVybiAoX2pzeChcInRoZWFkXCIsIHsgY2xhc3NOYW1lOiBcImJhc2UtdGFibGUgdGFibGUtaGVhZGVyIFwiLmNvbmNhdChqdXN0aWZ5LCBcIiBcIikuY29uY2F0KGNsYXNzTmFtZSksIGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSk7XG59O1xudmFyIFRhYmxlUm93ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCJdKTtcbiAgICB2YXIgY2xhc3NOYW1lcyA9IFtcImJhc2UtdGFibGVcIiwgXCJ0YWJsZS1yb3dcIiwgY2xhc3NOYW1lXS5qb2luKFwiIFwiKTtcbiAgICByZXR1cm4gKF9qc3goXCJ0clwiLCBfX2Fzc2lnbih7IGNsYXNzTmFtZTogY2xhc3NOYW1lcyB9LCByZXN0LCB7IGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSkpO1xufTtcbnZhciBUYWJsZUJvZHkgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIl0pO1xuICAgIHZhciBjbGFzc05hbWVzID0gW1wiYmFzZS10YWJsZVwiLCBcInRhYmxlLWJvZHlcIiwgY2xhc3NOYW1lXS5qb2luKFwiIFwiKTtcbiAgICByZXR1cm4gKF9qc3goXCJ0Ym9keVwiLCBfX2Fzc2lnbih7IGNsYXNzTmFtZTogY2xhc3NOYW1lcyB9LCByZXN0LCB7IGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSkpO1xufTtcbnZhciBUYWJsZUNlbGwgPSBmb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gICAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCJdKTtcbiAgICB2YXIgY2xhc3NOYW1lcyA9IFtcImJhc2UtdGFibGVcIiwgXCJ0YWJsZS1jZWxsXCIsIGNsYXNzTmFtZV0uam9pbihcIiBcIik7XG4gICAgcmV0dXJuIChfanN4KFwidGRcIiwgX19hc3NpZ24oeyByZWY6IHJlZiwgY2xhc3NOYW1lOiBjbGFzc05hbWVzIH0sIHJlc3QsIHsgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pKSk7XG59KTtcblRhYmxlUm9vdC5IZWFkZXIgPSBUYWJsZUhlYWRlcjtcblRhYmxlUm9vdC5Cb2R5ID0gVGFibGVCb2R5O1xuVGFibGVSb290LlJvdyA9IFRhYmxlUm93O1xuVGFibGVSb290LkNlbGwgPSBUYWJsZUNlbGw7XG5leHBvcnQgZGVmYXVsdCBUYWJsZVJvb3Q7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgVGFibGVSb290IGZyb20gXCIuL2Jhc2UtdGFibGVcIjtcbmltcG9ydCBCYXNlQnV0dG9uIGZyb20gXCIuLi9idXR0b24vYmFzZS1idXR0b25cIjtcbmltcG9ydCBcIi4vdGFibGUtc3R5bGUuY3NzXCI7XG52YXIgRGF0YVRhYmxlID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHJvd3MgPSBwcm9wcy5yb3dzLCBjb2x1bW5zID0gcHJvcHMuY29sdW1ucywgX2EgPSBwcm9wcy5maXhlZFJvd3NJbmRleCwgZml4ZWRSb3dzSW5kZXggPSBfYSA9PT0gdm9pZCAwID8gMCA6IF9hO1xuICAgIHZhciBfYiA9IHVzZVN0YXRlKHJvd3MubWFwKGZ1bmN0aW9uIChyb3cpIHsgcmV0dXJuICh7IHJvdzogcm93LCBoaWRlOiBmYWxzZSB9KTsgfSkpLCBkaXNwbGF5Um93cyA9IF9iWzBdLCBzZXREaXNwbGF5Um93cyA9IF9iWzFdO1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNldERpc3BsYXlSb3dzKHJvd3MubWFwKGZ1bmN0aW9uIChyb3cpIHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICByZXR1cm4gKHtcbiAgICAgICAgICAgICAgICByb3c6IHJvdyxcbiAgICAgICAgICAgICAgICBoaWRlOiAoX2IgPSAoX2EgPSBkaXNwbGF5Um93cy5maW5kKGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiBpdGVtLnJvdy5pZCA9PT0gcm93LmlkOyB9KSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmhpZGUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pKTtcbiAgICB9LCBbcm93c10pO1xuICAgIHJldHVybiAoX2pzeHMoVGFibGVSb290LCB7IGNoaWxkcmVuOiBbX2pzeHMoVGFibGVSb290LkhlYWRlciwgeyBjbGFzc05hbWU6IFwiZGF0YS10YWJsZVwiLCBjaGlsZHJlbjogW19qc3goVGFibGVSb290LlJvdywgeyBjbGFzc05hbWU6IFwiZml4ZWQtcm93c1wiLCBjaGlsZHJlbjogZGlzcGxheVJvd3MubWFwKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IGZpeGVkUm93c0luZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChUYWJsZVJvb3QuQ2VsbCwgeyBjaGlsZHJlbjogaXRlbS5yb3cudmFsdWUgfSwgaXRlbS5yb3cuaWQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSB9KSwgX2pzeChUYWJsZVJvb3QuUm93LCB7IGNoaWxkcmVuOiBkaXNwbGF5Um93cy5tYXAoZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA+PSBmaXhlZFJvd3NJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goVGFibGVSb290LkNlbGwsIHsgXCJkYXRhLWlkXCI6IGl0ZW0ucm93LmlkLCBjbGFzc05hbWU6IFwiXCIuY29uY2F0KGl0ZW0uaGlkZSA/IFwiaGlkZVwiIDogXCJcIiksIGNoaWxkcmVuOiBfanN4KEJhc2VCdXR0b24sIHsgYXNDaGlsZDogdHJ1ZSwgb25DbGljazogZnVuY3Rpb24gKCkgeyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gaXRlbS5yb3cpLm9uQ2xpY2tSb3cpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBpdGVtLnJvdy5pZCk7IH0sIGNoaWxkcmVuOiAoX2EgPSBpdGVtLnJvdy52YWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogX2pzeChfRnJhZ21lbnQsIHt9KSB9KSB9LCBpdGVtLnJvdy5pZCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pIH0pXSB9KSwgX2pzeChUYWJsZVJvb3QuQm9keSwgeyBjbGFzc05hbWU6IFwiZGF0YS10YWJsZVwiLCBjaGlsZHJlbjogY29sdW1ucy5tYXAoZnVuY3Rpb24gKGNvbHVtbiwgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4cyhcInRkXCIsIHsgc3R5bGU6IHsgZGlzcGxheTogXCJmbGV4XCIgfSwgY2xhc3NOYW1lOiBcImRhdGEtdGFibGUgY29tbW9uLXJvd1wiLCBjaGlsZHJlbjogW19qc3goVGFibGVSb290LlJvdywgeyBjbGFzc05hbWU6IFwiZml4ZWQtcm93c1wiLCBjaGlsZHJlbjogZGlzcGxheVJvd3MubWFwKGZ1bmN0aW9uIChpdGVtLCBpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPCBmaXhlZFJvd3NJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChUYWJsZVJvb3QuQ2VsbCwgeyBcImRhdGEtaWRcIjogaXRlbS5yb3cuaWQsIGNsYXNzTmFtZTogXCJcIi5jb25jYXQoaXRlbS5oaWRlID8gXCJoaWRlXCIgOiBcIlwiKSwgY2hpbGRyZW46IF9qc3goQmFzZUJ1dHRvbiwgeyBhc0NoaWxkOiB0cnVlLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gY29sdW1uW2l0ZW0ucm93LmlkXSkub25DbGlja0NlbGwpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiAoX2IgPSAoX2EgPSBjb2x1bW5baXRlbS5yb3cuaWRdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudmFsdWUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IF9qc3goX0ZyYWdtZW50LCB7fSkgfSkgfSwgaXRlbS5yb3cuaWQgKyBNYXRoLnJhbmRvbSgpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pIH0pLCBfanN4KFRhYmxlUm9vdC5Sb3csIHsgY2hpbGRyZW46IGRpc3BsYXlSb3dzLm1hcChmdW5jdGlvbiAoaXRlbSwgaSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID49IGZpeGVkUm93c0luZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFRhYmxlUm9vdC5DZWxsLCB7IFwiZGF0YS1pZFwiOiBpdGVtLnJvdy5pZCwgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChpdGVtLmhpZGUgPyBcImhpZGVcIiA6IFwiXCIpLCBjaGlsZHJlbjogX2pzeChCYXNlQnV0dG9uLCB7IGFzQ2hpbGQ6IHRydWUsIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSBjb2x1bW5baXRlbS5yb3cuaWRdKS5vbkNsaWNrQ2VsbCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IChfYiA9IChfYSA9IGNvbHVtbltpdGVtLnJvdy5pZF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS52YWx1ZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogX2pzeChfRnJhZ21lbnQsIHt9KSB9KSB9LCBpdGVtLnJvdy5pZCArIE1hdGgucmFuZG9tKCkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgfSldIH0sIGluZGV4KSk7XG4gICAgICAgICAgICAgICAgfSkgfSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBEYXRhVGFibGU7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdGV4dC1maWVsZC1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VTdGF0ZSwgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBcIi4vdGV4dC1maWVsZC1zdHlsZS5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xudmFyIFRleHRMYWJlbCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dCwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lO1xuICAgIHJldHVybiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIGNoaWxkcmVuOiB0ZXh0IH0pO1xufTtcbnZhciBJbnB1dEZpZWxkID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcGxhY2Vob2xkZXIgPSBwcm9wcy5wbGFjZWhvbGRlciwgbmFtZSA9IHByb3BzLm5hbWUsIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2U7XG4gICAgdmFyIF9hID0gdXNlQ29udGV4dChUZXh0RmllbGRDb250ZXh0KSwgY29udmVydEVycm9yTWVzc2FnZSA9IF9hLmNvbnZlcnRFcnJvck1lc3NhZ2UsIGNvbnZlcnRFcnJvclN0YXRlID0gX2EuY29udmVydEVycm9yU3RhdGUsIHZhbGlkYXRpb25zID0gX2EudmFsaWRhdGlvbnM7XG4gICAgdmFyIHZhbGlkYXRlSW5wdXQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgICB2YXIgZmFpbGVkVmFsaWRhdGlvbiA9IHZhbGlkYXRpb25zLmZpbmQoZnVuY3Rpb24gKHZhbGlkYXRpb24pIHsgcmV0dXJuICF2YWxpZGF0aW9uLnJ1bGUudGVzdCh2YWx1ZSk7IH0pO1xuICAgICAgICAgICAgaWYgKGZhaWxlZFZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JTdGF0ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JNZXNzYWdlKGZhaWxlZFZhbGlkYXRpb24ubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udmVydEVycm9yU3RhdGUoZmFsc2UpO1xuICAgICAgICAgICAgY29udmVydEVycm9yTWVzc2FnZShcIlwiKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gICAgcmV0dXJuIChfanN4KFwiaW5wdXRcIiwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBuYW1lOiBuYW1lLCBvbkNoYW5nZTogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlSW5wdXQoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGUpO1xuICAgICAgICB9IH0pKTtcbn07XG52YXIgSGVscGVyVGV4dCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dCwgX2EgPSBwcm9wcy5jbGFzc05hbWUsIGNsYXNzTmFtZSA9IF9hID09PSB2b2lkIDAgPyBmYWxzZSA6IF9hO1xuICAgIHZhciBfYiA9IHVzZUNvbnRleHQoVGV4dEZpZWxkQ29udGV4dCksIGVycm9yTWVzc2FnZSA9IF9iLmVycm9yTWVzc2FnZSwgaXNFcnJvciA9IF9iLmlzRXJyb3I7XG4gICAgdmFyIGVycm9yQ2xhc3NOYW1lID0gaXNFcnJvciA/IFwiZXJyb3JcIiA6IFwiXCI7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChjbGFzc05hbWUsIFwiIFwiKS5jb25jYXQoZXJyb3JDbGFzc05hbWUpLCBjaGlsZHJlbjogZXJyb3JNZXNzYWdlICE9PSBudWxsICYmIGVycm9yTWVzc2FnZSAhPT0gdm9pZCAwID8gZXJyb3JNZXNzYWdlIDogdGV4dCB9KSk7XG59O1xudmFyIFRleHRGaWVsZENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgICBpc0Vycm9yOiBmYWxzZSxcbiAgICBjb252ZXJ0RXJyb3JTdGF0ZTogZnVuY3Rpb24gKCkgeyB9LFxuICAgIHZhbGlkYXRpb25zOiBbXSxcbiAgICBlcnJvck1lc3NhZ2U6IFwiXCIsXG4gICAgY29udmVydEVycm9yTWVzc2FnZTogZnVuY3Rpb24gKHZhbHVlKSB7IH0sXG59KTtcbnZhciBUZXh0RmllbGRSb290ID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sIHZhbGlkYXRpb25zID0gX2EudmFsaWRhdGlvbnMsIHdpZHRoID0gX2Eud2lkdGg7XG4gICAgdmFyIF9iID0gdXNlU3RhdGUoZmFsc2UpLCBpc0Vycm9yID0gX2JbMF0sIHNldElzRXJyb3IgPSBfYlsxXTtcbiAgICB2YXIgX2MgPSB1c2VTdGF0ZShcIlwiKSwgZXJyb3JNZXNzYWdlID0gX2NbMF0sIHNldEVycm9yTWVzc2FnZSA9IF9jWzFdO1xuICAgIHZhciBjb252ZXJ0RXJyb3JTdGF0ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICBzZXRJc0Vycm9yKHZhbHVlKTtcbiAgICB9O1xuICAgIHZhciBjb252ZXJ0RXJyb3JNZXNzYWdlID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHNldEVycm9yTWVzc2FnZSh2YWx1ZSk7XG4gICAgfTtcbiAgICByZXR1cm4gKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBcInRleHQtZmllbGQtcm9vdFwiLCBzdHlsZTogeyBkaXNwbGF5OiBcImJsb2NrXCIsIHdpZHRoOiBcIlwiLmNvbmNhdCh3aWR0aCwgXCJweFwiKSB9LCBjaGlsZHJlbjogX2pzeChUZXh0RmllbGRDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgaXNFcnJvcjogaXNFcnJvcixcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JTdGF0ZTogY29udmVydEVycm9yU3RhdGUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbnM6IHZhbGlkYXRpb25zLFxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogZXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgICAgIGNvbnZlcnRFcnJvck1lc3NhZ2U6IGNvbnZlcnRFcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICB9LCBjaGlsZHJlbjogY2hpbGRyZW4gfSkgfSkpO1xufTtcblRleHRGaWVsZFJvb3QuVGV4dExhYmVsID0gVGV4dExhYmVsO1xuVGV4dEZpZWxkUm9vdC5JbnB1dEZpZWxkID0gSW5wdXRGaWVsZDtcblRleHRGaWVsZFJvb3QuSGVscGVyVGV4dCA9IEhlbHBlclRleHQ7XG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGRSb290O1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBUZXh0RmllbGRSb290IGZyb20gXCIuL2Jhc2UtdGV4dC1maWVsZFwiO1xuaW1wb3J0IFwiLi90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG52YXIgVGV4dEZpZWxkID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIF9iID0gX2Eud2lkdGgsIHdpZHRoID0gX2IgPT09IHZvaWQgMCA/IDM0MyA6IF9iLCBfYyA9IF9hLnBsYWNlaG9sZGVyLCBwbGFjZWhvbGRlciA9IF9jID09PSB2b2lkIDAgPyBcIlwiIDogX2MsIF9kID0gX2EubmFtZSwgbmFtZSA9IF9kID09PSB2b2lkIDAgPyBcIlwiIDogX2QsIGhlbHBlclRleHQgPSBfYS5oZWxwZXJUZXh0LCBsYWJlbFRleHQgPSBfYS5sYWJlbFRleHQsIG9uQ2hhbmdlID0gX2Eub25DaGFuZ2U7XG4gICAgcmV0dXJuIChfanN4cyhUZXh0RmllbGRSb290LCB7IHZhbGlkYXRpb25zOiBbXSwgd2lkdGg6IHdpZHRoLCBjaGlsZHJlbjogW2xhYmVsVGV4dCAmJiAoX2pzeChUZXh0RmllbGRSb290LlRleHRMYWJlbCwgeyB0ZXh0OiBsYWJlbFRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgbGFiZWxcIiB9KSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSB0ZXh0LWZpZWxkIGlucHV0LXdyYXBwZXJcIiwgY2hpbGRyZW46IF9qc3goVGV4dEZpZWxkUm9vdC5JbnB1dEZpZWxkLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaW5wdXRcIiwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBuYW1lOiBuYW1lLCBvbkNoYW5nZTogb25DaGFuZ2UgfSkgfSksIGhlbHBlclRleHQgJiYgKF9qc3goVGV4dEZpZWxkUm9vdC5IZWxwZXJUZXh0LCB7IHRleHQ6IGhlbHBlclRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaGVscGVyLXRleHRcIiB9KSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGQ7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFRleHRGaWVsZFJvb3QgZnJvbSBcIi4vYmFzZS10ZXh0LWZpZWxkXCI7XG5pbXBvcnQgXCIuL3RleHQtZmllbGQtc3R5bGUuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbnZhciBUZXh0RmllbGRXaXRoRXJyb3IgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgX2IgPSBfYS53aWR0aCwgd2lkdGggPSBfYiA9PT0gdm9pZCAwID8gMzQzIDogX2IsIF9jID0gX2EucGxhY2Vob2xkZXIsIHBsYWNlaG9sZGVyID0gX2MgPT09IHZvaWQgMCA/IFwiXCIgOiBfYywgX2QgPSBfYS5uYW1lLCBuYW1lID0gX2QgPT09IHZvaWQgMCA/IFwiXCIgOiBfZCwgaGVscGVyVGV4dCA9IF9hLmhlbHBlclRleHQsIGxhYmVsVGV4dCA9IF9hLmxhYmVsVGV4dCwgdmFsaWRhdGlvbnMgPSBfYS52YWxpZGF0aW9ucztcbiAgICByZXR1cm4gKF9qc3hzKFRleHRGaWVsZFJvb3QsIHsgd2lkdGg6IHdpZHRoLCB2YWxpZGF0aW9uczogdmFsaWRhdGlvbnMsIGNoaWxkcmVuOiBbbGFiZWxUZXh0ICYmIChfanN4KFRleHRGaWVsZFJvb3QuVGV4dExhYmVsLCB7IHRleHQ6IGxhYmVsVGV4dCwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBsYWJlbFwiIH0pKSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaW5wdXQtd3JhcHBlclwiLCBjaGlsZHJlbjogX2pzeChUZXh0RmllbGRSb290LklucHV0RmllbGQsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBpbnB1dFwiLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIG5hbWU6IG5hbWUgfSkgfSksIGhlbHBlclRleHQgJiYgKF9qc3goVGV4dEZpZWxkUm9vdC5IZWxwZXJUZXh0LCB7IHRleHQ6IGhlbHBlclRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaGVscGVyLXRleHRcIiwgaXNFcnJvcjogdHJ1ZSB9KSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGRXaXRoRXJyb3I7XG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuZXhwb3J0IHZhciB1c2VFeHRlcm5hbFN0YXRlID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIHByb3AgPSBfYS5wcm9wLCBoYW5kbGVyID0gX2EuaGFuZGxlciwgZGVmYXVsdFByb3AgPSBfYS5kZWZhdWx0UHJvcDtcbiAgICB2YXIgX2IgPSB1c2VTdGF0ZShwcm9wICE9PSBudWxsICYmIHByb3AgIT09IHZvaWQgMCA/IHByb3AgOiBkZWZhdWx0UHJvcCksIGlubmVyU3RhdGUgPSBfYlswXSwgc2V0SW5uZXJTdGF0ZSA9IF9iWzFdO1xuICAgIHZhciBpc0NvbnRyb2xsZWRCeUV4dGVybmFsID0gcHJvcCAhPT0gdW5kZWZpbmVkO1xuICAgIHZhciB2YWx1ZSA9IGlzQ29udHJvbGxlZEJ5RXh0ZXJuYWwgPyBwcm9wIDogaW5uZXJTdGF0ZTtcbiAgICB2YXIgc2V0VmFsdWUgPSBmdW5jdGlvbiAoaGFuZGxlZFZhbHVlKSB7XG4gICAgICAgIGlmIChpc0NvbnRyb2xsZWRCeUV4dGVybmFsKSB7XG4gICAgICAgICAgICB2YXIgc2V0dGVyID0gaGFuZGxlZFZhbHVlO1xuICAgICAgICAgICAgdmFyIHZhbHVlXzEgPSB0eXBlb2YgaGFuZGxlZFZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICA/IHNldHRlcihwcm9wICE9PSBudWxsICYmIHByb3AgIT09IHZvaWQgMCA/IHByb3AgOiBkZWZhdWx0UHJvcClcbiAgICAgICAgICAgICAgICA6IGhhbmRsZWRWYWx1ZTtcbiAgICAgICAgICAgIGhhbmRsZXIgPT09IG51bGwgfHwgaGFuZGxlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogaGFuZGxlcih2YWx1ZV8xKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHNldElubmVyU3RhdGUoaGFuZGxlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIFt2YWx1ZSwgc2V0VmFsdWVdO1xufTtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFeHRlcm5hbFN0YXRlIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvaG9va3MvdXNlRXh0ZXJuYWxTdGF0ZVwiO1xuaW1wb3J0IENvbXBvc2VyIGZyb20gXCIuLi9jb3JlL2NvbXBvc2VyXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbnZhciBSYWRpb0J1dHRvbiA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBhc0NoaWxkID0gcHJvcHMuYXNDaGlsZCwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCBpZCA9IHByb3BzLmlkO1xuICAgIHZhciBfYSA9IHVzZUNvbnRleHQoUmFkaW9Db250ZXh0KSwgc2VsZWN0ZWQgPSBfYS5zZWxlY3RlZCwgb25DaGFuZ2UgPSBfYS5vbkNoYW5nZTtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwiZGl2XCI7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgXCIuY29uY2F0KGNsYXNzTmFtZSksIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG9uQ2hhbmdlKGlkKTsgfSwgY2hpbGRyZW46IGlkID09PSBzZWxlY3RlZCA/IGNoaWxkcmVuIDogbnVsbCB9KSk7XG59O1xudmFyIFJhZGlvSW5kaWNhdG9yID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBpZCA9IHByb3BzLmlkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIHNlbGVjdGVkID0gdXNlQ29udGV4dChSYWRpb0NvbnRleHQpLnNlbGVjdGVkO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJpbnB1dFwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCB7IHR5cGU6IFwicmFkaW9cIiwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgXCIuY29uY2F0KHNlbGVjdGVkID09PSBpZCA/IFwic2VsZWN0ZWRcIiA6IFwiXCIsIFwiIFwiKS5jb25jYXQoY2xhc3NOYW1lKSwgY2hlY2tlZDogc2VsZWN0ZWQgPT09IGlkLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpO1xufTtcbnZhciBSYWRpb0xhYmVsID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImxhYmVsXCI7XG4gICAgcmV0dXJuIF9qc3goQ29tcCwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBcIi5jb25jYXQoY2xhc3NOYW1lKSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pO1xufTtcbnZhciBSYWRpb09wdGlvbkdyb3VwID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcInVsXCI7XG4gICAgcmV0dXJuIF9qc3goQ29tcCwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pO1xufTtcbnZhciBSYWRpb0NvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgICBvcHRpb25zOiBbXSxcbiAgICBzZWxlY3RlZDogbnVsbCxcbiAgICBvbkNoYW5nZTogZnVuY3Rpb24gKGlkKSB7IH0sXG59KTtcbnZhciBSYWRpb1Jvb3QgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgb3B0aW9ucyA9IHByb3BzLm9wdGlvbnMsIF9hID0gcHJvcHMuc2VsZWN0ZWQsIHNlbGVjdGVkID0gX2EgPT09IHZvaWQgMCA/IG51bGwgOiBfYSwgZXh0ZXJuYWxPbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlO1xuICAgIHZhciBfYiA9IHVzZUV4dGVybmFsU3RhdGUoe1xuICAgICAgICBwcm9wOiBzZWxlY3RlZCxcbiAgICAgICAgaGFuZGxlcjogZXh0ZXJuYWxPbkNoYW5nZSxcbiAgICAgICAgZGVmYXVsdFByb3A6IHNlbGVjdGVkLFxuICAgIH0pLCBzZWxlY3RlZElkID0gX2JbMF0sIHNldFNlbGVjdGVkSWQgPSBfYlsxXTtcbiAgICB2YXIgb25DaGFuZ2UgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgICAgc2V0U2VsZWN0ZWRJZChpZCk7XG4gICAgfTtcbiAgICByZXR1cm4gKF9qc3goUmFkaW9Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHNlbGVjdGVkOiBzZWxlY3RlZElkLCBvbkNoYW5nZTogb25DaGFuZ2UsIG9wdGlvbnM6IG9wdGlvbnMgfSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKTtcbn07XG5SYWRpb1Jvb3QuSW5kaWNhdG9yID0gUmFkaW9JbmRpY2F0b3I7XG5SYWRpb1Jvb3QuTGFiZWwgPSBSYWRpb0xhYmVsO1xuUmFkaW9Sb290Lk9wdGlvbkdyb3VwID0gUmFkaW9PcHRpb25Hcm91cDtcblJhZGlvUm9vdC5CdXR0b24gPSBSYWRpb0J1dHRvbjtcbmV4cG9ydCBkZWZhdWx0IFJhZGlvUm9vdDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9yYWRpby1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9yYWRpby1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJhZGlvUm9vdCBmcm9tIFwiLi9iYXNlLXJhZGlvXCI7XG5pbXBvcnQgXCIuL3JhZGlvLXN0eWxlLmNzc1wiO1xudmFyIFJhZGlvID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHNlbGVjdGVkID0gcHJvcHMuc2VsZWN0ZWQsIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2UsIG9wdGlvbnMgPSBwcm9wcy5vcHRpb25zO1xuICAgIHJldHVybiAoX2pzeChSYWRpb1Jvb3QsIHsgb3B0aW9uczogb3B0aW9ucywgc2VsZWN0ZWQ6IHNlbGVjdGVkLCBvbkNoYW5nZTogb25DaGFuZ2UsIGNoaWxkcmVuOiBfanN4KFJhZGlvUm9vdC5PcHRpb25Hcm91cCwgeyBjbGFzc05hbWU6IFwicmFkaW8gcmFkaW8tZ3JvdXBcIiwgY2hpbGRyZW46IG9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHsgcmV0dXJuIChfanN4cyhcImxpXCIsIHsgc3R5bGU6IHsgZGlzcGxheTogXCJmbGV4XCIsIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsIGdhcDogXCI2cHhcIiB9LCBjaGlsZHJlbjogW19qc3goUmFkaW9Sb290LkJ1dHRvbiwgeyBpZDogb3B0aW9uLmlkLCBjbGFzc05hbWU6IFwicmFkaW8gcmFkaW8tYnV0dG9uXCIsIGNoaWxkcmVuOiBfanN4KFJhZGlvUm9vdC5JbmRpY2F0b3IsIHsgaWQ6IG9wdGlvbi5pZCwgYXNDaGlsZDogdHJ1ZSwgY2xhc3NOYW1lOiBcInJhZGlvIHJhZGlvLWluZGljYXRvclwiLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7fSkgfSkgfSksIF9qc3goUmFkaW9Sb290LkxhYmVsLCB7IGlkOiBvcHRpb24uaWQsIGNsYXNzTmFtZTogXCJyYWRpbyByYWRpby1sYWJlbFwiLCBjaGlsZHJlbjogb3B0aW9uLmxhYmVsIH0pXSB9LCBvcHRpb24uaWQpKTsgfSkgfSkgfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFJhZGlvO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NoZWNrLWJveC1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9jaGVjay1ib3gtc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFeHRlcm5hbFN0YXRlIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvaG9va3MvdXNlRXh0ZXJuYWxTdGF0ZVwiO1xuaW1wb3J0IFwiLi9jaGVjay1ib3gtc3R5bGUuY3NzXCI7XG5pbXBvcnQgQ29tcG9zZXIgZnJvbSBcIi4uL2NvcmUvY29tcG9zZXJcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiO1xudmFyIENoZWNrQm94TGFiZWwgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgYXNDaGlsZCA9IHByb3BzLmFzQ2hpbGQsIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XG4gICAgdmFyIGlkID0gdXNlQ29udGV4dChDaGVja0JveENvbnRleHQpLmlkO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJsYWJlbFwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIGJhc2UtY2hlY2stYm94IGxhYmVsXCIsIGh0bWxGb3I6IGlkLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpO1xufTtcbnZhciBDaGVja0JveElucHV0ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImFzQ2hpbGRcIiwgXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiXSk7XG4gICAgdmFyIF9hID0gdXNlQ29udGV4dChDaGVja0JveENvbnRleHQpLCBjaGVja2VkID0gX2EuY2hlY2tlZCwgdG9nZ2xlQ2hlY2tlZCA9IF9hLnRvZ2dsZUNoZWNrZWQsIGlkID0gX2EuaWQsIGRpc2FibGVkID0gX2EuZGlzYWJsZWQ7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImlucHV0XCI7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIF9fYXNzaWduKHsgdHlwZTogXCJjaGVja2JveFwiLCBjaGVja2VkOiBjaGVja2VkLCBvbkNoYW5nZTogZGlzYWJsZWQgPyB1bmRlZmluZWQgOiB0b2dnbGVDaGVja2VkLCBvbkNsaWNrOiBkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IHRvZ2dsZUNoZWNrZWQsIGlkOiBpZCwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgY2hlY2stYm94LWlucHV0IFwiLmNvbmNhdChjbGFzc05hbWUsIFwiIFwiKS5jb25jYXQoY2hlY2tlZCA/IFwiY2hlY2tlZFwiIDogXCJ1bmNoZWNrZWRcIiwgXCIgXCIpLmNvbmNhdChkaXNhYmxlZCA/IFwiZGlzYWJsZWRcIiA6IFwiXCIpIH0sIHJlc3QsIHsgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSk7XG59O1xudmFyIENoZWNrQm94Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe1xuICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIHRvZ2dsZUNoZWNrZWQ6IGZ1bmN0aW9uICgpIHsgfSxcbiAgICBpZDogXCJcIixcbiAgICBkaXNhYmxlZDogZmFsc2UsXG59KTtcbnZhciBDaGVja0JveFJvb3QgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgZXh0ZXJuYWxDaGVja2VkID0gcHJvcHMuY2hlY2tlZCwgZXh0ZXJuYWxPbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlLCBpZCA9IHByb3BzLmlkLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBkaXNhYmxlZCA9IHByb3BzLmRpc2FibGVkO1xuICAgIHZhciBfYSA9IHVzZUV4dGVybmFsU3RhdGUoe1xuICAgICAgICBwcm9wOiBleHRlcm5hbENoZWNrZWQsXG4gICAgICAgIGhhbmRsZXI6IGV4dGVybmFsT25DaGFuZ2UsXG4gICAgICAgIGRlZmF1bHRQcm9wOiBleHRlcm5hbENoZWNrZWQgIT09IG51bGwgJiYgZXh0ZXJuYWxDaGVja2VkICE9PSB2b2lkIDAgPyBleHRlcm5hbENoZWNrZWQgOiBmYWxzZSxcbiAgICB9KSwgY2hlY2tlZCA9IF9hWzBdLCBzZXRDaGVja2VkID0gX2FbMV07XG4gICAgdmFyIHRvZ2dsZUNoZWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNldENoZWNrZWQoZnVuY3Rpb24gKHByZXYpIHsgcmV0dXJuICFwcmV2OyB9KTtcbiAgICB9O1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJjaGVjay1ib3gtcm9vdFwiLCBjaGlsZHJlbjogX2pzeChDaGVja0JveENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHsgY2hlY2tlZDogY2hlY2tlZCwgdG9nZ2xlQ2hlY2tlZDogdG9nZ2xlQ2hlY2tlZCwgaWQ6IGlkLCBkaXNhYmxlZDogZGlzYWJsZWQgfSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pIH0pKTtcbn07XG5DaGVja0JveFJvb3QuTGFiZWwgPSBDaGVja0JveExhYmVsO1xuQ2hlY2tCb3hSb290LklucHV0ID0gQ2hlY2tCb3hJbnB1dDtcbmV4cG9ydCBkZWZhdWx0IENoZWNrQm94Um9vdDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgXCIuL2NoZWNrLWJveC1zdHlsZS5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9jb2xvci5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xuaW1wb3J0IGNoZWNrIGZyb20gXCIuLi8uLi9hc3NldHMvaWNvbnMvY2hlY2suc3ZnXCI7XG5pbXBvcnQgQ2hlY2tCb3hSb290IGZyb20gXCIuL2Jhc2UtY2hlY2stYm94XCI7XG52YXIgQ2hlY2tCb3ggPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2hlY2tlZCA9IHByb3BzLmNoZWNrZWQsIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2UsIGxhYmVsID0gcHJvcHMubGFiZWwsIF9hID0gcHJvcHMuaWNvblNpemUsIGljb25TaXplID0gX2EgPT09IHZvaWQgMCA/IDI0IDogX2EsIGlkID0gcHJvcHMuaWQsIGRpc2FibGVkID0gcHJvcHMuZGlzYWJsZWQ7XG4gICAgcmV0dXJuIChfanN4KENoZWNrQm94Um9vdCwgeyBpZDogaWQsIGNoZWNrZWQ6IGNoZWNrZWQsIG9uQ2hhbmdlOiBvbkNoYW5nZSwgZGlzYWJsZWQ6IGRpc2FibGVkLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiY2hlY2stYm94XCIsIGNoaWxkcmVuOiBbX2pzeChDaGVja0JveFJvb3QuSW5wdXQsIHsgYXNDaGlsZDogdHJ1ZSwgY2hpbGRyZW46IF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBjaGVjay1ib3gtaW5wdXRcIiwgc3R5bGU6IHsgd2lkdGg6IFwiXCIuY29uY2F0KGljb25TaXplLCBcInB4XCIpLCBoZWlnaHQ6IFwiXCIuY29uY2F0KGljb25TaXplLCBcInB4XCIpIH0sIGNoaWxkcmVuOiBfanN4KFwiaW1nXCIsIHsgc3JjOiBjaGVjaywgYWx0OiBcImNoZWNrXCIgfSkgfSkgfSksIF9qc3goQ2hlY2tCb3hSb290LkxhYmVsLCB7IGNoaWxkcmVuOiBsYWJlbCB9KV0gfSkgfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IENoZWNrQm94O1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RleHQtc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdGV4dC1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBcIi4vdGV4dC1zdHlsZS5jc3NcIjtcbmltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vLi4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiO1xudmFyIFRleHQgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgdGV4dCA9IHByb3BzLnRleHQsIHNpemUgPSBwcm9wcy5zaXplLCB3ZWlnaHQgPSBwcm9wcy53ZWlnaHQsIGNvbG9yID0gcHJvcHMuY29sb3IsIHRleHRBbGlnbiA9IHByb3BzLnRleHRBbGlnbiwgdGV4dERlY29yYXRpb24gPSBwcm9wcy50ZXh0RGVjb3JhdGlvbiwgd29yZEJyZWFrID0gcHJvcHMud29yZEJyZWFrLCB3aGl0ZVNwYWNlID0gcHJvcHMud2hpdGVTcGFjZSwgYXMgPSBwcm9wcy5hcywgc3R5bGUgPSBwcm9wcy5zdHlsZTtcbiAgICB2YXIgQ29tcCA9IGFzID8gYXMgOiBcInBcIjtcbiAgICByZXR1cm4gKF9qc3goQ29tcCwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBiYXNlLXRleHQgXCIuY29uY2F0KC9eXFxkK3hsJC8udGVzdChzaXplKSA/IFwidC1cIi5jb25jYXQoc2l6ZSkgOiBzaXplLCBcIiBcIikuY29uY2F0KHdlaWdodCwgXCIgdGV4dEFsaWduLVwiKS5jb25jYXQodGV4dEFsaWduLCBcIiB0ZXh0RGVjb3JhdGlvbi1cIikuY29uY2F0KHRleHREZWNvcmF0aW9uLCBcIiB3b3JkQnJlYWstXCIpLmNvbmNhdCh3b3JkQnJlYWssIFwiIHdoaXRlU3BhY2UtXCIpLmNvbmNhdCh3aGl0ZVNwYWNlLCBcIiBcIikuY29uY2F0KGNvbG9yID8gXCJjb2xvci1cIi5jb25jYXQoY29sb3IpIDogXCJcIiksIHN0eWxlOiBfX2Fzc2lnbih7fSwgc3R5bGUpLCBjaGlsZHJlbjogdGV4dCB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgVGV4dDtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQXZhdGFyIH0gZnJvbSBcIi4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENUQUJ1dHRvbiB9IGZyb20gXCIuL2NvbXBvbmVudHMvYnV0dG9uL2N0YS1idXR0b25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgT3B0aW9uQmFkZ2UgfSBmcm9tIFwiLi9jb21wb25lbnRzL2JhZGdlL29wdGlvbi1iYWRnZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uVGV4dEJhZGdlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYWRnZS9pY29uLXRleHQtYmFkZ2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvblRleHRPcHRpb25CYWRnZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFkZ2UvaWNvbi10ZXh0LW9wdGlvbi1iYWRnZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEYXRhVGFibGUgfSBmcm9tIFwiLi9jb21wb25lbnRzL3RhYmxlL2RhdGEtdGFibGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dEZpZWxkIH0gZnJvbSBcIi4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dEZpZWxkV2l0aEVycm9yIH0gZnJvbSBcIi4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQtd2l0aC1lcnJvclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSYWRpbyB9IGZyb20gXCIuL2NvbXBvbmVudHMvcmFkaW8vcmFkaW9cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hlY2tib3ggfSBmcm9tIFwiLi9jb21wb25lbnRzL2NoZWNrLWJveC9jaGVjay1ib3hcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZWxlbWVudHMvdGV4dC90ZXh0XCI7XG5leHBvcnQgeyBjb2xvcnMgfSBmcm9tIFwiLi9zdHlsZXMvdG9rZW4vY29sb3JzXCI7XG4iXSwibmFtZXMiOlsiX19hc3NpZ24iLCJPYmplY3QiLCJhc3NpZ24iLCJ0IiwicyIsImkiLCJuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwicCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5IiwiX19yZXN0IiwiZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIkNoaWxkcmVuIiwiY2xvbmVFbGVtZW50IiwiZm9yd2FyZFJlZiIsImlzVmFsaWRFbGVtZW50IiwiQ29tcG9zZXIiLCJfYSIsInJlZiIsImNoaWxkcmVuIiwiY29tcG9zZXJQcm9wcyIsImNoaWxkQXJyYXkiLCJ0b0FycmF5IiwiRXJyb3IiLCJpc1ZhbGlkQ2hpbGQiLCJjaGlsZCIsImNoaWxkUmVmIiwiZ2V0RWxlbWVudFJlZiIsIm1lcmdlZFByb3BzIiwibWVyZ2VQcm9wcyIsInByb3BzIiwiY29tcG9zZVJlZnMiLCJkaXNwbGF5TmFtZSIsImNoaWxkUHJvcHMiLCJvdmVycmlkZVByb3BzIiwiX2xvb3BfMSIsInByb3BOYW1lIiwiY29tcG9zZXJQcm9wVmFsdWUiLCJjaGlsZFByb3BWYWx1ZSIsImlzSGFuZGxlciIsInRlc3QiLCJhcmdzIiwiX2kiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImVsZW1lbnQiLCJfYiIsImNoaWxkR2V0dGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0IiwibWF5V2FybkluQ2hpbGQiLCJpc1JlYWN0V2FybmluZyIsImdldHRlciIsIm1heVdhcm4iLCJyZWZzIiwibm9kZSIsImZvckVhY2giLCJjdXJyZW50IiwianN4IiwiX2pzeCIsIkJhc2VCYWRnZSIsImFzQ2hpbGQiLCJib3JkZXJDb2xvciIsInRleHRDb2xvciIsInJhZGl1cyIsImJhY2tncm91bmRDb2xvciIsIl9jIiwic2l6ZSIsInN0eWxlIiwiY2xhc3NOYW1lIiwicmVzdFByb3BzIiwiQ29tcCIsImNvbXBvc2VkQ2xhc3NOYW1lIiwiY29uY2F0IiwiYm9yZGVyUmFkaXVzIiwianN4cyIsIl9qc3hzIiwidXNlU3RhdGUiLCJkZWZhdWx0QXZhdGFyIiwiQXZhdGFyIiwic3JjIiwiYWx0IiwiYmFkZ2VPcHRpb24iLCJpc0ltYWdlRG93bmxvYWQiLCJzZXRJc0ltYWdlRG93bmxvYWQiLCJvbkxvYWQiLCJwb3NpdGlvbiIsInJpZ2h0IiwiYm90dG9tIiwiQmFzZUJ1dHRvbiIsImRpc2FibGVkIiwiTG9hZGluZyIsInZhcmlhbnQiLCJDVEFCdXR0b24iLCJ0ZXh0IiwiX2QiLCJsb2FkaW5nIiwibGVmdEljb24iLCJyaWdodEljb24iLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiZ2FwIiwiY29sb3JzIiwiYmxhY2siLCJ3aGl0ZSIsImdyYXlGYSIsImdyYXlGNCIsImdyYXlFNCIsImdyYXlENCIsImdyYXlBMSIsImdyYXk3MSIsImdyYXk1MiIsImdyYXkzZiIsImdyYXkyNyIsImdyYXkxOCIsInB1cnBsZTM5IiwicHVycGxlNGMiLCJwdXJwbGVEZCIsInB1cnBsZUU5IiwicHVycGxlRjQiLCJwdXJwbGU0MSIsInB1cnBsZTk1IiwiYWNjZW50UmVkRGYiLCJhY2NlbnRSZWRDOCIsImFjY2VudE1hZ2VudGFCMCIsImFjY2VudEdyZWVuMjgiLCJhY2NlbnRCbHVlMDEiLCJhY2NlbnRQaW5rRWMiLCJhY2NlbnRHcmVlbjQxIiwiT3B0aW9uQmFkZ2UiLCJvcHRpb24iLCJ0b29sdGlwVGV4dCIsInRvb2x0aXBTdHlsZSIsInRvb2x0aXBQb3NpdGlvbiIsImlzVG9vbHRpcE9wZW4iLCJzZXRJc1Rvb2x0aXBPcGVuIiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIiwid2lkdGgiLCJoZWlnaHQiLCJib3JkZXJUb3AiLCJib3JkZXJCb3R0b20iLCJib3JkZXJSaWdodCIsInRvcCIsImxlZnQiLCJ0cmFuc2Zvcm0iLCJib3JkZXJMZWZ0IiwiekluZGV4IiwiY29sb3IiLCJwYWRkaW5nIiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwibWFyZ2luVG9wIiwid2hpdGVTcGFjZSIsIkljb25UZXh0QmFkZ2UiLCJpY29uIiwiSWNvblRleHRPcHRpb25CYWRnZSIsIlRhYmxlUm9vdCIsIlRhYmxlSGVhZGVyIiwianVzdGlmeSIsInJlc3QiLCJUYWJsZVJvdyIsImNsYXNzTmFtZXMiLCJUYWJsZUJvZHkiLCJUYWJsZUNlbGwiLCJIZWFkZXIiLCJCb2R5IiwiUm93IiwiQ2VsbCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwidXNlRWZmZWN0IiwiRGF0YVRhYmxlIiwicm93cyIsImNvbHVtbnMiLCJmaXhlZFJvd3NJbmRleCIsIm1hcCIsInJvdyIsImhpZGUiLCJkaXNwbGF5Um93cyIsInNldERpc3BsYXlSb3dzIiwiZmluZCIsIml0ZW0iLCJpZCIsImluZGV4IiwidmFsdWUiLCJvbkNsaWNrIiwib25DbGlja1JvdyIsImNvbHVtbiIsIm9uQ2xpY2tDZWxsIiwiTWF0aCIsInJhbmRvbSIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwiVGV4dExhYmVsIiwiSW5wdXRGaWVsZCIsInBsYWNlaG9sZGVyIiwibmFtZSIsIm9uQ2hhbmdlIiwiVGV4dEZpZWxkQ29udGV4dCIsImNvbnZlcnRFcnJvck1lc3NhZ2UiLCJjb252ZXJ0RXJyb3JTdGF0ZSIsInZhbGlkYXRpb25zIiwidmFsaWRhdGVJbnB1dCIsImZhaWxlZFZhbGlkYXRpb24iLCJ2YWxpZGF0aW9uIiwicnVsZSIsIm1lc3NhZ2UiLCJ0YXJnZXQiLCJIZWxwZXJUZXh0IiwiZXJyb3JNZXNzYWdlIiwiaXNFcnJvciIsImVycm9yQ2xhc3NOYW1lIiwiVGV4dEZpZWxkUm9vdCIsInNldElzRXJyb3IiLCJzZXRFcnJvck1lc3NhZ2UiLCJQcm92aWRlciIsIlRleHRGaWVsZCIsImhlbHBlclRleHQiLCJsYWJlbFRleHQiLCJUZXh0RmllbGRXaXRoRXJyb3IiLCJ1c2VFeHRlcm5hbFN0YXRlIiwicHJvcCIsImhhbmRsZXIiLCJkZWZhdWx0UHJvcCIsImlubmVyU3RhdGUiLCJzZXRJbm5lclN0YXRlIiwiaXNDb250cm9sbGVkQnlFeHRlcm5hbCIsInVuZGVmaW5lZCIsInNldFZhbHVlIiwiaGFuZGxlZFZhbHVlIiwic2V0dGVyIiwidmFsdWVfMSIsIlJhZGlvQnV0dG9uIiwiUmFkaW9Db250ZXh0Iiwic2VsZWN0ZWQiLCJSYWRpb0luZGljYXRvciIsInR5cGUiLCJjaGVja2VkIiwiUmFkaW9MYWJlbCIsIlJhZGlvT3B0aW9uR3JvdXAiLCJvcHRpb25zIiwiUmFkaW9Sb290IiwiZXh0ZXJuYWxPbkNoYW5nZSIsInNlbGVjdGVkSWQiLCJzZXRTZWxlY3RlZElkIiwiSW5kaWNhdG9yIiwiTGFiZWwiLCJPcHRpb25Hcm91cCIsIkJ1dHRvbiIsIlJhZGlvIiwibGFiZWwiLCJDaGVja0JveExhYmVsIiwiQ2hlY2tCb3hDb250ZXh0IiwiaHRtbEZvciIsIkNoZWNrQm94SW5wdXQiLCJ0b2dnbGVDaGVja2VkIiwiQ2hlY2tCb3hSb290IiwiZXh0ZXJuYWxDaGVja2VkIiwic2V0Q2hlY2tlZCIsInByZXYiLCJJbnB1dCIsImNoZWNrIiwiQ2hlY2tCb3giLCJpY29uU2l6ZSIsIlRleHQiLCJ3ZWlnaHQiLCJ0ZXh0QWxpZ24iLCJ0ZXh0RGVjb3JhdGlvbiIsIndvcmRCcmVhayIsImFzIiwiZGVmYXVsdCIsIkNoZWNrYm94Il0sInNvdXJjZVJvb3QiOiIifQ==
3091
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sMEdBQTBHLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE9BQU8sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE9BQU8sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1B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LEdBQUcsQ0FBQyxDQUFDTSxNQUFNLENBQUNrTSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUNsTSxNQUFNLENBQUNtTSxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQ25NLE1BQU0sQ0FBQ29NLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQ3BNLE1BQU0sQ0FBQ3FNLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQ3JNLE1BQU0sQ0FBQ2lGLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQ2pGLE1BQU0sQ0FBQzRFLEtBQUssR0FBRyxRQUFRLENBQUM1RSxNQUFNLENBQUM0RSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7SUFBRWpGLEtBQUssRUFBRTVFLFdBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTRFLEtBQUssQ0FBQztJQUFFbEQsUUFBUSxFQUFFNEU7RUFBSyxDQUFDLENBQUM7QUFDdlgsQ0FBQztBQUNELGdEQUFlNEssSUFBSTs7QUNwQjRDO0FBQ087QUFDRztBQUNLO0FBQ2E7QUFDdEI7QUFDSztBQUNvQjtBQUNsQztBQUNXO0FBQ0wiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXItc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvYmFkZ2Utc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94LXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2VsZW1lbnRzL3RleHQvdGV4dC1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmctc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8tc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGFibGUvdGFibGUtc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9mb250LmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvbm9uY2UiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL2V4dGVybmFsIG1vZHVsZSB7XCJyb290XCI6XCJqc3gtcnVudGltZVwiLFwiY29tbW9uanMyXCI6XCJyZWFjdC9qc3gtcnVudGltZVwiLFwiY29tbW9uanNcIjpcInJlYWN0L2pzeC1ydW50aW1lXCIsXCJhbWRcIjpcInJlYWN0L2pzeC1ydW50aW1lXCIsXCJtb2R1bGVcIjpcInJlYWN0L2pzeC1ydW50aW1lXCJ9Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS9leHRlcm5hbCBtb2R1bGUge1wicm9vdFwiOlwiUmVhY3RcIixcImNvbW1vbmpzMlwiOlwicmVhY3RcIixcImNvbW1vbmpzXCI6XCJyZWFjdFwiLFwiYW1kXCI6XCJyZWFjdFwiLFwibW9kdWxlXCI6XCJyZWFjdFwifSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2NvcmUvY29tcG9zZXIvaW5kZXgudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvYmFzZS1iYWRnZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLXN0eWxlLmNzcz83NjAxIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYXZhdGFyL2F2YXRhci50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLXN0eWxlLmNzcz9lOWY3Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9jb2xvci5jc3M/NjZjYSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9zdHlsZXMvdG9rZW4vZm9udC5jc3M/NzZiYiIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2J1dHRvbi9iYXNlLWJ1dHRvbi50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmctc3R5bGUuY3NzP2IzOTkiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmcudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYnV0dG9uL2N0YS1idXR0b24udHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9jb2xvcnMudHMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9iYWRnZS9vcHRpb24tYmFkZ2UudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvaWNvbi10ZXh0LWJhZGdlLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLXN0eWxlLmNzcz80YTg3Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvaWNvbi10ZXh0LW9wdGlvbi1iYWRnZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90YWJsZS90YWJsZS1zdHlsZS5jc3M/YjcyZSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RhYmxlL2Jhc2UtdGFibGUudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGFibGUvZGF0YS10YWJsZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQtc3R5bGUuY3NzPzdjYzciLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL2Jhc2UtdGV4dC1maWVsZC50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLXdpdGgtZXJyb3IudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2hlbHBlcnMvaG9va3MvdXNlRXh0ZXJuYWxTdGF0ZS50cyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3JhZGlvL2Jhc2UtcmFkaW8udHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8tc3R5bGUuY3NzP2Y1ZDkiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9yYWRpby9yYWRpby50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94LXN0eWxlLmNzcz80NmVlIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvY2hlY2stYm94L2Jhc2UtY2hlY2stYm94LnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2NoZWNrLWJveC9jaGVjay1ib3gudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvZWxlbWVudHMvdGV4dC90ZXh0LXN0eWxlLmNzcz9kODdiIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvZWxlbWVudHMvdGV4dC90ZXh0LnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5hdmF0YXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuXG4gICYgZGl2IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmIGltZyB7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cbn1cblxuLmF2YXRhciAuYXZhdGFyLnhsIHtcbiAgd2lkdGg6IDEyNHB4O1xuICBoZWlnaHQ6IDEyNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xufVxuXG4uYXZhdGFyLmwge1xuICB3aWR0aDogNzRweDtcbiAgaGVpZ2h0OiA3NHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xufVxuXG4uYXZhdGFyLm0ge1xuICB3aWR0aDogNThweDtcbiAgaGVpZ2h0OiA1OHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xufVxuXG4uYXZhdGFyLnMge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xufVxuXG5Ac3VwcG9ydHMgc2VsZWN0b3IoJikge1xuICAuYXZhdGFyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgJiBkaXYge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJiBpbWcge1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgJjp3aGVyZSgueGwpIHtcbiAgICAgIHdpZHRoOiAxMjRweDtcbiAgICAgIGhlaWdodDogMTI0cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xuICAgIH1cblxuICAgICY6d2hlcmUoLmwpIHtcbiAgICAgIHdpZHRoOiA3NHB4O1xuICAgICAgaGVpZ2h0OiA3NHB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U0ZTRlNztcbiAgICB9XG5cbiAgICAmOndoZXJlKC5tKSB7XG4gICAgICB3aWR0aDogNThweDtcbiAgICAgIGhlaWdodDogNThweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTc7XG4gICAgfVxuXG4gICAgJjp3aGVyZSgucykge1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xuICAgIH1cbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXItc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsbUJBQW1COztFQUVuQjtJQUNFLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixnQkFBZ0I7RUFDbEI7O0VBRUE7SUFDRSxpQkFBaUI7RUFDbkI7QUFDRjs7QUFFQTtFQUNFLFlBQVk7RUFDWixhQUFhO0VBQ2IseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1oseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0U7SUFDRSxrQkFBa0I7SUFDbEIsa0JBQWtCOztJQUVsQjtNQUNFLGtCQUFrQjtNQUNsQixhQUFhO01BQ2IsbUJBQW1CO01BQ25CLHVCQUF1QjtNQUN2QixnQkFBZ0I7SUFDbEI7O0lBRUE7TUFDRSxpQkFBaUI7SUFDbkI7O0lBRUE7TUFDRSxZQUFZO01BQ1osYUFBYTtNQUNiLHlCQUF5QjtJQUMzQjs7SUFFQTtNQUNFLFdBQVc7TUFDWCxZQUFZO01BQ1oseUJBQXlCO0lBQzNCOztJQUVBO01BQ0UsV0FBVztNQUNYLFlBQVk7TUFDWix5QkFBeUI7SUFDM0I7O0lBRUE7TUFDRSxXQUFXO01BQ1gsWUFBWTtNQUNaLHlCQUF5QjtJQUMzQjtFQUNGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmF2YXRhciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB3aWR0aDogZml0LWNvbnRlbnQ7XFxuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xcblxcbiAgJiBkaXYge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcblxcbiAgJiBpbWcge1xcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcXG4gIH1cXG59XFxuXFxuLmF2YXRhciAuYXZhdGFyLnhsIHtcXG4gIHdpZHRoOiAxMjRweDtcXG4gIGhlaWdodDogMTI0cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xcbn1cXG5cXG4uYXZhdGFyLmwge1xcbiAgd2lkdGg6IDc0cHg7XFxuICBoZWlnaHQ6IDc0cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xcbn1cXG5cXG4uYXZhdGFyLm0ge1xcbiAgd2lkdGg6IDU4cHg7XFxuICBoZWlnaHQ6IDU4cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xcbn1cXG5cXG4uYXZhdGFyLnMge1xcbiAgd2lkdGg6IDQwcHg7XFxuICBoZWlnaHQ6IDQwcHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xcbn1cXG5cXG5Ac3VwcG9ydHMgc2VsZWN0b3IoJikge1xcbiAgLmF2YXRhciB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xcblxcbiAgICAmIGRpdiB7XFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICB9XFxuXFxuICAgICYgaW1nIHtcXG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcXG4gICAgfVxcblxcbiAgICAmOndoZXJlKC54bCkge1xcbiAgICAgIHdpZHRoOiAxMjRweDtcXG4gICAgICBoZWlnaHQ6IDEyNHB4O1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTc7XFxuICAgIH1cXG5cXG4gICAgJjp3aGVyZSgubCkge1xcbiAgICAgIHdpZHRoOiA3NHB4O1xcbiAgICAgIGhlaWdodDogNzRweDtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU3O1xcbiAgICB9XFxuXFxuICAgICY6d2hlcmUoLm0pIHtcXG4gICAgICB3aWR0aDogNThweDtcXG4gICAgICBoZWlnaHQ6IDU4cHg7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U0ZTRlNztcXG4gICAgfVxcblxcbiAgICAmOndoZXJlKC5zKSB7XFxuICAgICAgd2lkdGg6IDQwcHg7XFxuICAgICAgaGVpZ2h0OiA0MHB4O1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTc7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS1iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuXG4gIGJvcmRlci1yYWRpdXM6IDQwcHg7XG5cbiAgJjp3aGVyZSgubCkge1xuICAgIGhlaWdodDogNDhweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cblxuICAmOndoZXJlKC5tKSB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuXG4gICY6d2hlcmUoLnIpIHtcbiAgICBoZWlnaHQ6IDM2cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG5cbiAgJjp3aGVyZSgucykge1xuICAgIGhlaWdodDogMzJweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgfVxuXG4gICY6d2hlcmUoLnNtKSB7XG4gICAgaGVpZ2h0OiAyOHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIH1cblxuICAmW2NsYXNzKj1cImJhY2tncm91bmQtXCJdIHtcbiAgICAmLmJhY2tncm91bmQtYmxhY2sge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XG4gICAgfVxuICAgICYuYmFja2dyb3VuZC13aGl0ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgICB9XG4gICAgJi5iYWNrZ3JvdW5kLWdyYXlGYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xuICAgIH1cbiAgICAmLmJhY2tncm91bmQtcHVycGxlMzkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgICB9XG4gIH1cblxuICAmW2NsYXNzKj1cInRleHQtXCJdIHtcbiAgICAmLnRleHQtYmxhY2sge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xuICAgIH1cbiAgICAmLnRleHQtd2hpdGUge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICAgIH1cbiAgICAmLnRleHQtZ3JheUZhIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xuICAgIH1cbiAgICAmLnRleHQtcHVycGxlMzkge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgfVxuICB9XG5cbiAgJltjbGFzcyo9XCJib3JkZXItXCJdIHtcbiAgICAmLmJvcmRlci1ibGFjayB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgICB9XG4gICAgJi5ib3JkZXItd2hpdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgfVxuICAgICYuYm9yZGVyLWdyYXlGYSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xuICAgIH1cbiAgICAmLmJvcmRlci1ncmF5RTQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcbiAgICB9XG4gICAgJi5ib3JkZXItcHVycGxlMzkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgICB9XG4gICAgJi5ib3JkZXItZ3JheUQ0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XG4gICAgfVxuICB9XG5cbiAgJi5pY29uLXRleHQtb3B0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgcGFkZGluZzogMCAyMHB4O1xuICB9XG5cbiAgJi5pY29uLXRleHQtb3B0aW9uID4gc3BhbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvYmFkZ2UvYmFkZ2Utc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLFFBQVE7O0VBRVIsbUJBQW1COztFQUVuQjtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyx3Q0FBd0M7RUFDMUM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDOztFQUVBO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLHdDQUF3QztFQUMxQzs7RUFFQTtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyxvQ0FBb0M7RUFDdEM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsb0NBQW9DO0VBQ3RDOztFQUVBO0lBQ0U7TUFDRSw0Q0FBNEM7SUFDOUM7SUFDQTtNQUNFLDRDQUE0QztJQUM5QztJQUNBO01BQ0UsOENBQThDO0lBQ2hEO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7RUFDRjs7RUFFQTtJQUNFO01BQ0UsaUNBQWlDO0lBQ25DO0lBQ0E7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0VBQ0Y7O0VBRUE7SUFDRTtNQUNFLDRDQUE0QztJQUM5QztJQUNBO01BQ0UsNENBQTRDO0lBQzlDO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtJQUNBO01BQ0UsOENBQThDO0lBQ2hEO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7RUFDRjs7RUFFQTtJQUNFLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsOEJBQThCOztJQUU5QixlQUFlO0VBQ2pCOztFQUVBO0lBQ0UsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixRQUFRO0VBQ1Y7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS1iYWRnZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgZ2FwOiA0cHg7XFxuXFxuICBib3JkZXItcmFkaXVzOiA0MHB4O1xcblxcbiAgJjp3aGVyZSgubCkge1xcbiAgICBoZWlnaHQ6IDQ4cHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLm0pIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuXFxuICAmOndoZXJlKC5yKSB7XFxuICAgIGhlaWdodDogMzZweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgucykge1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSguc20pIHtcXG4gICAgaGVpZ2h0OiAyOHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcImJhY2tncm91bmQtXFxcIl0ge1xcbiAgICAmLmJhY2tncm91bmQtYmxhY2sge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xcbiAgICB9XFxuICAgICYuYmFja2dyb3VuZC13aGl0ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi5iYWNrZ3JvdW5kLWdyYXlGYSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcXG4gICAgfVxcbiAgICAmLmJhY2tncm91bmQtcHVycGxlMzkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ0ZXh0LVxcXCJdIHtcXG4gICAgJi50ZXh0LWJsYWNrIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XFxuICAgIH1cXG4gICAgJi50ZXh0LXdoaXRlIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi50ZXh0LWdyYXlGYSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XFxuICAgIH1cXG4gICAgJi50ZXh0LXB1cnBsZTM5IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcImJvcmRlci1cXFwiXSB7XFxuICAgICYuYm9yZGVyLWJsYWNrIHtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci13aGl0ZSB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi5ib3JkZXItZ3JheUZhIHtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xcbiAgICB9XFxuICAgICYuYm9yZGVyLWdyYXlFNCB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci1wdXJwbGUzOSB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci1ncmF5RDQge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gICYuaWNvbi10ZXh0LW9wdGlvbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG5cXG4gICAgcGFkZGluZzogMCAyMHB4O1xcbiAgfVxcblxcbiAgJi5pY29uLXRleHQtb3B0aW9uID4gc3BhbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogNHB4O1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5iYXNlLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jdGEtYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICY6d2hlcmUoLnByaW1hcnkpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgfVxuICAmOndoZXJlKC5zZWNvbmRhcnkpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZjQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLmdob3N0KSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgfVxuICAmOndoZXJlKC53aGl0ZSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLndhcm5pbmcpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWRmKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gIH1cbiAgJjp3aGVyZSguZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgfVxuXG4gICY6d2hlcmUoLnhsKSB7XG4gICAgaGVpZ2h0OiA2MHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLmwpIHtcbiAgICBoZWlnaHQ6IDU0cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLnIpIHtcbiAgICBoZWlnaHQ6IDQ4cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLm0pIHtcbiAgICBoZWlnaHQ6IDUwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLnMpIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cbiAgJjp3aGVyZSgueHMpIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICAmOndoZXJlKC5wcmltYXJ5KSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtNGMpO1xuICAgIH1cbiAgICAmOndoZXJlKC5zZWNvbmRhcnkpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1lOSk7XG4gICAgfVxuICAgICY6d2hlcmUoLmdob3N0KSB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgfVxuICAgICY6d2hlcmUoLndoaXRlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZjQpO1xuICAgIH1cbiAgICAmOndoZXJlKC53YXJuaW5nKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWM4KTtcbiAgICB9XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxrQkFBa0I7O0VBRWxCO0lBQ0UsOENBQThDO0lBQzlDLGlDQUFpQztFQUNuQztFQUNBO0lBQ0UsOENBQThDO0lBQzlDLG1DQUFtQztFQUNyQztFQUNBO0lBQ0UsNENBQTRDO0lBQzVDLDhDQUE4QztJQUM5QyxtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDRDQUE0QztJQUM1QyxtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDRDQUE0QztJQUM1QyxpQ0FBaUM7RUFDbkM7RUFDQTtJQUNFLDhDQUE4QztJQUM5QyxpQ0FBaUM7RUFDbkM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLGdDQUFnQztJQUNoQyxvQ0FBb0M7SUFDcEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsd0NBQXdDO0VBQzFDOztFQUVBO0lBQ0U7TUFDRSw4Q0FBOEM7SUFDaEQ7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtJQUNBO01BQ0UsMENBQTBDO0lBQzVDO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7SUFDQTtNQUNFLDRDQUE0QztJQUM5QztFQUNGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtYnV0dG9uIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBnYXA6IDEwcHg7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICBib3JkZXI6IG5vbmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5jdGEtYnV0dG9uIHtcXG4gIGJvcmRlci1yYWRpdXM6IDZweDtcXG5cXG4gICY6d2hlcmUoLnByaW1hcnkpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgfVxcbiAgJjp3aGVyZSguc2Vjb25kYXJ5KSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1mNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSguZ2hvc3QpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSgud2hpdGUpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSgud2FybmluZykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWRmKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgfVxcbiAgJjp3aGVyZSguZGlzYWJsZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgueGwpIHtcXG4gICAgaGVpZ2h0OiA2MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLmwpIHtcXG4gICAgaGVpZ2h0OiA1NHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC5yKSB7XFxuICAgIGhlaWdodDogNDhweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcbiAgJjp3aGVyZSgubSkge1xcbiAgICBoZWlnaHQ6IDUwcHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLnMpIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLnhzKSB7XFxuICAgIGhlaWdodDogMzBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuXFxuICAmOmhvdmVyIHtcXG4gICAgJjp3aGVyZSgucHJpbWFyeSkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS00Yyk7XFxuICAgIH1cXG4gICAgJjp3aGVyZSguc2Vjb25kYXJ5KSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLWU5KTtcXG4gICAgfVxcbiAgICAmOndoZXJlKC5naG9zdCkge1xcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgICAmOndoZXJlKC53aGl0ZSkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mNCk7XFxuICAgIH1cXG4gICAgJjp3aGVyZSgud2FybmluZykge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1yZWQtYzgpO1xcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtY2hlY2stYm94IHtcbiAgJi5sYWJlbCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgfVxufVxuXG4uY2hlY2stYm94IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xufVxuXG4uY2hlY2stYm94LWlucHV0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuXG4gICY6d2hlcmUoLnVuY2hlY2tlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIH1cblxuICAmOndoZXJlKC5jaGVja2VkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgfVxuXG4gICY6d2hlcmUoLmRpc2FibGVkKSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94LXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsOEJBQThCO0lBQzlCLHNDQUFzQztJQUN0QyxpQ0FBaUM7RUFDbkM7QUFDRjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsU0FBUztBQUNYOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0RBQWdEOztFQUVoRDtJQUNFLHNCQUFzQjtFQUN4Qjs7RUFFQTtJQUNFLDhDQUE4QztFQUNoRDs7RUFFQTtJQUNFLFlBQVk7SUFDWiw4Q0FBOEM7RUFDaEQ7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS1jaGVjay1ib3gge1xcbiAgJi5sYWJlbCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gIH1cXG59XFxuXFxuLmNoZWNrLWJveCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGdhcDogMTBweDtcXG59XFxuXFxuLmNoZWNrLWJveC1pbnB1dCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgd2lkdGg6IDI0cHg7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuXFxuICAmOndoZXJlKC51bmNoZWNrZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLmNoZWNrZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLmRpc2FibGVkKSB7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS10ZXh0IHtcbiAgJjp3aGVyZSgueHNtKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcbiAgfVxuICAmOndoZXJlKC5zbSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICB9XG4gICY6d2hlcmUoLmJhc2UpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG4gIH1cbiAgJjp3aGVyZSgubGcpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWxnKTtcbiAgfVxuICAmOndoZXJlKC54bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteGwpO1xuICB9XG4gICY6d2hlcmUoLnQtMnhsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMnhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtMnhsKTtcbiAgfVxuICAmOndoZXJlKC50LTN4bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTN4bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTN4bCk7XG4gIH1cbiAgJjp3aGVyZSgudC00eGwpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS00eGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC00eGwpO1xuICB9XG4gICY6d2hlcmUoLnQtNXhsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNXhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtNXhsKTtcbiAgfVxuICAmOndoZXJlKC50LTZ4bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTZ4bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTZ4bCk7XG4gIH1cblxuICAmOndoZXJlKC5yZWd1bGFyKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuICB9XG4gICY6d2hlcmUoLm1lZGl1bSkge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICB9XG4gICY6d2hlcmUoLnNlbWlib2xkKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuICAmOndoZXJlKC5ib2xkKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLmV4dHJhYm9sZCkge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1leHRyYWJvbGQpO1xuICB9XG5cbiAgJltjbGFzcyo9XCJ0ZXh0QWxpZ24tXCJdIHtcbiAgICAmLnRleHRBbGlnbi1sZWZ0IHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICAgICYudGV4dEFsaWduLWNlbnRlciB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgJltjbGFzcyo9XCJ0ZXh0RGVjb3JhdGlvbi1cIl0ge1xuICAgICYudGV4dERlY29yYXRpb24tdW5kZXJsaW5lIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLW5vbmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLWxpbmVUaHJvdWdoIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLW92ZXJsaW5lIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogb3ZlcmxpbmU7XG4gICAgfVxuICAgICYudGV4dERlY29yYXRpb24tYmxpbmsge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBibGluaztcbiAgICB9XG4gIH1cblxuICAmW2NsYXNzKj1cIndvcmRCcmVhay1cIl0ge1xuICAgICYud29yZEJyZWFrLW5vcm1hbCB7XG4gICAgICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWJyZWFrQWxsIHtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICB9XG4gICAgJi53b3JkQnJlYWstYnJlYWtXb3JkIHtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWtlZXBBbGwge1xuICAgICAgd29yZC1icmVhazoga2VlcC1hbGw7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWtlZXBXb3JkIHtcbiAgICAgIHdvcmQtYnJlYWs6IGtlZXAtd29yZDtcbiAgICB9XG4gICAgJi53b3JkQnJlYWstYnJlYWtTcGFjZXMge1xuICAgICAgd29yZC1icmVhazogYnJlYWstc3BhY2VzO1xuICAgIH1cbiAgICAmLndvcmRCcmVhay1hbGwge1xuICAgICAgd29yZC1icmVhazogYWxsO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwid2hpdGVTcGFjZS1cIl0ge1xuICAgICYud2hpdGVTcGFjZS1ub3JtYWwge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG4gICAgJi53aGl0ZVNwYWNlLW5vd3JhcCB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAmLndoaXRlU3BhY2UtcHJlIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgfVxuICAgICYud2hpdGVTcGFjZS1wcmVMaW5lIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICB9XG4gICAgJi53aGl0ZVNwYWNlLXByZVdyYXAge1xuICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwiY29sb3ItXCJdIHtcbiAgICAmLmNvbG9yLWJsYWNrIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgICB9XG4gICAgJi5jb2xvci13aGl0ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheUZhIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXlGNCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0KTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5RTQge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheUQ0IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXlBMSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWExKTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5NzEge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS03MSk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheTUyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktNTIpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXkzZiB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmKTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5Mjcge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS0yNyk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheTE4IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktMTgpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZTM5IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZTRjIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtNGMpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZURkIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZGQpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZUU5IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZTkpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZUY0IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZjQpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZTQxIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtNDEpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZTk1IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtOTUpO1xuICAgIH1cbiAgICAmLmNvbG9yLWFjY2VudFJlZERmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWRmKTtcbiAgICB9XG4gICAgJi5jb2xvci1hY2NlbnRSZWRDOCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LXJlZC1jOCk7XG4gICAgfVxuICAgICYuY29sb3ItYWNjZW50TWFnZW50YUIwIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtbWFnZW50YS1iMCk7XG4gICAgfVxuICAgICYuY29sb3ItYWNjZW50R3JlZW4yOCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LWdyZWVuLTI4KTtcbiAgICB9XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9lbGVtZW50cy90ZXh0L3RleHQtc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSw4QkFBOEI7SUFDOUIsa0NBQWtDO0VBQ3BDO0VBQ0E7SUFDRSxnQ0FBZ0M7SUFDaEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSw4QkFBOEI7SUFDOUIsa0NBQWtDO0VBQ3BDO0VBQ0E7SUFDRSw4QkFBOEI7SUFDOUIsa0NBQWtDO0VBQ3BDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDOztFQUVBO0lBQ0UsdUNBQXVDO0VBQ3pDO0VBQ0E7SUFDRSxzQ0FBc0M7RUFDeEM7RUFDQTtJQUNFLHdDQUF3QztFQUMxQztFQUNBO0lBQ0Usb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSx5Q0FBeUM7RUFDM0M7O0VBRUE7SUFDRTtNQUNFLGdCQUFnQjtJQUNsQjtJQUNBO01BQ0Usa0JBQWtCO0lBQ3BCO0VBQ0Y7O0VBRUE7SUFDRTtNQUNFLDBCQUEwQjtJQUM1QjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7TUFDRSw2QkFBNkI7SUFDL0I7SUFDQTtNQUNFLHlCQUF5QjtJQUMzQjtJQUNBO01BQ0Usc0JBQXNCO0lBQ3hCO0VBQ0Y7O0VBRUE7SUFDRTtNQUNFLGtCQUFrQjtJQUNwQjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7TUFDRSxzQkFBc0I7SUFDeEI7SUFDQTtNQUNFLG9CQUFvQjtJQUN0QjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7TUFDRSx3QkFBd0I7SUFDMUI7SUFDQTtNQUNFLGVBQWU7SUFDakI7RUFDRjs7RUFFQTtJQUNFO01BQ0UsbUJBQW1CO0lBQ3JCO0lBQ0E7TUFDRSxtQkFBbUI7SUFDckI7SUFDQTtNQUNFLGdCQUFnQjtJQUNsQjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7TUFDRSxxQkFBcUI7SUFDdkI7RUFDRjs7RUFFQTtJQUNFO01BQ0UsaUNBQWlDO0lBQ25DO0lBQ0E7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLGlDQUFpQztJQUNuQztJQUNBO01BQ0UscUNBQXFDO0lBQ3ZDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7RUFDRjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5iYXNlLXRleHQge1xcbiAgJjp3aGVyZSgueHNtKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhzbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xcbiAgfVxcbiAgJjp3aGVyZSguc20pIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgfVxcbiAgJjp3aGVyZSguYmFzZSkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xcbiAgfVxcbiAgJjp3aGVyZSgubGcpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbGcpO1xcbiAgfVxcbiAgJjp3aGVyZSgueGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteGwpO1xcbiAgfVxcbiAgJjp3aGVyZSgudC0yeGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMnhsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTJ4bCk7XFxuICB9XFxuICAmOndoZXJlKC50LTN4bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0zeGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtM3hsKTtcXG4gIH1cXG4gICY6d2hlcmUoLnQtNHhsKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTR4bCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC00eGwpO1xcbiAgfVxcbiAgJjp3aGVyZSgudC01eGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNXhsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTV4bCk7XFxuICB9XFxuICAmOndoZXJlKC50LTZ4bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS02eGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtNnhsKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnJlZ3VsYXIpIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xcbiAgfVxcbiAgJjp3aGVyZSgubWVkaXVtKSB7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xcbiAgfVxcbiAgJjp3aGVyZSguc2VtaWJvbGQpIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLmJvbGQpIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcbiAgJjp3aGVyZSguZXh0cmFib2xkKSB7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1leHRyYWJvbGQpO1xcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcInRleHRBbGlnbi1cXFwiXSB7XFxuICAgICYudGV4dEFsaWduLWxlZnQge1xcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgIH1cXG4gICAgJi50ZXh0QWxpZ24tY2VudGVyIHtcXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ0ZXh0RGVjb3JhdGlvbi1cXFwiXSB7XFxuICAgICYudGV4dERlY29yYXRpb24tdW5kZXJsaW5lIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG4gICAgfVxcbiAgICAmLnRleHREZWNvcmF0aW9uLW5vbmUge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgfVxcbiAgICAmLnRleHREZWNvcmF0aW9uLWxpbmVUaHJvdWdoIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcXG4gICAgfVxcbiAgICAmLnRleHREZWNvcmF0aW9uLW92ZXJsaW5lIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG92ZXJsaW5lO1xcbiAgICB9XFxuICAgICYudGV4dERlY29yYXRpb24tYmxpbmsge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogYmxpbms7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ3b3JkQnJlYWstXFxcIl0ge1xcbiAgICAmLndvcmRCcmVhay1ub3JtYWwge1xcbiAgICAgIHdvcmQtYnJlYWs6IG5vcm1hbDtcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1icmVha0FsbCB7XFxuICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWJyZWFrV29yZCB7XFxuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1rZWVwQWxsIHtcXG4gICAgICB3b3JkLWJyZWFrOiBrZWVwLWFsbDtcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1rZWVwV29yZCB7XFxuICAgICAgd29yZC1icmVhazoga2VlcC13b3JkO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWJyZWFrU3BhY2VzIHtcXG4gICAgICB3b3JkLWJyZWFrOiBicmVhay1zcGFjZXM7XFxuICAgIH1cXG4gICAgJi53b3JkQnJlYWstYWxsIHtcXG4gICAgICB3b3JkLWJyZWFrOiBhbGw7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ3aGl0ZVNwYWNlLVxcXCJdIHtcXG4gICAgJi53aGl0ZVNwYWNlLW5vcm1hbCB7XFxuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcXG4gICAgfVxcbiAgICAmLndoaXRlU3BhY2Utbm93cmFwIHtcXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICB9XFxuICAgICYud2hpdGVTcGFjZS1wcmUge1xcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmU7XFxuICAgIH1cXG4gICAgJi53aGl0ZVNwYWNlLXByZUxpbmUge1xcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcXG4gICAgfVxcbiAgICAmLndoaXRlU3BhY2UtcHJlV3JhcCB7XFxuICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xcbiAgICB9XFxuICB9XFxuXFxuICAmW2NsYXNzKj1cXFwiY29sb3ItXFxcIl0ge1xcbiAgICAmLmNvbG9yLWJsYWNrIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XFxuICAgIH1cXG4gICAgJi5jb2xvci13aGl0ZSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheUZhIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXlGNCB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mNCk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5RTQge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheUQ0IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXlBMSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1hMSk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5NzEge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktNzEpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheTUyIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTUyKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXkzZiB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS0zZik7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5Mjcge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktMjcpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheTE4IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTE4KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZTM5IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZTRjIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTRjKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZURkIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLWRkKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZUU5IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLWU5KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZUY0IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLWY0KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZTQxIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTQxKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZTk1IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTk1KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWFjY2VudFJlZERmIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LXJlZC1kZik7XFxuICAgIH1cXG4gICAgJi5jb2xvci1hY2NlbnRSZWRDOCB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1yZWQtYzgpO1xcbiAgICB9XFxuICAgICYuY29sb3ItYWNjZW50TWFnZW50YUIwIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LW1hZ2VudGEtYjApO1xcbiAgICB9XFxuICAgICYuY29sb3ItYWNjZW50R3JlZW4yOCB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1ncmVlbi0yOCk7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuY29tcG9uZW50LWxvYWRpbmctY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1yaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmcge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXI6IDNweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IGxkcy1yaW5nIDEuMnMgY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC41LCAxKSBpbmZpbml0ZTtcblxuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXG4gICYuZGFyayB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50XG4gICAgICB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDEpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC40NXM7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjNzO1xufVxuXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDMpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNXM7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoNCkge1xuICBhbmltYXRpb24tZGVsYXk6IDBzO1xufVxuXG5Aa2V5ZnJhbWVzIGxkcy1yaW5nIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmctc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsYUFBYTtFQUNiLFdBQVc7RUFDWCxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0Usc0JBQXNCO0VBQ3RCLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLDhEQUE4RDs7RUFFOUQsNEVBQTRFOztFQUU1RTtJQUNFO2lCQUNhO0VBQ2Y7QUFDRjs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0VBQ0E7SUFDRSx5QkFBeUI7RUFDM0I7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuY29tcG9uZW50LWxvYWRpbmctY29udGFpbmVyIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXJpbmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDIwcHg7XFxuICBoZWlnaHQ6IDIwcHg7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZyB7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGJvcmRlcjogM3B4IHNvbGlkO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYW5pbWF0aW9uOiBsZHMtcmluZyAxLjJzIGN1YmljLWJlemllcigwLjUsIDAsIDAuNSwgMSkgaW5maW5pdGU7XFxuXFxuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xcblxcbiAgJi5kYXJrIHtcXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50XFxuICAgICAgdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMSkge1xcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC40NXM7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMikge1xcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4zcztcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCgzKSB7XFxuICBhbmltYXRpb24tZGVsYXk6IC0wLjE1cztcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCg0KSB7XFxuICBhbmltYXRpb24tZGVsYXk6IDBzO1xcbn1cXG5cXG5Aa2V5ZnJhbWVzIGxkcy1yaW5nIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAucmFkaW8ge1xuICAmOndoZXJlKC5yYWRpby1ncm91cCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG4gIH1cbiAgJjp3aGVyZSgucmFkaW8tYnV0dG9uKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcbiAgfVxuICAmOndoZXJlKC5yYWRpby1pbmRpY2F0b3IpIHtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLnJhZGlvLWxhYmVsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixTQUFTO0VBQ1g7RUFDQTtJQUNFLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLFdBQVc7SUFDWCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLDhDQUE4QztFQUNoRDtFQUNBO0lBQ0UsVUFBVTtJQUNWLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsOENBQThDO0VBQ2hEO0VBQ0E7SUFDRSw4QkFBOEI7SUFDOUIsc0NBQXNDO0lBQ3RDLGlDQUFpQztFQUNuQztBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5yYWRpbyB7XFxuICAmOndoZXJlKC5yYWRpby1ncm91cCkge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBnYXA6IDE2cHg7XFxuICB9XFxuICAmOndoZXJlKC5yYWRpby1idXR0b24pIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIHdpZHRoOiAxOHB4O1xcbiAgICBoZWlnaHQ6IDE4cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gIH1cXG4gICY6d2hlcmUoLnJhZGlvLWluZGljYXRvcikge1xcbiAgICB3aWR0aDogOHB4O1xcbiAgICBoZWlnaHQ6IDhweDtcXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSgucmFkaW8tbGFiZWwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5iYXNlLXRhYmxlIHtcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmLnRhYmxlLXJvb3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIH1cblxuICAudGFibGUtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmOndoZXJlKC5jZW50ZXIpIHtcbiAgICAgIC50YWJsZS1jZWxsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgICAmOndoZXJlKC5zdGFydCkge1xuICAgICAgLnRhYmxlLWNlbGwge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgICAmOndoZXJlKC5lbmQpIHtcbiAgICAgIC50YWJsZS1jZWxsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYmxlLWJvZHkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnRhYmxlLXJvdyB7XG4gICAgJi5ob3ZlcmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgfVxuICB9XG5cbiAgLnRhYmxlLWNlbGwge1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICB9XG59XG5cbi5kYXRhLXRhYmxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6d2hlcmUoLnRhYmxlLWhlYWRlcikge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgei1pbmRleDogMjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNztcbiAgICBoZWlnaHQ6IDg1cHg7XG5cbiAgICAudGFibGUtcm93IHtcbiAgICAgIHBhZGRpbmc6IDEycHggMDtcbiAgICB9XG4gIH1cblxuICAmOndoZXJlKC50YWJsZS1yb3cpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTc7XG4gIH1cblxuICAmOndoZXJlKC50YWJsZS1jZWxsKSB7XG4gIH1cblxuICAuZml4ZWQtcm93cyB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIC5jb21tb24tcm93IHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIC5maXhlZC1yb3dzLFxuICAgICAgJiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvdGFibGUvdGFibGUtc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7O0VBRUE7SUFDRSxXQUFXO0lBQ1gseUJBQXlCO0VBQzNCOztFQUVBO0lBQ0UsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixXQUFXOztJQUVYO01BQ0U7UUFDRSxrQkFBa0I7TUFDcEI7SUFDRjtJQUNBO01BQ0U7UUFDRSxnQkFBZ0I7TUFDbEI7SUFDRjtJQUNBO01BQ0U7UUFDRSxpQkFBaUI7TUFDbkI7SUFDRjtFQUNGOztFQUVBO0lBQ0UsV0FBVztFQUNiOztFQUVBO0lBQ0U7TUFDRSx5QkFBeUI7SUFDM0I7RUFDRjs7RUFFQTtJQUNFLGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsWUFBWTtFQUNkO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBa0I7O0VBRWxCO0lBQ0UsZ0JBQWdCO0lBQ2hCLE1BQU07SUFDTixzQkFBc0I7SUFDdEIsVUFBVTtJQUNWLGdDQUFnQztJQUNoQyxZQUFZOztJQUVaO01BQ0UsZUFBZTtJQUNqQjtFQUNGOztFQUVBO0lBQ0Usa0JBQWtCO0lBQ2xCLGdDQUFnQztFQUNsQzs7RUFFQTtFQUNBOztFQUVBO0lBQ0UsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCxzQkFBc0I7SUFDdEIsVUFBVTtFQUNaOztFQUVBO0lBQ0U7TUFDRTs7UUFFRSx5QkFBeUI7TUFDM0I7SUFDRjtFQUNGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtdGFibGUge1xcbiAgLmhpZGUge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcblxcbiAgJi50YWJsZS1yb290IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XFxuICB9XFxuXFxuICAudGFibGUtaGVhZGVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgd2lkdGg6IDEwMCU7XFxuXFxuICAgICY6d2hlcmUoLmNlbnRlcikge1xcbiAgICAgIC50YWJsZS1jZWxsIHtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgICB9XFxuICAgIH1cXG4gICAgJjp3aGVyZSguc3RhcnQpIHtcXG4gICAgICAudGFibGUtY2VsbCB7XFxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICAmOndoZXJlKC5lbmQpIHtcXG4gICAgICAudGFibGUtY2VsbCB7XFxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIC50YWJsZS1ib2R5IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuXFxuICAudGFibGUtcm93IHtcXG4gICAgJi5ob3ZlcmVkIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xcbiAgICB9XFxuICB9XFxuXFxuICAudGFibGUtY2VsbCB7XFxuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBoZWlnaHQ6IDYwcHg7XFxuICB9XFxufVxcblxcbi5kYXRhLXRhYmxlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICY6d2hlcmUoLnRhYmxlLWhlYWRlcikge1xcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xcbiAgICB0b3A6IDA7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgIHotaW5kZXg6IDI7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU3O1xcbiAgICBoZWlnaHQ6IDg1cHg7XFxuXFxuICAgIC50YWJsZS1yb3cge1xcbiAgICAgIHBhZGRpbmc6IDEycHggMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgJjp3aGVyZSgudGFibGUtcm93KSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTc7XFxuICB9XFxuXFxuICAmOndoZXJlKC50YWJsZS1jZWxsKSB7XFxuICB9XFxuXFxuICAuZml4ZWQtcm93cyB7XFxuICAgIHBvc2l0aW9uOiBzdGlja3k7XFxuICAgIGxlZnQ6IDA7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgIHotaW5kZXg6IDE7XFxuICB9XFxuXFxuICAuY29tbW9uLXJvdyB7XFxuICAgICY6aG92ZXIge1xcbiAgICAgIC5maXhlZC1yb3dzLFxcbiAgICAgICYge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS10ZXh0LWZpZWxkIHtcbiAgJjp3aGVyZSgudGV4dC1maWVsZC1yb290KSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLnRleHQtZmllbGQge1xuICAmLmxhYmVsIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG5cbiAgJi5pbnB1dC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMjJweDtcbiAgICBwYWRkaW5nOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIH1cblxuICAmLmlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcblxuICAgIDo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1hMSk7XG4gICAgfVxuICB9XG5cbiAgJi5oZWxwZXItdGV4dCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG5cbiAgICAmLmVycm9yIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWRmKTtcbiAgICB9XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQtc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSxXQUFXO0VBQ2I7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsZ0NBQWdDO0lBQ2hDLG9DQUFvQztJQUNwQyxvQ0FBb0M7RUFDdEM7O0VBRUE7SUFDRSxhQUFhO0lBQ2IsOEJBQThCO0lBQzlCLG1CQUFtQjtJQUNuQixZQUFZO0lBQ1osYUFBYTtJQUNiLDhDQUE4QztJQUM5QyxrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLGtCQUFrQjtFQUNwQjs7RUFFQTtJQUNFLFdBQVc7SUFDWCxZQUFZO0lBQ1osYUFBYTtJQUNiLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsc0NBQXNDOztJQUV0QztNQUNFLG1DQUFtQztJQUNyQztFQUNGOztFQUVBO0lBQ0UsOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyxzQ0FBc0M7O0lBRXRDO01BQ0UsaUNBQWlDO0lBQ25DO0VBQ0Y7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS10ZXh0LWZpZWxkIHtcXG4gICY6d2hlcmUoLnRleHQtZmllbGQtcm9vdCkge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG59XFxuXFxuLnRleHQtZmllbGQge1xcbiAgJi5sYWJlbCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWJhc2UpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG5cXG4gICYuaW5wdXQtd3JhcHBlciB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgaGVpZ2h0OiAyMnB4O1xcbiAgICBwYWRkaW5nOiAxNHB4O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgIG1hcmdpbi10b3A6IDhweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbiAgfVxcblxcbiAgJi5pbnB1dCB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuXFxuICAgIDo6cGxhY2Vob2xkZXIge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktYTEpO1xcbiAgICB9XFxuICB9XFxuXFxuICAmLmhlbHBlci10ZXh0IHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcXG5cXG4gICAgJi5lcnJvciB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1yZWQtZGYpO1xcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLm51cmktdGhlbWUge1xuICAtLWNvbG9yLXByaW1hcnktYmxhY2s6ICMwMDAwMDA7XG4gIC0tY29sb3ItcHJpbWFyeS13aGl0ZTogI2ZmZmZmZjtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZmE6ICNmYWZhZmE7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0OiAjZjRmNGY1O1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS1lNDogI2U0ZTRlNztcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZDQ6ICNkNGQ0ZDg7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWExOiAjYTFhMWFhO1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS03MTogIzcxNzE3YTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktNTI6ICM1MjUyNWI7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmOiAjM2YzZjQ2O1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS0yNzogIzI3MjcyYTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktMTg6ICMxODE4MWI7XG5cbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtMzk6ICMzOTFkNWQ7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTRjOiAjNGMyNzdjO1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1kZDogI2RkZDFmMDtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZTk6ICNlOWUwZjU7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWY0OiAjZjRlZmZhO1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS00MTogIzRjMWQ4ODtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtOTU6ICM5NTdlYjQ7XG5cbiAgLS1jb2xvci1hY2NlbnQtcmVkLWRmOiAjZGY1MzVjO1xuICAtLWNvbG9yLWFjY2VudC1yZWQtYzg6ICNjODQyNGI7XG4gIC0tY29sb3ItYWNjZW50LW1hZ2VudGEtYjA6ICNiMDJlNGM7XG4gIC0tY29sb3ItYWNjZW50LWdyZWVuLTI4OiAjMjg5YTNhO1xuICAtLWNvbG9yLWFjY2VudC1ibHVlLTAxOiAjMDFlY2UxO1xuICAtLWNvbG9yLWFjY2VudC1waW5rLWVjOiAjZWM1Y2VmO1xuICAtLWNvbG9yLWFjY2VudC1ncmVlbi00MTogIyNlYzVjZWY7XG5cbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZTQ6ICNlNGU0ZTc7XG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWY3OiAjZjdmN2Y4O1xuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1mZjogI2ZmZmZmZjtcblxuICAtLWNvbG9yLWV0Yy1ob3Zlci1lZTogI2VlZWVlZTtcbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLDhCQUE4QjtFQUM5Qiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDOztFQUVoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7O0VBRWhDLDhCQUE4QjtFQUM5Qiw4QkFBOEI7RUFDOUIsa0NBQWtDO0VBQ2xDLGdDQUFnQztFQUNoQywrQkFBK0I7RUFDL0IsK0JBQStCO0VBQy9CLGlDQUFpQzs7RUFFakMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7O0VBRWhDLDZCQUE2QjtBQUMvQlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIubnVyaS10aGVtZSB7XFxuICAtLWNvbG9yLXByaW1hcnktYmxhY2s6ICMwMDAwMDA7XFxuICAtLWNvbG9yLXByaW1hcnktd2hpdGU6ICNmZmZmZmY7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1mYTogI2ZhZmFmYTtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0OiAjZjRmNGY1O1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZTQ6ICNlNGU0ZTc7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1kNDogI2Q0ZDRkODtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWExOiAjYTFhMWFhO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktNzE6ICM3MTcxN2E7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS01MjogIzUyNTI1YjtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmOiAjM2YzZjQ2O1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktMjc6ICMyNzI3MmE7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS0xODogIzE4MTgxYjtcXG5cXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTM5OiAjMzkxZDVkO1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtNGM6ICM0YzI3N2M7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1kZDogI2RkZDFmMDtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWU5OiAjZTllMGY1O1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZjQ6ICNmNGVmZmE7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS00MTogIzRjMWQ4ODtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTk1OiAjOTU3ZWI0O1xcblxcbiAgLS1jb2xvci1hY2NlbnQtcmVkLWRmOiAjZGY1MzVjO1xcbiAgLS1jb2xvci1hY2NlbnQtcmVkLWM4OiAjYzg0MjRiO1xcbiAgLS1jb2xvci1hY2NlbnQtbWFnZW50YS1iMDogI2IwMmU0YztcXG4gIC0tY29sb3ItYWNjZW50LWdyZWVuLTI4OiAjMjg5YTNhO1xcbiAgLS1jb2xvci1hY2NlbnQtYmx1ZS0wMTogIzAxZWNlMTtcXG4gIC0tY29sb3ItYWNjZW50LXBpbmstZWM6ICNlYzVjZWY7XFxuICAtLWNvbG9yLWFjY2VudC1ncmVlbi00MTogIyNlYzVjZWY7XFxuXFxuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1lNDogI2U0ZTRlNztcXG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWY3OiAjZjdmN2Y4O1xcbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZmY6ICNmZmZmZmY7XFxuXFxuICAtLWNvbG9yLWV0Yy1ob3Zlci1lZTogI2VlZWVlZTtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBpbXBvcnQgdXJsKGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9vcmlvbmNhY3R1cy9wcmV0ZW5kYXJkQHYxLjMuOC9kaXN0L3dlYi9zdGF0aWMvcHJldGVuZGFyZC5jc3MpO1wiXSk7XG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDUwMCw3MDAmZGlzcGxheT1zd2FwKTtcIl0pO1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vaWNvbj9mYW1pbHk9TWF0ZXJpYWwrSWNvbnMpO1wiXSk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5udXJpLXRoZW1lIHtcbiAgLS1mb250LXNpemUteHNtOiAxMnB4O1xuICAtLWZvbnQtc2l6ZS1zbTogMTRweDtcbiAgLS1mb250LXNpemUtYmFzZTogMTZweDtcbiAgLS1mb250LXNpemUtbGc6IDE4cHg7XG4gIC0tZm9udC1zaXplLXhsOiAyMHB4O1xuICAtLWZvbnQtc2l6ZS0yeGw6IDI0cHg7XG4gIC0tZm9udC1zaXplLTN4bDogMzBweDtcbiAgLS1mb250LXNpemUtNHhsOiAzNnB4O1xuICAtLWZvbnQtc2l6ZS01eGw6IDQ4cHg7XG4gIC0tZm9udC1zaXplLTZ4bDogNjBweDtcblxuICAtLWxpbmUtaGVpZ2h0LXhzbTogMThweDtcbiAgLS1saW5lLWhlaWdodC1zbTogMThweDtcbiAgLS1saW5lLWhlaWdodC1iYXNlOiAyMnB4O1xuICAtLWxpbmUtaGVpZ2h0LWxnOiAyNHB4O1xuICAtLWxpbmUtaGVpZ2h0LXhsOiAyOHB4O1xuICAtLWxpbmUtaGVpZ2h0LTJ4bDogMzJweDtcbiAgLS1saW5lLWhlaWdodC0zeGw6IDM2cHg7XG4gIC0tbGluZS1oZWlnaHQtNHhsOiA0M3B4O1xuICAtLWxpbmUtaGVpZ2h0LTV4bDogNjZweDtcbiAgLS1saW5lLWhlaWdodC02eGw6IDgycHg7XG5cbiAgLS1mb250LXdlaWdodC1yZWd1bGFyOiA0MDA7XG4gIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG4gIC0tZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcbiAgLS1mb250LXdlaWdodC1ib2xkOiA3MDA7XG4gIC0tZm9udC13ZWlnaHQtZXh0cmFib2xkOiA4MDA7XG5cbiAgZm9udC1mYW1pbHk6IFwiVHdlbW9qaSBDb3VudHJ5IEZsYWdzXCIsIFwiUHJldGVuZGFyZFwiLCBQcmV0ZW5kYXJkLCAtYXBwbGUtc3lzdGVtLFxuICAgIEJsaW5rTWFjU3lzdGVtRm9udCwgc3lzdGVtLXVpLCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJTZWdvZSBVSVwiLFxuICAgIFwiQXBwbGUgU0QgR290aGljIE5lb1wiLCBcIk5vdG8gU2FucyBLUlwiLCBcIk1hbGd1biBHb3RoaWNcIiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLFxuICAgIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCIsIHNhbnMtc2VyaWY7XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFJQTtFQUNFLHFCQUFxQjtFQUNyQixvQkFBb0I7RUFDcEIsc0JBQXNCO0VBQ3RCLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFDcEIscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLHFCQUFxQjs7RUFFckIsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCOztFQUV2QiwwQkFBMEI7RUFDMUIseUJBQXlCO0VBQ3pCLDJCQUEyQjtFQUMzQix1QkFBdUI7RUFDdkIsNEJBQTRCOztFQUU1Qjs7O3VFQUdxRTtBQUN2RVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAaW1wb3J0IHVybChcXFwiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL29yaW9uY2FjdHVzL3ByZXRlbmRhcmRAdjEuMy44L2Rpc3Qvd2ViL3N0YXRpYy9wcmV0ZW5kYXJkLmNzc1xcXCIpO1xcbkBpbXBvcnQgdXJsKFxcXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjMwMCw0MDAsNTAwLDcwMCZkaXNwbGF5PXN3YXBcXFwiKTtcXG5AaW1wb3J0IHVybChcXFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9pY29uP2ZhbWlseT1NYXRlcmlhbCtJY29uc1xcXCIpO1xcblxcbi5udXJpLXRoZW1lIHtcXG4gIC0tZm9udC1zaXplLXhzbTogMTJweDtcXG4gIC0tZm9udC1zaXplLXNtOiAxNHB4O1xcbiAgLS1mb250LXNpemUtYmFzZTogMTZweDtcXG4gIC0tZm9udC1zaXplLWxnOiAxOHB4O1xcbiAgLS1mb250LXNpemUteGw6IDIwcHg7XFxuICAtLWZvbnQtc2l6ZS0yeGw6IDI0cHg7XFxuICAtLWZvbnQtc2l6ZS0zeGw6IDMwcHg7XFxuICAtLWZvbnQtc2l6ZS00eGw6IDM2cHg7XFxuICAtLWZvbnQtc2l6ZS01eGw6IDQ4cHg7XFxuICAtLWZvbnQtc2l6ZS02eGw6IDYwcHg7XFxuXFxuICAtLWxpbmUtaGVpZ2h0LXhzbTogMThweDtcXG4gIC0tbGluZS1oZWlnaHQtc206IDE4cHg7XFxuICAtLWxpbmUtaGVpZ2h0LWJhc2U6IDIycHg7XFxuICAtLWxpbmUtaGVpZ2h0LWxnOiAyNHB4O1xcbiAgLS1saW5lLWhlaWdodC14bDogMjhweDtcXG4gIC0tbGluZS1oZWlnaHQtMnhsOiAzMnB4O1xcbiAgLS1saW5lLWhlaWdodC0zeGw6IDM2cHg7XFxuICAtLWxpbmUtaGVpZ2h0LTR4bDogNDNweDtcXG4gIC0tbGluZS1oZWlnaHQtNXhsOiA2NnB4O1xcbiAgLS1saW5lLWhlaWdodC02eGw6IDgycHg7XFxuXFxuICAtLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcXG4gIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XFxuICAtLWZvbnQtd2VpZ2h0LXNlbWlib2xkOiA2MDA7XFxuICAtLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcXG4gIC0tZm9udC13ZWlnaHQtZXh0cmFib2xkOiA4MDA7XFxuXFxuICBmb250LWZhbWlseTogXFxcIlR3ZW1vamkgQ291bnRyeSBGbGFnc1xcXCIsIFxcXCJQcmV0ZW5kYXJkXFxcIiwgUHJldGVuZGFyZCwgLWFwcGxlLXN5c3RlbSxcXG4gICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBzeXN0ZW0tdWksIFJvYm90bywgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgXFxcIlNlZ29lIFVJXFxcIixcXG4gICAgXFxcIkFwcGxlIFNEIEdvdGhpYyBOZW9cXFwiLCBcXFwiTm90byBTYW5zIEtSXFxcIiwgXFxcIk1hbGd1biBHb3RoaWNcXFwiLCBcXFwiQXBwbGUgQ29sb3IgRW1vamlcXFwiLFxcbiAgICBcXFwiU2Vnb2UgVUkgRW1vamlcXFwiLCBcXFwiU2Vnb2UgVUkgU3ltYm9sXFxcIiwgXFxcIk5vdG8gQ29sb3IgRW1vamlcXFwiLCBzYW5zLXNlcmlmO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKSB7XG4gIHZhciBsaXN0ID0gW107XG5cbiAgLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgY29udGVudCA9IFwiXCI7XG4gICAgICB2YXIgbmVlZExheWVyID0gdHlwZW9mIGl0ZW1bNV0gIT09IFwidW5kZWZpbmVkXCI7XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpO1xuICAgICAgfVxuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBjb250ZW50ICs9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSk7XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW1bNF0pIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH0pLmpvaW4oXCJcIik7XG4gIH07XG5cbiAgLy8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3RcbiAgbGlzdC5pID0gZnVuY3Rpb24gaShtb2R1bGVzLCBtZWRpYSwgZGVkdXBlLCBzdXBwb3J0cywgbGF5ZXIpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG1vZHVsZXMgPSBbW251bGwsIG1vZHVsZXMsIHVuZGVmaW5lZF1dO1xuICAgIH1cbiAgICB2YXIgYWxyZWFkeUltcG9ydGVkTW9kdWxlcyA9IHt9O1xuICAgIGlmIChkZWR1cGUpIHtcbiAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgdGhpcy5sZW5ndGg7IGsrKykge1xuICAgICAgICB2YXIgaWQgPSB0aGlzW2tdWzBdO1xuICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHZhciBfayA9IDA7IF9rIDwgbW9kdWxlcy5sZW5ndGg7IF9rKyspIHtcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2tdKTtcbiAgICAgIGlmIChkZWR1cGUgJiYgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbGF5ZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtWzVdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBsYXllclwiLmNvbmNhdChpdGVtWzVdLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQoaXRlbVs1XSkgOiBcIlwiLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobWVkaWEpIHtcbiAgICAgICAgaWYgKCFpdGVtWzJdKSB7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHN1cHBvcnRzKSB7XG4gICAgICAgIGlmICghaXRlbVs0XSkge1xuICAgICAgICAgIGl0ZW1bNF0gPSBcIlwiLmNvbmNhdChzdXBwb3J0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzRdID0gc3VwcG9ydHM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBsaXN0O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlbSkge1xuICB2YXIgY29udGVudCA9IGl0ZW1bMV07XG4gIHZhciBjc3NNYXBwaW5nID0gaXRlbVszXTtcbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY3NzTWFwcGluZykpKSk7XG4gICAgdmFyIGRhdGEgPSBcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChiYXNlNjQpO1xuICAgIHZhciBzb3VyY2VNYXBwaW5nID0gXCIvKiMgXCIuY29uY2F0KGRhdGEsIFwiICovXCIpO1xuICAgIHJldHVybiBbY29udGVudF0uY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbihcIlxcblwiKTtcbiAgfVxuICByZXR1cm4gW2NvbnRlbnRdLmpvaW4oXCJcXG5cIik7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgc3R5bGVzSW5ET00gPSBbXTtcbmZ1bmN0aW9uIGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpIHtcbiAgdmFyIHJlc3VsdCA9IC0xO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRE9NLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRE9NW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKSB7XG4gIHZhciBpZENvdW50TWFwID0ge307XG4gIHZhciBpZGVudGlmaWVycyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXhCeUlkZW50aWZpZXIgPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM10sXG4gICAgICBzdXBwb3J0czogaXRlbVs0XSxcbiAgICAgIGxheWVyOiBpdGVtWzVdXG4gICAgfTtcbiAgICBpZiAoaW5kZXhCeUlkZW50aWZpZXIgIT09IC0xKSB7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0ucmVmZXJlbmNlcysrO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnVwZGF0ZXIob2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHVwZGF0ZXIgPSBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMuYnlJbmRleCA9IGk7XG4gICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoaSwgMCwge1xuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICB1cGRhdGVyOiB1cGRhdGVyLFxuICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWRlbnRpZmllcnMucHVzaChpZGVudGlmaWVyKTtcbiAgfVxuICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5mdW5jdGlvbiBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKSB7XG4gIHZhciBhcGkgPSBvcHRpb25zLmRvbUFQSShvcHRpb25zKTtcbiAgYXBpLnVwZGF0ZShvYmopO1xuICB2YXIgdXBkYXRlciA9IGZ1bmN0aW9uIHVwZGF0ZXIobmV3T2JqKSB7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgaWYgKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiYgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiYgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCAmJiBuZXdPYmouc3VwcG9ydHMgPT09IG9iai5zdXBwb3J0cyAmJiBuZXdPYmoubGF5ZXIgPT09IG9iai5sYXllcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhcGkudXBkYXRlKG9iaiA9IG5ld09iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB1cGRhdGVyO1xufVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobGlzdCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgbGlzdCA9IGxpc3QgfHwgW107XG4gIHZhciBsYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgIG5ld0xpc3QgPSBuZXdMaXN0IHx8IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG4gICAgdmFyIG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9pZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW19pXTtcbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG4gICAgICBpZiAoc3R5bGVzSW5ET01bX2luZGV4XS5yZWZlcmVuY2VzID09PSAwKSB7XG4gICAgICAgIHN0eWxlc0luRE9NW19pbmRleF0udXBkYXRlcigpO1xuICAgICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoX2luZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIG1lbW8gPSB7fTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBnZXRUYXJnZXQodGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdmFyIHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpO1xuXG4gICAgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcbiAgICBpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFjY2VzcyB0byBpZnJhbWUgaXMgYmxvY2tlZFxuICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuICAgICAgICBzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuICB9XG4gIHJldHVybiBtZW1vW3RhcmdldF07XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0QnlTZWxlY3RvcihpbnNlcnQsIHN0eWxlKSB7XG4gIHZhciB0YXJnZXQgPSBnZXRUYXJnZXQoaW5zZXJ0KTtcbiAgaWYgKCF0YXJnZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICB9XG4gIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydEJ5U2VsZWN0b3I7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XG4gIG9wdGlvbnMuc2V0QXR0cmlidXRlcyhlbGVtZW50LCBvcHRpb25zLmF0dHJpYnV0ZXMpO1xuICBvcHRpb25zLmluc2VydChlbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xuICByZXR1cm4gZWxlbWVudDtcbn1cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0U3R5bGVFbGVtZW50OyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcyhzdHlsZUVsZW1lbnQpIHtcbiAgdmFyIG5vbmNlID0gdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSBcInVuZGVmaW5lZFwiID8gX193ZWJwYWNrX25vbmNlX18gOiBudWxsO1xuICBpZiAobm9uY2UpIHtcbiAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwibm9uY2VcIiwgbm9uY2UpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlczsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaikge1xuICB2YXIgY3NzID0gXCJcIjtcbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KG9iai5zdXBwb3J0cywgXCIpIHtcIik7XG4gIH1cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIkBtZWRpYSBcIi5jb25jYXQob2JqLm1lZGlhLCBcIiB7XCIpO1xuICB9XG4gIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2Ygb2JqLmxheWVyICE9PSBcInVuZGVmaW5lZFwiO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwiQGxheWVyXCIuY29uY2F0KG9iai5sYXllci5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KG9iai5sYXllcikgOiBcIlwiLCBcIiB7XCIpO1xuICB9XG4gIGNzcyArPSBvYmouY3NzO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICB2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNzcyArPSBcIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSksIFwiICovXCIpO1xuICB9XG5cbiAgLy8gRm9yIG9sZCBJRVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG4gIG9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZUVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG59XG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KSB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoc3R5bGVFbGVtZW50LnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBkb21BUEkob3B0aW9ucykge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKCkge30sXG4gICAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHt9XG4gICAgfTtcbiAgfVxuICB2YXIgc3R5bGVFbGVtZW50ID0gb3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucyk7XG4gIHJldHVybiB7XG4gICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUob2JqKSB7XG4gICAgICBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaik7XG4gICAgfSxcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZUVsZW1lbnQpO1xuICAgIH1cbiAgfTtcbn1cbm1vZHVsZS5leHBvcnRzID0gZG9tQVBJOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50KSB7XG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc3R5bGVUYWdUcmFuc2Zvcm07IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIl9fd2VicGFja19yZXF1aXJlX18ubmMgPSB1bmRlZmluZWQ7IiwidmFyIHggPSAoeSkgPT4ge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSAoeCkgPT4gKCgpID0+ICh4KSlcbmNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiRnJhZ21lbnRcIl06ICgpID0+IChfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X2pzeF9ydW50aW1lXzE3OTE0MmI4X18uRnJhZ21lbnQpLCBbXCJqc3hcIl06ICgpID0+IChfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X2pzeF9ydW50aW1lXzE3OTE0MmI4X18uanN4KSwgW1wianN4c1wiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfanN4X3J1bnRpbWVfMTc5MTQyYjhfXy5qc3hzKSB9KTsiLCJ2YXIgeCA9ICh5KSA9PiB7XG5cdHZhciB4ID0ge307IF9fd2VicGFja19yZXF1aXJlX18uZCh4LCB5KTsgcmV0dXJuIHhcbn0gXG52YXIgeSA9ICh4KSA9PiAoKCkgPT4gKHgpKVxuY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHgoeyBbXCJDaGlsZHJlblwiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXy5DaGlsZHJlbiksIFtcImNsb25lRWxlbWVudFwiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXy5jbG9uZUVsZW1lbnQpLCBbXCJjcmVhdGVDb250ZXh0XCJdOiAoKSA9PiAoX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9fLmNyZWF0ZUNvbnRleHQpLCBbXCJmb3J3YXJkUmVmXCJdOiAoKSA9PiAoX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9fLmZvcndhcmRSZWYpLCBbXCJpc1ZhbGlkRWxlbWVudFwiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXy5pc1ZhbGlkRWxlbWVudCksIFtcInVzZUNvbnRleHRcIl06ICgpID0+IChfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X18udXNlQ29udGV4dCksIFtcInVzZUVmZmVjdFwiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXy51c2VFZmZlY3QpLCBbXCJ1c2VTdGF0ZVwiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfXy51c2VTdGF0ZSkgfSk7IiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IENoaWxkcmVuLCBjbG9uZUVsZW1lbnQsIGZvcndhcmRSZWYsIGlzVmFsaWRFbGVtZW50LCB9IGZyb20gXCJyZWFjdFwiO1xudmFyIENvbXBvc2VyID0gZm9yd2FyZFJlZihmdW5jdGlvbiAoX2EsIHJlZikge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBjb21wb3NlclByb3BzID0gX19yZXN0KF9hLCBbXCJjaGlsZHJlblwiXSk7XG4gICAgdmFyIGNoaWxkQXJyYXkgPSBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKTtcbiAgICBpZiAoY2hpbGRBcnJheS5sZW5ndGggPiAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbXBvc2VyIGNhbiBvbmx5IGhhdmUgb25lIGNoaWxkXCIpO1xuICAgIH1cbiAgICB2YXIgaXNWYWxpZENoaWxkID0gaXNWYWxpZEVsZW1lbnQoY2hpbGRBcnJheVswXSk7XG4gICAgaWYgKCFpc1ZhbGlkQ2hpbGQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY2hpbGQgc2hvdWxkIGJlIFJlYWN0IG5vZGUhXCIpO1xuICAgIH1cbiAgICB2YXIgY2hpbGQgPSBjaGlsZEFycmF5WzBdO1xuICAgIHZhciBjaGlsZFJlZiA9IGdldEVsZW1lbnRSZWYoY2hpbGQpO1xuICAgIHZhciBtZXJnZWRQcm9wcyA9IG1lcmdlUHJvcHMoY29tcG9zZXJQcm9wcywgY2hpbGQucHJvcHMpO1xuICAgIHJldHVybiBjbG9uZUVsZW1lbnQoY2hpbGQsIF9fYXNzaWduKF9fYXNzaWduKHt9LCBtZXJnZWRQcm9wcyksIHsgcmVmOiByZWYgPyBjb21wb3NlUmVmcyhyZWYsIGNoaWxkUmVmKSA6IGNoaWxkUmVmIH0pKTtcbn0pO1xuQ29tcG9zZXIuZGlzcGxheU5hbWUgPSBcIkNvbXBvc2VyXCI7XG5mdW5jdGlvbiBtZXJnZVByb3BzKGNvbXBvc2VyUHJvcHMsIGNoaWxkUHJvcHMpIHtcbiAgICB2YXIgb3ZlcnJpZGVQcm9wcyA9IF9fYXNzaWduKHt9LCBjaGlsZFByb3BzKTtcbiAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uIChwcm9wTmFtZSkge1xuICAgICAgICB2YXIgY29tcG9zZXJQcm9wVmFsdWUgPSBjb21wb3NlclByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgdmFyIGNoaWxkUHJvcFZhbHVlID0gY2hpbGRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIHZhciBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgICAgICBpZiAoaXNIYW5kbGVyKSB7XG4gICAgICAgICAgICBpZiAoY29tcG9zZXJQcm9wVmFsdWUgJiYgY2hpbGRQcm9wVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjaGlsZFByb3BWYWx1ZS5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICBjb21wb3NlclByb3BWYWx1ZS5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjb21wb3NlclByb3BWYWx1ZSkge1xuICAgICAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gY29tcG9zZXJQcm9wVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJvcE5hbWUgPT09IFwic3R5bGVcIikge1xuICAgICAgICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgY29tcG9zZXJQcm9wVmFsdWUpLCBjaGlsZFByb3BWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiY2xhc3NOYW1lXCIpIHtcbiAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gW2NvbXBvc2VyUHJvcFZhbHVlLCBjaGlsZFByb3BWYWx1ZV1cbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIgXCIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBjb21wb3NlclByb3BzKSB7XG4gICAgICAgIF9sb29wXzEocHJvcE5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbXBvc2VyUHJvcHMpLCBvdmVycmlkZVByb3BzKTtcbn1cbmZ1bmN0aW9uIGdldEVsZW1lbnRSZWYoZWxlbWVudCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgdmFyIGNoaWxkR2V0dGVyID0gKF9hID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LnByb3BzLCBcInJlZlwiKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldDtcbiAgICB2YXIgbWF5V2FybkluQ2hpbGQgPSBjaGlsZEdldHRlciAmJlxuICAgICAgICBcImlzUmVhY3RXYXJuaW5nXCIgaW4gY2hpbGRHZXR0ZXIgJiZcbiAgICAgICAgY2hpbGRHZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gICAgaWYgKG1heVdhcm5JbkNoaWxkKSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnJlZjtcbiAgICB9XG4gICAgdmFyIGdldHRlciA9IChfYiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudCwgXCJyZWZcIikpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5nZXQ7XG4gICAgdmFyIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gICAgaWYgKG1heVdhcm4pIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmO1xuICAgIH1cbiAgICByZXR1cm4gKGVsZW1lbnQucHJvcHMucmVmIHx8IGVsZW1lbnQucmVmKTtcbn1cbnZhciBjb21wb3NlUmVmcyA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmVmcyA9IFtdO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHJlZnNbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIHJlZnMuZm9yRWFjaChmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICByZWYobm9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IENvbXBvc2VyO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgQ29tcG9zZXIgZnJvbSBcIi4uL2NvcmUvY29tcG9zZXJcIjtcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmV4cG9ydCB2YXIgQmFzZUJhZGdlID0gZm9yd2FyZFJlZihmdW5jdGlvbiAocHJvcHMsIHJlZikge1xuICAgIHZhciBfYSA9IHByb3BzLmFzQ2hpbGQsIGFzQ2hpbGQgPSBfYSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYSwgYm9yZGVyQ29sb3IgPSBwcm9wcy5ib3JkZXJDb2xvciwgX2IgPSBwcm9wcy50ZXh0Q29sb3IsIHRleHRDb2xvciA9IF9iID09PSB2b2lkIDAgPyBcImJsYWNrXCIgOiBfYiwgcmFkaXVzID0gcHJvcHMucmFkaXVzLCBiYWNrZ3JvdW5kQ29sb3IgPSBwcm9wcy5iYWNrZ3JvdW5kQ29sb3IsIF9jID0gcHJvcHMuc2l6ZSwgc2l6ZSA9IF9jID09PSB2b2lkIDAgPyBcImxcIiA6IF9jLCBzdHlsZSA9IHByb3BzLnN0eWxlLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIHJlc3RQcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiYXNDaGlsZFwiLCBcImJvcmRlckNvbG9yXCIsIFwidGV4dENvbG9yXCIsIFwicmFkaXVzXCIsIFwiYmFja2dyb3VuZENvbG9yXCIsIFwic2l6ZVwiLCBcInN0eWxlXCIsIFwiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIl0pO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJkaXZcIjtcbiAgICB2YXIgY29tcG9zZWRDbGFzc05hbWUgPSBcIm51cmktdGhlbWUgXCIuY29uY2F0KGFzQ2hpbGQgPyBcIlwiIDogXCJiYXNlLWJhZGdlXCIsIFwiIFwiKS5jb25jYXQoc2l6ZSwgXCIgYm9yZGVyLVwiKS5jb25jYXQoYm9yZGVyQ29sb3IsIFwiIHRleHQtXCIpLmNvbmNhdCh0ZXh0Q29sb3IsIFwiIGJhY2tncm91bmQtXCIpLmNvbmNhdChiYWNrZ3JvdW5kQ29sb3IsIFwiIFwiKS5jb25jYXQoY2xhc3NOYW1lKTtcbiAgICByZXR1cm4gKF9qc3goQ29tcCwgX19hc3NpZ24oeyBzdHlsZTogX19hc3NpZ24oeyBib3JkZXJSYWRpdXM6IFwiXCIuY29uY2F0KHJhZGl1cywgXCJweFwiKSB9LCBzdHlsZSksIGNsYXNzTmFtZTogY29tcG9zZWRDbGFzc05hbWUgfSwgcmVzdFByb3BzLCB7IHJlZjogcmVmLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpKTtcbn0pO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2F2YXRhci1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9hdmF0YXItc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBkZWZhdWx0QXZhdGFyIGZyb20gJy4uLy4uL2Fzc2V0cy9pY29ucy9kZWZhdWx0QXZhdGFyLnN2Zyc7XG5pbXBvcnQgeyBCYXNlQmFkZ2UgfSBmcm9tICcuLi9iYWRnZS9iYXNlLWJhZGdlJztcbmltcG9ydCAnLi9hdmF0YXItc3R5bGUuY3NzJztcbnZhciBBdmF0YXIgPSBmb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gICAgdmFyIHNpemUgPSBwcm9wcy5zaXplLCBzcmMgPSBwcm9wcy5zcmMsIGFsdCA9IHByb3BzLmFsdCwgYmFkZ2VPcHRpb24gPSBwcm9wcy5iYWRnZU9wdGlvbiwgc3R5bGUgPSBwcm9wcy5zdHlsZTtcbiAgICB2YXIgX2EgPSB1c2VTdGF0ZShmYWxzZSksIGlzSW1hZ2VEb3dubG9hZCA9IF9hWzBdLCBzZXRJc0ltYWdlRG93bmxvYWQgPSBfYVsxXTtcbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImF2YXRhclwiLCBjaGlsZHJlbjogW19qc3goXCJpbWdcIiwgeyBzcmM6IHNyYyAhPT0gbnVsbCAmJiBzcmMgIT09IHZvaWQgMCA/IHNyYyA6IGRlZmF1bHRBdmF0YXIsIGFsdDogYWx0ICE9PSBudWxsICYmIGFsdCAhPT0gdm9pZCAwID8gYWx0IDogJ2F2YXRhcicsIGNsYXNzTmFtZTogXCJhdmF0YXIgXCIuY29uY2F0KHNpemUsIFwiIFwiKS5jb25jYXQoIWlzSW1hZ2VEb3dubG9hZCA/ICdoaWRkZW4nIDogJycpLCBvbkxvYWQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNldElzSW1hZ2VEb3dubG9hZCh0cnVlKTsgfSwgc3R5bGU6IF9fYXNzaWduKHt9LCBzdHlsZSkgfSksIGJhZGdlT3B0aW9uICYmIChfanN4KEJhc2VCYWRnZSwgeyBhc0NoaWxkOiB0cnVlLCBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAnMCcsXG4gICAgICAgICAgICAgICAgfSwgcmVmOiByZWYsIGNoaWxkcmVuOiBiYWRnZU9wdGlvbiB9KSldIH0pKTtcbn0pO1xuQXZhdGFyLmRpc3BsYXlOYW1lID0gJ0F2YXRhcic7XG5leHBvcnQgZGVmYXVsdCBBdmF0YXI7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYnV0dG9uLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2J1dHRvbi1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vY29sb3IuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vY29sb3IuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2ZvbnQuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vZm9udC5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBDb21wb3NlciBmcm9tIFwiLi4vY29yZS9jb21wb3NlclwiO1xuaW1wb3J0IFwiLi9idXR0b24tc3R5bGUuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbnZhciBCYXNlQnV0dG9uID0gZm9yd2FyZFJlZihmdW5jdGlvbiAoX2EsIHJlZikge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBfYiA9IF9hLmFzQ2hpbGQsIGFzQ2hpbGQgPSBfYiA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYiwgY2xhc3NOYW1lID0gX2EuY2xhc3NOYW1lLCBkaXNhYmxlZCA9IF9hLmRpc2FibGVkLCBwcm9wcyA9IF9fcmVzdChfYSwgW1wiY2hpbGRyZW5cIiwgXCJhc0NoaWxkXCIsIFwiY2xhc3NOYW1lXCIsIFwiZGlzYWJsZWRcIl0pO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJidXR0b25cIjtcbiAgICByZXR1cm4gKF9qc3goQ29tcCwgX19hc3NpZ24oeyByZWY6IHJlZiwgY2xhc3NOYW1lOiBhc0NoaWxkID8gY2xhc3NOYW1lIDogXCJiYXNlLWJ1dHRvbiBcIi5jb25jYXQoY2xhc3NOYW1lICE9PSBudWxsICYmIGNsYXNzTmFtZSAhPT0gdm9pZCAwID8gY2xhc3NOYW1lIDogXCJcIiksIGRpc2FibGVkOiBkaXNhYmxlZCwgXCJhcmlhLWRpc2FibGVkXCI6IGRpc2FibGVkIH0sIHByb3BzLCB7IGNoaWxkcmVuOiBjaGlsZHJlbiB9KSkpO1xufSk7XG5leHBvcnQgZGVmYXVsdCBCYXNlQnV0dG9uO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2xvYWRpbmctc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbG9hZGluZy1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFwiLi9sb2FkaW5nLXN0eWxlLmNzc1wiO1xudmFyIExvYWRpbmcgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgX2EgPSBwcm9wcy52YXJpYW50LCB2YXJpYW50ID0gX2EgPT09IHZvaWQgMCA/IFwibGlnaHRcIiA6IF9hO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJjb21wb25lbnQtbG9hZGluZy1jb250YWluZXJcIiwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXJpbmdcIiwgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nIFwiLmNvbmNhdCh2YXJpYW50KSB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJsb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZyBcIi5jb25jYXQodmFyaWFudCkgfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmcgXCIuY29uY2F0KHZhcmlhbnQpIH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nIFwiLmNvbmNhdCh2YXJpYW50KSB9KV0gfSkgfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IExvYWRpbmc7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBCYXNlQnV0dG9uIGZyb20gXCIuL2Jhc2UtYnV0dG9uXCI7XG5pbXBvcnQgTG9hZGluZyBmcm9tIFwiLi4vbG9hZGluZy9sb2FkaW5nXCI7XG52YXIgQ1RBQnV0dG9uID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHRleHQgPSBwcm9wcy50ZXh0LCBfYSA9IHByb3BzLnZhcmlhbnQsIHZhcmlhbnQgPSBfYSA9PT0gdm9pZCAwID8gXCJwcmltYXJ5XCIgOiBfYSwgX2IgPSBwcm9wcy5zaXplLCBzaXplID0gX2IgPT09IHZvaWQgMCA/IFwibVwiIDogX2IsIF9jID0gcHJvcHMuZGlzYWJsZWQsIGRpc2FibGVkID0gX2MgPT09IHZvaWQgMCA/IGZhbHNlIDogX2MsIF9kID0gcHJvcHMubG9hZGluZywgbG9hZGluZyA9IF9kID09PSB2b2lkIDAgPyBmYWxzZSA6IF9kLCBsZWZ0SWNvbiA9IHByb3BzLmxlZnRJY29uLCByaWdodEljb24gPSBwcm9wcy5yaWdodEljb24sIHJlc3RQcm9wcyA9IF9fcmVzdChwcm9wcywgW1widGV4dFwiLCBcInZhcmlhbnRcIiwgXCJzaXplXCIsIFwiZGlzYWJsZWRcIiwgXCJsb2FkaW5nXCIsIFwibGVmdEljb25cIiwgXCJyaWdodEljb25cIl0pO1xuICAgIHJldHVybiAoX2pzeChCYXNlQnV0dG9uLCBfX2Fzc2lnbih7IGRpc2FibGVkOiBkaXNhYmxlZCB9LCByZXN0UHJvcHMsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgY3RhLWJ1dHRvbiBcIi5jb25jYXQoZGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiB2YXJpYW50LCBcIiBcIikuY29uY2F0KHNpemUpLCBjaGlsZHJlbjogbG9hZGluZyA/IChfanN4KExvYWRpbmcsIHsgdmFyaWFudDogdmFyaWFudCA9PT0gXCJwcmltYXJ5XCIgfHwgdmFyaWFudCA9PT0gXCJzZWNvbmRhcnlcIiA/IFwibGlnaHRcIiA6IFwiZGFya1wiIH0pKSA6IChfanN4cyhcImRpdlwiLCB7IHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJzcGFjZS1iZXR3ZWVuXCIsXG4gICAgICAgICAgICAgICAgZ2FwOiBcIjEwcHhcIixcbiAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbbGVmdEljb24sIHRleHQsIHJpZ2h0SWNvbl0gfSkpIH0pKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgQ1RBQnV0dG9uO1xuIiwiZXhwb3J0IHZhciBjb2xvcnMgPSB7XG4gICAgYmxhY2s6ICcjMDAwMDAwJyxcbiAgICB3aGl0ZTogJyNmZmZmZmYnLFxuICAgIGdyYXlGYTogJyNmYWZhZmEnLFxuICAgIGdyYXlGNDogJyNmNGY0ZjUnLFxuICAgIGdyYXlFNDogJyNlNGU0ZTcnLFxuICAgIGdyYXlENDogJyNkNGQ0ZDgnLFxuICAgIGdyYXlBMTogJyNhMWExYWEnLFxuICAgIGdyYXk3MTogJyM3MTcxN2EnLFxuICAgIGdyYXk1MjogJyM1MjUyNWInLFxuICAgIGdyYXkzZjogJyMzZjNmNDYnLFxuICAgIGdyYXkyNzogJyMyNzI3MmEnLFxuICAgIGdyYXkxODogJyMxODE4MWInLFxuICAgIHB1cnBsZTM5OiAnIzM5MWQ1ZCcsXG4gICAgcHVycGxlNGM6ICcjNGMyNzdjJyxcbiAgICBwdXJwbGVEZDogJyNkZGQxZjAnLFxuICAgIHB1cnBsZUU5OiAnI2U5ZTBmNScsXG4gICAgcHVycGxlRjQ6ICcjZjRlZmZhJyxcbiAgICBwdXJwbGU0MTogJyM0YzFkODgnLFxuICAgIHB1cnBsZTk1OiAnIzk1N2ViNCcsXG4gICAgYWNjZW50UmVkRGY6ICcjZGY1MzVjJyxcbiAgICBhY2NlbnRSZWRDODogJyNjODQyNGInLFxuICAgIGFjY2VudE1hZ2VudGFCMDogJyNiMDJlNGMnLFxuICAgIGFjY2VudEdyZWVuMjg6ICcjMjg5YTNhJyxcbiAgICBhY2NlbnRCbHVlMDE6ICcjMDFlY2UxJyxcbiAgICBhY2NlbnRQaW5rRWM6ICcjZWM1Y2VmJyxcbiAgICBhY2NlbnRHcmVlbjQxOiAnI2VjNWNlZicsXG59O1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQmFzZUJhZGdlIH0gZnJvbSBcIi4vYmFzZS1iYWRnZVwiO1xuaW1wb3J0IHsgY29sb3JzIH0gZnJvbSBcIi4uLy4uL3N0eWxlcy90b2tlbi9jb2xvcnNcIjtcbnZhciBPcHRpb25CYWRnZSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBvcHRpb24gPSBwcm9wcy5vcHRpb24sIHRvb2x0aXBUZXh0ID0gcHJvcHMudG9vbHRpcFRleHQsIHRvb2x0aXBTdHlsZSA9IHByb3BzLnRvb2x0aXBTdHlsZSwgX2EgPSBwcm9wcy50b29sdGlwUG9zaXRpb24sIHRvb2x0aXBQb3NpdGlvbiA9IF9hID09PSB2b2lkIDAgPyBcImJvdHRvbVwiIDogX2EsIHJlc3RQcm9wcyA9IF9fcmVzdChwcm9wcywgW1wib3B0aW9uXCIsIFwidG9vbHRpcFRleHRcIiwgXCJ0b29sdGlwU3R5bGVcIiwgXCJ0b29sdGlwUG9zaXRpb25cIl0pO1xuICAgIHZhciBfYiA9IHVzZVN0YXRlKGZhbHNlKSwgaXNUb29sdGlwT3BlbiA9IF9iWzBdLCBzZXRJc1Rvb2x0aXBPcGVuID0gX2JbMV07XG4gICAgcmV0dXJuIChfanN4cyhCYXNlQmFkZ2UsIF9fYXNzaWduKHt9LCByZXN0UHJvcHMsIHsgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICAgIH0sIG9uTW91c2VFbnRlcjogZnVuY3Rpb24gKCkgeyByZXR1cm4gc2V0SXNUb29sdGlwT3Blbih0cnVlKTsgfSwgb25Nb3VzZUxlYXZlOiBmdW5jdGlvbiAoKSB7IHJldHVybiBzZXRJc1Rvb2x0aXBPcGVuKGZhbHNlKTsgfSwgY2hpbGRyZW46IG9wdGlvbiB9KSwgdG9vbHRpcFRleHQgJiYgKF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IF9fYXNzaWduKHsgcG9zaXRpb246IFwiYWJzb2x1dGVcIiwgZGlzcGxheTogaXNUb29sdGlwT3BlbiA/IFwiYmxvY2tcIiA6IFwibm9uZVwiIH0sIHRvb2x0aXBTdHlsZSksIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IHN0eWxlOiBfX2Fzc2lnbihfX2Fzc2lnbih7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSwgKHRvb2x0aXBQb3NpdGlvbiA9PT0gXCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclRvcDogXCI2cHggc29saWQgdHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiBcIjZweCBzb2xpZCB0cmFuc3BhcmVudFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogXCI2cHggc29saWQgXCIuY29uY2F0KGNvbG9ycy5wdXJwbGUzOSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogXCI1MCVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogXCItNnB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVZKC01MCUpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJMZWZ0OiBcIjZweCBzb2xpZCB0cmFuc3BhcmVudFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSaWdodDogXCI2cHggc29saWQgdHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiBcIjZweCBzb2xpZCBcIi5jb25jYXQoY29sb3JzLnB1cnBsZTM5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoLTUwJSlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSksIHsgekluZGV4OiAzIH0pIH0pLCBfanN4KFwiZGl2XCIsIHsgc3R5bGU6IF9fYXNzaWduKF9fYXNzaWduKHsgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMucHVycGxlMzksIGNvbG9yOiBcIndoaXRlXCIsIHBhZGRpbmc6IFwiMTJweFwiLCBib3JkZXJSYWRpdXM6IFwiNnB4XCIsIGZvbnRTaXplOiBcIjEycHhcIiwgZm9udFdlaWdodDogXCI0MDBcIiB9LCAodG9vbHRpcFBvc2l0aW9uID09PSBcInJpZ2h0XCIgPyB7fSA6IHsgbWFyZ2luVG9wOiBcIjZweFwiIH0pKSwgeyB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiIH0pLCBjaGlsZHJlbjogdG9vbHRpcFRleHQgfSldIH0pKV0gfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBPcHRpb25CYWRnZTtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgQmFzZUJhZGdlIH0gZnJvbSAnLi9iYXNlLWJhZGdlJztcbnZhciBJY29uVGV4dEJhZGdlID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGljb24gPSBwcm9wcy5pY29uLCB0ZXh0ID0gcHJvcHMudGV4dDtcbiAgICByZXR1cm4gKF9qc3hzKEJhc2VCYWRnZSwgX19hc3NpZ24oe30sIHByb3BzLCB7IGNoaWxkcmVuOiBbaWNvbiwgX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogdGV4dCB9KV0gfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBJY29uVGV4dEJhZGdlO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2JhZGdlLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2JhZGdlLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFwiLi9iYWRnZS1zdHlsZS5jc3NcIjtcbmltcG9ydCB7IEJhc2VCYWRnZSB9IGZyb20gXCIuL2Jhc2UtYmFkZ2VcIjtcbnZhciBJY29uVGV4dE9wdGlvbkJhZGdlID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGljb24gPSBwcm9wcy5pY29uLCB0ZXh0ID0gcHJvcHMudGV4dCwgb3B0aW9uID0gcHJvcHMub3B0aW9uLCByZXN0UHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcImljb25cIiwgXCJ0ZXh0XCIsIFwib3B0aW9uXCJdKTtcbiAgICByZXR1cm4gKF9qc3hzKEJhc2VCYWRnZSwgX19hc3NpZ24oe30sIHJlc3RQcm9wcywgeyBjbGFzc05hbWU6IFwiaWNvbi10ZXh0LW9wdGlvblwiLCBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNoaWxkcmVuOiBbaWNvbiwgX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogdGV4dCB9KV0gfSksIG9wdGlvbl0gfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBJY29uVGV4dE9wdGlvbkJhZGdlO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RhYmxlLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RhYmxlLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFwiLi90YWJsZS1zdHlsZS5jc3NcIjtcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tIFwicmVhY3RcIjtcbnZhciBUYWJsZVJvb3QgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICByZXR1cm4gX2pzeChcInRhYmxlXCIsIHsgY2xhc3NOYW1lOiBcImJhc2UtdGFibGUgdGFibGUtcm9vdFwiLCBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSk7XG59O1xudmFyIFRhYmxlSGVhZGVyID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIF9hID0gcHJvcHMuanVzdGlmeSwganVzdGlmeSA9IF9hID09PSB2b2lkIDAgPyBcImNlbnRlclwiIDogX2EsIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wianVzdGlmeVwiLCBcImNsYXNzTmFtZVwiXSk7XG4gICAgcmV0dXJuIChfanN4KFwidGhlYWRcIiwgeyBjbGFzc05hbWU6IFwiYmFzZS10YWJsZSB0YWJsZS1oZWFkZXIgXCIuY29uY2F0KGp1c3RpZnksIFwiIFwiKS5jb25jYXQoY2xhc3NOYW1lKSwgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pKTtcbn07XG52YXIgVGFibGVSb3cgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIl0pO1xuICAgIHZhciBjbGFzc05hbWVzID0gW1wiYmFzZS10YWJsZVwiLCBcInRhYmxlLXJvd1wiLCBjbGFzc05hbWVdLmpvaW4oXCIgXCIpO1xuICAgIHJldHVybiAoX2pzeChcInRyXCIsIF9fYXNzaWduKHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzIH0sIHJlc3QsIHsgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pKSk7XG59O1xudmFyIFRhYmxlQm9keSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiXSk7XG4gICAgdmFyIGNsYXNzTmFtZXMgPSBbXCJiYXNlLXRhYmxlXCIsIFwidGFibGUtYm9keVwiLCBjbGFzc05hbWVdLmpvaW4oXCIgXCIpO1xuICAgIHJldHVybiAoX2pzeChcInRib2R5XCIsIF9fYXNzaWduKHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzIH0sIHJlc3QsIHsgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pKSk7XG59O1xudmFyIFRhYmxlQ2VsbCA9IGZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCByZWYpIHtcbiAgICB2YXIgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIl0pO1xuICAgIHZhciBjbGFzc05hbWVzID0gW1wiYmFzZS10YWJsZVwiLCBcInRhYmxlLWNlbGxcIiwgY2xhc3NOYW1lXS5qb2luKFwiIFwiKTtcbiAgICByZXR1cm4gKF9qc3goXCJ0ZFwiLCBfX2Fzc2lnbih7IHJlZjogcmVmLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMgfSwgcmVzdCwgeyBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSkpKTtcbn0pO1xuVGFibGVSb290LkhlYWRlciA9IFRhYmxlSGVhZGVyO1xuVGFibGVSb290LkJvZHkgPSBUYWJsZUJvZHk7XG5UYWJsZVJvb3QuUm93ID0gVGFibGVSb3c7XG5UYWJsZVJvb3QuQ2VsbCA9IFRhYmxlQ2VsbDtcbmV4cG9ydCBkZWZhdWx0IFRhYmxlUm9vdDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBUYWJsZVJvb3QgZnJvbSBcIi4vYmFzZS10YWJsZVwiO1xuaW1wb3J0IEJhc2VCdXR0b24gZnJvbSBcIi4uL2J1dHRvbi9iYXNlLWJ1dHRvblwiO1xuaW1wb3J0IFwiLi90YWJsZS1zdHlsZS5jc3NcIjtcbnZhciBEYXRhVGFibGUgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgcm93cyA9IHByb3BzLnJvd3MsIGNvbHVtbnMgPSBwcm9wcy5jb2x1bW5zLCBfYSA9IHByb3BzLmZpeGVkUm93c0luZGV4LCBmaXhlZFJvd3NJbmRleCA9IF9hID09PSB2b2lkIDAgPyAwIDogX2E7XG4gICAgdmFyIF9iID0gdXNlU3RhdGUocm93cy5tYXAoZnVuY3Rpb24gKHJvdykgeyByZXR1cm4gKHsgcm93OiByb3csIGhpZGU6IGZhbHNlIH0pOyB9KSksIGRpc3BsYXlSb3dzID0gX2JbMF0sIHNldERpc3BsYXlSb3dzID0gX2JbMV07XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2V0RGlzcGxheVJvd3Mocm93cy5tYXAoZnVuY3Rpb24gKHJvdykge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIHJldHVybiAoe1xuICAgICAgICAgICAgICAgIHJvdzogcm93LFxuICAgICAgICAgICAgICAgIGhpZGU6IChfYiA9IChfYSA9IGRpc3BsYXlSb3dzLmZpbmQoZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuIGl0ZW0ucm93LmlkID09PSByb3cuaWQ7IH0pKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaGlkZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpO1xuICAgIH0sIFtyb3dzXSk7XG4gICAgcmV0dXJuIChfanN4cyhUYWJsZVJvb3QsIHsgY2hpbGRyZW46IFtfanN4cyhUYWJsZVJvb3QuSGVhZGVyLCB7IGNsYXNzTmFtZTogXCJkYXRhLXRhYmxlXCIsIGNoaWxkcmVuOiBbX2pzeChUYWJsZVJvb3QuUm93LCB7IGNsYXNzTmFtZTogXCJmaXhlZC1yb3dzXCIsIGNoaWxkcmVuOiBkaXNwbGF5Um93cy5tYXAoZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgZml4ZWRSb3dzSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFRhYmxlUm9vdC5DZWxsLCB7IGNoaWxkcmVuOiBpdGVtLnJvdy52YWx1ZSB9LCBpdGVtLnJvdy5pZCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pIH0pLCBfanN4KFRhYmxlUm9vdC5Sb3csIHsgY2hpbGRyZW46IGRpc3BsYXlSb3dzLm1hcChmdW5jdGlvbiAoaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID49IGZpeGVkUm93c0luZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChUYWJsZVJvb3QuQ2VsbCwgeyBcImRhdGEtaWRcIjogaXRlbS5yb3cuaWQsIGNsYXNzTmFtZTogXCJcIi5jb25jYXQoaXRlbS5oaWRlID8gXCJoaWRlXCIgOiBcIlwiKSwgY2hpbGRyZW46IF9qc3goQmFzZUJ1dHRvbiwgeyBhc0NoaWxkOiB0cnVlLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBpdGVtLnJvdykub25DbGlja1JvdykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIGl0ZW0ucm93LmlkKTsgfSwgY2hpbGRyZW46IChfYSA9IGl0ZW0ucm93LnZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBfanN4KF9GcmFnbWVudCwge30pIH0pIH0sIGl0ZW0ucm93LmlkKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkgfSldIH0pLCBfanN4KFRhYmxlUm9vdC5Cb2R5LCB7IGNsYXNzTmFtZTogXCJkYXRhLXRhYmxlXCIsIGNoaWxkcmVuOiBjb2x1bW5zLm1hcChmdW5jdGlvbiAoY29sdW1uLCBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3hzKFwidGRcIiwgeyBzdHlsZTogeyBkaXNwbGF5OiBcImZsZXhcIiB9LCBjbGFzc05hbWU6IFwiZGF0YS10YWJsZSBjb21tb24tcm93XCIsIGNoaWxkcmVuOiBbX2pzeChUYWJsZVJvb3QuUm93LCB7IGNsYXNzTmFtZTogXCJmaXhlZC1yb3dzXCIsIGNoaWxkcmVuOiBkaXNwbGF5Um93cy5tYXAoZnVuY3Rpb24gKGl0ZW0sIGkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA8IGZpeGVkUm93c0luZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFRhYmxlUm9vdC5DZWxsLCB7IFwiZGF0YS1pZFwiOiBpdGVtLnJvdy5pZCwgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChpdGVtLmhpZGUgPyBcImhpZGVcIiA6IFwiXCIpLCBjaGlsZHJlbjogX2pzeChCYXNlQnV0dG9uLCB7IGFzQ2hpbGQ6IHRydWUsIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSBjb2x1bW5baXRlbS5yb3cuaWRdKS5vbkNsaWNrQ2VsbCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IChfYiA9IChfYSA9IGNvbHVtbltpdGVtLnJvdy5pZF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS52YWx1ZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogX2pzeChfRnJhZ21lbnQsIHt9KSB9KSB9LCBpdGVtLnJvdy5pZCArIE1hdGgucmFuZG9tKCkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgfSksIF9qc3goVGFibGVSb290LlJvdywgeyBjaGlsZHJlbjogZGlzcGxheVJvd3MubWFwKGZ1bmN0aW9uIChpdGVtLCBpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPj0gZml4ZWRSb3dzSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goVGFibGVSb290LkNlbGwsIHsgXCJkYXRhLWlkXCI6IGl0ZW0ucm93LmlkLCBjbGFzc05hbWU6IFwiXCIuY29uY2F0KGl0ZW0uaGlkZSA/IFwiaGlkZVwiIDogXCJcIiksIGNoaWxkcmVuOiBfanN4KEJhc2VCdXR0b24sIHsgYXNDaGlsZDogdHJ1ZSwgb25DbGljazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfYiA9IChfYSA9IGNvbHVtbltpdGVtLnJvdy5pZF0pLm9uQ2xpY2tDZWxsKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBjaGlsZHJlbjogKF9iID0gKF9hID0gY29sdW1uW2l0ZW0ucm93LmlkXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnZhbHVlKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBfanN4KF9GcmFnbWVudCwge30pIH0pIH0sIGl0ZW0ucm93LmlkICsgTWF0aC5yYW5kb20oKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSB9KV0gfSwgaW5kZXgpKTtcbiAgICAgICAgICAgICAgICB9KSB9KV0gfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IERhdGFUYWJsZTtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RleHQtZmllbGQtc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZVN0YXRlLCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFwiLi90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG52YXIgVGV4dExhYmVsID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHRleHQgPSBwcm9wcy50ZXh0LCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgcmV0dXJuIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgY2hpbGRyZW46IHRleHQgfSk7XG59O1xudmFyIElucHV0RmllbGQgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCBwbGFjZWhvbGRlciA9IHByb3BzLnBsYWNlaG9sZGVyLCBuYW1lID0gcHJvcHMubmFtZSwgb25DaGFuZ2UgPSBwcm9wcy5vbkNoYW5nZTtcbiAgICB2YXIgX2EgPSB1c2VDb250ZXh0KFRleHRGaWVsZENvbnRleHQpLCBjb252ZXJ0RXJyb3JNZXNzYWdlID0gX2EuY29udmVydEVycm9yTWVzc2FnZSwgY29udmVydEVycm9yU3RhdGUgPSBfYS5jb252ZXJ0RXJyb3JTdGF0ZSwgdmFsaWRhdGlvbnMgPSBfYS52YWxpZGF0aW9ucztcbiAgICB2YXIgdmFsaWRhdGVJbnB1dCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsaWRhdGlvbnMpIHtcbiAgICAgICAgICAgIHZhciBmYWlsZWRWYWxpZGF0aW9uID0gdmFsaWRhdGlvbnMuZmluZChmdW5jdGlvbiAodmFsaWRhdGlvbikgeyByZXR1cm4gIXZhbGlkYXRpb24ucnVsZS50ZXN0KHZhbHVlKTsgfSk7XG4gICAgICAgICAgICBpZiAoZmFpbGVkVmFsaWRhdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnZlcnRFcnJvclN0YXRlKHRydWUpO1xuICAgICAgICAgICAgICAgIGNvbnZlcnRFcnJvck1lc3NhZ2UoZmFpbGVkVmFsaWRhdGlvbi5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb252ZXJ0RXJyb3JTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICBjb252ZXJ0RXJyb3JNZXNzYWdlKFwiXCIpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICByZXR1cm4gKF9qc3goXCJpbnB1dFwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIG5hbWU6IG5hbWUsIG9uQ2hhbmdlOiBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdmFsaWRhdGVJbnB1dChlLnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgICAgIH0gfSkpO1xufTtcbnZhciBIZWxwZXJUZXh0ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHRleHQgPSBwcm9wcy50ZXh0LCBfYSA9IHByb3BzLmNsYXNzTmFtZSwgY2xhc3NOYW1lID0gX2EgPT09IHZvaWQgMCA/IGZhbHNlIDogX2E7XG4gICAgdmFyIF9iID0gdXNlQ29udGV4dChUZXh0RmllbGRDb250ZXh0KSwgZXJyb3JNZXNzYWdlID0gX2IuZXJyb3JNZXNzYWdlLCBpc0Vycm9yID0gX2IuaXNFcnJvcjtcbiAgICB2YXIgZXJyb3JDbGFzc05hbWUgPSBpc0Vycm9yID8gXCJlcnJvclwiIDogXCJcIjtcbiAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiXCIuY29uY2F0KGNsYXNzTmFtZSwgXCIgXCIpLmNvbmNhdChlcnJvckNsYXNzTmFtZSksIGNoaWxkcmVuOiBlcnJvck1lc3NhZ2UgIT09IG51bGwgJiYgZXJyb3JNZXNzYWdlICE9PSB2b2lkIDAgPyBlcnJvck1lc3NhZ2UgOiB0ZXh0IH0pKTtcbn07XG52YXIgVGV4dEZpZWxkQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe1xuICAgIGlzRXJyb3I6IGZhbHNlLFxuICAgIGNvbnZlcnRFcnJvclN0YXRlOiBmdW5jdGlvbiAoKSB7IH0sXG4gICAgdmFsaWRhdGlvbnM6IFtdLFxuICAgIGVycm9yTWVzc2FnZTogXCJcIixcbiAgICBjb252ZXJ0RXJyb3JNZXNzYWdlOiBmdW5jdGlvbiAodmFsdWUpIHsgfSxcbn0pO1xudmFyIFRleHRGaWVsZFJvb3QgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbiwgdmFsaWRhdGlvbnMgPSBfYS52YWxpZGF0aW9ucywgd2lkdGggPSBfYS53aWR0aDtcbiAgICB2YXIgX2IgPSB1c2VTdGF0ZShmYWxzZSksIGlzRXJyb3IgPSBfYlswXSwgc2V0SXNFcnJvciA9IF9iWzFdO1xuICAgIHZhciBfYyA9IHVzZVN0YXRlKFwiXCIpLCBlcnJvck1lc3NhZ2UgPSBfY1swXSwgc2V0RXJyb3JNZXNzYWdlID0gX2NbMV07XG4gICAgdmFyIGNvbnZlcnRFcnJvclN0YXRlID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHNldElzRXJyb3IodmFsdWUpO1xuICAgIH07XG4gICAgdmFyIGNvbnZlcnRFcnJvck1lc3NhZ2UgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgc2V0RXJyb3JNZXNzYWdlKHZhbHVlKTtcbiAgICB9O1xuICAgIHJldHVybiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IFwidGV4dC1maWVsZC1yb290XCIsIHN0eWxlOiB7IGRpc3BsYXk6IFwiYmxvY2tcIiwgd2lkdGg6IFwiXCIuY29uY2F0KHdpZHRoLCBcInB4XCIpIH0sIGNoaWxkcmVuOiBfanN4KFRleHRGaWVsZENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBpc0Vycm9yOiBpc0Vycm9yLFxuICAgICAgICAgICAgICAgIGNvbnZlcnRFcnJvclN0YXRlOiBjb252ZXJ0RXJyb3JTdGF0ZSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uczogdmFsaWRhdGlvbnMsXG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgY29udmVydEVycm9yTWVzc2FnZTogY29udmVydEVycm9yTWVzc2FnZSxcbiAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBjaGlsZHJlbiB9KSB9KSk7XG59O1xuVGV4dEZpZWxkUm9vdC5UZXh0TGFiZWwgPSBUZXh0TGFiZWw7XG5UZXh0RmllbGRSb290LklucHV0RmllbGQgPSBJbnB1dEZpZWxkO1xuVGV4dEZpZWxkUm9vdC5IZWxwZXJUZXh0ID0gSGVscGVyVGV4dDtcbmV4cG9ydCBkZWZhdWx0IFRleHRGaWVsZFJvb3Q7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFRleHRGaWVsZFJvb3QgZnJvbSBcIi4vYmFzZS10ZXh0LWZpZWxkXCI7XG5pbXBvcnQgXCIuL3RleHQtZmllbGQtc3R5bGUuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbnZhciBUZXh0RmllbGQgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgX2IgPSBfYS53aWR0aCwgd2lkdGggPSBfYiA9PT0gdm9pZCAwID8gMzQzIDogX2IsIF9jID0gX2EucGxhY2Vob2xkZXIsIHBsYWNlaG9sZGVyID0gX2MgPT09IHZvaWQgMCA/IFwiXCIgOiBfYywgX2QgPSBfYS5uYW1lLCBuYW1lID0gX2QgPT09IHZvaWQgMCA/IFwiXCIgOiBfZCwgaGVscGVyVGV4dCA9IF9hLmhlbHBlclRleHQsIGxhYmVsVGV4dCA9IF9hLmxhYmVsVGV4dCwgb25DaGFuZ2UgPSBfYS5vbkNoYW5nZTtcbiAgICByZXR1cm4gKF9qc3hzKFRleHRGaWVsZFJvb3QsIHsgdmFsaWRhdGlvbnM6IFtdLCB3aWR0aDogd2lkdGgsIGNoaWxkcmVuOiBbbGFiZWxUZXh0ICYmIChfanN4KFRleHRGaWVsZFJvb3QuVGV4dExhYmVsLCB7IHRleHQ6IGxhYmVsVGV4dCwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBsYWJlbFwiIH0pKSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaW5wdXQtd3JhcHBlclwiLCBjaGlsZHJlbjogX2pzeChUZXh0RmllbGRSb290LklucHV0RmllbGQsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBpbnB1dFwiLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIG5hbWU6IG5hbWUsIG9uQ2hhbmdlOiBvbkNoYW5nZSB9KSB9KSwgaGVscGVyVGV4dCAmJiAoX2pzeChUZXh0RmllbGRSb290LkhlbHBlclRleHQsIHsgdGV4dDogaGVscGVyVGV4dCwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBoZWxwZXItdGV4dFwiIH0pKV0gfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFRleHRGaWVsZDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgVGV4dEZpZWxkUm9vdCBmcm9tIFwiLi9iYXNlLXRleHQtZmllbGRcIjtcbmltcG9ydCBcIi4vdGV4dC1maWVsZC1zdHlsZS5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xudmFyIFRleHRGaWVsZFdpdGhFcnJvciA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBfYiA9IF9hLndpZHRoLCB3aWR0aCA9IF9iID09PSB2b2lkIDAgPyAzNDMgOiBfYiwgX2MgPSBfYS5wbGFjZWhvbGRlciwgcGxhY2Vob2xkZXIgPSBfYyA9PT0gdm9pZCAwID8gXCJcIiA6IF9jLCBfZCA9IF9hLm5hbWUsIG5hbWUgPSBfZCA9PT0gdm9pZCAwID8gXCJcIiA6IF9kLCBoZWxwZXJUZXh0ID0gX2EuaGVscGVyVGV4dCwgbGFiZWxUZXh0ID0gX2EubGFiZWxUZXh0LCB2YWxpZGF0aW9ucyA9IF9hLnZhbGlkYXRpb25zO1xuICAgIHJldHVybiAoX2pzeHMoVGV4dEZpZWxkUm9vdCwgeyB3aWR0aDogd2lkdGgsIHZhbGlkYXRpb25zOiB2YWxpZGF0aW9ucywgY2hpbGRyZW46IFtsYWJlbFRleHQgJiYgKF9qc3goVGV4dEZpZWxkUm9vdC5UZXh0TGFiZWwsIHsgdGV4dDogbGFiZWxUZXh0LCBjbGFzc05hbWU6IFwibnVyaS10aGVtZSB0ZXh0LWZpZWxkIGxhYmVsXCIgfSkpLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBpbnB1dC13cmFwcGVyXCIsIGNoaWxkcmVuOiBfanN4KFRleHRGaWVsZFJvb3QuSW5wdXRGaWVsZCwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSB0ZXh0LWZpZWxkIGlucHV0XCIsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgbmFtZTogbmFtZSB9KSB9KSwgaGVscGVyVGV4dCAmJiAoX2pzeChUZXh0RmllbGRSb290LkhlbHBlclRleHQsIHsgdGV4dDogaGVscGVyVGV4dCwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBoZWxwZXItdGV4dFwiLCBpc0Vycm9yOiB0cnVlIH0pKV0gfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFRleHRGaWVsZFdpdGhFcnJvcjtcbiIsImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5leHBvcnQgdmFyIHVzZUV4dGVybmFsU3RhdGUgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgcHJvcCA9IF9hLnByb3AsIGhhbmRsZXIgPSBfYS5oYW5kbGVyLCBkZWZhdWx0UHJvcCA9IF9hLmRlZmF1bHRQcm9wO1xuICAgIHZhciBfYiA9IHVzZVN0YXRlKHByb3AgIT09IG51bGwgJiYgcHJvcCAhPT0gdm9pZCAwID8gcHJvcCA6IGRlZmF1bHRQcm9wKSwgaW5uZXJTdGF0ZSA9IF9iWzBdLCBzZXRJbm5lclN0YXRlID0gX2JbMV07XG4gICAgdmFyIGlzQ29udHJvbGxlZEJ5RXh0ZXJuYWwgPSBwcm9wICE9PSB1bmRlZmluZWQ7XG4gICAgdmFyIHZhbHVlID0gaXNDb250cm9sbGVkQnlFeHRlcm5hbCA/IHByb3AgOiBpbm5lclN0YXRlO1xuICAgIHZhciBzZXRWYWx1ZSA9IGZ1bmN0aW9uIChoYW5kbGVkVmFsdWUpIHtcbiAgICAgICAgaWYgKGlzQ29udHJvbGxlZEJ5RXh0ZXJuYWwpIHtcbiAgICAgICAgICAgIHZhciBzZXR0ZXIgPSBoYW5kbGVkVmFsdWU7XG4gICAgICAgICAgICB2YXIgdmFsdWVfMSA9IHR5cGVvZiBoYW5kbGVkVmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgID8gc2V0dGVyKHByb3AgIT09IG51bGwgJiYgcHJvcCAhPT0gdm9pZCAwID8gcHJvcCA6IGRlZmF1bHRQcm9wKVxuICAgICAgICAgICAgICAgIDogaGFuZGxlZFZhbHVlO1xuICAgICAgICAgICAgaGFuZGxlciA9PT0gbnVsbCB8fCBoYW5kbGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBoYW5kbGVyKHZhbHVlXzEpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2V0SW5uZXJTdGF0ZShoYW5kbGVkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gW3ZhbHVlLCBzZXRWYWx1ZV07XG59O1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUV4dGVybmFsU3RhdGUgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9ob29rcy91c2VFeHRlcm5hbFN0YXRlXCI7XG5pbXBvcnQgQ29tcG9zZXIgZnJvbSBcIi4uL2NvcmUvY29tcG9zZXJcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9jb2xvci5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xudmFyIFJhZGlvQnV0dG9uID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIGlkID0gcHJvcHMuaWQ7XG4gICAgdmFyIF9hID0gdXNlQ29udGV4dChSYWRpb0NvbnRleHQpLCBzZWxlY3RlZCA9IF9hLnNlbGVjdGVkLCBvbkNoYW5nZSA9IF9hLm9uQ2hhbmdlO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJkaXZcIjtcbiAgICByZXR1cm4gKF9qc3goQ29tcCwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBcIi5jb25jYXQoY2xhc3NOYW1lKSwgb25DbGljazogZnVuY3Rpb24gKCkgeyByZXR1cm4gb25DaGFuZ2UoaWQpOyB9LCBjaGlsZHJlbjogaWQgPT09IHNlbGVjdGVkID8gY2hpbGRyZW4gOiBudWxsIH0pKTtcbn07XG52YXIgUmFkaW9JbmRpY2F0b3IgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgYXNDaGlsZCA9IHByb3BzLmFzQ2hpbGQsIGlkID0gcHJvcHMuaWQsIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZTtcbiAgICB2YXIgc2VsZWN0ZWQgPSB1c2VDb250ZXh0KFJhZGlvQ29udGV4dCkuc2VsZWN0ZWQ7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImlucHV0XCI7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIHsgdHlwZTogXCJyYWRpb1wiLCBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBcIi5jb25jYXQoc2VsZWN0ZWQgPT09IGlkID8gXCJzZWxlY3RlZFwiIDogXCJcIiwgXCIgXCIpLmNvbmNhdChjbGFzc05hbWUpLCBjaGVja2VkOiBzZWxlY3RlZCA9PT0gaWQsIGNoaWxkcmVuOiBjaGlsZHJlbiB9KSk7XG59O1xudmFyIFJhZGlvTGFiZWwgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgYXNDaGlsZCA9IHByb3BzLmFzQ2hpbGQsIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZTtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwibGFiZWxcIjtcbiAgICByZXR1cm4gX2pzeChDb21wLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIFwiLmNvbmNhdChjbGFzc05hbWUpLCBjaGlsZHJlbjogY2hpbGRyZW4gfSk7XG59O1xudmFyIFJhZGlvT3B0aW9uR3JvdXAgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgYXNDaGlsZCA9IHByb3BzLmFzQ2hpbGQsIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZTtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwidWxcIjtcbiAgICByZXR1cm4gX2pzeChDb21wLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lLCBjaGlsZHJlbjogY2hpbGRyZW4gfSk7XG59O1xudmFyIFJhZGlvQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe1xuICAgIG9wdGlvbnM6IFtdLFxuICAgIHNlbGVjdGVkOiBudWxsLFxuICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiAoaWQpIHsgfSxcbn0pO1xudmFyIFJhZGlvUm9vdCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBvcHRpb25zID0gcHJvcHMub3B0aW9ucywgX2EgPSBwcm9wcy5zZWxlY3RlZCwgc2VsZWN0ZWQgPSBfYSA9PT0gdm9pZCAwID8gbnVsbCA6IF9hLCBleHRlcm5hbE9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2U7XG4gICAgdmFyIF9iID0gdXNlRXh0ZXJuYWxTdGF0ZSh7XG4gICAgICAgIHByb3A6IHNlbGVjdGVkLFxuICAgICAgICBoYW5kbGVyOiBleHRlcm5hbE9uQ2hhbmdlLFxuICAgICAgICBkZWZhdWx0UHJvcDogc2VsZWN0ZWQsXG4gICAgfSksIHNlbGVjdGVkSWQgPSBfYlswXSwgc2V0U2VsZWN0ZWRJZCA9IF9iWzFdO1xuICAgIHZhciBvbkNoYW5nZSA9IGZ1bmN0aW9uIChpZCkge1xuICAgICAgICBzZXRTZWxlY3RlZElkKGlkKTtcbiAgICB9O1xuICAgIHJldHVybiAoX2pzeChSYWRpb0NvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHsgc2VsZWN0ZWQ6IHNlbGVjdGVkSWQsIG9uQ2hhbmdlOiBvbkNoYW5nZSwgb3B0aW9uczogb3B0aW9ucyB9LCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpO1xufTtcblJhZGlvUm9vdC5JbmRpY2F0b3IgPSBSYWRpb0luZGljYXRvcjtcblJhZGlvUm9vdC5MYWJlbCA9IFJhZGlvTGFiZWw7XG5SYWRpb1Jvb3QuT3B0aW9uR3JvdXAgPSBSYWRpb09wdGlvbkdyb3VwO1xuUmFkaW9Sb290LkJ1dHRvbiA9IFJhZGlvQnV0dG9uO1xuZXhwb3J0IGRlZmF1bHQgUmFkaW9Sb290O1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3JhZGlvLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3JhZGlvLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmFkaW9Sb290IGZyb20gXCIuL2Jhc2UtcmFkaW9cIjtcbmltcG9ydCBcIi4vcmFkaW8tc3R5bGUuY3NzXCI7XG52YXIgUmFkaW8gPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgc2VsZWN0ZWQgPSBwcm9wcy5zZWxlY3RlZCwgb25DaGFuZ2UgPSBwcm9wcy5vbkNoYW5nZSwgb3B0aW9ucyA9IHByb3BzLm9wdGlvbnM7XG4gICAgcmV0dXJuIChfanN4KFJhZGlvUm9vdCwgeyBvcHRpb25zOiBvcHRpb25zLCBzZWxlY3RlZDogc2VsZWN0ZWQsIG9uQ2hhbmdlOiBvbkNoYW5nZSwgY2hpbGRyZW46IF9qc3goUmFkaW9Sb290Lk9wdGlvbkdyb3VwLCB7IGNsYXNzTmFtZTogXCJyYWRpbyByYWRpby1ncm91cFwiLCBjaGlsZHJlbjogb3B0aW9ucy5tYXAoZnVuY3Rpb24gKG9wdGlvbikgeyByZXR1cm4gKF9qc3hzKFwibGlcIiwgeyBzdHlsZTogeyBkaXNwbGF5OiBcImZsZXhcIiwgYWxpZ25JdGVtczogXCJjZW50ZXJcIiwgZ2FwOiBcIjZweFwiIH0sIGNoaWxkcmVuOiBbX2pzeChSYWRpb1Jvb3QuQnV0dG9uLCB7IGlkOiBvcHRpb24uaWQsIGNsYXNzTmFtZTogXCJyYWRpbyByYWRpby1idXR0b25cIiwgY2hpbGRyZW46IF9qc3goUmFkaW9Sb290LkluZGljYXRvciwgeyBpZDogb3B0aW9uLmlkLCBhc0NoaWxkOiB0cnVlLCBjbGFzc05hbWU6IFwicmFkaW8gcmFkaW8taW5kaWNhdG9yXCIsIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHt9KSB9KSB9KSwgX2pzeChSYWRpb1Jvb3QuTGFiZWwsIHsgaWQ6IG9wdGlvbi5pZCwgY2xhc3NOYW1lOiBcInJhZGlvIHJhZGlvLWxhYmVsXCIsIGNoaWxkcmVuOiBvcHRpb24ubGFiZWwgfSldIH0sIG9wdGlvbi5pZCkpOyB9KSB9KSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgUmFkaW87XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vY2hlY2stYm94LXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NoZWNrLWJveC1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUV4dGVybmFsU3RhdGUgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9ob29rcy91c2VFeHRlcm5hbFN0YXRlXCI7XG5pbXBvcnQgXCIuL2NoZWNrLWJveC1zdHlsZS5jc3NcIjtcbmltcG9ydCBDb21wb3NlciBmcm9tIFwiLi4vY29yZS9jb21wb3NlclwiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCI7XG52YXIgQ2hlY2tCb3hMYWJlbCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBhc0NoaWxkID0gcHJvcHMuYXNDaGlsZCwgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcbiAgICB2YXIgaWQgPSB1c2VDb250ZXh0KENoZWNrQm94Q29udGV4dCkuaWQ7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImxhYmVsXCI7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgYmFzZS1jaGVjay1ib3ggbGFiZWxcIiwgaHRtbEZvcjogaWQsIGNoaWxkcmVuOiBjaGlsZHJlbiB9KSk7XG59O1xudmFyIENoZWNrQm94SW5wdXQgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgYXNDaGlsZCA9IHByb3BzLmFzQ2hpbGQsIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiYXNDaGlsZFwiLCBcImNoaWxkcmVuXCIsIFwiY2xhc3NOYW1lXCJdKTtcbiAgICB2YXIgX2EgPSB1c2VDb250ZXh0KENoZWNrQm94Q29udGV4dCksIGNoZWNrZWQgPSBfYS5jaGVja2VkLCB0b2dnbGVDaGVja2VkID0gX2EudG9nZ2xlQ2hlY2tlZCwgaWQgPSBfYS5pZCwgZGlzYWJsZWQgPSBfYS5kaXNhYmxlZDtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwiaW5wdXRcIjtcbiAgICByZXR1cm4gKF9qc3goQ29tcCwgX19hc3NpZ24oeyB0eXBlOiBcImNoZWNrYm94XCIsIGNoZWNrZWQ6IGNoZWNrZWQsIG9uQ2hhbmdlOiBkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IHRvZ2dsZUNoZWNrZWQsIG9uQ2xpY2s6IGRpc2FibGVkID8gdW5kZWZpbmVkIDogdG9nZ2xlQ2hlY2tlZCwgaWQ6IGlkLCBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBjaGVjay1ib3gtaW5wdXQgXCIuY29uY2F0KGNsYXNzTmFtZSwgXCIgXCIpLmNvbmNhdChjaGVja2VkID8gXCJjaGVja2VkXCIgOiBcInVuY2hlY2tlZFwiLCBcIiBcIikuY29uY2F0KGRpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIikgfSwgcmVzdCwgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpKTtcbn07XG52YXIgQ2hlY2tCb3hDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7XG4gICAgY2hlY2tlZDogZmFsc2UsXG4gICAgdG9nZ2xlQ2hlY2tlZDogZnVuY3Rpb24gKCkgeyB9LFxuICAgIGlkOiBcIlwiLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbn0pO1xudmFyIENoZWNrQm94Um9vdCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBleHRlcm5hbENoZWNrZWQgPSBwcm9wcy5jaGVja2VkLCBleHRlcm5hbE9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2UsIGlkID0gcHJvcHMuaWQsIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGRpc2FibGVkID0gcHJvcHMuZGlzYWJsZWQ7XG4gICAgdmFyIF9hID0gdXNlRXh0ZXJuYWxTdGF0ZSh7XG4gICAgICAgIHByb3A6IGV4dGVybmFsQ2hlY2tlZCxcbiAgICAgICAgaGFuZGxlcjogZXh0ZXJuYWxPbkNoYW5nZSxcbiAgICAgICAgZGVmYXVsdFByb3A6IGV4dGVybmFsQ2hlY2tlZCAhPT0gbnVsbCAmJiBleHRlcm5hbENoZWNrZWQgIT09IHZvaWQgMCA/IGV4dGVybmFsQ2hlY2tlZCA6IGZhbHNlLFxuICAgIH0pLCBjaGVja2VkID0gX2FbMF0sIHNldENoZWNrZWQgPSBfYVsxXTtcbiAgICB2YXIgdG9nZ2xlQ2hlY2tlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2V0Q2hlY2tlZChmdW5jdGlvbiAocHJldikgeyByZXR1cm4gIXByZXY7IH0pO1xuICAgIH07XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNoZWNrLWJveC1yb290XCIsIGNoaWxkcmVuOiBfanN4KENoZWNrQm94Q29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyBjaGVja2VkOiBjaGVja2VkLCB0b2dnbGVDaGVja2VkOiB0b2dnbGVDaGVja2VkLCBpZDogaWQsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCBjaGlsZHJlbjogY2hpbGRyZW4gfSkgfSkpO1xufTtcbkNoZWNrQm94Um9vdC5MYWJlbCA9IENoZWNrQm94TGFiZWw7XG5DaGVja0JveFJvb3QuSW5wdXQgPSBDaGVja0JveElucHV0O1xuZXhwb3J0IGRlZmF1bHQgQ2hlY2tCb3hSb290O1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBcIi4vY2hlY2stYm94LXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG5pbXBvcnQgY2hlY2sgZnJvbSBcIi4uLy4uL2Fzc2V0cy9pY29ucy9jaGVjay5zdmdcIjtcbmltcG9ydCBDaGVja0JveFJvb3QgZnJvbSBcIi4vYmFzZS1jaGVjay1ib3hcIjtcbnZhciBDaGVja0JveCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjaGVja2VkID0gcHJvcHMuY2hlY2tlZCwgb25DaGFuZ2UgPSBwcm9wcy5vbkNoYW5nZSwgbGFiZWwgPSBwcm9wcy5sYWJlbCwgX2EgPSBwcm9wcy5pY29uU2l6ZSwgaWNvblNpemUgPSBfYSA9PT0gdm9pZCAwID8gMjQgOiBfYSwgaWQgPSBwcm9wcy5pZCwgZGlzYWJsZWQgPSBwcm9wcy5kaXNhYmxlZDtcbiAgICByZXR1cm4gKF9qc3goQ2hlY2tCb3hSb290LCB7IGlkOiBpZCwgY2hlY2tlZDogY2hlY2tlZCwgb25DaGFuZ2U6IG9uQ2hhbmdlLCBkaXNhYmxlZDogZGlzYWJsZWQsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJjaGVjay1ib3hcIiwgY2hpbGRyZW46IFtfanN4KENoZWNrQm94Um9vdC5JbnB1dCwgeyBhc0NoaWxkOiB0cnVlLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIGNoZWNrLWJveC1pbnB1dFwiLCBzdHlsZTogeyB3aWR0aDogXCJcIi5jb25jYXQoaWNvblNpemUsIFwicHhcIiksIGhlaWdodDogXCJcIi5jb25jYXQoaWNvblNpemUsIFwicHhcIikgfSwgY2hpbGRyZW46IF9qc3goXCJpbWdcIiwgeyBzcmM6IGNoZWNrLCBhbHQ6IFwiY2hlY2tcIiB9KSB9KSB9KSwgX2pzeChDaGVja0JveFJvb3QuTGFiZWwsIHsgY2hpbGRyZW46IGxhYmVsIH0pXSB9KSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgQ2hlY2tCb3g7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdGV4dC1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90ZXh0LXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFwiLi90ZXh0LXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi8uLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCI7XG52YXIgVGV4dCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dCwgc2l6ZSA9IHByb3BzLnNpemUsIHdlaWdodCA9IHByb3BzLndlaWdodCwgY29sb3IgPSBwcm9wcy5jb2xvciwgdGV4dEFsaWduID0gcHJvcHMudGV4dEFsaWduLCB0ZXh0RGVjb3JhdGlvbiA9IHByb3BzLnRleHREZWNvcmF0aW9uLCB3b3JkQnJlYWsgPSBwcm9wcy53b3JkQnJlYWssIHdoaXRlU3BhY2UgPSBwcm9wcy53aGl0ZVNwYWNlLCBhcyA9IHByb3BzLmFzLCBzdHlsZSA9IHByb3BzLnN0eWxlO1xuICAgIHZhciBDb21wID0gYXMgPyBhcyA6IFwicFwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIGJhc2UtdGV4dCBcIi5jb25jYXQoL15cXGQreGwkLy50ZXN0KHNpemUpID8gXCJ0LVwiLmNvbmNhdChzaXplKSA6IHNpemUsIFwiIFwiKS5jb25jYXQod2VpZ2h0LCBcIiB0ZXh0QWxpZ24tXCIpLmNvbmNhdCh0ZXh0QWxpZ24sIFwiIHRleHREZWNvcmF0aW9uLVwiKS5jb25jYXQodGV4dERlY29yYXRpb24sIFwiIHdvcmRCcmVhay1cIikuY29uY2F0KHdvcmRCcmVhaywgXCIgd2hpdGVTcGFjZS1cIikuY29uY2F0KHdoaXRlU3BhY2UsIFwiIFwiKS5jb25jYXQoY29sb3IgPyBcImNvbG9yLVwiLmNvbmNhdChjb2xvcikgOiBcIlwiKSwgc3R5bGU6IF9fYXNzaWduKHt9LCBzdHlsZSksIGNoaWxkcmVuOiB0ZXh0IH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUZXh0O1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBBdmF0YXIgfSBmcm9tIFwiLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ1RBQnV0dG9uIH0gZnJvbSBcIi4vY29tcG9uZW50cy9idXR0b24vY3RhLWJ1dHRvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBPcHRpb25CYWRnZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFkZ2Uvb3B0aW9uLWJhZGdlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEljb25UZXh0QmFkZ2UgfSBmcm9tIFwiLi9jb21wb25lbnRzL2JhZGdlL2ljb24tdGV4dC1iYWRnZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uVGV4dE9wdGlvbkJhZGdlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYWRnZS9pY29uLXRleHQtb3B0aW9uLWJhZGdlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERhdGFUYWJsZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvdGFibGUvZGF0YS10YWJsZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0RmllbGQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3RleHQtZmllbGQvdGV4dC1maWVsZFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0RmllbGRXaXRoRXJyb3IgfSBmcm9tIFwiLi9jb21wb25lbnRzL3RleHQtZmllbGQvdGV4dC1maWVsZC13aXRoLWVycm9yXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhZGlvIH0gZnJvbSBcIi4vY29tcG9uZW50cy9yYWRpby9yYWRpb1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja2JveCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY2hlY2stYm94L2NoZWNrLWJveFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0IH0gZnJvbSBcIi4vY29tcG9uZW50cy9lbGVtZW50cy90ZXh0L3RleHRcIjtcbmV4cG9ydCB7IGNvbG9ycyB9IGZyb20gXCIuL3N0eWxlcy90b2tlbi9jb2xvcnNcIjtcbiJdLCJuYW1lcyI6WyJfX2Fzc2lnbiIsIk9iamVjdCIsImFzc2lnbiIsInQiLCJzIiwiaSIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJwIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJfX3Jlc3QiLCJlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiQ2hpbGRyZW4iLCJjbG9uZUVsZW1lbnQiLCJmb3J3YXJkUmVmIiwiaXNWYWxpZEVsZW1lbnQiLCJDb21wb3NlciIsIl9hIiwicmVmIiwiY2hpbGRyZW4iLCJjb21wb3NlclByb3BzIiwiY2hpbGRBcnJheSIsInRvQXJyYXkiLCJFcnJvciIsImlzVmFsaWRDaGlsZCIsImNoaWxkIiwiY2hpbGRSZWYiLCJnZXRFbGVtZW50UmVmIiwibWVyZ2VkUHJvcHMiLCJtZXJnZVByb3BzIiwicHJvcHMiLCJjb21wb3NlUmVmcyIsImRpc3BsYXlOYW1lIiwiY2hpbGRQcm9wcyIsIm92ZXJyaWRlUHJvcHMiLCJfbG9vcF8xIiwicHJvcE5hbWUiLCJjb21wb3NlclByb3BWYWx1ZSIsImNoaWxkUHJvcFZhbHVlIiwiaXNIYW5kbGVyIiwidGVzdCIsImFyZ3MiLCJfaSIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiZWxlbWVudCIsIl9iIiwiY2hpbGRHZXR0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXQiLCJtYXlXYXJuSW5DaGlsZCIsImlzUmVhY3RXYXJuaW5nIiwiZ2V0dGVyIiwibWF5V2FybiIsInJlZnMiLCJub2RlIiwiZm9yRWFjaCIsImN1cnJlbnQiLCJqc3giLCJfanN4IiwiQmFzZUJhZGdlIiwiYXNDaGlsZCIsImJvcmRlckNvbG9yIiwidGV4dENvbG9yIiwicmFkaXVzIiwiYmFja2dyb3VuZENvbG9yIiwiX2MiLCJzaXplIiwic3R5bGUiLCJjbGFzc05hbWUiLCJyZXN0UHJvcHMiLCJDb21wIiwiY29tcG9zZWRDbGFzc05hbWUiLCJjb25jYXQiLCJib3JkZXJSYWRpdXMiLCJqc3hzIiwiX2pzeHMiLCJ1c2VTdGF0ZSIsImRlZmF1bHRBdmF0YXIiLCJBdmF0YXIiLCJzcmMiLCJhbHQiLCJiYWRnZU9wdGlvbiIsImlzSW1hZ2VEb3dubG9hZCIsInNldElzSW1hZ2VEb3dubG9hZCIsIm9uTG9hZCIsInBvc2l0aW9uIiwicmlnaHQiLCJib3R0b20iLCJCYXNlQnV0dG9uIiwiZGlzYWJsZWQiLCJMb2FkaW5nIiwidmFyaWFudCIsIkNUQUJ1dHRvbiIsInRleHQiLCJfZCIsImxvYWRpbmciLCJsZWZ0SWNvbiIsInJpZ2h0SWNvbiIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJnYXAiLCJjb2xvcnMiLCJibGFjayIsIndoaXRlIiwiZ3JheUZhIiwiZ3JheUY0IiwiZ3JheUU0IiwiZ3JheUQ0IiwiZ3JheUExIiwiZ3JheTcxIiwiZ3JheTUyIiwiZ3JheTNmIiwiZ3JheTI3IiwiZ3JheTE4IiwicHVycGxlMzkiLCJwdXJwbGU0YyIsInB1cnBsZURkIiwicHVycGxlRTkiLCJwdXJwbGVGNCIsInB1cnBsZTQxIiwicHVycGxlOTUiLCJhY2NlbnRSZWREZiIsImFjY2VudFJlZEM4IiwiYWNjZW50TWFnZW50YUIwIiwiYWNjZW50R3JlZW4yOCIsImFjY2VudEJsdWUwMSIsImFjY2VudFBpbmtFYyIsImFjY2VudEdyZWVuNDEiLCJPcHRpb25CYWRnZSIsIm9wdGlvbiIsInRvb2x0aXBUZXh0IiwidG9vbHRpcFN0eWxlIiwidG9vbHRpcFBvc2l0aW9uIiwiaXNUb29sdGlwT3BlbiIsInNldElzVG9vbHRpcE9wZW4iLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJ3aWR0aCIsImhlaWdodCIsImJvcmRlclRvcCIsImJvcmRlckJvdHRvbSIsImJvcmRlclJpZ2h0IiwidG9wIiwibGVmdCIsInRyYW5zZm9ybSIsImJvcmRlckxlZnQiLCJ6SW5kZXgiLCJjb2xvciIsInBhZGRpbmciLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJtYXJnaW5Ub3AiLCJ3aGl0ZVNwYWNlIiwiSWNvblRleHRCYWRnZSIsImljb24iLCJJY29uVGV4dE9wdGlvbkJhZGdlIiwiVGFibGVSb290IiwiVGFibGVIZWFkZXIiLCJqdXN0aWZ5IiwicmVzdCIsIlRhYmxlUm93IiwiY2xhc3NOYW1lcyIsIlRhYmxlQm9keSIsIlRhYmxlQ2VsbCIsIkhlYWRlciIsIkJvZHkiLCJSb3ciLCJDZWxsIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJ1c2VFZmZlY3QiLCJEYXRhVGFibGUiLCJyb3dzIiwiY29sdW1ucyIsImZpeGVkUm93c0luZGV4IiwibWFwIiwicm93IiwiaGlkZSIsImRpc3BsYXlSb3dzIiwic2V0RGlzcGxheVJvd3MiLCJmaW5kIiwiaXRlbSIsImlkIiwiaW5kZXgiLCJ2YWx1ZSIsIm9uQ2xpY2siLCJvbkNsaWNrUm93IiwiY29sdW1uIiwib25DbGlja0NlbGwiLCJNYXRoIiwicmFuZG9tIiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJUZXh0TGFiZWwiLCJJbnB1dEZpZWxkIiwicGxhY2Vob2xkZXIiLCJuYW1lIiwib25DaGFuZ2UiLCJUZXh0RmllbGRDb250ZXh0IiwiY29udmVydEVycm9yTWVzc2FnZSIsImNvbnZlcnRFcnJvclN0YXRlIiwidmFsaWRhdGlvbnMiLCJ2YWxpZGF0ZUlucHV0IiwiZmFpbGVkVmFsaWRhdGlvbiIsInZhbGlkYXRpb24iLCJydWxlIiwibWVzc2FnZSIsInRhcmdldCIsIkhlbHBlclRleHQiLCJlcnJvck1lc3NhZ2UiLCJpc0Vycm9yIiwiZXJyb3JDbGFzc05hbWUiLCJUZXh0RmllbGRSb290Iiwic2V0SXNFcnJvciIsInNldEVycm9yTWVzc2FnZSIsIlByb3ZpZGVyIiwiVGV4dEZpZWxkIiwiaGVscGVyVGV4dCIsImxhYmVsVGV4dCIsIlRleHRGaWVsZFdpdGhFcnJvciIsInVzZUV4dGVybmFsU3RhdGUiLCJwcm9wIiwiaGFuZGxlciIsImRlZmF1bHRQcm9wIiwiaW5uZXJTdGF0ZSIsInNldElubmVyU3RhdGUiLCJpc0NvbnRyb2xsZWRCeUV4dGVybmFsIiwidW5kZWZpbmVkIiwic2V0VmFsdWUiLCJoYW5kbGVkVmFsdWUiLCJzZXR0ZXIiLCJ2YWx1ZV8xIiwiUmFkaW9CdXR0b24iLCJSYWRpb0NvbnRleHQiLCJzZWxlY3RlZCIsIlJhZGlvSW5kaWNhdG9yIiwidHlwZSIsImNoZWNrZWQiLCJSYWRpb0xhYmVsIiwiUmFkaW9PcHRpb25Hcm91cCIsIm9wdGlvbnMiLCJSYWRpb1Jvb3QiLCJleHRlcm5hbE9uQ2hhbmdlIiwic2VsZWN0ZWRJZCIsInNldFNlbGVjdGVkSWQiLCJJbmRpY2F0b3IiLCJMYWJlbCIsIk9wdGlvbkdyb3VwIiwiQnV0dG9uIiwiUmFkaW8iLCJsYWJlbCIsIkNoZWNrQm94TGFiZWwiLCJDaGVja0JveENvbnRleHQiLCJodG1sRm9yIiwiQ2hlY2tCb3hJbnB1dCIsInRvZ2dsZUNoZWNrZWQiLCJDaGVja0JveFJvb3QiLCJleHRlcm5hbENoZWNrZWQiLCJzZXRDaGVja2VkIiwicHJldiIsIklucHV0IiwiY2hlY2siLCJDaGVja0JveCIsImljb25TaXplIiwiVGV4dCIsIndlaWdodCIsInRleHRBbGlnbiIsInRleHREZWNvcmF0aW9uIiwid29yZEJyZWFrIiwiYXMiLCJkZWZhdWx0IiwiQ2hlY2tib3giXSwic291cmNlUm9vdCI6IiJ9