decap-cms-core 3.2.0 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,7 +26,7 @@ const styles = {
26
26
  } : {
27
27
  name: "1ven8wv-noOverflow",
28
28
  styles: "overflow:hidden;white-space:nowrap;text-overflow:ellipsis;;label:noOverflow;",
29
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVCaUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVCaUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */",
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: "1yqtsv2-buttonMargin",
37
37
  styles: "margin:0 10px;;label:buttonMargin;",
38
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCbUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCbUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */",
39
39
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
40
40
  },
41
- toolbarSection: /*#__PURE__*/(0, _core.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStCcUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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, _core.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFDc0IiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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, _core.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStCcUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */")),
42
+ publishedButton: /*#__PURE__*/(0, _core.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFDc0IiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"))
43
43
  };
44
44
  const TooltipText = (0, _styledBase.default)("div", {
45
45
  target: "e1d2l9mo0",
@@ -50,13 +50,13 @@ const TooltipText = (0, _styledBase.default)("div", {
50
50
  } : {
51
51
  name: "198q1ye",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDOEIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDOEIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */",
54
54
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
55
55
  });
56
56
  const Tooltip = (0, _styledBase.default)("div", {
57
57
  target: "e1d2l9mo1",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdFMEIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdFMEIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
60
60
  const TooltipContainer = (0, _styledBase.default)("div", {
61
61
  target: "e1d2l9mo2",
62
62
  label: "TooltipContainer"
@@ -66,21 +66,21 @@ const TooltipContainer = (0, _styledBase.default)("div", {
66
66
  } : {
67
67
  name: "79elbk",
68
68
  styles: "position:relative;",
69
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlFbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlFbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */",
70
70
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
71
71
  });
72
72
  const DropdownButton = ( /*#__PURE__*/0, _styledBase.default)(_decapCmsUiDefault.StyledDropdownButton, {
73
73
  target: "e1d2l9mo3",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZFbUQiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZFbUQiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
76
76
  const ToolbarContainer = (0, _styledBase.default)("div", {
77
77
  target: "e1d2l9mo4",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9GbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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: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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9GbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
80
80
  const ToolbarSectionMain = (0, _styledBase.default)("div", {
81
81
  target: "e1d2l9mo5",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1HcUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1HcUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
84
84
  const ToolbarSubSectionFirst = (0, _styledBase.default)("div", {
85
85
  target: "e1d2l9mo6",
86
86
  label: "ToolbarSubSectionFirst"
@@ -90,7 +90,7 @@ const ToolbarSubSectionFirst = (0, _styledBase.default)("div", {
90
90
  } : {
91
91
  name: "70qvj9",
92
92
  styles: "display:flex;align-items:center;",
93
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJHeUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJHeUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */",
94
94
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
95
95
  });
96
96
  const ToolbarSubSectionLast = ( /*#__PURE__*/0, _styledBase.default)(ToolbarSubSectionFirst, {
@@ -102,29 +102,29 @@ const ToolbarSubSectionLast = ( /*#__PURE__*/0, _styledBase.default)(ToolbarSubS
102
102
  } : {
103
103
  name: "1a9getn",
104
104
  styles: "justify-content:flex-end;",
105
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdINEQiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdINEQiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */",
106
106
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
107
107
  });
108
108
  const ToolbarSectionBackLink = ( /*#__PURE__*/0, _styledBase.default)(_reactRouterDom.Link, {
109
109
  target: "e1d2l9mo8",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9IMkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9IMkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
112
112
  const ToolbarSectionMeta = (0, _styledBase.default)("div", {
113
113
  target: "e1d2l9mo9",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdJcUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdJcUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
116
116
  const ToolbarDropdown = ( /*#__PURE__*/0, _styledBase.default)(_decapCmsUiDefault.Dropdown, {
117
117
  target: "e1d2l9mo10",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNJd0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNJd0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
120
120
  const BackArrow = (0, _styledBase.default)("div", {
121
121
  target: "e1d2l9mo11",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThJNEIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThJNEIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
124
124
  const BackCollection = (0, _styledBase.default)("div", {
125
125
  target: "e1d2l9mo12",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFKaUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFKaUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
128
128
  const BackStatus = (0, _styledBase.default)("div", {
129
129
  target: "e1d2l9mo13",
130
130
  label: "BackStatus"
@@ -134,53 +134,53 @@ const BackStatus = (0, _styledBase.default)("div", {
134
134
  } : {
135
135
  name: "19ug521",
136
136
  styles: "margin-top:6px;",
137
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBKNkIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBKNkIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */",
138
138
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
139
139
  });
140
140
  const BackStatusUnchanged = ( /*#__PURE__*/0, _styledBase.default)(BackStatus, {
141
141
  target: "e1d2l9mo14",
142
142
  label: "BackStatusUnchanged"
143
- })(_decapCmsUiDefault.components.textBadgeSuccess, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThKOEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThKOEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
144
144
  const BackStatusChanged = ( /*#__PURE__*/0, _styledBase.default)(BackStatus, {
145
145
  target: "e1d2l9mo15",
146
146
  label: "BackStatusChanged"
147
- })(_decapCmsUiDefault.components.textBadgeDanger, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtLNEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtLNEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
148
148
  const ToolbarButton = (0, _styledBase.default)("button", {
149
149
  target: "e1d2l9mo16",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNLbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNLbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
152
152
  const DeleteButton = ( /*#__PURE__*/0, _styledBase.default)(ToolbarButton, {
153
153
  target: "e1d2l9mo17",
154
154
  label: "DeleteButton"
155
- })(_decapCmsUiDefault.buttons.lightRed, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtMMEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtMMEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
156
156
  const SaveButton = ( /*#__PURE__*/0, _styledBase.default)(ToolbarButton, {
157
157
  target: "e1d2l9mo18",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNMd0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNMd0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
160
160
  const PublishedToolbarButton = ( /*#__PURE__*/0, _styledBase.default)(DropdownButton, {
161
161
  target: "e1d2l9mo19",
162
162
  label: "PublishedToolbarButton"
163
- })(styles.publishedButton, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZMcUQiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZMcUQiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */");
164
164
  const PublishedButton = ( /*#__PURE__*/0, _styledBase.default)(ToolbarButton, {
165
165
  target: "e1d2l9mo20",
166
166
  label: "PublishedButton"
167
- })(styles.publishedButton, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlNNkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlNNkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */");
168
168
  const PublishButton = ( /*#__PURE__*/0, _styledBase.default)(DropdownButton, {
169
169
  target: "e1d2l9mo21",
170
170
  label: "PublishButton"
171
- })("background-color:", _decapCmsUiDefault.colorsRaw.teal, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFNNEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFNNEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
172
172
  const StatusButton = ( /*#__PURE__*/0, _styledBase.default)(DropdownButton, {
173
173
  target: "e1d2l9mo22",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlNMkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlNMkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
176
176
  const PreviewButtonContainer = (0, _styledBase.default)("div", {
177
177
  target: "e1d2l9mo23",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThNeUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThNeUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
180
180
  const RefreshPreviewButton = (0, _styledBase.default)("button", {
181
181
  target: "e1d2l9mo24",
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStOMEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStOMEMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
184
184
  const PreviewLink = RefreshPreviewButton.withComponent('a', {
185
185
  target: "e1d2l9mo27",
186
186
  label: "PreviewLink"
@@ -194,13 +194,13 @@ const PublishDropDownItem = ( /*#__PURE__*/0, _styledBase.default)(_decapCmsUiDe
194
194
  } : {
195
195
  name: "12k1a1h",
196
196
  styles: "min-width:initial;",
197
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRPZ0QiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRPZ0QiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */",
198
198
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
199
199
  });
200
200
  const StatusDropdownItem = ( /*#__PURE__*/0, _styledBase.default)(_decapCmsUiDefault.DropdownItem, {
201
201
  target: "e1d2l9mo26",
202
202
  label: "StatusDropdownItem"
203
- })(_decapCmsUiDefault.Icon, "{color:", _decapCmsUiDefault.colors.infoText, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdQK0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JUb29sYmFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdQK0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEljb24sXG4gIERyb3Bkb3duLFxuICBEcm9wZG93bkl0ZW0sXG4gIFN0eWxlZERyb3Bkb3duQnV0dG9uLFxuICBjb2xvcnNSYXcsXG4gIGNvbG9ycyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgekluZGV4LFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0YXR1cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wdWJsaXNoTW9kZXMnO1xuaW1wb3J0IHsgU2V0dGluZ3NEcm9wZG93biB9IGZyb20gJy4uL1VJJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBub092ZXJmbG93OiBjc3NgXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBgLFxuICBidXR0b25NYXJnaW46IGNzc2BcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgYCxcbiAgdG9vbGJhclNlY3Rpb246IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMCBzb2xpZCAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICBgLFxuICBwdWJsaXNoZWRCdXR0b246IGNzc2BcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsTGlnaHR9O1xuICAgIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsRGFya307XG4gIGAsXG59O1xuXG5jb25zdCBUb29sdGlwVGV4dCA9IHN0eWxlZC5kaXZgXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMyMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwIHRleHQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDE0NSU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMjBweDtcblxuICAvKiBGYWRlIGluIHRvb2x0aXAgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuYDtcblxuY29uc3QgVG9vbHRpcCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyICsgJHtUb29sdGlwVGV4dH0ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG5gO1xuXG5jb25zdCBUb29sdGlwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoU3R5bGVkRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5ub092ZXJmbG93fVxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjA1KSwgMCAxcHggM3B4IDAgcmdiYSg2OCwgNzQsIDg3LCAwLjEpLFxuICAgIDAgMnB4IDU0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDMwMH07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGhlaWdodDogNjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgVG9vbGJhclNlY3Rpb25NYWluID0gc3R5bGVkLmRpdmBcbiAgJHtzdHlsZXMudG9vbGJhclNlY3Rpb259O1xuICBmbGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5gO1xuXG5jb25zdCBUb29sYmFyU3ViU2VjdGlvbkZpcnN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTdWJTZWN0aW9uTGFzdCA9IHN0eWxlZChUb29sYmFyU3ViU2VjdGlvbkZpcnN0KWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbmA7XG5cbmNvbnN0IFRvb2xiYXJTZWN0aW9uQmFja0xpbmsgPSBzdHlsZWQoTGluaylgXG4gICR7c3R5bGVzLnRvb2xiYXJTZWN0aW9ufTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDAgMjBweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMmY0O1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyU2VjdGlvbk1ldGEgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy50b29sYmFyU2VjdGlvbn07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuYDtcblxuY29uc3QgVG9vbGJhckRyb3Bkb3duID0gc3R5bGVkKERyb3Bkb3duKWBcbiAgJHtzdHlsZXMuYnV0dG9uTWFyZ2lufTtcblxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcudGVhbH07XG4gIH1cbmA7XG5cbmNvbnN0IEJhY2tBcnJvdyA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0TGVhZH07XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuYDtcblxuY29uc3QgQmFja0NvbGxlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtjb2xvcnMudGV4dExlYWR9O1xuICBmb250LXNpemU6IDE0cHg7XG5gO1xuXG5jb25zdCBCYWNrU3RhdHVzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogNnB4O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c1VuY2hhbmdlZCA9IHN0eWxlZChCYWNrU3RhdHVzKWBcbiAgJHtjb21wb25lbnRzLnRleHRCYWRnZVN1Y2Nlc3N9O1xuYDtcblxuY29uc3QgQmFja1N0YXR1c0NoYW5nZWQgPSBzdHlsZWQoQmFja1N0YXR1cylgXG4gICR7Y29tcG9uZW50cy50ZXh0QmFkZ2VEYW5nZXJ9O1xuYDtcblxuY29uc3QgVG9vbGJhckJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7c3R5bGVzLmJ1dHRvbk1hcmdpbn07XG4gICR7c3R5bGVzLm5vT3ZlcmZsb3d9O1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBEZWxldGVCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7YnV0dG9ucy5saWdodFJlZH07XG5gO1xuXG5jb25zdCBTYXZlQnV0dG9uID0gc3R5bGVkKFRvb2xiYXJCdXR0b24pYFxuICAke2J1dHRvbnMubGlnaHRCbHVlfTtcbiAgJltkaXNhYmxlZF0ge1xuICAgICR7YnV0dG9ucy5kaXNhYmxlZH07XG4gIH1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICAke3N0eWxlcy5wdWJsaXNoZWRCdXR0b259XG5gO1xuXG5jb25zdCBQdWJsaXNoZWRCdXR0b24gPSBzdHlsZWQoVG9vbGJhckJ1dHRvbilgXG4gICR7c3R5bGVzLnB1Ymxpc2hlZEJ1dHRvbn1cbmA7XG5cbmNvbnN0IFB1Ymxpc2hCdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFN0YXR1c0J1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LnRlYWxMaWdodH07XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy50ZWFsfTtcbmA7XG5cbmNvbnN0IFByZXZpZXdCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhLFxuICAke0ljb259IHtcbiAgICBjb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gIH1cblxuICAke0ljb259IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZnJlc2hQcmV2aWV3QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke2NvbG9yc1Jhdy5ibHVlfTtcblxuICBzcGFuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuYDtcblxuY29uc3QgUHJldmlld0xpbmsgPSBSZWZyZXNoUHJldmlld0J1dHRvbi53aXRoQ29tcG9uZW50KCdhJyk7XG5cbmNvbnN0IFB1Ymxpc2hEcm9wRG93bkl0ZW0gPSBzdHlsZWQoRHJvcGRvd25JdGVtKWBcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xuYDtcblxuY29uc3QgU3RhdHVzRHJvcGRvd25JdGVtID0gc3R5bGVkKERyb3Bkb3duSXRlbSlgXG4gICR7SWNvbn0ge1xuICAgIGNvbG9yOiAke2NvbG9ycy5pbmZvVGV4dH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpc1BlcnNpc3Rpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzUHVibGlzaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNVcGRhdGluZ1N0YXR1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNEZWxldGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUGVyc2lzdEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZVN0YXR1czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHVwbGljYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUHVibGlzaEFuZE5ldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gICAgdXNlT3BlbkF1dGhvcmluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc01vZGlmaWNhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlcGxveVByZXZpZXc6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JCYWNrTGluazogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgaXNOZXdFbnRyeSwgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICBsb2FkRGVwbG95UHJldmlldyh7IG1heEF0dGVtcHRzOiAzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCB7IGlzTmV3RW50cnksIGlzUGVyc2lzdGluZywgbG9hZERlcGxveVByZXZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFpc05ld0VudHJ5ICYmIHByZXZQcm9wcy5pc1BlcnNpc3RpbmcgJiYgIWlzUGVyc2lzdGluZykge1xuICAgICAgbG9hZERlcGxveVByZXZpZXcoeyBtYXhBdHRlbXB0czogMyB9KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJTaW1wbGVDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24sIGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHNob3dEZWxldGUsIG9uRGVsZXRlLCB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWRcbiAgICAgICAgICA/IHRoaXMucmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KVxuICAgICAgICAgIDogdGhpcy5yZW5kZXJOZXdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSB9KX1cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICAgIDxEZWxldGVCdXR0b24gb25DbGljaz17b25EZWxldGV9Pnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVFbnRyeScpfTwvRGVsZXRlQnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRGVwbG95UHJldmlld0NvbnRyb2xzID0gbGFiZWwgPT4ge1xuICAgIGNvbnN0IHsgZGVwbG95UHJldmlldyA9IHt9LCBsb2FkRGVwbG95UHJldmlldywgdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHVybCwgc3RhdHVzLCBpc0ZldGNoaW5nIH0gPSBkZXBsb3lQcmV2aWV3O1xuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBsb3lQcmV2aWV3UmVhZHkgPSBzdGF0dXMgPT09ICdTVUNDRVNTJyAmJiAhaXNGZXRjaGluZztcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgICAgIHtkZXBsb3lQcmV2aWV3UmVhZHkgPyAoXG4gICAgICAgICAgPFByZXZpZXdMaW5rIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDxJY29uIHR5cGU9XCJuZXctdGFiXCIgc2l6ZT1cInhzbWFsbFwiIC8+XG4gICAgICAgICAgPC9QcmV2aWV3TGluaz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UmVmcmVzaFByZXZpZXdCdXR0b24gb25DbGljaz17bG9hZERlcGxveVByZXZpZXd9PlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlcGxveVByZXZpZXdQZW5kaW5nQnV0dG9uTGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICA8SWNvbiB0eXBlPVwicmVmcmVzaFwiIHNpemU9XCJ4c21hbGxcIiAvPlxuICAgICAgICAgIDwvUmVmcmVzaFByZXZpZXdCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1ByZXZpZXdCdXR0b25Db250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHQsIGN1cnJlbnRTdGF0dXMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzdGF0dXNUb0xvY2FsZUtleSA9IHtcbiAgICAgIFtzdGF0dXMuZ2V0KCdEUkFGVCcpXTogJ3N0YXR1c0luZm9Ub29sdGlwRHJhZnQnLFxuICAgICAgW3N0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJyldOiAnc3RhdHVzSW5mb1Rvb2x0aXBJblJldmlldycsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXR1c0tleSA9IE9iamVjdC5rZXlzKHN0YXR1c1RvTG9jYWxlS2V5KS5maW5kKGtleSA9PiBrZXkgPT09IGN1cnJlbnRTdGF0dXMpO1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcENvbnRhaW5lcj5cbiAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgPEljb24gdHlwZT1cImluZm8tY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3NOYW1lPVwidG9vbHRpcFwiIC8+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3N0YXR1c0tleSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXBUZXh0Pnt0KGBlZGl0b3IuZWRpdG9yVG9vbGJhci4ke3N0YXR1c1RvTG9jYWxlS2V5W3N0YXR1c0tleV19YCl9PC9Ub29sdGlwVGV4dD5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbHRpcENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBpc1VwZGF0aW5nU3RhdHVzLCBvbkNoYW5nZVN0YXR1cywgY3VycmVudFN0YXR1cywgdCwgdXNlT3BlbkF1dGhvcmluZyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHN0YXR1c1RvVHJhbnNsYXRpb24gPSB7XG4gICAgICBbc3RhdHVzLmdldCgnRFJBRlQnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRyYWZ0JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19SRVZJRVcnKV06IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3JyksXG4gICAgICBbc3RhdHVzLmdldCgnUEVORElOR19QVUJMSVNIJyldOiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5yZWFkeScpLFxuICAgIH07XG5cbiAgICBjb25zdCBidXR0b25UZXh0ID0gaXNVcGRhdGluZ1N0YXR1c1xuICAgICAgPyB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51cGRhdGluZycpXG4gICAgICA6IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnN0YXR1cycsIHsgc3RhdHVzOiBzdGF0dXNUb1RyYW5zbGF0aW9uW2N1cnJlbnRTdGF0dXNdIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTIwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gPFN0YXR1c0J1dHRvbj57YnV0dG9uVGV4dH08L1N0YXR1c0J1dHRvbj59XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhdHVzRHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZHJhZnQnKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlU3RhdHVzKCdEUkFGVCcpfVxuICAgICAgICAgICAgaWNvbj17Y3VycmVudFN0YXR1cyA9PT0gc3RhdHVzLmdldCgnRFJBRlQnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmluUmV2aWV3Jyl9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZVN0YXR1cygnUEVORElOR19SRVZJRVcnKX1cbiAgICAgICAgICAgIGljb249e2N1cnJlbnRTdGF0dXMgPT09IHN0YXR1cy5nZXQoJ1BFTkRJTkdfUkVWSUVXJykgPyAnY2hlY2snIDogbnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHt1c2VPcGVuQXV0aG9yaW5nID8gKFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0YXR1c0Ryb3Bkb3duSXRlbVxuICAgICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucmVhZHknKX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VTdGF0dXMoJ1BFTkRJTkdfUFVCTElTSCcpfVxuICAgICAgICAgICAgICBpY29uPXtjdXJyZW50U3RhdHVzID09PSBzdGF0dXMuZ2V0KCdQRU5ESU5HX1BVQkxJU0gnKSA/ICdjaGVjaycgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1Rvb2xiYXJEcm9wZG93bj5cbiAgICAgICAge3VzZU9wZW5BdXRob3JpbmcgJiYgdGhpcy5yZW5kZXJTdGF0dXNJbmZvVG9vbHRpcCgpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJOZXdFbnRyeVdvcmtmbG93UHVibGlzaENvbnRyb2xzID0gKHsgY2FuQ3JlYXRlLCBjYW5QdWJsaXNoIH0pID0+IHtcbiAgICBjb25zdCB7IGlzUHVibGlzaGluZywgb25QdWJsaXNoLCBvblB1Ymxpc2hBbmROZXcsIG9uUHVibGlzaEFuZER1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBjYW5QdWJsaXNoID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjIwMHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICB7aXNQdWJsaXNoaW5nXG4gICAgICAgICAgICAgID8gdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgIDwvUHVibGlzaEJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgaWNvbkRpcmVjdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2h9XG4gICAgICAgIC8+XG4gICAgICAgIHtjYW5DcmVhdGUgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxQdWJsaXNoRHJvcERvd25JdGVtXG4gICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblB1Ymxpc2hBbmROZXd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFB1Ymxpc2hEcm9wRG93bkl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUHVibGlzaEFuZER1cGxpY2F0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXJFeGlzdGluZ0VudHJ5V29ya2Zsb3dQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUsIGNhblB1Ymxpc2gsIGNhbkRlbGV0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyB1blB1Ymxpc2gsIG9uRHVwbGljYXRlLCBpc1BlcnNpc3RpbmcsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY2FuUHVibGlzaCB8fCBjYW5DcmVhdGUgPyAoXG4gICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjQwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICBrZXk9XCJ0ZC1wdWJsaXNoLWNyZWF0ZVwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxQdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICAgICAge2lzUGVyc2lzdGluZ1xuICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVucHVibGlzaGluZycpXG4gICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaGVkJyl9XG4gICAgICAgICAgPC9QdWJsaXNoZWRUb29sYmFyQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7Y2FuRGVsZXRlICYmIGNhblB1Ymxpc2ggJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci51bnB1Ymxpc2gnKX1cbiAgICAgICAgICAgIGljb249XCJhcnJvd1wiXG4gICAgICAgICAgICBpY29uRGlyZWN0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgb25DbGljaz17dW5QdWJsaXNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjYW5DcmVhdGUgJiYgKFxuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVG9vbGJhckRyb3Bkb3duPlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyRXhpc3RpbmdFbnRyeVNpbXBsZVB1Ymxpc2hDb250cm9scyA9ICh7IGNhbkNyZWF0ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBvbkR1cGxpY2F0ZSwgdCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gY2FuQ3JlYXRlID8gKFxuICAgICAgPFRvb2xiYXJEcm9wZG93blxuICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgZHJvcGRvd25XaWR0aD1cIjE1MHB4XCJcbiAgICAgICAgcmVuZGVyQnV0dG9uPXsoKSA9PiAoXG4gICAgICAgICAgPFB1Ymxpc2hlZFRvb2xiYXJCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgID5cbiAgICAgICAge1xuICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kdXBsaWNhdGUnKX1cbiAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgb25DbGljaz17b25EdXBsaWNhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgKSA6IChcbiAgICAgIDxQdWJsaXNoZWRCdXR0b24+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hlZCcpfTwvUHVibGlzaGVkQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyTmV3RW50cnlTaW1wbGVQdWJsaXNoQ29udHJvbHMgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICAgIGNvbnN0IHsgb25QZXJzaXN0LCBvblBlcnNpc3RBbmROZXcsIG9uUGVyc2lzdEFuZER1cGxpY2F0ZSwgaXNQZXJzaXN0aW5nLCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICBkcm9wZG93blRvcE92ZXJsYXA9XCI0MHB4XCJcbiAgICAgICAgICBkcm9wZG93bldpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgICAgPFB1Ymxpc2hCdXR0b24+XG4gICAgICAgICAgICAgIHtpc1BlcnNpc3RpbmdcbiAgICAgICAgICAgICAgICA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hpbmcnKVxuICAgICAgICAgICAgICAgIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaCcpfVxuICAgICAgICAgICAgPC9QdWJsaXNoQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICBsYWJlbD17dCgnZWRpdG9yLmVkaXRvclRvb2xiYXIucHVibGlzaE5vdycpfVxuICAgICAgICAgICAgaWNvbj1cImFycm93XCJcbiAgICAgICAgICAgIGljb25EaXJlY3Rpb249XCJyaWdodFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7Y2FuQ3JlYXRlID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5wdWJsaXNoQW5kQ3JlYXRlTmV3Jyl9XG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17b25QZXJzaXN0QW5kTmV3fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnB1Ymxpc2hBbmREdXBsaWNhdGUnKX1cbiAgICAgICAgICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblBlcnNpc3RBbmREdXBsaWNhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Ub29sYmFyRHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclNpbXBsZURlcGxveVByZXZpZXdDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGhhc0NoYW5nZWQsIGlzTmV3RW50cnksIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWlzTmV3RW50cnkgJiYgIWhhc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lCdXR0b25MYWJlbCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dDb250cm9scyA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBvblBlcnNpc3QsXG4gICAgICBvbkRlbGV0ZSxcbiAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaXNQZXJzaXN0aW5nLFxuICAgICAgaXNEZWxldGluZyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGNhbkNyZWF0ZSA9IGNvbGxlY3Rpb24uZ2V0KCdjcmVhdGUnKTtcbiAgICBjb25zdCBjYW5QdWJsaXNoID0gY29sbGVjdGlvbi5nZXQoJ3B1Ymxpc2gnKSAmJiAhdXNlT3BlbkF1dGhvcmluZztcbiAgICBjb25zdCBjYW5EZWxldGUgPSBjb2xsZWN0aW9uLmdldCgnZGVsZXRlJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWxldGVMYWJlbCA9XG4gICAgICAoaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmXG4gICAgICAgIGlzTW9kaWZpY2F0aW9uICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcycpKSB8fFxuICAgICAgKGhhc1VucHVibGlzaGVkQ2hhbmdlcyAmJlxuICAgICAgICAoaXNOZXdFbnRyeSB8fCAhaXNNb2RpZmljYXRpb24pICYmXG4gICAgICAgIHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0ZVVucHVibGlzaGVkRW50cnknKSkgfHxcbiAgICAgICghaGFzVW5wdWJsaXNoZWRDaGFuZ2VzICYmICFpc01vZGlmaWNhdGlvbiAmJiB0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZWxldGVQdWJsaXNoZWRFbnRyeScpKTtcblxuICAgIHJldHVybiBbXG4gICAgICA8U2F2ZUJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IWhhc0NoYW5nZWR9XG4gICAgICAgIGtleT1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gaGFzQ2hhbmdlZCAmJiBvblBlcnNpc3QoKX1cbiAgICAgID5cbiAgICAgICAge2lzUGVyc2lzdGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnNhdmluZycpIDogdCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuc2F2ZScpfVxuICAgICAgPC9TYXZlQnV0dG9uPixcbiAgICAgIGN1cnJlbnRTdGF0dXNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnJlbmRlcldvcmtmbG93U3RhdHVzQ29udHJvbHMoKSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTmV3RW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCB9KSxcbiAgICAgICAgICBdXG4gICAgICAgIDogIWlzTmV3RW50cnkgJiZcbiAgICAgICAgICB0aGlzLnJlbmRlckV4aXN0aW5nRW50cnlXb3JrZmxvd1B1Ymxpc2hDb250cm9scyh7IGNhbkNyZWF0ZSwgY2FuUHVibGlzaCwgY2FuRGVsZXRlIH0pLFxuICAgICAgKCFzaG93RGVsZXRlIHx8IHVzZU9wZW5BdXRob3JpbmcpICYmICFoYXNVbnB1Ymxpc2hlZENoYW5nZXMgJiYgIWlzTW9kaWZpY2F0aW9uID8gbnVsbCA6IChcbiAgICAgICAgPERlbGV0ZUJ1dHRvblxuICAgICAgICAgIGtleT1cImRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhc1VucHVibGlzaGVkQ2hhbmdlcyA/IG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzIDogb25EZWxldGV9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNEZWxldGluZyA/IHQoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmRlbGV0aW5nJykgOiBkZWxldGVMYWJlbH1cbiAgICAgICAgPC9EZWxldGVCdXR0b24+XG4gICAgICApLFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50U3RhdHVzLCBpc05ld0VudHJ5LCB0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckRlcGxveVByZXZpZXdDb250cm9scyh0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5kZXBsb3lQcmV2aWV3QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaCBjb250cm9sIGZvciBwdWJsaXNoZWQgd29ya2Zsb3cgZW50cnkuXG4gICAgICovXG4gICAgaWYgKCFpc05ld0VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJEZXBsb3lQcmV2aWV3Q29udHJvbHModCgnZWRpdG9yLmVkaXRvclRvb2xiYXIuZGVwbG95QnV0dG9uTGFiZWwnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB1c2VyLFxuICAgICAgaGFzQ2hhbmdlZCxcbiAgICAgIGRpc3BsYXlVcmwsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgdCxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sYmFyQ29udGFpbmVyPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25CYWNrTGluayB0bz17ZWRpdG9yQmFja0xpbmt9PlxuICAgICAgICAgIDxCYWNrQXJyb3c+4oaQPC9CYWNrQXJyb3c+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxCYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLmJhY2tDb2xsZWN0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9CYWNrQ29sbGVjdGlvbj5cbiAgICAgICAgICAgIHtoYXNDaGFuZ2VkID8gKFxuICAgICAgICAgICAgICA8QmFja1N0YXR1c0NoYW5nZWQ+e3QoJ2VkaXRvci5lZGl0b3JUb29sYmFyLnVuc2F2ZWRDaGFuZ2VzJyl9PC9CYWNrU3RhdHVzQ2hhbmdlZD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxCYWNrU3RhdHVzVW5jaGFuZ2VkPnt0KCdlZGl0b3IuZWRpdG9yVG9vbGJhci5jaGFuZ2VzU2F2ZWQnKX08L0JhY2tTdGF0dXNVbmNoYW5nZWQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2xiYXJTZWN0aW9uQmFja0xpbms+XG4gICAgICAgIDxUb29sYmFyU2VjdGlvbk1haW4+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgICB7aGFzV29ya2Zsb3cgPyB0aGlzLnJlbmRlcldvcmtmbG93Q29udHJvbHMoKSA6IHRoaXMucmVuZGVyU2ltcGxlQ29udHJvbHMoKX1cbiAgICAgICAgICA8L1Rvb2xiYXJTdWJTZWN0aW9uRmlyc3Q+XG4gICAgICAgICAgPFRvb2xiYXJTdWJTZWN0aW9uTGFzdD5cbiAgICAgICAgICAgIHtoYXNXb3JrZmxvd1xuICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyV29ya2Zsb3dEZXBsb3lQcmV2aWV3Q29udHJvbHMoKVxuICAgICAgICAgICAgICA6IHRoaXMucmVuZGVyU2ltcGxlRGVwbG95UHJldmlld0NvbnRyb2xzKCl9XG4gICAgICAgICAgPC9Ub29sYmFyU3ViU2VjdGlvbkxhc3Q+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NYWluPlxuICAgICAgICA8VG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgICAgIDxTZXR0aW5nc0Ryb3Bkb3duXG4gICAgICAgICAgICBkaXNwbGF5VXJsPXtkaXNwbGF5VXJsfVxuICAgICAgICAgICAgaW1hZ2VVcmw9e3VzZXI/LmF2YXRhcl91cmx9XG4gICAgICAgICAgICBvbkxvZ291dENsaWNrPXtvbkxvZ291dENsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVG9vbGJhclNlY3Rpb25NZXRhPlxuICAgICAgPC9Ub29sYmFyQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoRWRpdG9yVG9vbGJhcik7XG4iXX0= */"));
204
204
  class EditorToolbar extends _react.default.Component {
205
205
  constructor(...args) {
206
206
  super(...args);
@@ -345,6 +345,7 @@ class EditorToolbar extends _react.default.Component {
345
345
  return canPublish || canCreate ? (0, _core.jsx)(ToolbarDropdown, {
346
346
  dropdownTopOverlap: "40px",
347
347
  dropdownWidth: "150px",
348
+ key: "td-publish-create",
348
349
  renderButton: () => (0, _core.jsx)(PublishedToolbarButton, null, isPersisting ? t('editor.editorToolbar.unpublishing') : t('editor.editorToolbar.published'))
349
350
  }, canDelete && canPublish && (0, _core.jsx)(_decapCmsUiDefault.DropdownItem, {
350
351
  label: t('editor.editorToolbar.unpublish'),