decap-cms-core 3.3.6 → 3.3.7

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.
@@ -26,7 +26,7 @@ const styles = {
26
26
  } : {
27
27
  name: "1ctb18k-noOverflow",
28
28
  styles: "overflow:hidden;white-space:nowrap;text-overflow:ellipsis;label:noOverflow;",
29
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVCaUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
29
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVCaUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
30
30
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
31
31
  },
32
32
  buttonMargin: process.env.NODE_ENV === "production" ? {
@@ -35,11 +35,11 @@ const styles = {
35
35
  } : {
36
36
  name: "bx8mhy-buttonMargin",
37
37
  styles: "margin:0 10px;label:buttonMargin;",
38
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCbUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
38
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCbUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
39
39
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
40
40
  },
41
- toolbarSection: /*#__PURE__*/(0, _react2.css)("height:100%;display:flex;align-items:center;border:0 solid ", _decapCmsUiDefault.colors.textFieldBorder, ";;label:toolbarSection;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStCcUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */")),
42
- publishedButton: /*#__PURE__*/(0, _react2.css)("background-color:", _decapCmsUiDefault.colorsRaw.tealLight, ";color:", _decapCmsUiDefault.colorsRaw.tealDark, ";;label:publishedButton;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFDc0IiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"))
41
+ toolbarSection: /*#__PURE__*/(0, _react2.css)("height:100%;display:flex;align-items:center;border:0 solid ", _decapCmsUiDefault.colors.textFieldBorder, ";;label:toolbarSection;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStCcUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */")),
42
+ publishedButton: /*#__PURE__*/(0, _react2.css)("background-color:", _decapCmsUiDefault.colorsRaw.tealLight, ";color:", _decapCmsUiDefault.colorsRaw.tealDark, ";;label:publishedButton;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFDc0IiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"))
43
43
  };
44
44
  const TooltipText = /*#__PURE__*/(0, _base.default)("div", {
45
45
  target: "e1d2l9mo26",
@@ -50,13 +50,13 @@ const TooltipText = /*#__PURE__*/(0, _base.default)("div", {
50
50
  } : {
51
51
  name: "1ykbu60",
52
52
  styles: "visibility:hidden;width:321px;background-color:#555;color:#fff;text-align:unset;border-radius:6px;padding:5px;position:absolute;z-index:1;top:145%;left:50%;margin-left:-320px;opacity:0;transition:opacity 0.3s",
53
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDOEIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
53
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDOEIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
54
54
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
55
55
  });
56
56
  const Tooltip = /*#__PURE__*/(0, _base.default)("div", {
57
57
  target: "e1d2l9mo25",
58
58
  label: "Tooltip"
59
- })("position:relative;display:inline-block;&:hover+", TooltipText, "{visibility:visible;opacity:0.9;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdFMEIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
59
+ })("position:relative;display:inline-block;&:hover+", TooltipText, "{visibility:visible;opacity:0.9;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdFMEIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
60
60
  const TooltipContainer = /*#__PURE__*/(0, _base.default)("div", {
61
61
  target: "e1d2l9mo24",
62
62
  label: "TooltipContainer"
@@ -66,21 +66,21 @@ const TooltipContainer = /*#__PURE__*/(0, _base.default)("div", {
66
66
  } : {
67
67
  name: "bjn8wh",
68
68
  styles: "position:relative",
69
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlFbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
69
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlFbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
70
70
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
71
71
  });
72
72
  const DropdownButton = /*#__PURE__*/(0, _base.default)(_decapCmsUiDefault.StyledDropdownButton, {
73
73
  target: "e1d2l9mo23",
74
74
  label: "DropdownButton"
75
- })(styles.noOverflow, "@media (max-width: 1200px){padding-left:10px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZFbUQiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
75
+ })(styles.noOverflow, "@media (max-width: 1200px){padding-left:10px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZFbUQiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
76
76
  const ToolbarContainer = /*#__PURE__*/(0, _base.default)("div", {
77
77
  target: "e1d2l9mo22",
78
78
  label: "ToolbarContainer"
79
- })("box-shadow:0 2px 6px 0 rgba(68, 74, 87, 0.05),0 1px 3px 0 rgba(68, 74, 87, 0.1),0 2px 54px rgba(0, 0, 0, 0.1);position:fixed;top:0;left:0;width:100%;min-width:800px;z-index:", _decapCmsUiDefault.zIndex.zIndex300, ";background-color:#fff;height:66px;display:flex;justify-content:space-between;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9GbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
79
+ })("box-shadow:0 2px 6px 0 rgba(68, 74, 87, 0.05),0 1px 3px 0 rgba(68, 74, 87, 0.1),0 2px 54px rgba(0, 0, 0, 0.1);position:absolute;top:0;left:0;width:100%;min-width:800px;z-index:", _decapCmsUiDefault.zIndex.zIndex300, ";background-color:#fff;height:66px;display:flex;justify-content:space-between;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9GbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
80
80
  const ToolbarSectionMain = /*#__PURE__*/(0, _base.default)("div", {
81
81
  target: "e1d2l9mo21",
82
82
  label: "ToolbarSectionMain"
83
- })(styles.toolbarSection, ";flex:10;display:flex;justify-content:space-between;padding:0 10px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1HcUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
83
+ })(styles.toolbarSection, ";flex:10;display:flex;justify-content:space-between;padding:0 10px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1HcUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
84
84
  const ToolbarSubSectionFirst = /*#__PURE__*/(0, _base.default)("div", {
85
85
  target: "e1d2l9mo20",
86
86
  label: "ToolbarSubSectionFirst"
@@ -90,7 +90,7 @@ const ToolbarSubSectionFirst = /*#__PURE__*/(0, _base.default)("div", {
90
90
  } : {
91
91
  name: "s5xdrg",
92
92
  styles: "display:flex;align-items:center",
93
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJHeUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
93
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJHeUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
94
94
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
95
95
  });
96
96
  const ToolbarSubSectionLast = /*#__PURE__*/(0, _base.default)(ToolbarSubSectionFirst, {
@@ -102,29 +102,29 @@ const ToolbarSubSectionLast = /*#__PURE__*/(0, _base.default)(ToolbarSubSectionF
102
102
  } : {
103
103
  name: "1f60if8",
104
104
  styles: "justify-content:flex-end",
105
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdINEQiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
105
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdINEQiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
106
106
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
107
107
  });
108
108
  const ToolbarSectionBackLink = /*#__PURE__*/(0, _base.default)(_reactRouterDom.Link, {
109
109
  target: "e1d2l9mo18",
110
110
  label: "ToolbarSectionBackLink"
111
- })(styles.toolbarSection, ";border-right-width:1px;font-weight:normal;padding:0 20px;&:hover,&:focus{background-color:#f1f2f4;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9IMkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
111
+ })(styles.toolbarSection, ";border-right-width:1px;font-weight:normal;padding:0 20px;&:hover,&:focus{background-color:#f1f2f4;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9IMkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
112
112
  const ToolbarSectionMeta = /*#__PURE__*/(0, _base.default)("div", {
113
113
  target: "e1d2l9mo17",
114
114
  label: "ToolbarSectionMeta"
115
- })(styles.toolbarSection, ";border-left-width:1px;padding:0 7px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdJcUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
115
+ })(styles.toolbarSection, ";border-left-width:1px;padding:0 7px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdJcUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
116
116
  const ToolbarDropdown = /*#__PURE__*/(0, _base.default)(_decapCmsUiDefault.Dropdown, {
117
117
  target: "e1d2l9mo16",
118
118
  label: "ToolbarDropdown"
119
- })(styles.buttonMargin, ";", _decapCmsUiDefault.Icon, "{color:", _decapCmsUiDefault.colorsRaw.teal, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNJd0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
119
+ })(styles.buttonMargin, ";", _decapCmsUiDefault.Icon, "{color:", _decapCmsUiDefault.colorsRaw.teal, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNJd0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
120
120
  const BackArrow = /*#__PURE__*/(0, _base.default)("div", {
121
121
  target: "e1d2l9mo15",
122
122
  label: "BackArrow"
123
- })("color:", _decapCmsUiDefault.colors.textLead, ";font-size:21px;font-weight:600;margin-right:16px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThJNEIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
123
+ })("color:", _decapCmsUiDefault.colors.textLead, ";font-size:21px;font-weight:600;margin-right:16px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThJNEIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
124
124
  const BackCollection = /*#__PURE__*/(0, _base.default)("div", {
125
125
  target: "e1d2l9mo14",
126
126
  label: "BackCollection"
127
- })("color:", _decapCmsUiDefault.colors.textLead, ";font-size:14px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFKaUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
127
+ })("color:", _decapCmsUiDefault.colors.textLead, ";font-size:14px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFKaUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
128
128
  const BackStatus = /*#__PURE__*/(0, _base.default)("div", {
129
129
  target: "e1d2l9mo13",
130
130
  label: "BackStatus"
@@ -134,53 +134,53 @@ const BackStatus = /*#__PURE__*/(0, _base.default)("div", {
134
134
  } : {
135
135
  name: "j9a02z",
136
136
  styles: "margin-top:6px",
137
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBKNkIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
137
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBKNkIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
138
138
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
139
139
  });
140
140
  const BackStatusUnchanged = /*#__PURE__*/(0, _base.default)(BackStatus, {
141
141
  target: "e1d2l9mo12",
142
142
  label: "BackStatusUnchanged"
143
- })(_decapCmsUiDefault.components.textBadgeSuccess, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThKOEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
143
+ })(_decapCmsUiDefault.components.textBadgeSuccess, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThKOEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
144
144
  const BackStatusChanged = /*#__PURE__*/(0, _base.default)(BackStatus, {
145
145
  target: "e1d2l9mo11",
146
146
  label: "BackStatusChanged"
147
- })(_decapCmsUiDefault.components.textBadgeDanger, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtLNEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
147
+ })(_decapCmsUiDefault.components.textBadgeDanger, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtLNEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
148
148
  const ToolbarButton = /*#__PURE__*/(0, _base.default)("button", {
149
149
  target: "e1d2l9mo10",
150
150
  label: "ToolbarButton"
151
- })(_decapCmsUiDefault.buttons.button, ";", _decapCmsUiDefault.buttons.default, ";", styles.buttonMargin, ";", styles.noOverflow, ";display:block;@media (max-width: 1200px){padding:0 10px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNLbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
151
+ })(_decapCmsUiDefault.buttons.button, ";", _decapCmsUiDefault.buttons.default, ";", styles.buttonMargin, ";", styles.noOverflow, ";display:block;@media (max-width: 1200px){padding:0 10px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNLbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
152
152
  const DeleteButton = /*#__PURE__*/(0, _base.default)(ToolbarButton, {
153
153
  target: "e1d2l9mo9",
154
154
  label: "DeleteButton"
155
- })(_decapCmsUiDefault.buttons.lightRed, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtMMEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
155
+ })(_decapCmsUiDefault.buttons.lightRed, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtMMEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
156
156
  const SaveButton = /*#__PURE__*/(0, _base.default)(ToolbarButton, {
157
157
  target: "e1d2l9mo8",
158
158
  label: "SaveButton"
159
- })(_decapCmsUiDefault.buttons.lightBlue, ";&[disabled]{", _decapCmsUiDefault.buttons.disabled, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNMd0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
159
+ })(_decapCmsUiDefault.buttons.lightBlue, ";&[disabled]{", _decapCmsUiDefault.buttons.disabled, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNMd0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
160
160
  const PublishedToolbarButton = /*#__PURE__*/(0, _base.default)(DropdownButton, {
161
161
  target: "e1d2l9mo7",
162
162
  label: "PublishedToolbarButton"
163
- })(styles.publishedButton, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZMcUQiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
163
+ })(styles.publishedButton, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZMcUQiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
164
164
  const PublishedButton = /*#__PURE__*/(0, _base.default)(ToolbarButton, {
165
165
  target: "e1d2l9mo6",
166
166
  label: "PublishedButton"
167
- })(styles.publishedButton, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlNNkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
167
+ })(styles.publishedButton, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlNNkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
168
168
  const PublishButton = /*#__PURE__*/(0, _base.default)(DropdownButton, {
169
169
  target: "e1d2l9mo5",
170
170
  label: "PublishButton"
171
- })("background-color:", _decapCmsUiDefault.colorsRaw.teal, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFNNEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
171
+ })("background-color:", _decapCmsUiDefault.colorsRaw.teal, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFNNEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
172
172
  const StatusButton = /*#__PURE__*/(0, _base.default)(DropdownButton, {
173
173
  target: "e1d2l9mo4",
174
174
  label: "StatusButton"
175
- })("background-color:", _decapCmsUiDefault.colorsRaw.tealLight, ";color:", _decapCmsUiDefault.colorsRaw.teal, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlNMkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
175
+ })("background-color:", _decapCmsUiDefault.colorsRaw.tealLight, ";color:", _decapCmsUiDefault.colorsRaw.teal, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlNMkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
176
176
  const PreviewButtonContainer = /*#__PURE__*/(0, _base.default)("div", {
177
177
  target: "e1d2l9mo3",
178
178
  label: "PreviewButtonContainer"
179
- })("margin-right:12px;color:", _decapCmsUiDefault.colorsRaw.blue, ";display:flex;align-items:center;a,", _decapCmsUiDefault.Icon, "{color:", _decapCmsUiDefault.colorsRaw.blue, ";}", _decapCmsUiDefault.Icon, "{position:relative;top:1px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThNeUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
179
+ })("margin-right:12px;color:", _decapCmsUiDefault.colorsRaw.blue, ";display:flex;align-items:center;a,", _decapCmsUiDefault.Icon, "{color:", _decapCmsUiDefault.colorsRaw.blue, ";}", _decapCmsUiDefault.Icon, "{position:relative;top:1px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThNeUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
180
180
  const RefreshPreviewButton = /*#__PURE__*/(0, _base.default)("button", {
181
181
  target: "e1d2l9mo2",
182
182
  label: "RefreshPreviewButton"
183
- })("background:none;border:0;cursor:pointer;color:", _decapCmsUiDefault.colorsRaw.blue, ";span{margin-right:6px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStOMEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
183
+ })("background:none;border:0;cursor:pointer;color:", _decapCmsUiDefault.colorsRaw.blue, ";span{margin-right:6px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStOMEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
184
184
  const PreviewLink = RefreshPreviewButton.withComponent('a', {
185
185
  target: "e1d2l9mo27",
186
186
  label: "PreviewLink"
@@ -194,13 +194,13 @@ const PublishDropDownItem = /*#__PURE__*/(0, _base.default)(_decapCmsUiDefault.D
194
194
  } : {
195
195
  name: "svxjwj",
196
196
  styles: "min-width:initial",
197
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRPZ0QiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
197
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRPZ0QiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */",
198
198
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
199
199
  });
200
200
  const StatusDropdownItem = /*#__PURE__*/(0, _base.default)(_decapCmsUiDefault.DropdownItem, {
201
201
  target: "e1d2l9mo0",
202
202
  label: "StatusDropdownItem"
203
- })(_decapCmsUiDefault.Icon, "{color:", _decapCmsUiDefault.colors.infoText, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdQK0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
203
+ })(_decapCmsUiDefault.Icon, "{color:", _decapCmsUiDefault.colors.infoText, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdQK0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge1xuICBJY29uLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25JdGVtLFxuICBTdHlsZWREcm9wZG93bkJ1dHRvbixcbiAgY29sb3JzUmF3LFxuICBjb2xvcnMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdGF0dXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcHVibGlzaE1vZGVzJztcbmltcG9ydCB7IFNldHRpbmdzRHJvcGRvd24gfSBmcm9tICcuLi9VSSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbm9PdmVyZmxvdzogY3NzYFxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgYCxcbiAgYnV0dG9uTWFyZ2luOiBjc3NgXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIGAsXG4gIHRvb2xiYXJTZWN0aW9uOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDAgc29saWQgJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgYCxcbiAgcHVibGlzaGVkQnV0dG9uOiBjc3NgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbExpZ2h0fTtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbERhcmt9O1xuICBgLFxufTtcblxuY29uc3QgVG9vbHRpcFRleHQgPSBzdHlsZWQuZGl2YFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMjFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDVweDtcblxuICAvKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCB0ZXh0ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxNDUlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzIwcHg7XG5cbiAgLyogRmFkZSBpbiB0b29sdGlwICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbmA7XG5cbmNvbnN0IFRvb2x0aXAgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciArICR7VG9vbHRpcFRleHR9IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuYDtcblxuY29uc3QgVG9vbHRpcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duQnV0dG9uID0gc3R5bGVkKFN0eWxlZERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMubm9PdmVyZmxvd31cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4wNSksIDAgMXB4IDNweCAwIHJnYmEoNjgsIDc0LCA4NywgMC4xKSxcbiAgICAwIDJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDgwMHB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgzMDB9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uTWFpbiA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgZmxleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAxMHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclN1YlNlY3Rpb25GaXJzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkxhc3QgPSBzdHlsZWQoVG9vbGJhclN1YlNlY3Rpb25GaXJzdClgXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbkJhY2tMaW5rID0gc3R5bGVkKExpbmspYFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNDtcbiAgfVxuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NZXRhID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICBwYWRkaW5nOiAwIDdweDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJEcm9wZG93biA9IHN0eWxlZChEcm9wZG93bilgXG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG5cbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LnRlYWx9O1xuICB9XG5gO1xuXG5jb25zdCBCYWNrQXJyb3cgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbmA7XG5cbmNvbnN0IEJhY2tDb2xsZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHRMZWFkfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1cyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDZweDtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNVbmNoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VTdWNjZXNzfTtcbmA7XG5cbmNvbnN0IEJhY2tTdGF0dXNDaGFuZ2VkID0gc3R5bGVkKEJhY2tTdGF0dXMpYFxuICAke2NvbXBvbmVudHMudGV4dEJhZGdlRGFuZ2VyfTtcbmA7XG5cbmNvbnN0IFRvb2xiYXJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke3N0eWxlcy5idXR0b25NYXJnaW59O1xuICAke3N0eWxlcy5ub092ZXJmbG93fTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuYDtcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRSZWR9O1xuYDtcblxuY29uc3QgU2F2ZUJ1dHRvbiA9IHN0eWxlZChUb29sYmFyQnV0dG9uKWBcbiAgJHtidXR0b25zLmxpZ2h0Qmx1ZX07XG4gICZbZGlzYWJsZWRdIHtcbiAgICAke2J1dHRvbnMuZGlzYWJsZWR9O1xuICB9XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgJHtzdHlsZXMucHVibGlzaGVkQnV0dG9ufVxuYDtcblxuY29uc3QgUHVibGlzaGVkQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoQnV0dG9uID0gc3R5bGVkKERyb3Bkb3duQnV0dG9uKWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBTdGF0dXNCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG5gO1xuXG5jb25zdCBQcmV2aWV3QnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYSxcbiAgJHtJY29ufSB7XG4gICAgY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICB9XG5cbiAgJHtJY29ufSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5gO1xuXG5jb25zdCBSZWZyZXNoUHJldmlld0J1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFByZXZpZXdMaW5rID0gUmVmcmVzaFByZXZpZXdCdXR0b24ud2l0aENvbXBvbmVudCgnYScpO1xuXG5jb25zdCBQdWJsaXNoRHJvcERvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gIG1pbi13aWR0aDogaW5pdGlhbDtcbmA7XG5cbmNvbnN0IFN0YXR1c0Ryb3Bkb3duSXRlbSA9IHN0eWxlZChEcm9wZG93bkl0ZW0pYFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnMuaW5mb1RleHR9O1xuICB9XG5gO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgaXNQZXJzaXN0aW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc1B1Ymxpc2hpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzVXBkYXRpbmdTdGF0dXM6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzRGVsZXRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QZXJzaXN0QW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNob3dEZWxldGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmROZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25QdWJsaXNoQW5kRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGFzQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgIGN1cnJlbnRTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxvYWREZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yQmFja0xpbms6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBpc05ld0VudHJ5LCBpc1BlcnNpc3RpbmcsIGxvYWREZXBsb3lQcmV2aWV3IH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghaXNOZXdFbnRyeSAmJiBwcmV2UHJvcHMuaXNQZXJzaXN0aW5nICYmICFpc1BlcnNpc3RpbmcpIHtcbiAgICAgIGxvYWREZXBsb3lQcmV2aWV3KHsgbWF4QXR0ZW1wdHM6IDMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyU2ltcGxlQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9uLCBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCBzaG93RGVsZXRlLCBvbkRlbGV0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkXG4gICAgICAgICAgPyB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSlcbiAgICAgICAgICA6IHRoaXMucmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUgfSl9XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgICA8RGVsZXRlQnV0dG9uIG9uQ2xpY2s9e29uRGVsZXRlfT57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlRW50cnknKX08L0RlbGV0ZUJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyA9IGxhYmVsID0+IHtcbiAgICBjb25zdCB7IGRlcGxveVByZXZpZXcgPSB7fSwgbG9hZERlcGxveVByZXZpZXcsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB1cmwsIHN0YXR1cywgaXNGZXRjaGluZyB9ID0gZGVwbG95UHJldmlldztcblxuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwbG95UHJldmlld1JlYWR5ID0gc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgIWlzRmV0Y2hpbmc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICAgICB7ZGVwbG95UHJldmlld1JlYWR5ID8gKFxuICAgICAgICAgIDxQcmV2aWV3TGluayByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwibmV3LXRhYlwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUHJldmlld0xpbms+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlZnJlc2hQcmV2aWV3QnV0dG9uIG9uQ2xpY2s9e2xvYWREZXBsb3lQcmV2aWV3fT5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3UGVuZGluZ0J1dHRvbkxhYmVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgPEljb24gdHlwZT1cInJlZnJlc2hcIiBzaXplPVwieHNtYWxsXCIgLz5cbiAgICAgICAgICA8L1JlZnJlc2hQcmV2aWV3QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9QcmV2aWV3QnV0dG9uQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0LCBjdXJyZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qgc3RhdHVzVG9Mb2NhbGVLZXkgPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06ICdzdGF0dXNJbmZvVG9vbHRpcERyYWZ0JyxcbiAgICAgIFtzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpXTogJ3N0YXR1c0luZm9Ub29sdGlwSW5SZXZpZXcnLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0dXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0dXNUb0xvY2FsZUtleSkuZmluZChrZXkgPT4ga2V5ID09PSBjdXJyZW50U3RhdHVzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXBDb250YWluZXI+XG4gICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJpbmZvLWNpcmNsZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzTmFtZT1cInRvb2x0aXBcIiAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzdGF0dXNLZXkgJiYgKFxuICAgICAgICAgIDxUb29sdGlwVGV4dD57dChgZWRpdG9yLmVkaXRvclRvb2xiYXIuJHtzdGF0dXNUb0xvY2FsZUtleVtzdGF0dXNLZXldfWApfTwvVG9vbHRpcFRleHQ+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2x0aXBDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaXNVcGRhdGluZ1N0YXR1cywgb25DaGFuZ2VTdGF0dXMsIGN1cnJlbnRTdGF0dXMsIHQsIHVzZU9wZW5BdXRob3JpbmcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb1RyYW5zbGF0aW9uID0ge1xuICAgICAgW3N0YXR1cy5nZXQoJ0RSQUZUJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kcmFmdCcpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUFVCTElTSCcpXTogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKSxcbiAgICB9O1xuXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IGlzVXBkYXRpbmdTdGF0dXNcbiAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudXBkYXRpbmcnKVxuICAgICAgOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zdGF0dXMnLCB7IHN0YXR1czogc3RhdHVzVG9UcmFuc2xhdGlvbltjdXJyZW50U3RhdHVzXSB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjEyMHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IDxTdGF0dXNCdXR0b24+e2J1dHRvblRleHR9PC9TdGF0dXNCdXR0b24+fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnRFJBRlQnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ0RSQUZUJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5pblJldmlldycpfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUkVWSUVXJyl9XG4gICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1JFVklFVycpID8gJ2NoZWNrJyA6IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7dXNlT3BlbkF1dGhvcmluZyA/IChcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxTdGF0dXNEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnJlYWR5Jyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdQRU5ESU5HX1BVQkxJU0gnKX1cbiAgICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nICYmIHRoaXMucmVuZGVyU3RhdHVzSW5mb1Rvb2x0aXAoKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSA9PiB7XG4gICAgY29uc3QgeyBpc1B1Ymxpc2hpbmcsIG9uUHVibGlzaCwgb25QdWJsaXNoQW5kTmV3LCBvblB1Ymxpc2hBbmREdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIyMDBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAge2lzUHVibGlzaGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICA8L1B1Ymxpc2hCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgb25DbGljaz17b25QdWJsaXNofVxuICAgICAgICAvPlxuICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8UHVibGlzaERyb3BEb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25QdWJsaXNoQW5kTmV3fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoLCBjYW5EZWxldGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgdW5QdWJsaXNoLCBvbkR1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIGNhblB1Ymxpc2ggfHwgY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAga2V5PVwidGQtcHVibGlzaC1jcmVhdGVcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8UHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfVxuICAgICAgICAgIDwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge2NhbkRlbGV0ZSAmJiBjYW5QdWJsaXNoICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIudW5wdWJsaXNoJyl9XG4gICAgICAgICAgICBpY29uPVwiYXJyb3dcIlxuICAgICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3VuUHVibGlzaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICApIDogKFxuICAgICAgJydcbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckV4aXN0aW5nRW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25EdXBsaWNhdGUsIHQgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGNhbkNyZWF0ZSA/IChcbiAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxNTBweFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZFRvb2xiYXJCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtcbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHVwbGljYXRlJyl9XG4gICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICA8UHVibGlzaGVkQnV0dG9uPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoZWQnKX08L1B1Ymxpc2hlZEJ1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlck5ld0VudHJ5U2ltcGxlUHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgICBjb25zdCB7IG9uUGVyc2lzdCwgb25QZXJzaXN0QW5kTmV3LCBvblBlcnNpc3RBbmREdXBsaWNhdGUsIGlzUGVyc2lzdGluZywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNDBweFwiXG4gICAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICAgIDxQdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICAgICB7aXNQZXJzaXN0aW5nXG4gICAgICAgICAgICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoaW5nJylcbiAgICAgICAgICAgICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hOb3cnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaEFuZENyZWF0ZU5ldycpfVxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUGVyc2lzdEFuZE5ld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kRHVwbGljYXRlJyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kRHVwbGljYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTaW1wbGVEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBoYXNDaGFuZ2VkLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKCFpc05ld0VudHJ5ICYmICFoYXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgb25QZXJzaXN0LFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIHNob3dEZWxldGUsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGlzUGVyc2lzdGluZyxcbiAgICAgIGlzRGVsZXRpbmcsXG4gICAgICBpc05ld0VudHJ5LFxuICAgICAgaXNNb2RpZmljYXRpb24sXG4gICAgICBjdXJyZW50U3RhdHVzLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjYW5DcmVhdGUgPSBjb2xsZWN0aW9uLmdldCgnY3JlYXRlJyk7XG4gICAgY29uc3QgY2FuUHVibGlzaCA9IGNvbGxlY3Rpb24uZ2V0KCdwdWJsaXNoJykgJiYgIXVzZU9wZW5BdXRob3Jpbmc7XG4gICAgY29uc3QgY2FuRGVsZXRlID0gY29sbGVjdGlvbi5nZXQoJ2RlbGV0ZScsIHRydWUpO1xuXG4gICAgY29uc3QgZGVsZXRlTGFiZWwgPVxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICBpc01vZGlmaWNhdGlvbiAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMnKSkgfHxcbiAgICAgIChoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiZcbiAgICAgICAgKGlzTmV3RW50cnkgfHwgIWlzTW9kaWZpY2F0aW9uKSAmJlxuICAgICAgICB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVVbnB1Ymxpc2hlZEVudHJ5JykpIHx8XG4gICAgICAoIWhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJiAhaXNNb2RpZmljYXRpb24gJiYgdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVsZXRlUHVibGlzaGVkRW50cnknKSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgPFNhdmVCdXR0b25cbiAgICAgICAgZGlzYWJsZWQ9eyFoYXNDaGFuZ2VkfVxuICAgICAgICBrZXk9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhc0NoYW5nZWQgJiYgb25QZXJzaXN0KCl9XG4gICAgICA+XG4gICAgICAgIHtpc1BlcnNpc3RpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5zYXZpbmcnKSA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmUnKX1cbiAgICAgIDwvU2F2ZUJ1dHRvbj4sXG4gICAgICBjdXJyZW50U3RhdHVzXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJXb3JrZmxvd1N0YXR1c0NvbnRyb2xzKCksXG4gICAgICAgICAgICB0aGlzLnJlbmRlck5ld0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2ggfSksXG4gICAgICAgICAgXVxuICAgICAgICA6ICFpc05ld0VudHJ5ICYmXG4gICAgICAgICAgdGhpcy5yZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSxcbiAgICAgICghc2hvd0RlbGV0ZSB8fCB1c2VPcGVuQXV0aG9yaW5nKSAmJiAhaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiA/IG51bGwgOiAoXG4gICAgICAgIDxEZWxldGVCdXR0b25cbiAgICAgICAgICBrZXk9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXtoYXNVbnB1Ymxpc2hlZENoYW5nZXMgPyBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyA6IG9uRGVsZXRlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzRGVsZXRpbmcgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGluZycpIDogZGVsZXRlTGFiZWx9XG4gICAgICAgIDwvRGVsZXRlQnV0dG9uPlxuICAgICAgKSxcbiAgICBdO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFN0YXR1cywgaXNOZXdFbnRyeSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjdXJyZW50U3RhdHVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95UHJldmlld0J1dHRvbkxhYmVsJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggY29udHJvbCBmb3IgcHVibGlzaGVkIHdvcmtmbG93IGVudHJ5LlxuICAgICAqL1xuICAgIGlmICghaXNOZXdFbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzKHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveUJ1dHRvbkxhYmVsJykpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgb25Mb2dvdXRDbGljayxcbiAgICAgIHQsXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgdG89e2VkaXRvckJhY2tMaW5rfT5cbiAgICAgICAgICA8QmFja0Fycm93PuKGkDwvQmFja0Fycm93PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8QmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5iYWNrQ29sbGVjdGlvbicsIHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb24uZ2V0KCdsYWJlbCcpLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvQmFja0NvbGxlY3Rpb24+XG4gICAgICAgICAgICB7aGFzQ2hhbmdlZCA/IChcbiAgICAgICAgICAgICAgPEJhY2tTdGF0dXNDaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnNhdmVkQ2hhbmdlcycpfTwvQmFja1N0YXR1c0NoYW5nZWQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c1VuY2hhbmdlZD57dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuY2hhbmdlc1NhdmVkJyl9PC9CYWNrU3RhdHVzVW5jaGFuZ2VkPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sYmFyU2VjdGlvbkJhY2tMaW5rPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgICAge2hhc1dvcmtmbG93ID8gdGhpcy5yZW5kZXJXb3JrZmxvd0NvbnRyb2xzKCkgOiB0aGlzLnJlbmRlclNpbXBsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkZpcnN0PlxuICAgICAgICAgIDxUb29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3dcbiAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcldvcmtmbG93RGVwbG95UHJldmlld0NvbnRyb2xzKClcbiAgICAgICAgICAgICAgOiB0aGlzLnJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scygpfVxuICAgICAgICAgIDwvVG9vbGJhclN1YlNlY3Rpb25MYXN0PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWFpbj5cbiAgICAgICAgPFRvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgICAgICA8U2V0dGluZ3NEcm9wZG93blxuICAgICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICAgIGltYWdlVXJsPXt1c2VyPy5hdmF0YXJfdXJsfVxuICAgICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uTWV0YT5cbiAgICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0ZSgpKEVkaXRvclRvb2xiYXIpO1xuIl19 */"));
204
204
  class EditorToolbar extends _react.default.Component {
205
205
  constructor(...args) {
206
206
  super(...args);